diff --git a/Cargo.lock b/Cargo.lock index ed8cc908bc..d4d0de7c02 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4079,6 +4079,11 @@ dependencies = [ "tracing", "tracing-log", "tracing-subscriber", + "tree-sitter", + "tree-sitter-json", + "tree-sitter-rust", + "tree-sitter-typescript", + "tree-sitter-yaml", "unicode-segmentation", "url", "uuid", @@ -10027,6 +10032,7 @@ version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ + "indexmap 2.13.0", "itoa", "memchr", "serde", @@ -10653,6 +10659,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" + [[package]] name = "stringprep" version = "0.1.5" @@ -11739,6 +11751,66 @@ dependencies = [ "syn 2.0.117", ] +[[package]] +name = "tree-sitter" +version = "0.26.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7a6592b1aec0109df37b6bafea77eb4e61466e37b0a5a98bef4f89bfb81b7a2" +dependencies = [ + "cc", + "regex", + "regex-syntax", + "serde_json", + "streaming-iterator", + "tree-sitter-language", +] + +[[package]] +name = "tree-sitter-json" +version = "0.24.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d727acca406c0020cffc6cf35516764f36c8e3dc4408e5ebe2cb35a947ec471" +dependencies = [ + "cc", + "tree-sitter-language", +] + +[[package]] +name = "tree-sitter-language" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009994f150cc0cd50ff54917d5bc8bffe8cad10ca10d81c34da2ec421ae61782" + +[[package]] +name = "tree-sitter-rust" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b9b18034c684a2420722be8b2a91c9c44f2546b631c039edf575ccba8c61be1" +dependencies = [ + "cc", + "tree-sitter-language", +] + +[[package]] +name = "tree-sitter-typescript" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5f76ed8d947a75cc446d5fccd8b602ebf0cde64ccf2ffa434d873d7a575eff" +dependencies = [ + "cc", + "tree-sitter-language", +] + +[[package]] +name = "tree-sitter-yaml" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53c223db85f05e34794f065454843b0668ebc15d240ada63e2b5939f43ce7c97" +dependencies = [ + "cc", + "tree-sitter-language", +] + [[package]] name = "triomphe" version = "0.1.15" diff --git a/Cargo.toml b/Cargo.toml index 3c22e242d4..4478b8a0c3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,9 +24,7 @@ members = [ exclude = [ "cli/desktop-app/src-tauri", - "test-components/host-api-tests", - "test-components/http-tests", - "test-components/oplog-processor", + "test-components", "sdks/golem-rust" ] @@ -210,7 +208,7 @@ reqwest-middleware = { version = "0.5.1", features = ["json", "multipart", "quer reqwest-tracing = { version = "0.7", features = ["opentelemetry_0_30"] } ringbuf = "0.4.7" rlimit = "0.10.2" -rmcp = {version = "0.16.0", features = ["server", "transport-streamable-http-server"] } +rmcp = { version = "0.16.0", features = ["server", "transport-streamable-http-server"] } rsa = "0.9.7" rustc-hash = "2.1.1" @@ -271,6 +269,11 @@ tracing-opentelemetry = "0.31.0" tracing-serde = "0.2.0" tracing-subscriber = { version = "0.3.20", features = ["env-filter", "fmt", "std", "json", ] } tracing-test = "0.2.5" +tree-sitter = "0.26.5" +tree-sitter-json = "0.24.8" +tree-sitter-rust = "0.24.0" +tree-sitter-typescript = "0.23.2" +tree-sitter-yaml = "0.7.2" tower = "0.5.2" try_match = "0.4.2" tryhard = "0.5.1" diff --git a/cli/golem-cli/Cargo.toml b/cli/golem-cli/Cargo.toml index 0d9be2caf5..2081971672 100644 --- a/cli/golem-cli/Cargo.toml +++ b/cli/golem-cli/Cargo.toml @@ -100,6 +100,11 @@ toml_edit = { workspace = true } tracing = { workspace = true } tracing-log = "0.2.0" tracing-subscriber = { workspace = true } +tree-sitter = { workspace = true } +tree-sitter-json = { workspace = true } +tree-sitter-rust = { workspace = true } +tree-sitter-typescript = { workspace = true } +tree-sitter-yaml = { workspace = true } unicode-segmentation = { workspace = true } url = { workspace = true } uuid = { workspace = true } diff --git a/cli/golem-cli/src/app/build/clean.rs b/cli/golem-cli/src/app/build/clean.rs index 2b54c1fd7c..cc99ea0ea3 100644 --- a/cli/golem-cli/src/app/build/clean.rs +++ b/cli/golem-cli/src/app/build/clean.rs @@ -24,6 +24,8 @@ pub fn clean_app(ctx: &BuildContext<'_>, mode: CleanMode) -> anyhow::Result<()> log_action("Cleaning", "components"); let _indent = LogIndent::new(); + let app_root_dir = ctx.application().app_root_dir(); + let paths = { let mut paths = BTreeSet::<(&'static str, PathBuf)>::new(); @@ -39,9 +41,8 @@ pub fn clean_app(ctx: &BuildContext<'_>, mode: CleanMode) -> anyhow::Result<()> for component_name in &component_names { let component = ctx.application().component(component_name); - let component_source_dir = component.source_dir(); + let component_source_dir = component.component_dir(); - paths.insert(("generated wit", component.generated_wit())); paths.insert(("component wasm", component.wasm())); paths.insert(("output wasm", component.final_wasm())); @@ -52,9 +53,13 @@ pub fn clean_app(ctx: &BuildContext<'_>, mode: CleanMode) -> anyhow::Result<()> .unwrap_or_else(|| component_source_dir.to_path_buf()); paths.extend( - fs::compile_and_collect_globs(&build_dir, &build_step.targets())? - .into_iter() - .map(|path| ("build output", path)), + fs::compile_and_collect_globs( + app_root_dir, + &build_dir, + &build_step.targets(), + )? + .into_iter() + .map(|path| ("build output", path)), ); } diff --git a/cli/golem-cli/src/app/build/command.rs b/cli/golem-cli/src/app/build/command.rs index ea517bd846..88eee9595f 100644 --- a/cli/golem-cli/src/app/build/command.rs +++ b/cli/golem-cli/src/app/build/command.rs @@ -41,7 +41,7 @@ pub async fn execute_build_command( let base_build_dir = ctx .application() .component(component_name) - .source_dir() + .component_dir() .to_path_buf(); match command { app_raw::BuildCommand::External(external_command) => { @@ -172,7 +172,7 @@ pub async fn execute_custom_command( for step in custom_command { if let Err(error) = - execute_external_command(ctx, component.source_dir(), step).await + execute_external_command(ctx, component.component_dir(), step).await { return Err(CustomCommandError::CommandError { error }); } @@ -287,6 +287,8 @@ pub async fn execute_external_command( base_command_dir: &Path, command: &app_raw::ExternalCommand, ) -> anyhow::Result<()> { + let app_root_dir = ctx.application().app_root_dir(); + let build_dir = command .dir .as_ref() @@ -296,8 +298,13 @@ pub async fn execute_external_command( let (sources, targets) = { if !command.sources.is_empty() && !command.targets.is_empty() { ( - fs::compile_and_collect_globs(&build_dir, &command.sources)?, - fs::compile_and_collect_globs(&build_dir, &command.targets)?, + fs::compile_and_collect_globs_with_expanders( + app_root_dir, + &build_dir, + &command.sources, + &[fs::GlobExpander::TsConfigInclude], + )?, + fs::compile_and_collect_globs(app_root_dir, &build_dir, &command.targets)?, ) } else { (vec![], vec![]) @@ -365,9 +372,10 @@ pub async fn execute_external_command( ) .await?; - Command::new(command_tokens[0].clone()) - .args(command_tokens.iter().skip(1)) + let mut cmd = Command::new(command_tokens[0].clone()); + cmd.args(command_tokens.iter().skip(1)) .current_dir(&build_dir) + .envs(&command.env) .stream_and_run(&command_tokens[0]) .await }, diff --git a/cli/golem-cli/src/app/context.rs b/cli/golem-cli/src/app/context.rs index ecd162e83d..123cabdda8 100644 --- a/cli/golem-cli/src/app/context.rs +++ b/cli/golem-cli/src/app/context.rs @@ -22,8 +22,8 @@ use crate::log::{log_action, logln, LogColorize, LogIndent, LogOutput, Output}; use crate::model::app::{ includes_from_yaml_file, AppBuildStep, Application, ApplicationComponentSelectMode, ApplicationConfig, ApplicationNameAndEnvironments, ApplicationSourceMode, BuildConfig, - CleanMode, ComponentPresetSelector, CustomBridgeSdkTarget, DynamicHelpSections, WithSource, - DEFAULT_CONFIG_FILE_NAME, + CleanMode, ComponentPresetSelector, CustomBridgeSdkTarget, DynamicHelpSections, LoadedRawApps, + WithSource, DEFAULT_CONFIG_FILE_NAME, }; use crate::model::text::fmt::format_component_applied_layers; use crate::model::text::server::ToFormattedServerContext; @@ -160,7 +160,7 @@ impl ApplicationContext { let _output = LogOutput::new(Output::None); match preload_app(source_mode, dev_mode) { - Some(environments) => to_anyhow( + Some(environments) => validated_to_anyhow( "Failed to load application manifest environments, see problems above", environments, Some(|mut preload_result| { @@ -194,7 +194,7 @@ impl ApplicationContext { return Ok(None); }; - let ctx = to_anyhow( + let ctx = validated_to_anyhow( "Failed to load application manifest, see problems above", Self::create_context(app_and_calling_working_dir, config, file_download_client).await, Some(|mut app_ctx| { @@ -283,7 +283,7 @@ impl ApplicationContext { .filter(|component_name| { self.application .component(component_name) - .source_dir() + .component_dir() .starts_with(self.calling_working_dir.as_path()) }) .cloned() @@ -320,7 +320,7 @@ impl ApplicationContext { } }; - let selected_component_names = to_anyhow( + let selected_component_names = validated_to_anyhow( "Failed to select requested components", selected_component_names, None, @@ -377,12 +377,8 @@ impl ApplicationContext { &self.selected_component_names } - pub fn deployable_component_names(&self) -> BTreeSet { - self.application - .component_names() - .filter(|name| self.application.component(name).is_deployable()) - .cloned() - .collect() + pub fn component_names(&self) -> BTreeSet { + self.application.component_names().cloned().collect() } pub async fn build(&self, build_config: &BuildConfig) -> anyhow::Result<()> { @@ -576,10 +572,16 @@ fn load_app( component_presets: ComponentPresetSelector, source_mode: ApplicationSourceMode, ) -> Option> { - load_raw_apps(source_mode).map(|raw_apps_and_calling_working_dir| { - raw_apps_and_calling_working_dir.and_then(|(raw_apps, calling_working_dir)| { - Application::from_raw_apps(application_name, environments, component_presets, raw_apps) - .map(|app| (app, calling_working_dir)) + load_raw_apps(source_mode).map(|loaded_raw_apps| { + loaded_raw_apps.and_then(|loaded_raw_apps| { + Application::from_raw_apps( + loaded_raw_apps.app_root_dir, + application_name, + environments, + component_presets, + loaded_raw_apps.raw_apps, + ) + .map(|app| (app, loaded_raw_apps.calling_working_dir)) }) }) } @@ -588,11 +590,12 @@ fn preload_app( source_mode: ApplicationSourceMode, dev_mode: bool, ) -> Option> { - load_raw_apps(source_mode).map(|raw_apps_and_calling_working_dir| { - raw_apps_and_calling_working_dir.and_then(|(raw_apps, calling_working_dir)| { - let used_language_templates = Application::language_templates_from_raw_apps(&raw_apps); + load_raw_apps(source_mode).map(|loaded_raw_apps| { + loaded_raw_apps.and_then(|loaded_raw_apps| { + let used_language_templates = + Application::language_templates_from_raw_apps(&loaded_raw_apps.raw_apps); - Application::environments_from_raw_apps(raw_apps.as_slice()) + Application::environments_from_raw_apps(loaded_raw_apps.raw_apps.as_slice()) .and_then(|application_name_and_environments| { ValidatedResult::from_result(ensure_on_demand_commons( &used_language_templates, @@ -605,16 +608,17 @@ fn preload_app( .map( |(on_demand_common_raw_apps, application_name_and_environments)| { let raw_apps = { - let mut raw_apps = raw_apps; + let mut raw_apps = loaded_raw_apps.raw_apps; raw_apps.extend(on_demand_common_raw_apps); raw_apps }; ApplicationPreloadResult { - source_mode: ApplicationSourceMode::Preloaded { + source_mode: ApplicationSourceMode::Preloaded(LoadedRawApps { + app_root_dir: loaded_raw_apps.app_root_dir, + calling_working_dir: loaded_raw_apps.calling_working_dir, raw_apps, - calling_working_dir, - }, + }), loaded_with_warnings: false, application_name_and_environments: Some( application_name_and_environments, @@ -637,12 +641,13 @@ fn ensure_on_demand_commons( for language in languages { if let Some(template) = app_template_repo.common_on_demand_template(*language)? { + let app_dir = std::env::current_dir()?; let target_dir = Application::on_demand_common_dir_for_language(template.0.language); - template.generate(&target_dir)?; + template.generate(&app_dir, &target_dir)?; let golem_yaml_path = target_dir.join("golem.yaml"); if golem_yaml_path.exists() { on_demand_raw_apps.push(app_raw::ApplicationWithSource::from_yaml_file( - golem_yaml_path, + &golem_yaml_path, )?); } } @@ -651,23 +656,24 @@ fn ensure_on_demand_commons( Ok(on_demand_raw_apps) } -fn load_raw_apps( - source_mode: ApplicationSourceMode, -) -> Option, PathBuf)>> { - fn load( - root_source: Option<&Path>, - ) -> Option, PathBuf)>> { - collect_sources_and_switch_to_app_root(root_source).map(|sources_and_calling_working_dir| { - sources_and_calling_working_dir.and_then(|(sources, calling_working_dir)| { - sources +fn load_raw_apps(source_mode: ApplicationSourceMode) -> Option> { + fn load(root_source: Option<&Path>) -> Option> { + collect_sources_and_switch_to_app_root(root_source).map(|collected_sources| { + collected_sources.and_then(|collected_sources| { + collected_sources + .sources .into_iter() .map(|source| { ValidatedResult::from_result( - app_raw::ApplicationWithSource::from_yaml_file(source), + app_raw::ApplicationWithSource::from_yaml_file(&source), ) }) .collect::>>() - .map(|raw_apps| (raw_apps, calling_working_dir)) + .map(|raw_apps| LoadedRawApps { + app_root_dir: collected_sources.app_root_dir, + calling_working_dir: collected_sources.calling_working_dir, + raw_apps, + }) }) }) } @@ -675,17 +681,22 @@ fn load_raw_apps( match source_mode { ApplicationSourceMode::Automatic => load(None), ApplicationSourceMode::ByRootManifest(root_manifest) => load(Some(&root_manifest)), - ApplicationSourceMode::Preloaded { - raw_apps, - calling_working_dir, - } => Some(ValidatedResult::Ok((raw_apps, calling_working_dir))), + ApplicationSourceMode::Preloaded(loaded_raw_apps) => { + Some(ValidatedResult::Ok(loaded_raw_apps)) + } ApplicationSourceMode::None => None, } } +struct CollectedSources { + app_root_dir: PathBuf, + calling_working_dir: PathBuf, + sources: BTreeSet, +} + fn collect_sources_and_switch_to_app_root( root_manifest: Option<&Path>, -) -> Option, PathBuf)>> { +) -> Option> { let calling_working_dir = std::env::current_dir() .expect("Failed to get current working directory") .canonicalize() @@ -694,26 +705,33 @@ fn collect_sources_and_switch_to_app_root( log_action("Collecting", "application manifests"); let _indent = LogIndent::new(); - fn collect_by_main_source(source: &Path) -> Option>> { + fn collect_by_main_source( + source: &Path, + ) -> Option, PathBuf)>> { let source_dir = fs::parent_or_err(source).expect("Failed to get parent dir for config parent"); std::env::set_current_dir(source_dir).expect("Failed to set current dir for config parent"); let includes = includes_from_yaml_file(source); if includes.is_empty() { - Some(ValidatedResult::Ok(BTreeSet::from([source.to_path_buf()]))) + Some(ValidatedResult::Ok(( + BTreeSet::from([source.to_path_buf()]), + source_dir.to_path_buf(), + ))) } else { Some( - ValidatedResult::from_result(fs::compile_and_collect_globs(source_dir, &includes)) - .map(|mut sources| { - sources.insert(0, source.to_path_buf()); - sources.into_iter().collect() - }), + ValidatedResult::from_result(fs::compile_and_collect_globs( + source_dir, source_dir, &includes, + )) + .map(|mut sources| { + sources.insert(0, source.to_path_buf()); + (sources.into_iter().collect(), source_dir.to_path_buf()) + }), ) } } - let sources = match root_manifest { + let sources_and_root_dir = match root_manifest { None => match find_main_source() { Some(source) => collect_by_main_source(&source), None => None, @@ -728,9 +746,10 @@ fn collect_sources_and_switch_to_app_root( }, }; - sources.map(|sources| { - sources - .inspect(|sources| { + sources_and_root_dir.map(|sources_and_root_dir| { + sources_and_root_dir + .inspect(|sources_and_root_dir| { + let sources = &sources_and_root_dir.0; if sources.is_empty() { log_action("Found", "no sources"); } else { @@ -746,7 +765,11 @@ fn collect_sources_and_switch_to_app_root( ); } }) - .map(|sources| (sources, calling_working_dir)) + .map(|sources_and_root_dir| CollectedSources { + app_root_dir: sources_and_root_dir.1, + calling_working_dir, + sources: sources_and_root_dir.0, + }) }) } @@ -770,7 +793,7 @@ fn find_main_source() -> Option { last_source } -pub fn to_anyhow( +pub fn validated_to_anyhow( message: &str, result: ValidatedResult, mark_had_warns: Option T>, diff --git a/cli/golem-cli/src/app/edit/agents_md.rs b/cli/golem-cli/src/app/edit/agents_md.rs new file mode 100644 index 0000000000..1fa5fbf06b --- /dev/null +++ b/cli/golem-cli/src/app/edit/agents_md.rs @@ -0,0 +1,168 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use std::collections::{BTreeMap, BTreeSet}; + +pub fn validate(_source: &str) -> anyhow::Result<()> { + Ok(()) +} + +pub fn merge_guides(current: &str, new: &str) -> anyhow::Result { + let mut new_guides = extract_managed_guides(new); + if new_guides.is_empty() { + return Ok(current.to_string()); + } + + let current_sections = extract_guide_sections(current); + if current_sections.is_empty() { + let mut merged = current.trim_end().to_string(); + if !merged.is_empty() { + merged.push_str("\n\n"); + } + merged.push_str(&render_guides(&new_guides)); + merged.push('\n'); + return Ok(merged); + } + + let mut merged = String::new(); + let mut cursor = 0; + for section in ¤t_sections { + merged.push_str(¤t[cursor..section.start]); + let content = new_guides + .remove(§ion.key) + .unwrap_or_else(|| section.content.clone()); + merged.push_str(&render_guide(§ion.key, &content)); + cursor = section.end; + } + merged.push_str(¤t[cursor..]); + + if !new_guides.is_empty() { + if !merged.ends_with('\n') { + merged.push('\n'); + } + if !merged.ends_with("\n\n") { + merged.push('\n'); + } + merged.push_str(&render_guides(&new_guides)); + } + + if !merged.ends_with('\n') { + merged.push('\n'); + } + + Ok(merged) +} + +fn guide_start_marker(key: &str) -> String { + format!("") +} + +fn guide_end_marker(key: &str) -> String { + format!("") +} + +fn extract_managed_guides(source: &str) -> BTreeMap { + extract_guide_sections(source) + .into_iter() + .map(|section| (section.key, section.content)) + .collect() +} + +#[derive(Debug, Clone)] +struct GuideSection { + key: String, + start: usize, + end: usize, + content: String, +} + +fn extract_guide_sections(source: &str) -> Vec { + let mut result = Vec::new(); + let mut seen_keys = BTreeSet::new(); + + let mut cursor = 0; + while let Some(start_idx_rel) = source[cursor..].find("") else { + break; + }; + let marker_end = start_idx + marker_end_rel + 4; + let marker = &source[start_idx..marker_end]; + + let Some(key) = extract_guide_key(marker, ":start") else { + cursor = marker_end; + continue; + }; + + let content_start = marker_end; + let end_marker = guide_end_marker(&key); + let Some(end_marker_idx_rel) = source[content_start..].find(&end_marker) else { + cursor = marker_end; + continue; + }; + let end_marker_idx = content_start + end_marker_idx_rel; + let section_end = end_marker_idx + end_marker.len(); + let section_end = if source[section_end..].starts_with('\n') { + section_end + 1 + } else { + section_end + }; + + let content = source[content_start..end_marker_idx] + .trim_start_matches('\n') + .trim_end_matches('\n') + .to_string(); + + if seen_keys.insert(key.clone()) { + result.push(GuideSection { + key, + start: start_idx, + end: section_end, + content, + }); + } + cursor = section_end; + } + + result +} + +fn extract_guide_key(marker: &str, suffix: &str) -> Option { + let prefix = ""); + marker + .strip_prefix(prefix) + .and_then(|s| s.strip_suffix(&suffix)) + .map(ToString::to_string) +} + +fn render_guide(key: &str, content: &str) -> String { + format!( + "{}\n{}\n{}\n", + guide_start_marker(key), + content.trim_end(), + guide_end_marker(key) + ) +} + +fn render_guides(guides: &BTreeMap) -> String { + let mut out = String::new(); + for (idx, (key, content)) in guides.iter().enumerate() { + if idx > 0 { + out.push('\n'); + } + out.push_str(&render_guide(key, content)); + } + out +} diff --git a/cli/golem-cli/src/app/edit/cargo_toml.rs b/cli/golem-cli/src/app/edit/cargo_toml.rs new file mode 100644 index 0000000000..b1d1828ebc --- /dev/null +++ b/cli/golem-cli/src/app/edit/cargo_toml.rs @@ -0,0 +1,254 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use anyhow::anyhow; +use toml_edit::{value, Array, DocumentMut, Item, Table}; + +pub fn merge_documents(base_source: &str, update_source: &str) -> anyhow::Result { + let mut base: DocumentMut = base_source.parse().map_err(|e| anyhow!("{e}"))?; + let update: DocumentMut = update_source.parse().map_err(|e| anyhow!("{e}"))?; + + merge_tables(base.as_table_mut(), update.as_table()); + + Ok(base.to_string()) +} + +pub fn merge_dependencies( + source: &str, + dependencies: &[(String, String)], + dev_dependencies: &[(String, String)], +) -> anyhow::Result { + let mut doc: DocumentMut = source.parse().map_err(|e| anyhow!("{e}"))?; + + merge_table(&mut doc, "dependencies", dependencies)?; + merge_table(&mut doc, "dev-dependencies", dev_dependencies)?; + + Ok(doc.to_string()) +} + +pub fn check_required_deps(source: &str, required: &[&str]) -> anyhow::Result> { + let doc: DocumentMut = source.parse().map_err(|e| anyhow!("{e}"))?; + let mut missing = Vec::new(); + for dep in required { + if !has_dependency(&doc, dep) { + missing.push((*dep).to_string()); + } + } + Ok(missing) +} + +fn merge_table( + doc: &mut DocumentMut, + table_name: &str, + deps: &[(String, String)], +) -> anyhow::Result<()> { + if deps.is_empty() { + return Ok(()); + } + if !doc.as_table().contains_key(table_name) { + doc[table_name] = Item::Table(Table::default()); + } + for (name, version) in deps { + let spec = VersionSpec::parse(version)?; + if spec.is_workspace() { + continue; + } + let entry = &mut doc[table_name][name]; + if entry.is_none() { + *entry = spec.to_item(); + continue; + } + if entry + .as_table_like() + .and_then(|table| table.get("workspace")) + .and_then(|item| item.as_value()) + .and_then(|value| value.as_bool()) + .unwrap_or(false) + { + continue; + } + if spec.features.is_empty() { + *entry = spec.to_item(); + continue; + } + if entry.is_str() { + let mut table = Table::default(); + table["version"] = value(spec.version.as_str()); + table["features"] = value(features_to_array(merge_features( + Vec::new(), + &spec.features, + ))); + *entry = Item::Table(table); + continue; + } + if let Some(table) = entry.as_table_like_mut() { + if let Some(version_item) = table.get_mut("version") { + *version_item = value(spec.version.as_str()); + } else { + table.insert("version", value(spec.version.as_str())); + } + let existing = table + .get("features") + .and_then(|item| item.as_array()) + .map(|array| { + array + .iter() + .filter_map(|v| v.as_str()) + .map(str::to_string) + .collect::>() + }) + .unwrap_or_else(Vec::new); + table.insert( + "features", + value(features_to_array(merge_features(existing, &spec.features))), + ); + continue; + } + *entry = spec.to_item(); + } + Ok(()) +} + +fn has_dependency(doc: &DocumentMut, name: &str) -> bool { + doc.get("dependencies") + .and_then(|table| table.get(name)) + .is_some() + || doc + .get("dev-dependencies") + .and_then(|table| table.get(name)) + .is_some() + || doc + .get("build-dependencies") + .and_then(|table| table.get(name)) + .is_some() + || doc + .get("workspace") + .and_then(|table| table.get("dependencies")) + .and_then(|table| table.get(name)) + .is_some() +} + +fn merge_tables(base: &mut Table, update: &Table) { + for (key, update_item) in update { + if let Some(base_item) = base.get_mut(key) { + merge_items(base_item, update_item); + } else { + base.insert(key, update_item.clone()); + } + } +} + +fn merge_items(base: &mut Item, update: &Item) { + if let (Some(base_table), Some(update_table)) = + (base.as_table_like_mut(), update.as_table_like()) + { + for (key, update_item) in update_table.iter() { + if key == "features" { + if let (Some(base_features), Some(update_features)) = ( + base_table + .get_mut("features") + .and_then(|it| it.as_array_mut()), + update_item.as_array(), + ) { + for feature in update_features.iter().filter_map(|v| v.as_str()) { + if !base_features.iter().any(|v| v.as_str() == Some(feature)) { + base_features.push(feature); + } + } + continue; + } + } + + if let Some(base_item) = base_table.get_mut(key) { + merge_items(base_item, update_item); + } else { + base_table.insert(key, update_item.clone()); + } + } + return; + } + + *base = update.clone(); +} + +#[derive(Debug)] +struct VersionSpec { + version: String, + features: Vec, +} + +impl VersionSpec { + fn parse(raw: &str) -> anyhow::Result { + let trimmed = raw.trim(); + if trimmed.eq_ignore_ascii_case("workspace") { + return Ok(Self { + version: "workspace".to_string(), + features: Vec::new(), + }); + } + let mut parts = trimmed.splitn(2, '+'); + let version = parts + .next() + .map(str::trim) + .filter(|part| !part.is_empty()) + .ok_or_else(|| anyhow!("Invalid version spec"))?; + let features = parts + .next() + .map(|rest| { + rest.split(',') + .map(str::trim) + .filter(|item| !item.is_empty()) + .map(str::to_string) + .collect::>() + }) + .unwrap_or_default(); + Ok(Self { + version: version.to_string(), + features, + }) + } + + fn to_item(&self) -> Item { + if self.features.is_empty() { + value(self.version.as_str()) + } else { + let mut table = Table::default(); + table["version"] = value(self.version.as_str()); + table["features"] = value(features_to_array(self.features.clone())); + Item::Table(table) + } + } + + fn is_workspace(&self) -> bool { + self.version == "workspace" + } +} + +fn merge_features(existing: Vec, new_features: &[String]) -> Vec { + let mut merged = existing; + for feature in new_features { + if !merged.iter().any(|item| item == feature) { + merged.push(feature.clone()); + } + } + merged +} + +fn features_to_array(features: Vec) -> Array { + let mut array = Array::default(); + for feature in features { + array.push(feature); + } + array +} diff --git a/cli/golem-cli/src/app/edit/gitignore.rs b/cli/golem-cli/src/app/edit/gitignore.rs new file mode 100644 index 0000000000..05fd317609 --- /dev/null +++ b/cli/golem-cli/src/app/edit/gitignore.rs @@ -0,0 +1,79 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use itertools::Itertools; +use std::collections::{BTreeSet, HashMap, HashSet}; + +pub fn merge(source: &str, additional: &str) -> String { + let lines = source + .lines() + .chain(additional.lines()) + .map(str::to_string) + .collect::>(); + + let mut polarity_by_pattern = HashMap::::new(); + for line in &lines { + if let Some((negated, pattern)) = parse_pattern_line(line) { + let entry = polarity_by_pattern.entry(pattern).or_insert((false, false)); + if negated { + entry.0 = true; + } else { + entry.1 = true; + } + } + } + + let mut ordered = Vec::new(); + let mut ordered_seen = HashSet::new(); + let mut sortable = BTreeSet::new(); + + for line in lines { + let is_conflicting = match parse_pattern_line(&line) { + Some((_, pattern)) => { + let (has_negated, has_non_negated) = polarity_by_pattern + .get(&pattern) + .copied() + .unwrap_or((false, false)); + has_negated && has_non_negated + } + None => true, + }; + + if is_conflicting { + if ordered_seen.insert(line.clone()) { + ordered.push(line); + } + } else { + sortable.insert(line); + } + } + + ordered.into_iter().chain(sortable).join("\n") +} + +fn parse_pattern_line(line: &str) -> Option<(bool, String)> { + let trimmed = line.trim(); + if trimmed.is_empty() || trimmed.starts_with('#') { + return None; + } + + if let Some(pattern) = trimmed.strip_prefix('!') { + if pattern.is_empty() { + return None; + } + return Some((true, pattern.to_string())); + } + + Some((false, trimmed.to_string())) +} diff --git a/cli/golem-cli/src/app/edit/golem_yaml.rs b/cli/golem-cli/src/app/edit/golem_yaml.rs new file mode 100644 index 0000000000..ede8423dbd --- /dev/null +++ b/cli/golem-cli/src/app/edit/golem_yaml.rs @@ -0,0 +1,632 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::app::edit::text::{apply_edits, TextEdit}; +use anyhow::anyhow; +use std::collections::BTreeSet; +use tree_sitter::{Node, Parser, Tree}; + +pub fn split_documents( + source: &str, + split_root_keys: &[&str], + split_map_keys: &[&str], +) -> anyhow::Result> { + let tree = parse_yaml(source)?; + let root = root_mapping(&tree, source)?; + let root_pairs = mapping_pairs(root, source)?; + + let split_root: BTreeSet<&str> = split_root_keys.iter().copied().collect(); + let split_map: BTreeSet<&str> = split_map_keys.iter().copied().collect(); + let split_all = split_root.is_empty(); + + let mut docs = Vec::new(); + let mut unsplit_ranges = Vec::new(); + for pair in root_pairs { + let key = pair.key; + let pair_node = pair.pair_node; + let value_node = pair.value_node; + let should_split = split_all || split_root.contains(key.as_str()); + if !should_split { + unsplit_ranges.push(pair_node.start_byte()..pair_node.end_byte()); + continue; + } + if split_map.contains(key.as_str()) { + let header_end = line_end_at(source, pair_node.start_byte()); + let header = source[pair_node.start_byte()..header_end].to_string(); + let Some(value_node) = value_node else { + docs.push(source[pair_node.start_byte()..pair_node.end_byte()].to_string()); + continue; + }; + let mapping_node = as_block_mapping(value_node).unwrap_or(value_node); + if mapping_node.kind() != "block_mapping" { + docs.push(source[pair_node.start_byte()..pair_node.end_byte()].to_string()); + continue; + } + for child in mapping_pairs(mapping_node, source)? { + let mut doc = String::new(); + doc.push_str(&header); + if !header.ends_with('\n') { + doc.push('\n'); + } + doc.push_str(&source[child.pair_node.start_byte()..child.pair_node.end_byte()]); + docs.push(doc); + } + } else { + docs.push(source[pair_node.start_byte()..pair_node.end_byte()].to_string()); + } + } + + if !unsplit_ranges.is_empty() { + let mut combined = String::new(); + for range in unsplit_ranges { + combined.push_str(&source[range]); + } + docs.push(combined); + } + + Ok(docs) +} + +pub fn add_map_entry( + source: &str, + path: &[&str], + key: &str, + value_literal: &str, +) -> anyhow::Result { + let tree = parse_yaml(source)?; + let root = root_mapping(&tree, source)?; + let mapping = + find_mapping_by_path(source, root, path)?.ok_or_else(|| anyhow!("Missing map at path"))?; + + let insert_pos = mapping.end_byte(); + let indent = child_indent(source, mapping)?; + let mut insertion = String::new(); + if !source[..insert_pos].ends_with('\n') { + insertion.push('\n'); + } + insertion.push_str(&" ".repeat(indent)); + insertion.push_str(key); + insertion.push_str(": "); + insertion.push_str(value_literal); + insertion.push('\n'); + apply_edits( + source, + vec![TextEdit::new(insert_pos, insert_pos, insertion)], + ) +} + +pub fn remove_map_entry(source: &str, path: &[&str], key: &str) -> anyhow::Result { + let tree = parse_yaml(source)?; + let root = root_mapping(&tree, source)?; + let mapping = + find_mapping_by_path(source, root, path)?.ok_or_else(|| anyhow!("Missing map at path"))?; + for pair in mapping_pairs(mapping, source)? { + if pair.key == key { + let mut end = pair.pair_node.end_byte(); + if source[end..].starts_with('\n') { + end += 1; + } + return apply_edits( + source, + vec![TextEdit::new(pair.pair_node.start_byte(), end, "")], + ); + } + } + Err(anyhow!("Missing entry {}", key)) +} + +pub fn set_scalar(source: &str, path: &[&str], value_literal: &str) -> anyhow::Result { + let tree = parse_yaml(source)?; + let root = root_mapping(&tree, source)?; + let pair = find_pair_by_path(source, root, path)?; + let (_, value_node) = if let Some(pair) = pair { + pair + } else if path.len() == 1 { + find_pair_anywhere(source, tree.root_node(), path[0])? + .ok_or_else(|| anyhow!("Missing entry"))? + } else { + return Err(anyhow!("Missing entry")); + }; + let replacement_range = value_node.start_byte()..value_node.end_byte(); + let edits = vec![TextEdit::new( + replacement_range.start, + replacement_range.end, + value_literal, + )]; + apply_edits(source, edits) +} + +pub fn merge_documents(base: &str, update: &str) -> anyhow::Result { + let base_tree = parse_yaml(base)?; + let update_tree = parse_yaml(update)?; + + let base_root = root_mapping(&base_tree, base)?; + let update_root = root_mapping(&update_tree, update)?; + + let mut edits = Vec::new(); + merge_mapping_nodes(base, base_root, update, update_root, &mut edits)?; + let merged = apply_edits(base, edits)?; + Ok(normalize_trailing_newlines(&merged)) +} + +fn normalize_trailing_newlines(source: &str) -> String { + let trimmed = source.trim_end_matches([' ', '\t', '\r', '\n']); + format!("{trimmed}\n") +} + +fn parse_yaml(source: &str) -> anyhow::Result { + let mut parser = Parser::new(); + parser + .set_language(&tree_sitter_yaml::LANGUAGE.into()) + .map_err(|_| anyhow!("Failed to load tree-sitter-yaml"))?; + let tree = parser + .parse(source, None) + .ok_or_else(|| anyhow!("Failed to parse YAML"))?; + if tree.root_node().has_error() { + return Err(anyhow!("Invalid YAML")); + } + Ok(tree) +} + +fn root_mapping<'a>(tree: &'a Tree, source: &str) -> anyhow::Result> { + let root = tree.root_node(); + let mut cursor = root.walk(); + let mut stack = vec![root]; + let mut candidates = Vec::new(); + while let Some(node) = stack.pop() { + if node.kind() == "block_mapping" { + candidates.push(node); + } + for child in node.named_children(&mut cursor) { + stack.push(child); + } + } + + let Some(first_non_ws) = tree + .root_node() + .utf8_text(source.as_bytes()) + .ok() + .and_then(|text| text.find(|c: char| !c.is_whitespace())) + else { + return Err(anyhow!("Empty YAML")); + }; + + let mut last_non_ws = None; + if let Ok(text) = tree.root_node().utf8_text(source.as_bytes()) { + for (idx, ch) in text.char_indices() { + if !ch.is_whitespace() { + last_non_ws = Some(idx); + } + } + } + let last_non_ws = last_non_ws.unwrap_or(first_non_ws); + + for candidate in candidates.iter().rev() { + if candidate.start_byte() <= first_non_ws && candidate.end_byte() >= last_non_ws { + return Ok(*candidate); + } + } + + candidates + .into_iter() + .max_by_key(|node| node.end_byte().saturating_sub(node.start_byte())) + .ok_or_else(|| anyhow!("Missing root mapping")) +} + +fn find_first_kind<'a>(node: Node<'a>, kind: &str) -> Option> { + let mut cursor = node.walk(); + let mut stack = vec![node]; + while let Some(current) = stack.pop() { + if current.kind() == kind { + return Some(current); + } + for child in current.named_children(&mut cursor) { + stack.push(child); + } + } + None +} + +fn as_block_mapping<'a>(node: Node<'a>) -> Option> { + if node.kind() == "block_mapping" { + return Some(node); + } + find_first_kind(node, "block_mapping") +} + +struct MappingPair<'a> { + key: String, + pair_node: Node<'a>, + value_node: Option>, +} + +fn mapping_pairs<'a>(mapping: Node<'a>, source: &str) -> anyhow::Result>> { + let mut cursor = mapping.walk(); + let mut pairs = Vec::new(); + for child in mapping.named_children(&mut cursor) { + if child.kind() != "block_mapping_pair" { + continue; + } + let key_node = child + .child_by_field_name("key") + .ok_or_else(|| anyhow!("Missing key in YAML pair"))?; + let value_node = child.child_by_field_name("value"); + let key_text = source[key_node.start_byte()..key_node.end_byte()] + .trim() + .trim_matches('"') + .trim_matches('\'') + .to_string(); + pairs.push(MappingPair { + key: key_text, + pair_node: child, + value_node, + }); + } + Ok(pairs) +} + +fn find_mapping_by_path<'a>( + source: &str, + mut mapping: Node<'a>, + path: &[&str], +) -> anyhow::Result>> { + for key in path { + let mut found = None; + for pair in mapping_pairs(mapping, source)? { + if pair.key == *key { + found = pair.value_node; + break; + } + } + let Some(value_node) = found else { + return Ok(None); + }; + let mapping_node = as_block_mapping(value_node).unwrap_or(value_node); + if mapping_node.kind() != "block_mapping" { + return Ok(None); + } + mapping = mapping_node; + } + Ok(Some(mapping)) +} + +fn find_pair_by_path<'a>( + source: &str, + mapping: Node<'a>, + path: &[&str], +) -> anyhow::Result, Node<'a>)>> { + if path.is_empty() { + return Ok(None); + } + let parent = if path.len() == 1 { + Some(mapping) + } else { + find_mapping_by_path(source, mapping, &path[..path.len() - 1])? + }; + let Some(parent) = parent else { + return Ok(None); + }; + for pair in mapping_pairs(parent, source)? { + if pair.key == path[path.len() - 1] { + let Some(value_node) = pair.value_node else { + return Ok(None); + }; + return Ok(Some((pair.pair_node, value_node))); + } + } + Ok(None) +} + +fn find_pair_anywhere<'a>( + source: &str, + root: Node<'a>, + key: &str, +) -> anyhow::Result, Node<'a>)>> { + let mut cursor = root.walk(); + let mut stack = vec![root]; + let mut best: Option<(usize, Node<'a>, Node<'a>)> = None; + while let Some(node) = stack.pop() { + if node.kind() == "block_mapping_pair" { + let key_node = node + .child_by_field_name("key") + .ok_or_else(|| anyhow!("Missing key in YAML pair"))?; + let value_node = node.child_by_field_name("value"); + let key_text = source[key_node.start_byte()..key_node.end_byte()] + .trim() + .trim_matches('"') + .trim_matches('\''); + if key_text == key { + let mut depth = 0usize; + let mut current = node; + while let Some(parent) = current.parent() { + if parent.kind() == "block_mapping_pair" { + depth += 1; + } + current = parent; + } + if let Some(value_node) = value_node { + match best { + Some((best_depth, _, _)) if best_depth <= depth => {} + _ => best = Some((depth, node, value_node)), + } + } + } + } + for child in node.named_children(&mut cursor) { + stack.push(child); + } + } + Ok(best.map(|(_, pair, value)| (pair, value))) +} + +fn child_indent(source: &str, mapping: Node<'_>) -> anyhow::Result { + let mut cursor = mapping.walk(); + for child in mapping.named_children(&mut cursor) { + if child.kind() == "block_mapping_pair" { + let line_start = line_start_at(source, child.start_byte()); + return Ok(child.start_byte() - line_start); + } + } + let line_start = line_start_at(source, mapping.start_byte()); + Ok(mapping.start_byte() - line_start + 2) +} + +fn line_start_at(source: &str, pos: usize) -> usize { + source[..pos].rfind('\n').map(|idx| idx + 1).unwrap_or(0) +} + +fn line_end_at(source: &str, pos: usize) -> usize { + source[pos..] + .find('\n') + .map(|idx| pos + idx + 1) + .unwrap_or_else(|| source.len()) +} + +fn merge_mapping_nodes( + base_source: &str, + base_mapping: Node<'_>, + update_source: &str, + update_mapping: Node<'_>, + edits: &mut Vec, +) -> anyhow::Result<()> { + let base_pairs = mapping_pairs(base_mapping, base_source)?; + let update_pairs = mapping_pairs(update_mapping, update_source)?; + let mut base_index = std::collections::HashMap::new(); + let mut missing_insertions = Vec::::new(); + for (idx, pair) in base_pairs.iter().enumerate() { + base_index.insert(pair.key.clone(), (idx, pair.pair_node, pair.value_node)); + } + + for update_pair in update_pairs { + if let Some((_, base_pair, base_value)) = base_index.get(&update_pair.key) { + match (base_value, update_pair.value_node) { + (Some(base_value), Some(update_value)) => { + merge_value_nodes( + base_source, + *base_value, + update_source, + update_value, + edits, + )?; + } + (None, Some(update_value)) => { + let pair_indent = value_indent(base_source, base_pair.start_byte()); + let base_pair_text = + base_source[base_pair.start_byte()..base_pair.end_byte()].trim_end(); + let mut insertion = String::new(); + insertion.push_str(base_pair_text); + insertion.push('\n'); + insertion.push_str(&reindent_block( + update_source, + update_value.start_byte(), + update_value.end_byte(), + pair_indent + 2, + )); + insertion.push('\n'); + edits.push(TextEdit::new( + base_pair.start_byte(), + base_pair.end_byte(), + insertion, + )); + } + _ => {} + } + continue; + } + + let mut insertion = reindent_block( + update_source, + update_pair.pair_node.start_byte(), + update_pair.pair_node.end_byte(), + mapping_child_indent(base_source, base_mapping)?, + ); + if !insertion.ends_with('\n') { + insertion.push('\n'); + } + missing_insertions.push(insertion); + } + + if !missing_insertions.is_empty() { + let insert_pos = if let Some(pair) = base_pairs.last() { + pair.pair_node.end_byte() + } else { + base_mapping.end_byte() + }; + let prefix = if base_source[..insert_pos].ends_with('\n') { + "" + } else { + "\n" + }; + + edits.push(TextEdit::new( + insert_pos, + insert_pos, + format!("{prefix}{}", missing_insertions.concat()), + )); + } + + Ok(()) +} + +fn merge_value_nodes( + base_source: &str, + base_value: Node<'_>, + update_source: &str, + update_value: Node<'_>, + edits: &mut Vec, +) -> anyhow::Result<()> { + if let (Some(base_map), Some(update_map)) = + (as_block_mapping(base_value), as_block_mapping(update_value)) + { + return merge_mapping_nodes(base_source, base_map, update_source, update_map, edits); + } + if let (Some(base_seq), Some(update_seq)) = ( + as_block_sequence(base_value), + as_block_sequence(update_value), + ) { + return merge_sequence_nodes(base_source, base_seq, update_source, update_seq, edits); + } + + let replacement = update_source[update_value.start_byte()..update_value.end_byte()] + .trim() + .to_string(); + edits.push(TextEdit::new( + base_value.start_byte(), + base_value.end_byte(), + replacement, + )); + Ok(()) +} + +fn merge_sequence_nodes( + base_source: &str, + base_seq: Node<'_>, + update_source: &str, + update_seq: Node<'_>, + edits: &mut Vec, +) -> anyhow::Result<()> { + let base_items = sequence_items(base_seq); + let update_items = sequence_items(update_seq); + let mut existing = std::collections::HashSet::new(); + for item in &base_items { + let text = normalize_block_text(base_source, item.start_byte(), item.end_byte()); + existing.insert(text); + } + + let indent = sequence_item_indent(base_source, base_seq)?; + let insert_pos = if let Some(last) = base_items.last() { + last.end_byte() + } else { + base_seq.end_byte() + }; + + let mut inserts = String::new(); + for item in update_items { + let text = normalize_block_text(update_source, item.start_byte(), item.end_byte()); + if existing.contains(&text) { + continue; + } + existing.insert(text); + let reindented = reindent_block(update_source, item.start_byte(), item.end_byte(), indent); + inserts.push('\n'); + inserts.push_str(&reindented); + } + + if !inserts.is_empty() { + edits.push(TextEdit::new(insert_pos, insert_pos, inserts)); + } + Ok(()) +} + +fn sequence_items(sequence: Node<'_>) -> Vec> { + let mut cursor = sequence.walk(); + sequence + .named_children(&mut cursor) + .filter(|child| child.kind() == "block_sequence_item") + .collect() +} + +fn as_block_sequence<'a>(node: Node<'a>) -> Option> { + if node.kind() == "block_sequence" { + return Some(node); + } + find_first_kind(node, "block_sequence") +} + +fn mapping_child_indent(source: &str, mapping: Node<'_>) -> anyhow::Result { + let mut cursor = mapping.walk(); + for child in mapping.named_children(&mut cursor) { + if child.kind() == "block_mapping_pair" { + return Ok(value_indent(source, child.start_byte())); + } + } + let line_start = line_start_at(source, mapping.start_byte()); + Ok(mapping.start_byte() - line_start + 2) +} + +fn sequence_item_indent(source: &str, sequence: Node<'_>) -> anyhow::Result { + let items = sequence_items(sequence); + if let Some(item) = items.first() { + return Ok(value_indent(source, item.start_byte())); + } + let line_start = line_start_at(source, sequence.start_byte()); + Ok(sequence.start_byte() - line_start + 2) +} + +fn value_indent(source: &str, pos: usize) -> usize { + pos - line_start_at(source, pos) +} + +fn reindent_block(source: &str, start: usize, end: usize, new_indent: usize) -> String { + let text = &source[start..end]; + let old_indent = line_indent_at(source, start); + let new_indent_str = " ".repeat(new_indent); + let mut out = String::new(); + for (idx, line) in text.lines().enumerate() { + if idx > 0 { + out.push('\n'); + } + if line.starts_with(&old_indent) { + out.push_str(&new_indent_str); + out.push_str(&line[old_indent.len()..]); + } else if old_indent.trim().is_empty() { + let leading = line.chars().take_while(|ch| *ch == ' ').count(); + let trimmed = &line[leading..]; + out.push_str(&new_indent_str); + out.push_str(&" ".repeat(leading)); + out.push_str(trimmed); + } else { + out.push_str(&new_indent_str); + out.push_str(line); + } + } + out +} + +fn normalize_block_text(source: &str, start: usize, end: usize) -> String { + source[start..end] + .trim() + .replace(['\r', '\n'], " ") + .split_whitespace() + .collect::>() + .join(" ") +} + +fn line_indent_at(source: &str, pos: usize) -> String { + let line_start = line_start_at(source, pos); + source[line_start..pos] + .chars() + .take_while(|ch| *ch == ' ') + .collect() +} diff --git a/cli/golem-cli/src/app/edit/json.rs b/cli/golem-cli/src/app/edit/json.rs new file mode 100644 index 0000000000..aab1728156 --- /dev/null +++ b/cli/golem-cli/src/app/edit/json.rs @@ -0,0 +1,440 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::app::edit::text::{apply_edits, TextEdit}; +use anyhow::anyhow; +use std::collections::BTreeMap; +use tree_sitter::{Node, Parser, Tree}; + +pub fn collect_value_text_by_path(source: &str, path: &[&str]) -> anyhow::Result> { + let tree = parse_json(source)?; + let root = root_object(&tree, source)?; + let Some(value) = find_value_by_path(source, root, path)? else { + return Ok(None); + }; + Ok(Some( + source[value.start_byte()..value.end_byte()] + .trim() + .to_string(), + )) +} + +pub fn merge_object(base_source: &str, update_source: &str) -> anyhow::Result { + let base_tree = parse_json(base_source)?; + let update_tree = parse_json(update_source)?; + let base_root = root_object(&base_tree, base_source)?; + let update_root = root_object(&update_tree, update_source)?; + + let mut edits = Vec::new(); + merge_object_nodes( + base_source, + base_root, + update_source, + update_root, + &mut edits, + )?; + apply_edits(base_source, edits) +} + +pub fn update_object_entries( + source: &str, + object_key: &str, + entries: &[(String, String)], +) -> anyhow::Result { + let tree = parse_json(source)?; + let root = root_object(&tree, source)?; + + let mut edits = Vec::new(); + if let Some(value) = find_value_by_path(source, root, &[object_key])? { + if value.kind() != "object" { + return Err(anyhow!("{} is not an object", object_key)); + } + edits.extend(merge_entries_into_object(source, value, entries)?); + } else { + let object_literal = format_new_object_literal(source, entries)?; + edits.push(insert_object_pair_edit( + source, + root, + object_key, + &object_literal, + )?); + } + apply_edits(source, edits) +} + +pub fn collect_object_entries( + source: &str, + object_key: &str, + names: &[&str], +) -> anyhow::Result>> { + let tree = parse_json(source)?; + let root = root_object(&tree, source)?; + let mut result = BTreeMap::new(); + for name in names { + result.insert((*name).to_string(), None); + } + let Some(value) = find_value_by_path(source, root, &[object_key])? else { + return Ok(result); + }; + if value.kind() != "object" { + return Ok(result); + } + for (key, value_node) in object_pairs(value, source)? { + if names.contains(&key.as_str()) { + let text = source[value_node.start_byte()..value_node.end_byte()] + .trim() + .to_string(); + result.insert(key, Some(text)); + } + } + Ok(result) +} + +fn parse_json(source: &str) -> anyhow::Result { + let mut parser = Parser::new(); + parser + .set_language(&tree_sitter_json::LANGUAGE.into()) + .map_err(|_| anyhow!("Failed to load tree-sitter-json"))?; + let tree = parser + .parse(source, None) + .ok_or_else(|| anyhow!("Failed to parse JSON"))?; + if tree.root_node().has_error() { + return Err(anyhow!("Invalid JSON")); + } + if contains_comment(tree.root_node()) { + return Err(anyhow!("Comments are not allowed in JSON")); + } + Ok(tree) +} + +fn contains_comment(root: Node<'_>) -> bool { + let mut stack = vec![root]; + while let Some(node) = stack.pop() { + if node.kind() == "comment" { + return true; + } + for idx in 0..node.child_count() { + if let Some(child) = node.child(idx as u32) { + stack.push(child); + } + } + } + false +} + +fn root_object<'a>(tree: &'a Tree, _source: &str) -> anyhow::Result> { + let root = tree.root_node(); + let mut cursor = root.walk(); + let mut stack = vec![root]; + while let Some(node) = stack.pop() { + if node.kind() == "object" { + return Ok(node); + } + for child in node.named_children(&mut cursor) { + stack.push(child); + } + } + Err(anyhow!("No object found in JSONC source")) +} + +fn find_value_by_path<'a>( + source: &str, + mut object: Node<'a>, + path: &[&str], +) -> anyhow::Result>> { + for (index, key) in path.iter().enumerate() { + let mut found = None; + for (pair_key, value_node) in object_pairs(object, source)? { + if pair_key == *key { + found = Some(value_node); + break; + } + } + let Some(node) = found else { + return Ok(None); + }; + if index == path.len() - 1 { + return Ok(Some(node)); + } + if node.kind() != "object" { + return Ok(None); + } + object = node; + } + Ok(None) +} + +fn object_pairs<'a>(object: Node<'a>, source: &str) -> anyhow::Result)>> { + Ok(object_pair_nodes(object, source)? + .into_iter() + .map(|(key, _pair, value)| (key, value)) + .collect()) +} + +fn merge_object_nodes( + base_source: &str, + base_object: Node<'_>, + update_source: &str, + update_object: Node<'_>, + edits: &mut Vec, +) -> anyhow::Result<()> { + for (key, update_value) in object_pairs(update_object, update_source)? { + let mut base_value = None; + for (base_key, value) in object_pairs(base_object, base_source)? { + if base_key == key { + base_value = Some(value); + break; + } + } + if let Some(base_value) = base_value { + if base_value.kind() == "object" && update_value.kind() == "object" { + merge_object_nodes(base_source, base_value, update_source, update_value, edits)?; + } else { + let replacement = + update_source[update_value.start_byte()..update_value.end_byte()].to_string(); + edits.push(TextEdit::new( + base_value.start_byte(), + base_value.end_byte(), + replacement, + )); + } + } else { + let update_text = + update_source[update_value.start_byte()..update_value.end_byte()].to_string(); + edits.push(insert_object_pair_edit( + base_source, + base_object, + &key, + &update_text, + )?); + } + } + Ok(()) +} + +fn merge_entries_into_object( + source: &str, + object: Node<'_>, + entries: &[(String, String)], +) -> anyhow::Result> { + let mut edits = Vec::new(); + for (key, value) in entries { + let mut existing = None; + for (pair_key, value_node) in object_pairs(object, source)? { + if pair_key == *key { + existing = Some(value_node); + break; + } + } + if let Some(value_node) = existing { + edits.push(TextEdit::new( + value_node.start_byte(), + value_node.end_byte(), + format!("\"{}\"", escape_json_string(value)), + )); + } else { + edits.push(insert_object_pair_edit( + source, + object, + key, + &format!("\"{}\"", escape_json_string(value)), + )?); + } + } + Ok(edits) +} + +fn format_new_object_literal(source: &str, entries: &[(String, String)]) -> anyhow::Result { + let indent = detect_indent_for_new_object(source); + let mut parts = Vec::new(); + for (key, value) in entries { + parts.push(format!( + "{}\"{}\": \"{}\"", + indent, + escape_json_string(key), + escape_json_string(value) + )); + } + if parts.is_empty() { + return Ok("{}".to_string()); + } + Ok(format!("{{\n{}\n}}", parts.join(",\n"))) +} + +fn insert_object_pair_edit( + source: &str, + object: Node<'_>, + key: &str, + value_literal: &str, +) -> anyhow::Result { + let (indent, multiline) = detect_object_indent(source, object)?; + let pairs = object_pair_nodes(object, source)?; + if pairs.is_empty() { + let insert_pos = object.end_byte() - 1; + let insertion = if multiline { + format!( + "\n{}\"{}\": {}", + indent, + escape_json_string(key), + value_literal + ) + } else { + format!(" \"{}\": {}", escape_json_string(key), value_literal) + }; + return Ok(TextEdit::new(insert_pos, insert_pos, insertion)); + } + + let last_pair_end = pairs.last().unwrap().1.end_byte(); + if let Some(comma_pos) = find_trailing_comma(source, last_pair_end, object.end_byte()) { + let insert_pos = comma_pos + 1; + let insertion = if multiline { + format!( + "\n{}\"{}\": {}", + indent, + escape_json_string(key), + value_literal + ) + } else { + format!(" \"{}\": {}", escape_json_string(key), value_literal) + }; + return Ok(TextEdit::new(insert_pos, insert_pos, insertion)); + } + + let insert_pos = last_pair_end; + let insertion = if multiline { + format!( + ",\n{}\"{}\": {}", + indent, + escape_json_string(key), + value_literal + ) + } else { + format!(", \"{}\": {}", escape_json_string(key), value_literal) + }; + Ok(TextEdit::new(insert_pos, insert_pos, insertion)) +} + +fn detect_object_indent(source: &str, object: Node<'_>) -> anyhow::Result<(String, bool)> { + let mut cursor = object.walk(); + let mut first_pair = None; + for child in object.named_children(&mut cursor) { + if child.kind() == "pair" { + first_pair = Some(child); + break; + } + } + if let Some(pair) = first_pair { + let line_start = line_start_at(source, pair.start_byte()); + let indent = source[line_start..pair.start_byte()].to_string(); + return Ok(( + indent, + source[object.start_byte()..object.end_byte()].contains('\n'), + )); + } + let line_start = line_start_at(source, object.start_byte()); + let base_indent = &source[line_start..object.start_byte()]; + Ok(( + format!("{} ", base_indent), + source[object.start_byte()..object.end_byte()].contains('\n'), + )) +} + +fn object_pair_nodes<'a>( + object: Node<'a>, + source: &str, +) -> anyhow::Result, Node<'a>)>> { + let mut cursor = object.walk(); + let mut pairs = Vec::new(); + for child in object.named_children(&mut cursor) { + if child.kind() != "pair" { + continue; + } + let key_node = child + .child_by_field_name("key") + .ok_or_else(|| anyhow!("Missing key in JSONC pair"))?; + let value_node = child + .child_by_field_name("value") + .ok_or_else(|| anyhow!("Missing value in JSONC pair"))?; + let key_text = source[key_node.start_byte()..key_node.end_byte()].trim(); + let key = unquote_json_string(key_text)?; + pairs.push((key, child, value_node)); + } + Ok(pairs) +} + +fn find_trailing_comma(source: &str, start: usize, end: usize) -> Option { + let bytes = source.as_bytes(); + let mut idx = start; + while idx < end { + let ch = bytes[idx] as char; + if ch.is_whitespace() { + idx += 1; + continue; + } + if ch == '/' && idx + 1 < end { + let next = bytes[idx + 1] as char; + if next == '/' { + idx += 2; + while idx < end && bytes[idx] as char != '\n' { + idx += 1; + } + continue; + } + if next == '*' { + idx += 2; + while idx + 1 < end { + let c = bytes[idx] as char; + let c_next = bytes[idx + 1] as char; + if c == '*' && c_next == '/' { + idx += 2; + break; + } + idx += 1; + } + continue; + } + } + if ch == ',' { + return Some(idx); + } + break; + } + None +} + +fn line_start_at(source: &str, pos: usize) -> usize { + source[..pos].rfind('\n').map(|idx| idx + 1).unwrap_or(0) +} + +fn detect_indent_for_new_object(source: &str) -> String { + let indent = source + .lines() + .find(|line| !line.trim().is_empty()) + .and_then(|line| line.find(|ch| ch != ' ').map(|idx| &line[..idx])) + .unwrap_or(" "); + indent.to_string() +} + +fn unquote_json_string(value: &str) -> anyhow::Result { + let trimmed = value.trim(); + if !trimmed.starts_with('"') || !trimmed.ends_with('"') { + return Err(anyhow!("Expected JSON string, got {}", value)); + } + let inner = &trimmed[1..trimmed.len() - 1]; + Ok(inner.replace("\\\"", "\"").replace("\\\\", "\\")) +} + +fn escape_json_string(value: &str) -> String { + value.replace('\\', "\\\\").replace('"', "\\\"") +} diff --git a/cli/golem-cli/src/app/edit/main_rs.rs b/cli/golem-cli/src/app/edit/main_rs.rs new file mode 100644 index 0000000000..ec550072e3 --- /dev/null +++ b/cli/golem-cli/src/app/edit/main_rs.rs @@ -0,0 +1,192 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use anyhow::anyhow; +use std::collections::BTreeSet; +use tree_sitter::{Parser, Tree}; + +pub fn add_import_and_export( + source: &str, + import_stmt: &str, + export_stmt: &str, +) -> anyhow::Result { + let tree = parse_rust(source)?; + let insert_at = last_use_end(source, &tree); + let mut output = + String::with_capacity(source.len() + import_stmt.len() + export_stmt.len() + 4); + output.push_str(&source[..insert_at]); + if !source[..insert_at].ends_with('\n') { + output.push('\n'); + } + output.push_str(import_stmt); + if !import_stmt.ends_with('\n') { + output.push('\n'); + } + output.push_str(export_stmt); + if !export_stmt.ends_with('\n') { + output.push('\n'); + } + output.push_str(&source[insert_at..]); + Ok(output) +} + +pub fn validate(source: &str) -> anyhow::Result<()> { + let _ = parse_rust(source)?; + Ok(()) +} + +pub fn merge_reexports(current: &str, update: &str) -> anyhow::Result { + let _ = parse_rust(current)?; + let _ = parse_rust(update)?; + + let mut known = collect_reexport_declarations(current) + .into_iter() + .map(|line| line.trim().to_string()) + .collect::>(); + + let mut has_additions = false; + for line in collect_reexport_declarations(update) { + let normalized = line.trim().to_string(); + if known.insert(normalized) { + has_additions = true; + } + } + + if !has_additions { + return Ok(current.to_string()); + } + + let merged_mods = merge_declaration_kind(current, update, is_mod_declaration); + let merged_pub_uses = merge_declaration_kind(current, update, is_pub_use_declaration); + + let mut declaration_block = Vec::new(); + declaration_block.extend(merged_mods); + if !declaration_block.is_empty() && !merged_pub_uses.is_empty() { + declaration_block.push(String::new()); + } + declaration_block.extend(merged_pub_uses); + + if declaration_block.is_empty() { + return Ok(current.to_string()); + } + + let mut output_lines = Vec::new(); + let mut inserted = false; + for line in current.lines() { + if is_reexport_declaration(line) { + if !inserted { + output_lines.extend(declaration_block.iter().cloned()); + inserted = true; + } + continue; + } + output_lines.push(line.to_string()); + } + + if !inserted { + output_lines.splice(0..0, declaration_block); + } + + let mut output = output_lines.join("\n"); + if current.ends_with('\n') { + output.push('\n'); + } + + Ok(output) +} + +fn merge_declaration_kind(current: &str, update: &str, predicate: fn(&str) -> bool) -> Vec { + let mut seen = BTreeSet::new(); + let mut merged = Vec::new(); + + for source in [current, update] { + for line in source.lines() { + let normalized = line.trim(); + if predicate(normalized) && seen.insert(normalized.to_string()) { + merged.push(normalized.to_string()); + } + } + } + + merged +} + +fn parse_rust(source: &str) -> anyhow::Result { + let mut parser = Parser::new(); + parser + .set_language(&tree_sitter_rust::LANGUAGE.into()) + .map_err(|_| anyhow!("Failed to load tree-sitter-rust"))?; + let tree = parser + .parse(source, None) + .ok_or_else(|| anyhow!("Failed to parse Rust"))?; + if tree.root_node().has_error() { + return Err(anyhow!("Invalid Rust")); + } + Ok(tree) +} + +fn last_use_end(source: &str, tree: &Tree) -> usize { + let root = tree.root_node(); + let mut cursor = root.walk(); + let mut last_end = None; + let mut stack = vec![root]; + while let Some(node) = stack.pop() { + if node.kind() == "use_declaration" { + let end = node.end_byte(); + if last_end.map(|value| end > value).unwrap_or(true) { + last_end = Some(end); + } + } + for child in node.named_children(&mut cursor) { + stack.push(child); + } + } + if let Some(end) = last_end { + return line_end_at(source, end); + } + 0 +} + +fn is_mod_declaration(line: &str) -> bool { + line.starts_with("mod ") && line.ends_with(';') +} + +fn is_pub_use_declaration(line: &str) -> bool { + line.starts_with("pub use ") && line.ends_with(';') +} + +fn is_reexport_declaration(line: &str) -> bool { + let line = line.trim(); + !line.starts_with("//") && (is_mod_declaration(line) || is_pub_use_declaration(line)) +} + +fn collect_reexport_declarations(source: &str) -> Vec { + source + .lines() + .map(str::trim) + .filter(|line| { + (line.starts_with("mod ") || line.starts_with("pub use ")) + && line.ends_with(';') + && !line.starts_with("//") + }) + .map(ToString::to_string) + .collect() +} + +fn line_end_at(source: &str, pos: usize) -> usize { + source[pos..] + .find('\n') + .map(|idx| pos + idx + 1) + .unwrap_or_else(|| source.len()) +} diff --git a/cli/golem-cli/src/app/edit/main_ts.rs b/cli/golem-cli/src/app/edit/main_ts.rs new file mode 100644 index 0000000000..643d7cae0b --- /dev/null +++ b/cli/golem-cli/src/app/edit/main_ts.rs @@ -0,0 +1,122 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use anyhow::anyhow; +use std::collections::BTreeSet; +use tree_sitter::{Parser, Tree}; + +pub fn add_reexport(source: &str, export_stmt: &str) -> anyhow::Result { + let tree = parse_ts(source)?; + let insert_at = last_export_end(source, &tree); + let mut output = String::with_capacity(source.len() + export_stmt.len() + 2); + output.push_str(&source[..insert_at]); + if !source[..insert_at].ends_with('\n') { + output.push('\n'); + } + output.push_str(export_stmt); + if !export_stmt.ends_with('\n') { + output.push('\n'); + } + output.push_str(&source[insert_at..]); + Ok(output) +} + +pub fn merge_reexports(current: &str, update: &str) -> anyhow::Result { + let current_exports = export_statements(current)?; + let update_exports = export_statements(update)?; + + let mut existing = BTreeSet::new(); + for export in current_exports { + existing.insert(export); + } + + let mut merged = current.to_string(); + for export in update_exports { + if export.is_empty() || existing.contains(&export) { + continue; + } + merged = add_reexport(&merged, &export)?; + existing.insert(export); + } + + Ok(merged) +} + +pub fn validate(source: &str) -> anyhow::Result<()> { + parse_ts(source).map(|_| ()) +} + +fn parse_ts(source: &str) -> anyhow::Result { + let mut parser = Parser::new(); + parser + .set_language(&tree_sitter_typescript::LANGUAGE_TYPESCRIPT.into()) + .map_err(|_| anyhow!("Failed to load tree-sitter-typescript"))?; + let tree = parser + .parse(source, None) + .ok_or_else(|| anyhow!("Failed to parse TypeScript"))?; + if tree.root_node().has_error() { + return Err(anyhow!("Invalid TypeScript")); + } + Ok(tree) +} + +fn export_statements(source: &str) -> anyhow::Result> { + let tree = parse_ts(source)?; + let root = tree.root_node(); + let mut cursor = root.walk(); + let mut stack = vec![root]; + let mut exports = Vec::new(); + while let Some(node) = stack.pop() { + if node.kind() == "export_statement" { + let text = source[node.start_byte()..node.end_byte()] + .trim() + .to_string(); + exports.push((node.start_byte(), text)); + } + for child in node.named_children(&mut cursor) { + stack.push(child); + } + } + exports.sort_by_key(|(start, _)| *start); + Ok(exports.into_iter().map(|(_, text)| text).collect()) +} + +fn last_export_end(source: &str, tree: &Tree) -> usize { + let root = tree.root_node(); + let mut cursor = root.walk(); + let mut last_end = None; + let mut stack = vec![root]; + while let Some(node) = stack.pop() { + if node.kind() == "export_statement" { + let end = node.end_byte(); + if last_end.map(|value| end > value).unwrap_or(true) { + last_end = Some(end); + } + } + for child in node.named_children(&mut cursor) { + stack.push(child); + } + } + if let Some(end) = last_end { + return line_end_at(source, end); + } + source.len() +} + +fn line_end_at(source: &str, pos: usize) -> usize { + source[pos..] + .find('\n') + .map(|idx| pos + idx + 1) + .unwrap_or_else(|| source.len()) +} diff --git a/cli/golem-cli/src/app/edit/mod.rs b/cli/golem-cli/src/app/edit/mod.rs new file mode 100644 index 0000000000..d4b6505321 --- /dev/null +++ b/cli/golem-cli/src/app/edit/mod.rs @@ -0,0 +1,27 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pub mod agents_md; +pub mod cargo_toml; +pub mod gitignore; +pub mod golem_yaml; +pub mod json; +pub mod main_rs; +pub mod main_ts; +pub mod package_json; +pub mod text; +pub mod tsconfig_json; + +#[cfg(test)] +mod tests; diff --git a/cli/golem-cli/src/app/edit/package_json.rs b/cli/golem-cli/src/app/edit/package_json.rs new file mode 100644 index 0000000000..398b7d1694 --- /dev/null +++ b/cli/golem-cli/src/app/edit/package_json.rs @@ -0,0 +1,45 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::app::edit::json::{collect_object_entries, update_object_entries}; +use std::collections::BTreeMap; + +pub fn merge_dependencies( + source: &str, + dependencies: &[(String, String)], + dev_dependencies: &[(String, String)], +) -> anyhow::Result { + let mut output = source.to_string(); + if !dependencies.is_empty() { + output = update_object_entries(&output, "dependencies", dependencies)?; + } + if !dev_dependencies.is_empty() { + output = update_object_entries(&output, "devDependencies", dev_dependencies)?; + } + Ok(output) +} + +pub fn collect_versions( + source: &str, + names: &[&str], +) -> anyhow::Result>> { + let mut collected = collect_object_entries(source, "dependencies", names)?; + let dev = collect_object_entries(source, "devDependencies", names)?; + for (name, version) in dev { + if version.is_some() { + collected.insert(name, version); + } + } + Ok(collected) +} diff --git a/cli/golem-cli/src/app/edit/tests.rs b/cli/golem-cli/src/app/edit/tests.rs new file mode 100644 index 0000000000..265974b3cd --- /dev/null +++ b/cli/golem-cli/src/app/edit/tests.rs @@ -0,0 +1,1841 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::app::edit::{ + agents_md, cargo_toml, gitignore, golem_yaml, json, main_rs, main_ts, package_json, + tsconfig_json, +}; +use crate::model::GuestLanguage; +use proptest::prelude::*; +use serde::Serialize; +use serde_json::{Map as JsonMap, Value as JsonValue}; +use std::collections::BTreeSet; +use test_r::test; + +#[test] +fn package_json_merge_and_collect() { + let source = r#"{ + "name": "demo", + "dependencies": { + "foo": "1.0.0" + }, + "devDependencies": { + "bar": "2.0.0" + } +}"#; + + let updated = package_json::merge_dependencies( + source, + &[ + ("foo".to_string(), "1.2.0".to_string()), + ("baz".to_string(), "3.0.0".to_string()), + ], + &[("qux".to_string(), "4.0.0".to_string())], + ) + .unwrap(); + + let expected = r#"{ + "name": "demo", + "dependencies": { + "foo": "1.2.0", + "baz": "3.0.0" + }, + "devDependencies": { + "bar": "2.0.0", + "qux": "4.0.0" + } +}"#; + + assert_eq!(updated, expected); + + let collected = package_json::collect_versions(&updated, &["foo", "bar", "baz"]).unwrap(); + assert_eq!(collected.get("foo").unwrap().as_deref(), Some("\"1.2.0\"")); + assert_eq!(collected.get("bar").unwrap().as_deref(), Some("\"2.0.0\"")); + assert_eq!(collected.get("baz").unwrap().as_deref(), Some("\"3.0.0\"")); +} + +#[test] +fn tsconfig_merge_and_check() { + let base = r#"{ + "compilerOptions": { + "target": "ES2020", + "module": "CommonJS" + } +}"#; + let update = r#"{ + "compilerOptions": { + "module": "ESNext", + "strict": true + }, + "exclude": ["dist"] +}"#; + + let merged = tsconfig_json::merge_with_newer(base, update).unwrap(); + let expected = r#"{ + "compilerOptions": { + "target": "ES2020", + "module": "ESNext", + "strict": true + }, + "exclude": ["dist"] +}"#; + assert_eq!(merged, expected); + + let missing = tsconfig_json::check_required_settings( + &merged, + &[ + tsconfig_json::RequiredSetting { + path: vec!["compilerOptions".to_string(), "module".to_string()], + expected_literal: Some("\"ESNext\"".to_string()), + }, + tsconfig_json::RequiredSetting { + path: vec!["compilerOptions".to_string(), "jsx".to_string()], + expected_literal: None, + }, + ], + ) + .unwrap(); + assert_eq!(missing.len(), 1); + assert_eq!( + missing[0].path, + vec!["compilerOptions".to_string(), "jsx".to_string()] + ); +} + +#[test] +fn cargo_toml_merge_and_check() { + let source = r#"[package] +name = "demo" + +[dependencies] +serde = "1.0" +foo = { version = "1.0", features = ["a"] } +workspace_dep = { workspace = true } + +[workspace.dependencies] +workspace_shared = "2.0" +"#; + + let updated = cargo_toml::merge_dependencies( + source, + &[ + ("serde".to_string(), "1.0.200".to_string()), + ("foo".to_string(), "1.2+bar,baz".to_string()), + ("workspace_dep".to_string(), "3.0".to_string()), + ("new_with_features".to_string(), "0.3+feat1".to_string()), + ("skip_me".to_string(), "workspace".to_string()), + ], + &[("anyhow".to_string(), "1.0".to_string())], + ) + .unwrap(); + + assert!(updated.contains("serde = \"1.0.200\"")); + assert!(updated.contains("[dev-dependencies]")); + assert!(updated.contains("anyhow = \"1.0\"")); + + let doc: toml_edit::DocumentMut = updated.parse().unwrap(); + let deps = doc + .get("dependencies") + .and_then(|item| item.as_table()) + .unwrap(); + let foo_item = deps.get("foo").unwrap(); + let foo = table_like(foo_item); + let features = foo + .get("features") + .and_then(|item| item.as_array()) + .unwrap() + .iter() + .filter_map(|value| value.as_str()) + .collect::>(); + assert_eq!( + foo.get("version").and_then(|item| item.as_str()), + Some("1.2") + ); + assert_eq!(features, vec!["a", "bar", "baz"]); + let new_with_features_item = deps.get("new_with_features").unwrap(); + let new_with_features = table_like(new_with_features_item); + assert_eq!( + new_with_features + .get("version") + .and_then(|item| item.as_str()), + Some("0.3") + ); + let new_features = new_with_features + .get("features") + .and_then(|item| item.as_array()) + .unwrap() + .iter() + .filter_map(|value| value.as_str()) + .collect::>(); + assert_eq!(new_features, vec!["feat1"]); + assert!(deps + .get("workspace_dep") + .map(table_like) + .and_then(|table| table.get("workspace")) + .and_then(|item| item.as_bool()) + .unwrap_or(false)); + assert!(deps.get("skip_me").is_none()); + + let missing = + cargo_toml::check_required_deps(&updated, &["serde", "tokio", "workspace_shared"]).unwrap(); + assert_eq!(missing, vec!["tokio".to_string()]); +} + +fn table_like(item: &toml_edit::Item) -> &dyn toml_edit::TableLike { + if let Some(table) = item.as_table() { + return table; + } + if let Some(table) = item.as_inline_table() { + return table; + } + panic!("Expected table-like item"); +} + +#[test] +fn golem_yaml_split_and_edit() { + let source = r#"app: + name: demo +components: + alpha: + image: alpha + beta: + image: beta +other: 1 +"#; + + let docs = + golem_yaml::split_documents(source, &["app", "components"], &["components"]).unwrap(); + assert_eq!(docs.len(), 4); + assert!(docs[0].contains("app:")); + assert!(docs[1].contains("components:")); + assert!(docs[1].contains("alpha:")); + assert!(docs[2].contains("beta:")); + assert!(docs[3].contains("other: 1")); + + let updated = golem_yaml::add_map_entry(source, &["app"], "version", "1").unwrap(); + assert!(updated.contains("version: 1")); + + let updated = golem_yaml::remove_map_entry(&updated, &["components"], "beta").unwrap(); + assert!(!updated.contains("beta:")); + + let updated = golem_yaml::set_scalar(&updated, &["other"], "2").unwrap(); + assert!(updated.contains("other: 2")); +} + +#[test] +fn main_ts_reexport() { + let source = r#"export { a } from "./a"; +export { b } from "./b"; +"#; + let updated = main_ts::add_reexport(source, r#"export { c } from "./c";"#).unwrap(); + assert!(updated.contains(r#"export { c } from "./c";"#)); +} + +#[test] +fn main_ts_merge_reexports_adds_new() { + let current = r#"export { a } from "./a"; +export { b } from "./b"; +"#; + let update = r#"export { b } from "./b"; +export { c } from "./c"; +"#; + let merged = main_ts::merge_reexports(current, update).unwrap(); + let expected = r#"export { a } from "./a"; +export { b } from "./b"; +export { c } from "./c"; +"#; + assert_eq!(merged, expected); +} + +#[test] +fn main_ts_merge_reexports_skips_existing() { + let current = r#"export { a } from "./a"; +export { b } from "./b"; +"#; + let update = r#"export { a } from "./a"; +export { b } from "./b"; +"#; + let merged = main_ts::merge_reexports(current, update).unwrap(); + assert_eq!(merged, current); +} + +#[test] +fn main_rs_import_export() { + let source = r#"use std::fmt; + +fn main() {} +"#; + let updated = + main_rs::add_import_and_export(source, "use crate::foo::Bar;", "pub use crate::foo::Baz;") + .unwrap(); + assert!(updated.contains("use crate::foo::Bar;")); + assert!(updated.contains("pub use crate::foo::Baz;")); +} + +#[test] +fn main_rs_merge_reexports_adds_new() { + let current = r#"mod counter_agent; +pub use counter_agent::*; +"#; + let update = r#"mod human_agent; +pub use human_agent::*; +"#; + + let merged = main_rs::merge_reexports(current, update).unwrap(); + let expected = r#"mod counter_agent; +mod human_agent; + +pub use counter_agent::*; +pub use human_agent::*; +"#; + assert_eq!(merged, expected); +} + +#[test] +fn main_rs_merge_reexports_groups_mixed_declarations() { + let current = r#"pub use counter_agent::*; +mod counter_agent; +"#; + let update = r#"mod human_agent; +pub use human_agent::*; +"#; + + let merged = main_rs::merge_reexports(current, update).unwrap(); + let expected = r#"mod counter_agent; +mod human_agent; + +pub use counter_agent::*; +pub use human_agent::*; +"#; + assert_eq!(merged, expected); +} + +#[test] +fn main_rs_merge_reexports_skips_existing() { + let current = r#"mod counter_agent; +pub use counter_agent::*; +"#; + let update = r#"mod counter_agent; +pub use counter_agent::*; +"#; + + let merged = main_rs::merge_reexports(current, update).unwrap(); + assert_eq!(merged, current); +} + +#[test] +fn main_ts_preserves_formatting() { + let source = "export {a} from \"./a\";\n\nexport{b}from \"./b\";\n"; + let updated = main_ts::add_reexport(source, "export { c } from \"./c\";").unwrap(); + let expected = + "export {a} from \"./a\";\n\nexport{b}from \"./b\";\nexport { c } from \"./c\";\n"; + assert_eq!(updated, expected); +} + +#[test] +fn main_rs_preserves_formatting() { + let source = "use std::fmt;\n\nuse crate::old::Thing;\n\nfn main() {}\n"; + let updated = + main_rs::add_import_and_export(source, "use crate::foo::Bar;", "pub use crate::foo::Baz;") + .unwrap(); + let expected = "use std::fmt;\n\nuse crate::old::Thing;\nuse crate::foo::Bar;\npub use crate::foo::Baz;\n\nfn main() {}\n"; + assert_eq!(updated, expected); +} + +#[test] +fn package_json_preserves_formatting() { + let source = r#"{ "name" : "demo", + + "dependencies" : { "foo" : "1.0.0" }, + "devDependencies" :{ "bar" :"2.0.0"} +}"#; + + let updated = package_json::merge_dependencies( + source, + &[("foo".to_string(), "1.2.0".to_string())], + &[("bar".to_string(), "2.1.0".to_string())], + ) + .unwrap(); + + let expected = r#"{ "name" : "demo", + + "dependencies" : { "foo" : "1.2.0" }, + "devDependencies" :{ "bar" :"2.1.0"} +}"#; + + assert_eq!(updated, expected); +} + +#[test] +fn tsconfig_preserves_formatting() { + let source = r#"{ "compilerOptions" : { "target" : "ES2020" , "module" : "CommonJS" } } +"#; + let update = r#"{ "compilerOptions" : { "module" : "ESNext" } }"#; + + let updated = tsconfig_json::merge_with_newer(source, update).unwrap(); + let expected = r#"{ "compilerOptions" : { "target" : "ES2020" , "module" : "ESNext" } } +"#; + assert_eq!(updated, expected); +} + +#[test] +fn cargo_toml_preserves_untouched_formatting() { + let source = r#"[package] +name = "demo" + +[dependencies] +serde = "1.0" +untouched = "0.1" + +foo={version="1.0", features=["a"]} +"#; + let updated = cargo_toml::merge_dependencies( + source, + &[ + ("serde".to_string(), "1.1.0".to_string()), + ("foo".to_string(), "1.2+bar".to_string()), + ], + &[], + ) + .unwrap(); + + assert!(updated.contains("untouched = \"0.1\"")); + assert!(updated.contains("serde = \"1.1.0\"")); +} + +#[test] +fn cargo_toml_merge_documents_merges_dependency_features() { + let base = r#"[package] +name = "demo" + +[dependencies] +golem-rust = { version = "1.2.3", features = ["export_golem_agentic"] } +serde = { version = "1", features = ["derive"] } +"#; + + let update = r#"[dependencies] +golem-rust = { features = ["chrono"] } +chrono = "0.4.42" +"#; + + let merged = cargo_toml::merge_documents(base, update).unwrap(); + let doc: toml_edit::DocumentMut = merged.parse().unwrap(); + + let deps = doc + .get("dependencies") + .and_then(|item| item.as_table()) + .unwrap(); + + let golem_rust_item = deps.get("golem-rust").unwrap(); + let golem_rust = table_like(golem_rust_item); + + assert_eq!( + golem_rust.get("version").and_then(|item| item.as_str()), + Some("1.2.3") + ); + + let features = golem_rust + .get("features") + .and_then(|item| item.as_array()) + .unwrap() + .iter() + .filter_map(|value| value.as_str()) + .collect::>(); + assert_eq!(features, vec!["export_golem_agentic", "chrono"]); + + assert_eq!( + deps.get("chrono").and_then(|item| item.as_str()), + Some("0.4.42") + ); +} + +#[test] +fn cargo_toml_merge_documents_keeps_base_sections() { + let base = r#"[package] +name = "component_name" +version = "0.0.1" + +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" +"#; + + let update = r#"[dependencies] +uuid = { version = "1.15.1", features = ["v4"] } +"#; + + let merged = cargo_toml::merge_documents(base, update).unwrap(); + let doc: toml_edit::DocumentMut = merged.parse().unwrap(); + + assert_eq!( + doc.get("package") + .and_then(|item| item.get("name")) + .and_then(|item| item.as_str()), + Some("component_name") + ); + assert_eq!( + doc.get("lib") + .and_then(|item| item.get("path")) + .and_then(|item| item.as_str()), + Some("src/lib.rs") + ); + assert!(doc + .get("dependencies") + .and_then(|item| item.get("uuid")) + .is_some()); +} + +#[test] +fn golem_yaml_preserves_formatting() { + let source = "app :\n name :demo\n\nother : 1\n"; + let updated = golem_yaml::set_scalar(source, &["other"], "2").unwrap(); + let expected = "app :\n name :demo\n\nother : 2\n"; + assert_eq!(updated, expected); +} + +#[test] +fn golem_yaml_merge_documents() { + let base = r#"app: + name: demo + tags: + - a + - b +components: + alpha: + image: alpha + beta: + image: beta +"#; + let update = r#"app: + name: demo2 + tags: + - b + - c +components: + beta: + image: beta2 + gamma: + image: gamma +other: 1 +"#; + + let merged = golem_yaml::merge_documents(base, update).unwrap(); + let merged_value: serde_yaml::Value = serde_yaml::from_str(&merged).unwrap(); + let app = merged_value + .get("app") + .and_then(|value| value.as_mapping()) + .unwrap(); + let name = app + .get(serde_yaml::Value::String("name".to_string())) + .and_then(|value| value.as_str()) + .unwrap(); + assert_eq!(name, "demo2"); + let tags = app + .get(serde_yaml::Value::String("tags".to_string())) + .and_then(|value| value.as_sequence()) + .unwrap(); + let tags = tags + .iter() + .filter_map(|value| value.as_str()) + .collect::>(); + assert_eq!(tags, vec!["a", "b", "c"]); + + let components = merged_value + .get("components") + .and_then(|value| value.as_mapping()) + .unwrap(); + let beta = components + .get(serde_yaml::Value::String("beta".to_string())) + .and_then(|value| value.as_mapping()) + .unwrap(); + let beta_image = beta + .get(serde_yaml::Value::String("image".to_string())) + .and_then(|value| value.as_str()) + .unwrap(); + assert_eq!(beta_image, "beta2"); + + assert!(components.contains_key(serde_yaml::Value::String("alpha".to_string()))); + assert!(components.contains_key(serde_yaml::Value::String("gamma".to_string()))); + assert!(merged_value.get("other").is_some()); +} + +#[test] +fn golem_yaml_merge_keeps_schema_and_app_sections() { + let base = r#"# Schema for IDEA: +# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json +# Schema for vscode-yaml: +# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json + +# Field reference: https://learn.golem.cloud/app-manifest#field-reference +# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis + +app: test-app + +environments: + local: + server: local + componentPresets: debug + cloud: + server: cloud + componentPresets: release +components: + test-app:ts-main: + templates: ts + + # Component environment variables can reference system environment variables with minijinja syntax: + # + # env: + # ENV_VAR_1: "{{ ENV_VAR_1 }}" + # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" + # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" + # + env: +httpApi: + deployments: + local: + - domain: test-app.localhost:9006 + agents: + counter-agent: {} + +"#; + + let update = r#"# Schema for IDEA: +# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json +# Schema for vscode-yaml: +# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json + +# Field reference: https://learn.golem.cloud/app-manifest#field-reference +# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis + +components: + test-app:ts-main: + templates: ts + + # Component environment variables can reference system environment variables with minijinja syntax: + # + # env: + # ENV_VAR_1: "{{ ENV_VAR_1 }}" + # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" + # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" + # + env: +"#; + + let merged = golem_yaml::merge_documents(base, update).unwrap(); + assert!(merged.contains("app: test-app")); + assert!(merged.contains("environments:")); + assert!(merged.contains("httpApi:")); + assert!(merged.contains("components:")); +} + +#[test] +fn golem_yaml_merge_agents_map_has_no_extra_blank_lines() { + let base = r#"httpApi: + deployments: + local: + - domain: test-app.localhost:9006 + agents: + CounterAgent: {} +"#; + + let update = r#"httpApi: + deployments: + local: + - agents: + WorkflowAgent: {} + HumanAgent: {} +"#; + + let merged = golem_yaml::merge_documents(base, update).unwrap(); + + assert!(merged.contains("WorkflowAgent: {}")); + assert!(merged.contains("HumanAgent: {}")); + assert!(!merged.contains("WorkflowAgent: {}\n\n HumanAgent: {}")); +} + +#[test] +fn golem_yaml_merge_normalizes_trailing_empty_lines() { + let base = "a: 1\n"; + let update = "b: 2\n\n\n"; + + let merged = golem_yaml::merge_documents(base, update).unwrap(); + + assert!(merged.ends_with('\n')); + assert!(!merged.ends_with("\n\n")); +} + +#[test] +fn golem_yaml_merge_replaces_empty_env_with_mapping() { + let base = r#"app: env-var-substitution + +components: + env-var-substitution:ts-main: + templates: ts + env: +httpApi: + deployments: + local: + - domain: env-var-substitution.localhost:9006 + agents: + CounterAgent: {} +"#; + + let update = r#"components: + env-var-substitution:ts-main: + env: + NORMAL: 'REALLY' + VERY_CUSTOM_ENV_VAR_SECRET_1: '{{ VERY_CUSTOM_ENV_VAR_SECRET_1 }}' + VERY_CUSTOM_ENV_VAR_SECRET_2: '{{ VERY_CUSTOM_ENV_VAR_SECRET_3 }}' + COMPOSED: '{{ VERY_CUSTOM_ENV_VAR_SECRET_1 }}-{{ VERY_CUSTOM_ENV_VAR_SECRET_3 }}' +"#; + + let merged = golem_yaml::merge_documents(base, update).unwrap(); + + let merged_value: serde_yaml::Value = + serde_yaml::from_str(&merged).unwrap_or_else(|err| panic!("{err}\nMerged:\n{merged}")); + let env = merged_value + .get("components") + .and_then(|value| value.get("env-var-substitution:ts-main")) + .and_then(|value| value.get("env")) + .and_then(|value| value.as_mapping()) + .unwrap(); + + assert_eq!( + env.get(serde_yaml::Value::String("NORMAL".to_string())) + .and_then(|value| value.as_str()), + Some("REALLY") + ); + assert_eq!( + env.get(serde_yaml::Value::String("COMPOSED".to_string())) + .and_then(|value| value.as_str()), + Some("{{ VERY_CUSTOM_ENV_VAR_SECRET_1 }}-{{ VERY_CUSTOM_ENV_VAR_SECRET_3 }}") + ); + assert!(merged.contains("httpApi:")); +} + +#[test] +fn golem_yaml_merge_preserves_base_comments_and_handles_update_comments() { + let base = r#"# top comment +app: + # app name comment + name: demo +components: + alpha: + # keep this comment + image: alpha +"#; + + let update = r#"# update comment should not break parsing +app: + name: demo-updated +components: + alpha: + # update side comment + image: alpha-updated + beta: + image: beta +"#; + + let merged = golem_yaml::merge_documents(base, update).unwrap(); + + let merged_value: serde_yaml::Value = serde_yaml::from_str(&merged).unwrap(); + assert_eq!( + merged_value + .get("app") + .and_then(|value| value.get("name")) + .and_then(|value| value.as_str()), + Some("demo-updated") + ); + assert_eq!( + merged_value + .get("components") + .and_then(|value| value.get("alpha")) + .and_then(|value| value.get("image")) + .and_then(|value| value.as_str()), + Some("alpha-updated") + ); + assert_eq!( + merged_value + .get("components") + .and_then(|value| value.get("beta")) + .and_then(|value| value.get("image")) + .and_then(|value| value.as_str()), + Some("beta") + ); + + assert!(merged.contains("# top comment")); + assert!(merged.contains("# app name comment")); + assert!(merged.contains("# keep this comment")); +} + +#[test] +fn agents_md_merge_guides_preserves_user_content() { + let rust_guide = make_managed_guide(GuestLanguage::Rust, "# Rust guide\nRust body"); + let ts_guide = make_managed_guide(GuestLanguage::TypeScript, "# TS guide\nTS body"); + + let current = format!("# My Notes\nPlease keep this\n\n{}", rust_guide); + + let merged = agents_md::merge_guides(¤t, &ts_guide).unwrap(); + + assert!(merged.contains("# My Notes")); + assert!(merged.contains("Please keep this")); + assert!(merged.contains("")); + assert!(merged.contains("")); + assert!(merged.contains("Rust body")); + assert!(merged.contains("TS body")); +} + +#[test] +fn agents_md_merge_guides_updates_same_language_section() { + let rust_guide_v1 = make_managed_guide(GuestLanguage::Rust, "# Rust guide\nV1"); + let rust_guide_v2 = make_managed_guide(GuestLanguage::Rust, "# Rust guide\nV2"); + + let current = rust_guide_v1; + + let merged = agents_md::merge_guides(¤t, &rust_guide_v2).unwrap(); + + assert!(merged.contains("V2")); + assert!(!merged.contains("V1")); + assert_eq!( + merged + .matches("") + .count(), + 1 + ); +} + +#[test] +fn agents_md_merge_guides_handles_source_order_not_key_order() { + let ts_guide_v1 = make_managed_guide(GuestLanguage::TypeScript, "# TS guide\nV1"); + let rust_guide_v1 = make_managed_guide(GuestLanguage::Rust, "# Rust guide\nV1"); + let rust_guide_v2 = make_managed_guide(GuestLanguage::Rust, "# Rust guide\nV2"); + + let current = format!("{}\n{}", ts_guide_v1, rust_guide_v1); + let merged = agents_md::merge_guides(¤t, &rust_guide_v2).unwrap(); + + let ts_idx = merged + .find("") + .unwrap(); + let rust_idx = merged + .find("") + .unwrap(); + + assert!(ts_idx < rust_idx); + assert!(merged.contains("# TS guide\nV1")); + assert!(merged.contains("# Rust guide\nV2")); + assert!(!merged.contains("# Rust guide\nV1")); +} + +#[test] +fn package_json_rejects_json_comments() { + let source = r#"{ + // comment + "dependencies": { + "foo": "1.0.0" + } +}"#; + + let result = + package_json::merge_dependencies(source, &[("foo".to_string(), "1.2.0".to_string())], &[]); + + assert!(result.is_err()); +} + +#[test] +fn tsconfig_rejects_json_comments() { + let base = r#"{ + "compilerOptions": { + "target": "ES2020" + } +}"#; + let update = r#"{ + /* comment */ + "compilerOptions": { + "module": "ESNext" + } +}"#; + + let result = tsconfig_json::merge_with_newer(base, update); + assert!(result.is_err()); +} + +#[test] +fn gitignore_merge_keeps_conflicting_rules_ordered() { + let source = "target/\n!target/\n"; + let additional = "!target/\ntarget/\n"; + + let merged = gitignore::merge(source, additional); + let expected = "target/\n!target/"; + assert_eq!(merged, expected); +} + +#[test] +fn gitignore_merge_sorts_and_dedups_non_conflicting_rules() { + let source = "b/\na/\na/\n"; + let additional = "c/\nb/\n"; + + let merged = gitignore::merge(source, additional); + let expected = "a/\nb/\nc/"; + assert_eq!(merged, expected); +} + +#[test] +fn gitignore_merge_keeps_comments_in_ordered_bucket() { + let source = "# keep me\nfoo/\n"; + let additional = "bar/\n"; + + let merged = gitignore::merge(source, additional); + let expected = "# keep me\nbar/\nfoo/"; + assert_eq!(merged, expected); +} + +#[test] +fn package_json_merge_handles_missing_sections_and_escaped_versions() { + let source = r#"{ + "name": "demo" +}"#; + + let merged = package_json::merge_dependencies( + source, + &[ + ("dep".to_string(), "1.2.3".to_string()), + ( + "quoted".to_string(), + "git+ssh://host/repo\\\"branch\"".to_string(), + ), + ], + &[("dev".to_string(), "line1\\nline2".to_string())], + ) + .unwrap(); + + let json: serde_json::Value = serde_json::from_str(&merged).unwrap(); + assert_eq!( + json["dependencies"]["dep"], + serde_json::Value::String("1.2.3".to_string()) + ); + assert_eq!( + json["dependencies"]["quoted"], + serde_json::Value::String("git+ssh://host/repo\\\"branch\"".to_string()) + ); + assert_eq!( + json["devDependencies"]["dev"], + serde_json::Value::String("line1\\nline2".to_string()) + ); +} + +#[test] +fn json_merge_handles_escaped_keys_and_multiline_values() { + let base = r#"{ + "shared": { + "quote\"key": "line1\\nline2", + "keep": true + } +}"#; + let update = r#"{ + "shared": { + "quote\"key": "updated\\nvalue" + }, + "added": 1 +}"#; + + let merged_source = json::merge_object(base, update).unwrap(); + let merged: serde_json::Value = serde_json::from_str(&merged_source).unwrap(); + + assert_eq!( + merged["shared"]["quote\"key"], + serde_json::Value::String("updated\\nvalue".to_string()) + ); + assert_eq!(merged["shared"]["keep"], serde_json::Value::Bool(true)); + assert_eq!(merged["added"], serde_json::Value::Number(1.into())); +} + +#[test] +fn golem_yaml_merge_handles_literal_and_folded_multiline_scalars() { + let base = r#"notes: | + line1 + line2 +shared: + keep: base +"#; + let update = r#"notes: > + updated + lines +shared: + override: update +"#; + + let merged_source = golem_yaml::merge_documents(base, update).unwrap(); + let merged: serde_yaml::Value = serde_yaml::from_str(&merged_source).unwrap(); + + assert_eq!( + merged.get("notes").and_then(|value| value.as_str()), + Some("updated lines\n") + ); + let shared = merged + .get("shared") + .and_then(|value| value.as_mapping()) + .unwrap(); + assert_eq!( + shared + .get(serde_yaml::Value::String("keep".to_string())) + .and_then(|value| value.as_str()), + Some("base") + ); + assert_eq!( + shared + .get(serde_yaml::Value::String("override".to_string())) + .and_then(|value| value.as_str()), + Some("update") + ); +} + +proptest! { + #![proptest_config(ProptestConfig { + cases: 128, .. ProptestConfig::default() + })] + + #[test] + fn proptest_json_merge_prefers_update_and_handles_escaping( + (base_value, update_value, base_style, update_style) in arb_json_merge_case(), + ) { + let base = render_json(&base_value, base_style); + let update = render_json(&update_value, update_style); + + let merged_source = json::merge_object(&base, &update).unwrap(); + let merged: JsonValue = serde_json::from_str(&merged_source).unwrap(); + let expected = merge_json_values(base_value.clone(), update_value.clone()); + + prop_assert_eq!(merged.clone(), expected); + + let merged_twice = json::merge_object(&merged_source, &update).unwrap(); + let merged_twice_value: JsonValue = serde_json::from_str(&merged_twice).unwrap(); + prop_assert_eq!(merged_twice_value, merged); + } + + #[test] + fn proptest_json_merge_preserves_base_when_update_key_missing( + base_scalar in arb_json_leaf(), + update_scalar in arb_json_leaf(), + include_override_in_update in any::(), + ) { + let base = serde_json::json!({ + "shared": { + "override": base_scalar.clone(), + "keep": "base" + }, + "baseOnly": 1 + }); + let update = if include_override_in_update { + serde_json::json!({ + "shared": { + "override": update_scalar.clone() + }, + "updateOnly": true + }) + } else { + serde_json::json!({ + "shared": { + "new": "x" + }, + "updateOnly": true + }) + }; + + let merged_source = json::merge_object( + &serde_json::to_string_pretty(&base).unwrap(), + &serde_json::to_string_pretty(&update).unwrap(), + ) + .unwrap(); + let merged: serde_json::Value = serde_json::from_str(&merged_source).unwrap(); + + if include_override_in_update { + prop_assert_eq!(merged["shared"]["override"].clone(), update_scalar); + } else { + prop_assert_eq!(merged["shared"]["override"].clone(), base_scalar); + prop_assert_eq!( + merged["shared"]["new"].clone(), + serde_json::Value::String("x".to_string()) + ); + } + prop_assert_eq!( + merged["shared"]["keep"].clone(), + serde_json::Value::String("base".to_string()) + ); + prop_assert_eq!(merged["baseOnly"].clone(), serde_json::Value::Number(1.into())); + } + + #[test] + fn proptest_json_roundtrip_style_stability( + (base_value, update_value, base_style, update_style) in arb_json_merge_case(), + reparsed_style in arb_json_style(), + ) { + let base = render_json(&base_value, base_style); + let update = render_json(&update_value, update_style); + + let merged_once = json::merge_object(&base, &update).unwrap(); + let merged_once_value: JsonValue = serde_json::from_str(&merged_once).unwrap(); + + let reparsed_source = render_json(&merged_once_value, reparsed_style); + let merged_twice = json::merge_object(&reparsed_source, &update).unwrap(); + let merged_twice_value: JsonValue = serde_json::from_str(&merged_twice).unwrap(); + + prop_assert_eq!(merged_twice_value, merged_once_value); + } + + #[test] + fn proptest_yaml_merge_handles_missing_keys_multiline_and_sequences( + case in arb_yaml_merge_case(), + ) { + let (base_source, update_source, expected_override, expected_multiline, expected_list_union, expected_new_key_present) = case; + let merged_source = golem_yaml::merge_documents(&base_source, &update_source).unwrap(); + + let merged: serde_yaml::Value = serde_yaml::from_str(&merged_source).unwrap(); + + let shared = merged.get("shared").and_then(|value| value.as_mapping()).unwrap(); + let override_value = shared + .get(serde_yaml::Value::String("override".to_string())) + .and_then(|value| value.as_str()) + .unwrap(); + prop_assert_eq!(override_value, expected_override); + + let notes = merged.get("notes").and_then(|value| value.as_str()).unwrap(); + prop_assert_eq!(notes, expected_multiline); + + let merged_items = merged + .get("items") + .and_then(|value| value.as_sequence()) + .unwrap() + .iter() + .map(yaml_scalar_to_string) + .collect::>>() + .unwrap(); + prop_assert_eq!(merged_items, expected_list_union); + + let has_new_key = merged.get("newKey").is_some(); + prop_assert_eq!(has_new_key, expected_new_key_present); + + prop_assert!(merged_source.ends_with('\n')); + prop_assert!(!merged_source.ends_with("\n\n")); + } + + #[test] + fn proptest_yaml_merge_preserves_base_comments( + (top_comment, nested_comment, base_name, update_name, add_new_key) in arb_yaml_comment_merge_case(), + ) { + let base = format!( + "# {top_comment}\napp:\n # {nested_comment}\n name: {base_name}\n" + ); + let update = if add_new_key { + format!( + "# update comment\napp:\n name: {update_name}\nextra: added\n" + ) + } else { + format!("# update comment\napp:\n name: {update_name}\n") + }; + + let merged_source = golem_yaml::merge_documents(&base, &update).unwrap(); + let merged: serde_yaml::Value = serde_yaml::from_str(&merged_source).unwrap(); + let top_comment_line = format!("# {}", top_comment); + let nested_comment_line = format!("# {}", nested_comment); + + prop_assert!(merged_source.contains(&top_comment_line)); + prop_assert!(merged_source.contains(&nested_comment_line)); + prop_assert_eq!( + merged + .get("app") + .and_then(|value| value.get("name")) + .and_then(|value| value.as_str()), + Some(update_name.as_str()) + ); + + if add_new_key { + prop_assert_eq!( + merged.get("extra").and_then(|value| value.as_str()), + Some("added") + ); + } + } + + #[test] + fn proptest_yaml_roundtrip_style_stability( + case in arb_yaml_merge_case(), + rescale in prop_oneof![Just(1usize), Just(2usize)], + ) { + let (base_source, update_source, _, _, _, _) = case; + + let merged_once = golem_yaml::merge_documents(&base_source, &update_source).unwrap(); + let merged_once_value: serde_yaml::Value = serde_yaml::from_str(&merged_once).unwrap(); + + let reparsed = serde_yaml::to_string(&merged_once_value).unwrap(); + let reparsed_scaled = scale_yaml_indentation(&reparsed, rescale); + + let merged_twice = golem_yaml::merge_documents(&reparsed_scaled, &update_source).unwrap(); + let merged_twice_value: serde_yaml::Value = serde_yaml::from_str(&merged_twice).unwrap(); + + prop_assert_eq!(merged_twice_value, merged_once_value); + } + + #[test] + fn proptest_cargo_toml_merge_merges_features_and_preserves_package( + case in arb_cargo_merge_case(), + ) { + let (base_source, update_source, shared_dep_name, expected_features, expected_version) = case; + let merged_source = cargo_toml::merge_documents(&base_source, &update_source).unwrap(); + let merged_doc: toml_edit::DocumentMut = merged_source.parse().unwrap(); + + let package_name = merged_doc + .get("package") + .and_then(|item| item.get("name")) + .and_then(|item| item.as_str()) + .unwrap(); + prop_assert_eq!(package_name, "demo"); + + let shared_item = merged_doc + .get("dependencies") + .and_then(|item| item.get(&shared_dep_name)) + .unwrap(); + let shared_table = table_like(shared_item); + let version = shared_table + .get("version") + .and_then(|item| item.as_str()) + .unwrap(); + prop_assert_eq!(version, expected_version); + + let features = shared_table + .get("features") + .and_then(|item| item.as_array()) + .unwrap() + .iter() + .filter_map(|value| value.as_str()) + .map(ToString::to_string) + .collect::>(); + prop_assert_eq!(features, expected_features); + + let merged_twice = cargo_toml::merge_documents(&merged_source, &update_source).unwrap(); + let merged_twice_doc: toml_edit::DocumentMut = merged_twice.parse().unwrap(); + prop_assert_eq!(merged_doc.to_string(), merged_twice_doc.to_string()); + } + + #[test] + fn proptest_cargo_toml_roundtrip_style_stability( + case in arb_cargo_merge_case(), + ) { + let (base_source, update_source, _, _, _) = case; + + let merged_once = cargo_toml::merge_documents(&base_source, &update_source).unwrap(); + let merged_once_doc: toml_edit::DocumentMut = merged_once.parse().unwrap(); + + let reparsed_source = merged_once_doc.to_string(); + let merged_twice = cargo_toml::merge_documents(&reparsed_source, &update_source).unwrap(); + let merged_twice_doc: toml_edit::DocumentMut = merged_twice.parse().unwrap(); + + prop_assert_eq!(merged_once_doc.to_string(), merged_twice_doc.to_string()); + } + + #[test] + fn proptest_main_ts_merge_reexports_is_union_and_idempotent( + (current_source, update_source, expected) in arb_ts_reexport_case(), + ) { + let merged = main_ts::merge_reexports(¤t_source, &update_source).unwrap(); + main_ts::validate(&merged).unwrap(); + + let merged_set = collect_trimmed_prefixed_lines(&merged, "export "); + prop_assert_eq!(merged_set, expected); + + let merged_twice = main_ts::merge_reexports(&merged, &update_source).unwrap(); + prop_assert_eq!(merged_twice, merged); + } + + #[test] + fn proptest_main_rs_merge_reexports_is_union_and_idempotent( + (current_source, update_source, expected) in arb_rust_reexport_case(), + ) { + let merged = main_rs::merge_reexports(¤t_source, &update_source).unwrap(); + main_rs::validate(&merged).unwrap(); + + let merged_set = collect_trimmed_prefixed_lines(&merged, "mod ") + .into_iter() + .chain(collect_trimmed_prefixed_lines(&merged, "pub use ")) + .collect::>(); + prop_assert_eq!(merged_set, expected); + + let merged_twice = main_rs::merge_reexports(&merged, &update_source).unwrap(); + prop_assert_eq!(merged_twice, merged); + } + + #[test] + fn proptest_agents_md_merge_updates_managed_sections_and_keeps_user_text( + (user_prefix, user_suffix, rust_body, ts_body, replacement_body) in arb_agents_case(), + ) { + let rust_guide = make_managed_guide(GuestLanguage::Rust, &rust_body); + let ts_guide = make_managed_guide(GuestLanguage::TypeScript, &ts_body); + let current = format!("{user_prefix}\n\n{rust_guide}\n{ts_guide}\n{user_suffix}"); + + let replacement = make_managed_guide(GuestLanguage::Rust, &replacement_body); + let merged = agents_md::merge_guides(¤t, &replacement).unwrap(); + let normalized_replacement = replacement_body.trim_end(); + let normalized_old_rust = rust_body.trim_end(); + let normalized_ts_body = ts_body.trim_end(); + + prop_assert!(merged.contains(&user_prefix)); + prop_assert!(merged.contains(&user_suffix)); + prop_assert!(merged.contains(normalized_replacement)); + if normalized_replacement != normalized_old_rust + && !normalized_replacement.contains(normalized_old_rust) + { + prop_assert!(!merged.contains(normalized_old_rust)); + } + prop_assert!(merged.contains(normalized_ts_body)); + prop_assert_eq!(merged.matches("").count(), 1); + prop_assert_eq!(merged.matches("").count(), 1); + } + + #[test] + fn proptest_gitignore_merge_dedups_and_is_idempotent( + (source_lines, additional_lines) in arb_gitignore_case(), + ) { + let source = source_lines.join("\n"); + let additional = additional_lines.join("\n"); + let merged = gitignore::merge(&source, &additional); + + let merged_lines = merged.lines().map(ToString::to_string).collect::>(); + let unique_count = merged_lines.iter().collect::>().len(); + prop_assert_eq!(merged_lines.len(), unique_count); + + let merged_twice = gitignore::merge(&merged, &additional); + prop_assert_eq!(merged_twice, merged); + } +} + +#[derive(Debug, Clone, Copy)] +enum JsonStyle { + Compact, + Pretty2, + Pretty4, + CompactTrailingNewline, + PrettyTrailingNewline, +} + +fn arb_json_style() -> impl Strategy { + prop_oneof![ + Just(JsonStyle::Compact), + Just(JsonStyle::Pretty2), + Just(JsonStyle::Pretty4), + Just(JsonStyle::CompactTrailingNewline), + Just(JsonStyle::PrettyTrailingNewline), + ] +} + +fn arb_text() -> impl Strategy { + // String pool intentionally includes punctuation and escaped payloads + // to stress parsers and merge replacements. + prop_oneof![ + Just("simple".to_string()), + Just("line1\\nline2".to_string()), + Just("value with : and #".to_string()), + Just("quote \" and slash \\\\".to_string()), + "[A-Za-z0-9_:\\- ]{0,20}".prop_map(|value| value), + ] +} + +fn arb_json_leaf() -> impl Strategy { + // Scalar JSON leaves used to verify overwrite/preserve semantics + // across heterogeneous scalar types. + prop_oneof![ + arb_text().prop_map(JsonValue::String), + any::().prop_map(JsonValue::Bool), + (-1000i64..=1000i64).prop_map(|value| JsonValue::Number(value.into())), + Just(JsonValue::Null), + ] +} + +fn arb_json_merge_case() -> impl Strategy { + // Generates overlapping JSON objects where both sides touch nested keys, + // arrays, and optional side-specific keys, then renders with style variance. + ( + arb_text(), + arb_text(), + arb_text(), + arb_text(), + prop::collection::vec(arb_text(), 1..5), + prop::collection::vec(arb_text(), 1..5), + prop::option::of(arb_text()), + prop::option::of(arb_text()), + arb_json_style(), + arb_json_style(), + ) + .prop_map( + |( + base_override, + update_override, + base_note, + update_note, + base_items, + update_items, + base_new, + update_new, + base_style, + update_style, + )| { + let mut base_map = JsonMap::new(); + base_map.insert("shared".to_string(), { + let mut shared = JsonMap::new(); + shared.insert("override".to_string(), JsonValue::String(base_override)); + shared.insert("note".to_string(), JsonValue::String(base_note)); + JsonValue::Object(shared) + }); + base_map.insert( + "items".to_string(), + JsonValue::Array(base_items.into_iter().map(JsonValue::String).collect()), + ); + if let Some(value) = base_new { + base_map.insert("baseOnly".to_string(), JsonValue::String(value)); + } + + let mut update_map = JsonMap::new(); + update_map.insert("shared".to_string(), { + let mut shared = JsonMap::new(); + shared.insert("override".to_string(), JsonValue::String(update_override)); + shared.insert("note".to_string(), JsonValue::String(update_note)); + JsonValue::Object(shared) + }); + update_map.insert( + "items".to_string(), + JsonValue::Array(update_items.into_iter().map(JsonValue::String).collect()), + ); + if let Some(value) = update_new { + update_map.insert("updateOnly".to_string(), JsonValue::String(value)); + } + + ( + JsonValue::Object(base_map), + JsonValue::Object(update_map), + base_style, + update_style, + ) + }, + ) +} + +fn render_json(value: &JsonValue, style: JsonStyle) -> String { + let mut source = match style { + JsonStyle::Compact | JsonStyle::CompactTrailingNewline => { + serde_json::to_string(value).unwrap() + } + JsonStyle::Pretty2 | JsonStyle::PrettyTrailingNewline => { + serde_json::to_string_pretty(value).unwrap() + } + JsonStyle::Pretty4 => { + let mut bytes = Vec::new(); + let formatter = serde_json::ser::PrettyFormatter::with_indent(b" "); + let mut serializer = serde_json::Serializer::with_formatter(&mut bytes, formatter); + value.serialize(&mut serializer).unwrap(); + String::from_utf8(bytes).unwrap() + } + }; + + if matches!( + style, + JsonStyle::CompactTrailingNewline | JsonStyle::PrettyTrailingNewline + ) { + source.push('\n'); + } + + source +} + +fn merge_json_values(base: JsonValue, update: JsonValue) -> JsonValue { + match (base, update) { + (JsonValue::Object(mut base_obj), JsonValue::Object(update_obj)) => { + for (key, update_value) in update_obj { + let merged = if let Some(base_value) = base_obj.remove(&key) { + merge_json_values(base_value, update_value) + } else { + update_value + }; + base_obj.insert(key, merged); + } + JsonValue::Object(base_obj) + } + (_, update) => update, + } +} + +fn arb_yaml_merge_case( +) -> impl Strategy, bool)> { + // Produces YAML mappings with overlapping keys, list merges, optional + // missing/new keys, and indentation scaling to stress formatting paths. + ( + arb_text(), + arb_text(), + arb_text(), + arb_text(), + prop::collection::vec(arb_text(), 1..5), + prop::collection::vec(arb_text(), 1..5), + prop::option::of(arb_text()), + any::(), + prop_oneof![Just(1usize), Just(2usize)], + prop_oneof![Just(1usize), Just(2usize)], + ) + .prop_map( + |( + base_override, + update_override, + base_notes, + update_notes, + base_items, + update_items, + update_new_key, + include_base_only, + base_indent_scale, + update_indent_scale, + )| { + let mut base = serde_yaml::Mapping::new(); + let mut base_shared = serde_yaml::Mapping::new(); + base_shared.insert( + serde_yaml::Value::String("override".to_string()), + serde_yaml::Value::String(base_override), + ); + base_shared.insert( + serde_yaml::Value::String("keep".to_string()), + serde_yaml::Value::String("base-keep".to_string()), + ); + base.insert( + serde_yaml::Value::String("shared".to_string()), + serde_yaml::Value::Mapping(base_shared), + ); + base.insert( + serde_yaml::Value::String("notes".to_string()), + serde_yaml::Value::String(base_notes), + ); + base.insert( + serde_yaml::Value::String("items".to_string()), + serde_yaml::Value::Sequence( + base_items + .iter() + .cloned() + .map(serde_yaml::Value::String) + .collect(), + ), + ); + if include_base_only { + base.insert( + serde_yaml::Value::String("baseOnly".to_string()), + serde_yaml::Value::String("present".to_string()), + ); + } + + let mut update = serde_yaml::Mapping::new(); + let mut update_shared = serde_yaml::Mapping::new(); + update_shared.insert( + serde_yaml::Value::String("override".to_string()), + serde_yaml::Value::String(update_override.clone()), + ); + update.insert( + serde_yaml::Value::String("shared".to_string()), + serde_yaml::Value::Mapping(update_shared), + ); + update.insert( + serde_yaml::Value::String("notes".to_string()), + serde_yaml::Value::String(update_notes.clone()), + ); + update.insert( + serde_yaml::Value::String("items".to_string()), + serde_yaml::Value::Sequence( + update_items + .iter() + .cloned() + .map(serde_yaml::Value::String) + .collect(), + ), + ); + if let Some(new_value) = update_new_key.clone() { + update.insert( + serde_yaml::Value::String("newKey".to_string()), + serde_yaml::Value::String(new_value), + ); + } + + let mut list_union = base_items.clone(); + for item in update_items { + if !list_union.contains(&item) { + list_union.push(item); + } + } + + ( + scale_yaml_indentation( + &serde_yaml::to_string(&serde_yaml::Value::Mapping(base)).unwrap(), + base_indent_scale, + ), + scale_yaml_indentation( + &serde_yaml::to_string(&serde_yaml::Value::Mapping(update)).unwrap(), + update_indent_scale, + ), + update_override, + update_notes, + list_union, + update_new_key.is_some(), + ) + }, + ) +} + +fn yaml_scalar_to_string(value: &serde_yaml::Value) -> Option { + if let Some(text) = value.as_str() { + return Some(text.to_string()); + } + value.as_i64().map(|number| number.to_string()) +} + +fn scale_yaml_indentation(source: &str, scale: usize) -> String { + if scale == 1 { + return source.to_string(); + } + + let mut out = String::new(); + for (idx, line) in source.lines().enumerate() { + if idx > 0 { + out.push('\n'); + } + let leading = line.chars().take_while(|ch| *ch == ' ').count(); + out.push_str(&" ".repeat(leading * scale)); + out.push_str(&line[leading..]); + } + out.push('\n'); + out +} + +fn arb_cargo_merge_case() -> impl Strategy, String)> { + // Produces TOML dependency merges with shared deps, base-only deps, + // optional spacing style differences, and feature overlap. + ( + "[a-z][a-z0-9_-]{0,8}", + "[a-z][a-z0-9_-]{0,8}", + "0\\.[0-9]{1,2}\\.[0-9]{1,2}", + "0\\.[0-9]{1,2}\\.[0-9]{1,2}", + prop::collection::vec("[a-z][a-z0-9_]{0,8}", 0..3), + prop::collection::vec("[a-z][a-z0-9_]{0,8}", 0..3), + any::(), + ) + .prop_map( + |( + shared_dep, + mut base_only_dep, + base_version, + update_version, + base_features, + update_features, + use_spaces, + )| { + if shared_dep == base_only_dep { + base_only_dep.push_str("_base"); + } + + let spacing = if use_spaces { " = " } else { "=" }; + let mut base_source = String::new(); + base_source.push_str("[package]\n"); + base_source.push_str("name = \"demo\"\n"); + base_source.push_str("description = \"line1\\nline2\"\n\n"); + base_source.push_str("[dependencies]\n"); + base_source.push_str(&format!( + "{shared_dep}{spacing}{{ version = \"{base_version}\", features = [{}] }}\n", + format_feature_list(&base_features) + )); + base_source.push_str(&format!( + "{base_only_dep}{spacing}{{ version = \"1.0.0\", features = [\"base\"] }}\n" + )); + + let mut update_source = String::new(); + update_source.push_str("[dependencies]\n"); + update_source.push_str(&format!( + "{shared_dep}{spacing}{{ version = \"{update_version}\", features = [{}] }}\n", + format_feature_list(&update_features) + )); + update_source.push_str("new_dep = \"0.1.0\"\n"); + + let mut expected_features = Vec::new(); + for feature in base_features.into_iter().chain(update_features) { + if !expected_features.contains(&feature) { + expected_features.push(feature); + } + } + + ( + base_source, + update_source, + shared_dep, + expected_features, + update_version, + ) + }, + ) +} + +fn format_feature_list(features: &[String]) -> String { + features + .iter() + .map(|feature| format!("\"{feature}\"")) + .collect::>() + .join(", ") +} + +fn arb_ts_reexport_case() -> impl Strategy)> { + // Produces TS export statements with overlap and spacing/newline variance + // to validate stable union + idempotence behavior. + ( + prop::collection::vec("[a-z][a-z0-9_]{0,8}", 1..5), + prop::collection::vec("[a-z][a-z0-9_]{0,8}", 1..5), + any::(), + ) + .prop_map(|(current_names, update_names, extra_blank_line)| { + let current_lines = current_names + .iter() + .map(|name| format!("export {{ {name} }} from \"./{name}\";")) + .collect::>(); + let update_lines = update_names + .iter() + .map(|name| format!("export {{ {name} }} from \"./{name}\";")) + .collect::>(); + + let mut current_source = current_lines.join("\n"); + if extra_blank_line { + current_source.push_str("\n\n"); + } else { + current_source.push('\n'); + } + + let mut update_source = update_lines.join("\n"); + update_source.push('\n'); + + let expected = current_lines + .into_iter() + .chain(update_lines) + .collect::>(); + + (current_source, update_source, expected) + }) +} + +fn arb_rust_reexport_case() -> impl Strategy)> { + // Produces Rust mod/pub use declaration sets for union/idempotence checks + // while keeping full snippets syntactically valid. + ( + prop::collection::vec("[a-z][a-z0-9_]{0,8}", 1..4), + prop::collection::vec("[a-z][a-z0-9_]{0,8}", 1..4), + ) + .prop_map(|(current_mods, update_mods)| { + let current_decl = current_mods + .iter() + .flat_map(|module| vec![format!("mod {module};"), format!("pub use {module}::*;")]) + .collect::>(); + let update_decl = update_mods + .iter() + .flat_map(|module| vec![format!("mod {module};"), format!("pub use {module}::*;")]) + .collect::>(); + + let current_source = format!("{}\n\nfn main() {{}}\n", current_decl.join("\n")); + let update_source = format!("{}\n", update_decl.join("\n")); + + let expected = current_decl + .into_iter() + .chain(update_decl) + .collect::>(); + + (current_source, update_source, expected) + }) +} + +fn collect_trimmed_prefixed_lines(source: &str, prefix: &str) -> BTreeSet { + source + .lines() + .map(str::trim) + .filter(|line| line.starts_with(prefix) && line.ends_with(';')) + .map(ToString::to_string) + .collect() +} + +fn arb_agents_case() -> impl Strategy { + // Generates managed guide bodies and user-owned prefix/suffix text to test + // replacement of same-language blocks while preserving user content. + (arb_text(), arb_text(), arb_text(), arb_text(), arb_text()).prop_map( + |(prefix, suffix, rust_body, ts_body, replacement)| { + ( + format!("# User notes\n{prefix}"), + format!("## Footer\n{suffix}"), + format!("# Rust guide\n{rust_body}"), + format!("# TS guide\n{ts_body}"), + format!("# Rust guide\n{replacement}"), + ) + }, + ) +} + +fn arb_gitignore_case() -> impl Strategy, Vec)> { + // Generates overlapping positive/negative ignore rules plus optional + // comments/blank lines to exercise ordering + dedup behavior. + ( + prop::collection::vec("[a-z][a-z0-9_-]{0,8}", 1..6), + prop::collection::vec("[a-z][a-z0-9_-]{0,8}", 1..6), + any::(), + ) + .prop_map(|(left, right, add_comment)| { + let mut source = left + .into_iter() + .enumerate() + .map(|(idx, pattern)| { + if idx % 2 == 0 { + pattern + } else { + format!("!{pattern}") + } + }) + .collect::>(); + let mut additional = right + .into_iter() + .enumerate() + .map(|(idx, pattern)| { + if idx % 2 == 0 { + pattern + } else { + format!("!{pattern}") + } + }) + .collect::>(); + if add_comment { + source.push("# keep this comment".to_string()); + additional.push("".to_string()); + } + (source, additional) + }) +} + +fn arb_yaml_comment_merge_case() -> impl Strategy { + // Produces safe comment and scalar tokens (no newlines/colon separators) + // for YAML snippets that intentionally include comments on both sides. + ( + "[A-Za-z0-9 _-]{1,20}", + "[A-Za-z0-9 _-]{1,20}", + "[a-z][a-z0-9_-]{0,12}", + "[a-z][a-z0-9_-]{0,12}", + any::(), + ) +} + +fn make_managed_guide(language: GuestLanguage, content: &str) -> String { + let key = language.id(); + format!( + "\n{content}\n\n" + ) +} diff --git a/cli/golem-cli/src/app/edit/text.rs b/cli/golem-cli/src/app/edit/text.rs new file mode 100644 index 0000000000..6deabdf6ea --- /dev/null +++ b/cli/golem-cli/src/app/edit/text.rs @@ -0,0 +1,52 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use anyhow::anyhow; +use std::cmp::Reverse; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TextEdit { + pub start: usize, + pub end: usize, + pub replacement: String, +} + +impl TextEdit { + pub fn new(start: usize, end: usize, replacement: impl Into) -> Self { + Self { + start, + end, + replacement: replacement.into(), + } + } +} + +pub fn apply_edits(source: &str, edits: Vec) -> anyhow::Result { + if edits.is_empty() { + return Ok(source.to_string()); + } + + let mut indexed: Vec<(usize, TextEdit)> = edits.into_iter().enumerate().collect(); + indexed.sort_by_key(|(idx, edit)| (Reverse(edit.start), Reverse(*idx))); + + let mut output = source.to_string(); + for (_, edit) in indexed { + if edit.start > edit.end || edit.end > output.len() { + return Err(anyhow!("Invalid edit range {}..{}", edit.start, edit.end)); + } + output.replace_range(edit.start..edit.end, &edit.replacement); + } + + Ok(output) +} diff --git a/cli/golem-cli/src/app/edit/tsconfig_json.rs b/cli/golem-cli/src/app/edit/tsconfig_json.rs new file mode 100644 index 0000000000..37eead584c --- /dev/null +++ b/cli/golem-cli/src/app/edit/tsconfig_json.rs @@ -0,0 +1,59 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::app::edit::json::{collect_value_text_by_path, merge_object}; + +#[derive(Debug, Clone)] +pub struct RequiredSetting { + pub path: Vec, + pub expected_literal: Option, +} + +#[derive(Debug, Clone)] +pub struct MissingSetting { + pub path: Vec, + pub found: Option, + pub expected_literal: Option, +} + +pub fn merge_with_newer(base_source: &str, newer_source: &str) -> anyhow::Result { + merge_object(base_source, newer_source) +} + +pub fn check_required_settings( + source: &str, + required: &[RequiredSetting], +) -> anyhow::Result> { + let mut missing = Vec::new(); + for setting in required { + let path: Vec<&str> = setting.path.iter().map(String::as_str).collect(); + let found = collect_value_text_by_path(source, &path)?; + if let Some(expected) = &setting.expected_literal { + if found.as_deref() != Some(expected.as_str()) { + missing.push(MissingSetting { + path: setting.path.clone(), + found, + expected_literal: Some(expected.clone()), + }); + } + } else if found.is_none() { + missing.push(MissingSetting { + path: setting.path.clone(), + found, + expected_literal: None, + }); + } + } + Ok(missing) +} diff --git a/cli/golem-cli/src/app/mod.rs b/cli/golem-cli/src/app/mod.rs index 53fa06d9b3..671f68dc26 100644 --- a/cli/golem-cli/src/app/mod.rs +++ b/cli/golem-cli/src/app/mod.rs @@ -15,6 +15,7 @@ pub mod agent_types; pub mod build; pub mod context; +pub mod edit; pub mod error; pub mod remote_components; pub mod template; diff --git a/cli/golem-cli/src/app/template/generator.rs b/cli/golem-cli/src/app/template/generator.rs index feb226d0b8..e97241660d 100644 --- a/cli/golem-cli/src/app/template/generator.rs +++ b/cli/golem-cli/src/app/template/generator.rs @@ -22,31 +22,75 @@ use golem_common::base_model::application::ApplicationName; use golem_common::base_model::component::ComponentName; use heck::{ToKebabCase, ToSnakeCase}; use include_dir::{Dir, DirEntry}; -use itertools::Itertools; -use std::borrow::Cow; -use std::collections::BTreeSet; -use std::path::Path; +use std::collections::BTreeMap; +use std::path::{Path, PathBuf}; const ON_DEMAND_COMMON_HASH_FILE_NAME: &str = ".golem-template-content-hash"; -#[derive(Debug, Copy, Clone)] -enum TargetExistsResolveMode { - #[allow(dead_code)] - Skip, - MergeOrSkip, - Fail, - MergeOrFail, +pub trait TemplateGeneratorTargetFs { + type Output; + + fn exists(&self, path: &Path) -> bool; + fn write_file(&mut self, path: &Path, contents: String) -> anyhow::Result<()>; + fn finish(self) -> Self::Output; +} + +#[derive(Debug, Default)] +pub struct StdFs; + +impl TemplateGeneratorTargetFs for StdFs { + type Output = (); + + fn exists(&self, path: &Path) -> bool { + path.exists() + } + + fn write_file(&mut self, path: &Path, contents: String) -> anyhow::Result<()> { + fs::write_str(path, contents) + } + + fn finish(self) -> Self::Output {} +} + +#[derive(Debug, Default)] +pub struct InMemoryFs { + files: BTreeMap, } -type MergeContents = Box anyhow::Result>>; +impl InMemoryFs { + pub fn new() -> Self { + Self::default() + } + + pub fn files(&self) -> &BTreeMap { + &self.files + } -enum TargetExistsResolveDecision { - Skip, - Merge(MergeContents), + pub fn get(&self, path: &Path) -> Option<&str> { + self.files.get(path).map(|s| s.as_str()) + } +} + +impl TemplateGeneratorTargetFs for InMemoryFs { + type Output = InMemoryFs; + + fn exists(&self, path: &Path) -> bool { + self.files.contains_key(path) + } + + fn write_file(&mut self, path: &Path, contents: String) -> anyhow::Result<()> { + self.files.insert(path.to_path_buf(), contents); + Ok(()) + } + + fn finish(self) -> Self::Output { + self + } } #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] enum Transform { + ComponentDir, ComponentName, ManifestHints, TsSdk, @@ -58,39 +102,42 @@ enum Transform { struct GeneratorContext<'a> { template: &'a AppTemplate, application_name: Option<&'a ApplicationName>, + application_dir: &'a Path, component_name: Option<&'a ComponentName>, + component_dir: Option<&'a Path>, target_path: &'a Path, - resolve_mode: TargetExistsResolveMode, } -pub fn generate_commons_by_template( +pub fn generate_commons_by_template( template: &AppTemplate, application_name: &ApplicationName, target_path: &Path, -) -> anyhow::Result<()> { + mut target: T, +) -> anyhow::Result { if !template.metadata.is_common() { bail!("Template {} is not a common template", template.name); } - if let Some(skip_if_exists) = template.skip_if_exists() { - if target_path.join(skip_if_exists).exists() { - return Ok(()); - } - } - - generate_root_directory(&GeneratorContext { - template, - application_name: Some(application_name), - component_name: None, - target_path, - resolve_mode: TargetExistsResolveMode::MergeOrSkip, - }) + generate_root_directory( + &mut target, + &GeneratorContext { + template, + application_name: Some(application_name), + application_dir: target_path, + component_name: None, + component_dir: None, + target_path, + }, + )?; + Ok(target.finish()) } -pub fn generate_on_demand_commons_by_template( +pub fn generate_on_demand_commons_by_template( template: &AppTemplate, + application_dir: &Path, target_path: &Path, -) -> anyhow::Result<()> { + mut target: T, +) -> anyhow::Result { if !template.metadata.is_common_on_demand() { bail!( "Template {} is not a common on demand template", @@ -103,50 +150,91 @@ pub fn generate_on_demand_commons_by_template( if target_path.exists() && hash_path.exists() { let stored_hash = fs::read_to_string(&hash_path)?; if stored_hash.trim() == content_hash { - return Ok(()); + return Ok(target.finish()); } } } fs::remove(target_path)?; - generate_root_directory(&GeneratorContext { - template, - application_name: None, - component_name: None, - target_path, - resolve_mode: TargetExistsResolveMode::Fail, - })?; + generate_root_directory( + &mut target, + &GeneratorContext { + template, + application_name: None, + application_dir, + component_name: None, + component_dir: None, + target_path, + }, + )?; if let Some(content_hash) = template.content_hash.as_deref() { let hash_path = target_path.join(ON_DEMAND_COMMON_HASH_FILE_NAME); fs::write_str(hash_path, content_hash)?; } - Ok(()) + Ok(target.finish()) } -pub fn generate_component_by_template( +pub fn generate_component_by_template( template: &AppTemplate, - target_path: &Path, application_name: &ApplicationName, + application_dir: &Path, component_name: &ComponentName, -) -> anyhow::Result<()> { + component_dir: &Path, + mut target: T, +) -> anyhow::Result { if !template.metadata.is_component() { bail!("Template {} is not a component template", template.name); } - generate_root_directory(&GeneratorContext { - template, - application_name: Some(application_name), - component_name: Some(component_name), - target_path, - resolve_mode: TargetExistsResolveMode::MergeOrFail, - }) + generate_root_directory( + &mut target, + &GeneratorContext { + template, + application_name: Some(application_name), + component_name: Some(component_name), + application_dir, + component_dir: Some(component_dir), + target_path: application_dir, + }, + )?; + Ok(target.finish()) } -fn generate_root_directory(ctx: &GeneratorContext<'_>) -> anyhow::Result<()> { +pub fn generate_agent_by_template( + template: &AppTemplate, + application_name: &ApplicationName, + application_dir: &Path, + component_name: &ComponentName, + component_dir: &Path, + mut target: T, +) -> anyhow::Result { + if !template.metadata.is_agent() { + bail!("Template {} is not an agent template", template.name); + } + + generate_root_directory( + &mut target, + &GeneratorContext { + template, + application_name: Some(application_name), + application_dir, + component_name: Some(component_name), + component_dir: Some(component_dir), + target_path: application_dir, + }, + )?; + Ok(target.finish()) +} + +fn generate_root_directory( + target: &mut T, + ctx: &GeneratorContext<'_>, +) -> anyhow::Result<()> { generate_directory( + target, ctx, &TEMPLATES_DIR, &ctx.template.template_path, @@ -154,89 +242,96 @@ fn generate_root_directory(ctx: &GeneratorContext<'_>) -> anyhow::Result<()> { ) } -fn generate_directory( +fn generate_directory( + target: &mut T, ctx: &GeneratorContext<'_>, templates_dir: &Dir<'_>, source: &Path, - target: &Path, + target_path: &Path, ) -> anyhow::Result<()> { - fs::create_dir_all(target)?; for entry in templates_dir .get_dir(source) .unwrap_or_else(|| panic!("Could not find entry {source:?}")) .entries() { let entry_path = entry.path(); - let name = entry_path.file_name().unwrap().to_str().unwrap(); - if name != "metadata.json" { - let name = transform_file_name(ctx, name)?; - match entry { - DirEntry::Dir(dir) => { - generate_directory(ctx, templates_dir, dir.path(), &target.join(&name))?; - } - DirEntry::File(file) => { - let content_transform = match (ctx.template.metadata.is_common(), name.as_str()) - { - (true, "golem.yaml") => { - vec![Transform::ManifestHints, Transform::ApplicationName] - } - (true, "package.json") => vec![Transform::TsSdk], - (true, "Cargo.toml") => vec![Transform::RustSdk], - (true, _) => vec![], - (false, "golem.yaml") => { - vec![ - Transform::ManifestHints, - Transform::ComponentName, - Transform::ApplicationName, - ] - } - (false, _) => vec![Transform::ComponentName], - }; - - instantiate_file( - ctx, - templates_dir, - file.path(), - &target.join(&name), - content_transform, - )?; - } + let name = fs::file_name_to_str(entry_path)?; + + if name == "metadata.json" { + continue; + } + + let name = transform_file_name(ctx, name)?; + match entry { + DirEntry::Dir(dir) => { + generate_directory( + target, + ctx, + templates_dir, + dir.path(), + &target_path.join(&name), + )?; + } + DirEntry::File(file) => { + let content_transform = match ( + ctx.template.metadata.is_common() + || ctx.template.metadata.is_common_on_demand(), + name.as_str(), + ) { + (true, "golem.yaml") => { + vec![Transform::ManifestHints, Transform::ApplicationName] + } + (true, "package.json") => vec![Transform::TsSdk], + (true, "Cargo.toml") => vec![Transform::RustSdk], + (true, _) => vec![], + (false, "golem.yaml") => { + vec![ + Transform::ManifestHints, + Transform::ComponentDir, + Transform::ComponentName, + Transform::ApplicationName, + ] + } + (false, "Cargo.toml") => vec![Transform::ComponentName, Transform::RustSdk], + (false, _) => vec![Transform::ComponentName], + }; + + instantiate_file( + target, + ctx, + templates_dir, + file.path(), + &target_path.join(&name), + content_transform, + )?; } } } Ok(()) } -fn instantiate_file( +fn instantiate_file( + target: &mut T, ctx: &GeneratorContext<'_>, dir: &Dir<'_>, source: &Path, - target: &Path, + target_path: &Path, content_transforms: Vec, ) -> anyhow::Result<()> { - match get_resolved_contents(ctx, dir, source, target)? { - Some(contents) => { - if content_transforms.is_empty() { - Ok(fs::write(target, contents)?) - } else { - Ok(fs::write( - target, - transform( - ctx, - std::str::from_utf8(contents.as_ref()).map_err(|err| { - anyhow!( - "Failed to decode as utf8, source: {}, err: {}", - source.display(), - err - ) - })?, - &content_transforms, - )?, - )?) - } - } - None => Ok(()), + let target_path = transform_target_file_path(ctx, target_path)?; + + if target.exists(&target_path) { + bail!("Target {} already exists", target_path.display()); } + + let contents = get_contents(dir, source)?; + let rendered = if content_transforms.is_empty() { + contents.to_string() + } else { + transform(ctx, contents, &content_transforms)? + }; + + target.write_file(&target_path, rendered) } fn transform( @@ -245,75 +340,103 @@ fn transform( transforms: &[Transform], ) -> anyhow::Result { let sdk_overrides = sdk_overrides()?; + let mut replacements: BTreeMap<&'static str, String> = BTreeMap::new(); - let transform_component_name = |str: &str| -> String { - match &ctx.component_name { - Some(component_name) => str - .replace("componentname", component_name.as_str()) - .replace("component-name", &component_name.0.to_kebab_case()) - .replace("component_name", &component_name.0.to_snake_case()) - .replace("__cn__", "componentName"), - None => str.to_string(), + for transform in transforms { + match transform { + Transform::ComponentName => { + if let Some(component_name) = &ctx.component_name { + replacements.insert("componentname", component_name.as_str().to_string()); + replacements.insert("component-name", component_name.0.to_kebab_case()); + replacements.insert("component_name", component_name.0.to_snake_case()); + replacements.insert("__cn__", "componentName".to_string()); + } + } + Transform::ComponentDir => { + if let Some(component_dir) = &ctx.component_dir { + replacements.insert( + "componentDir", + fs::path_to_unix_str(&fs::normalize_path_lexically(component_dir))?, + ); + } + } + Transform::ManifestHints => { + replacements.insert( + "# golem-app-manifest-header\n", + APP_MANIFEST_HEADER.to_string(), + ); + replacements.insert( + " # golem-app-manifest-env-doc", + concat!( + " # Component environment variables can reference system environment variables with minijinja syntax:\n", + " #\n", + " # env:\n", + " # ENV_VAR_1: \"{{ ENV_VAR_1 }}\"\n", + " # RENAMED_VAR_2: \"{{ ENV_VAR_2 }}\"\n", + " # COMPOSED_VAR_3: \"{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}\"\n", + " #", + ) + .to_string(), + ); + replacements.insert( + " # golem-app-manifest-dep-env-vars-doc", + DEP_ENV_VARS_DOC.to_string(), + ); + } + Transform::ApplicationName => { + if let Some(name) = &ctx.application_name { + replacements.insert("app-name", name.0.clone()); + } + } + Transform::RustSdk => { + replacements.insert("GOLEM_RUST_VERSION_OR_PATH", sdk_overrides.golem_rust_dep()); + } + Transform::TsSdk => { + replacements.insert( + "GOLEM_TS_SDK_VERSION_OR_PATH", + sdk_overrides.ts_package_dep("golem-ts-sdk"), + ); + replacements.insert( + "GOLEM_TS_TYPEGEN_VERSION_OR_PATH", + sdk_overrides.ts_package_dep("golem-ts-typegen"), + ); + } } - }; + } - let transform_manifest_hints = |str: &str| -> String { - str.replace("# golem-app-manifest-header\n", &APP_MANIFEST_HEADER) - .replace(" # golem-app-manifest-env-doc", - concat!( - " # Component environment variables can reference system environment variables with minijinja syntax:\n", - " #\n", - " # env:\n", - " # ENV_VAR_1: \"{{ ENV_VAR_1 }}\"\n", - " # RENAMED_VAR_2: \"{{ ENV_VAR_2 }}\"\n", - " # COMPOSED_VAR_3: \"{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}\"\n", - " #", - ), - ) - .replace(" # golem-app-manifest-dep-env-vars-doc", &DEP_ENV_VARS_DOC) - .replace(" # golem-app-manifest-env-presets", - "", // " # TODO: atomic\n" - ) - }; + Ok(replace_all(str.as_ref(), &replacements)) +} - let transform_app_name = |str: &str| -> String { - match &ctx.application_name { - Some(name) => str.replace("app-name", &name.0), - None => str.to_string(), - } - }; +// Keys are expected to be non-overlapping by prefix. +fn replace_all(input: &str, replacements: &BTreeMap<&'static str, String>) -> String { + if replacements.is_empty() { + return input.to_string(); + } - let transform_rust_sdk = |str: &str| -> String { - str.replace( - "GOLEM_RUST_VERSION_OR_PATH", - &sdk_overrides.golem_rust_dep(), - ) - }; + let mut out = String::with_capacity(input.len()); + let mut index = 0; - let transform_ts_sdk = |str: &str| -> String { - str.replace( - "GOLEM_TS_SDK_VERSION_OR_PATH", - &sdk_overrides.ts_package_dep("golem-ts-sdk"), - ) - .replace( - "GOLEM_TS_TYPEGEN_VERSION_OR_PATH", - &sdk_overrides.ts_package_dep("golem-ts-typegen"), - ) - }; + while index < input.len() { + let remaining = &input[index..]; + let matched = replacements + .iter() + .find(|(&key, _)| remaining.starts_with(key)); - let mut transformed = str.as_ref().to_string(); + if let Some((key, value)) = matched { + out.push_str(value); + index += key.len(); + continue; + } - for transform in transforms { - transformed = match transform { - Transform::ComponentName => transform_component_name(&transformed), - Transform::ManifestHints => transform_manifest_hints(&transformed), - Transform::TsSdk => transform_ts_sdk(&transformed), - Transform::RustSdk => transform_rust_sdk(&transformed), - Transform::ApplicationName => transform_app_name(&transformed), - }; + let ch = remaining + .chars() + .next() + .expect("remaining slice must not be empty"); + out.push(ch); + index += ch.len_utf8(); } - Ok(transformed) + out } fn transform_file_name( @@ -324,94 +447,124 @@ fn transform_file_name( .replace("Cargo.toml._", "Cargo.toml")) } -fn check_target( - target: &Path, - resolve_mode: TargetExistsResolveMode, -) -> anyhow::Result> { - if !target.exists() { - return Ok(None); +fn transform_target_file_path( + ctx: &GeneratorContext<'_>, + target_path: &Path, +) -> anyhow::Result { + match ctx.component_dir { + Some(component_dir) => { + let relative_target_path = fs::strip_prefix_or_err(target_path, ctx.application_dir)?; + let transformed_relative_target_path = + replace_component_dir_in_relative_path(relative_target_path, component_dir)?; + + Ok(ctx.application_dir.join(transformed_relative_target_path)) + } + None => Ok(target_path.to_path_buf()), } +} - let get_merge = || -> anyhow::Result> { - let file_name = target - .file_name() - .ok_or_else(|| anyhow!("Failed to get file name for target: {}", target.display())) - .and_then(|file_name| { - file_name.to_str().ok_or_else(|| { - anyhow!( - "Failed to convert file name to string: {}", - file_name.to_string_lossy() - ) - }) - })?; - - match file_name { - ".gitignore" => { - let target = target.to_path_buf(); - let current_content = fs::read_to_string(&target)?; - Ok(Some(TargetExistsResolveDecision::Merge(Box::new( - move |new_content: &[u8]| -> anyhow::Result> { - Ok(current_content - .lines() - .chain( - std::str::from_utf8(new_content).map_err(|err| { - anyhow!( - "Failed to decode new content for merge as utf8, target: {}, err: {}", - target.display(), - err - ) - })?.lines(), - ) - .collect::>() - .iter() - .join("\n") - .into_bytes()) - }, - )))) +fn replace_component_dir_in_relative_path( + relative_target_path: &Path, + component_dir: &Path, +) -> anyhow::Result { + let mut transformed = PathBuf::new(); + + for component in relative_target_path.components() { + match component { + std::path::Component::Normal(name) if name == "component-dir" => { + push_component_dir_segments(&mut transformed, component_dir)?; } - _ => Ok(None), + std::path::Component::CurDir => {} + std::path::Component::RootDir | std::path::Component::Prefix(_) => { + bail!( + "Expected relative path while transforming template target path: {}", + relative_target_path.display() + ); + } + other => transformed.push(other.as_os_str()), } - }; + } - let target_already_exists = || { - Err(anyhow!(format!( - "Target ({}) already exists!", - target.display() - ))) - }; + Ok(transformed) +} - match resolve_mode { - TargetExistsResolveMode::Skip => Ok(Some(TargetExistsResolveDecision::Skip)), - TargetExistsResolveMode::MergeOrSkip => match get_merge()? { - Some(merge) => Ok(Some(merge)), - None => Ok(Some(TargetExistsResolveDecision::Skip)), - }, - TargetExistsResolveMode::Fail => target_already_exists(), - TargetExistsResolveMode::MergeOrFail => match get_merge()? { - Some(merge) => Ok(Some(merge)), - None => target_already_exists(), - }, +fn push_component_dir_segments(target: &mut PathBuf, component_dir: &Path) -> anyhow::Result<()> { + for component in component_dir.components() { + match component { + std::path::Component::CurDir => {} + std::path::Component::Normal(name) => target.push(name), + std::path::Component::ParentDir => { + bail!( + "Component directory must not contain parent segments: {}", + component_dir.display() + ); + } + std::path::Component::RootDir | std::path::Component::Prefix(_) => { + bail!( + "Component directory must be relative: {}", + component_dir.display() + ); + } + } } + + Ok(()) } -fn get_contents<'a>(dir: &Dir<'a>, source: &'a Path) -> anyhow::Result<&'a [u8]> { - Ok(dir - .get_file(source) +fn get_contents<'a>(dir: &Dir<'a>, source: &'a Path) -> anyhow::Result<&'a str> { + dir.get_file(source) .ok_or_else(|| anyhow!("Could not find entry {}", source.display()))? - .contents()) + .contents_utf8() + .ok_or_else(|| anyhow!("File contents are not valid UTF-8: {}", source.display())) } -fn get_resolved_contents<'a>( - ctx: &GeneratorContext<'a>, - dir: &Dir<'a>, - source: &'a Path, - target: &'a Path, -) -> anyhow::Result>> { - match check_target(target, ctx.resolve_mode)? { - None => Ok(Some(Cow::Borrowed(get_contents(dir, source)?))), - Some(TargetExistsResolveDecision::Skip) => Ok(None), - Some(TargetExistsResolveDecision::Merge(merge)) => { - Ok(Some(Cow::Owned(merge(get_contents(dir, source)?)?))) - } +#[cfg(test)] +mod tests { + use std::collections::BTreeMap; + use std::path::{Path, PathBuf}; + use test_r::test; + + #[test] + fn replace_component_dir_path_strips_placeholder_for_dot() { + let transformed = super::replace_component_dir_in_relative_path( + Path::new("component-dir/src/main.ts"), + Path::new("."), + ) + .unwrap(); + + assert_eq!(transformed, PathBuf::from("src/main.ts")); + } + + #[test] + fn replace_component_dir_path_supports_multi_segment_component_dir() { + let transformed = super::replace_component_dir_in_relative_path( + Path::new("component-dir/src/main.ts"), + Path::new("services/agent-a"), + ) + .unwrap(); + + assert_eq!(transformed, PathBuf::from("services/agent-a/src/main.ts")); + } + + #[test] + fn replace_all_does_not_rewrite_inserted_values() { + let mut replacements: BTreeMap<&'static str, String> = BTreeMap::new(); + replacements.insert("componentname", "test-app-name:rust-main".to_string()); + replacements.insert("app-name", "test-app-name".to_string()); + + let transformed = super::replace_all("components:\n componentname:", &replacements); + + assert_eq!(transformed, "components:\n test-app-name:rust-main:"); + } + + #[test] + fn replace_all_replaces_multiple_non_overlapping_keys() { + let mut replacements: BTreeMap<&'static str, String> = BTreeMap::new(); + replacements.insert("app-name", "Y".to_string()); + replacements.insert("componentname", "my:comp".to_string()); + + let transformed = super::replace_all("app-name -> componentname", &replacements); + + assert_eq!(transformed, "Y -> my:comp"); } } diff --git a/cli/golem-cli/src/app/template/metadata.rs b/cli/golem-cli/src/app/template/metadata.rs index ddba2815d3..f8c20aaf5c 100644 --- a/cli/golem-cli/src/app/template/metadata.rs +++ b/cli/golem-cli/src/app/template/metadata.rs @@ -14,9 +14,9 @@ use crate::app::template::repo::TEMPLATES_DIR; -use anyhow::Context; +use anyhow::anyhow; use serde_derive::{Deserialize, Serialize}; -use std::path::{Path, PathBuf}; +use std::path::Path; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(tag = "type", rename_all = "kebab-case", deny_unknown_fields)] @@ -24,20 +24,21 @@ pub enum AppTemplateMetadata { #[serde(rename_all = "camelCase")] Common { description: Option, - skip_if_exists: Option, - exclude: Option>, dev_only: Option, }, #[serde(rename_all = "camelCase")] CommonOnDemand { description: Option, - exclude: Option>, dev_only: Option, }, #[serde(rename_all = "camelCase")] Component { description: String, - exclude: Option>, + dev_only: Option, + }, + #[serde(rename_all = "camelCase")] + Agent { + description: String, dev_only: Option, }, } @@ -48,10 +49,11 @@ impl AppTemplateMetadata { .get_file(template_path.join("metadata.json")) .expect("Failed to read metadata JSON") .contents(); - serde_json::from_slice(raw_metadata).with_context(|| { - format!( - "Failed to parse metadata JSON for template at {}", - template_path.display() + serde_json::from_slice(raw_metadata).map_err(|err| { + anyhow!( + "Failed to parse metadata JSON for template at {}, error: {}", + template_path.display(), + err ) }) } @@ -67,4 +69,8 @@ impl AppTemplateMetadata { pub fn is_component(&self) -> bool { matches!(self, AppTemplateMetadata::Component { .. }) } + + pub fn is_agent(&self) -> bool { + matches!(self, AppTemplateMetadata::Agent { .. }) + } } diff --git a/cli/golem-cli/src/app/template/mod.rs b/cli/golem-cli/src/app/template/mod.rs index bf02862998..c76c39c012 100644 --- a/cli/golem-cli/src/app/template/mod.rs +++ b/cli/golem-cli/src/app/template/mod.rs @@ -14,14 +14,20 @@ mod generator; mod metadata; +mod plan; mod repo; mod snippet; #[allow(clippy::module_inception)] mod template; pub use metadata::AppTemplateMetadata; +pub use plan::{ + MultiComponentLayoutUpgradePlan, MultiComponentLayoutUpgradePlanStep, SafeTemplatePlan, + SafeTemplatePlanStep, TemplatePlan, TemplatePlanBuilder, TemplatePlanStep, UnsafeTemplatePlan, + UnsafeTemplatePlanStep, +}; pub use repo::AppTemplateRepo; pub use template::{ - AppTemplate, AppTemplateCommon, AppTemplateCommonOnDemand, AppTemplateComponent, - AppTemplateName, AppTemplatesForLanguage, + AppTemplate, AppTemplateAgent, AppTemplateCommon, AppTemplateCommonOnDemand, + AppTemplateComponent, AppTemplateName, AppTemplatesForLanguage, }; diff --git a/cli/golem-cli/src/app/template/plan.rs b/cli/golem-cli/src/app/template/plan.rs new file mode 100644 index 0000000000..07ff342e03 --- /dev/null +++ b/cli/golem-cli/src/app/template/plan.rs @@ -0,0 +1,457 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::app::edit; +use crate::app::template::generator::InMemoryFs; +use crate::fs; +use crate::log::LogColorize; +use anyhow::{bail, Context}; +use serde_json::Value as JsonValue; +use serde_yaml::Value as YamlValue; +use std::collections::BTreeMap; +use std::path::{Path, PathBuf}; +use tracing::warn; + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum TemplatePlanStep { + Create { new: String }, + Overwrite { current: String, new: String }, + Merge { current: String, new: String }, + SkipSame { current: String }, +} + +pub struct TemplatePlan { + file_steps: BTreeMap>, +} + +pub struct SafeTemplatePlan { + file_steps: BTreeMap, +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum SafeTemplatePlanStep { + Create { new: String }, + Merge { current: String, new: String }, + SkipSame { current: String }, +} + +pub struct UnsafeTemplatePlan { + file_steps: BTreeMap, +} + +pub enum UnsafeTemplatePlanStep { + Overwrite { current: String, new: String }, + FailedPlan { error: anyhow::Error }, +} + +impl TemplatePlan { + pub fn file_steps(&self) -> &BTreeMap> { + &self.file_steps + } + + pub fn partition(self) -> (SafeTemplatePlan, UnsafeTemplatePlan) { + let mut safe_steps = BTreeMap::new(); + let mut unsafe_steps = BTreeMap::new(); + + for (path, step) in self.file_steps { + match step { + Ok(TemplatePlanStep::Create { new }) => { + safe_steps.insert(path, SafeTemplatePlanStep::Create { new }); + } + Ok(TemplatePlanStep::Overwrite { current, new }) => { + unsafe_steps.insert(path, UnsafeTemplatePlanStep::Overwrite { current, new }); + } + Ok(TemplatePlanStep::Merge { current, new }) => { + safe_steps.insert(path, SafeTemplatePlanStep::Merge { current, new }); + } + Ok(TemplatePlanStep::SkipSame { current }) => { + safe_steps.insert(path, SafeTemplatePlanStep::SkipSame { current }); + } + Err(error) => { + unsafe_steps.insert(path, UnsafeTemplatePlanStep::FailedPlan { error }); + } + } + } + + ( + SafeTemplatePlan { + file_steps: safe_steps, + }, + UnsafeTemplatePlan { + file_steps: unsafe_steps, + }, + ) + } +} + +impl SafeTemplatePlan { + pub fn is_empty(&self) -> bool { + self.file_steps.is_empty() + } + + pub fn file_steps(&self) -> &BTreeMap { + &self.file_steps + } +} + +impl UnsafeTemplatePlan { + pub fn is_empty(&self) -> bool { + self.file_steps.is_empty() + } + + pub fn file_steps(&self) -> &BTreeMap { + &self.file_steps + } + + pub fn overwrites(&self) -> impl Iterator { + self.file_steps + .iter() + .filter_map(|(path, step)| match step { + UnsafeTemplatePlanStep::Overwrite { .. } => Some(path.as_ref()), + _ => None, + }) + } + + pub fn failed_plans(&self) -> impl Iterator { + self.file_steps + .iter() + .filter_map(|(path, step)| match step { + UnsafeTemplatePlanStep::FailedPlan { error } => Some((path, error)), + _ => None, + }) + } +} + +#[derive(Debug, Default)] +pub struct TemplatePlanBuilder { + file_steps: BTreeMap>, +} + +impl TemplatePlanBuilder { + pub fn new() -> Self { + Self::default() + } + + pub fn entries(&self) -> &BTreeMap> { + &self.file_steps + } + + pub fn add(&mut self, name: impl Into, in_memory_fs: &InMemoryFs) { + let name = name.into(); + for (path, new) in in_memory_fs.files() { + let last_step = match self.last_step(path) { + Some(step) => Some(step.step.as_ref().ok()), + None => Some(None), + }; + + let Some(last_step) = last_step else { + continue; + }; + + let next_step = self.plan_next_step_for_file(path, new, last_step); + + self.file_steps + .entry(path.clone()) + .or_default() + .push(FallibleNamedTemplatePlanStep { + name: name.clone(), + step: next_step, + }); + } + } + + fn plan_next_step_for_file( + &self, + path: &Path, + new: &str, + last_step: Option<&TemplatePlanStep>, + ) -> anyhow::Result { + let current = if let Some(existing) = last_step { + Some(existing.planned_contents().to_string()) + } else { + path.exists() + .then(|| fs::read_to_string(path)) + .transpose()? + }; + + Ok(match current { + None => TemplatePlanStep::Create { + new: new.to_string(), + }, + Some(current) => { + if current == *new { + TemplatePlanStep::SkipSame { current } + } else if let Some(merged) = try_merge(path, ¤t, new)? { + if merged == current { + TemplatePlanStep::SkipSame { current } + } else { + TemplatePlanStep::Merge { + new: merged, + current, + } + } + } else { + TemplatePlanStep::Overwrite { + current, + new: new.to_string(), + } + } + } + }) + } + + fn last_step(&self, path: &Path) -> Option<&FallibleNamedTemplatePlanStep> { + self.file_steps.get(path).and_then(|steps| steps.last()) + } + + pub fn build(self) -> TemplatePlan { + let mut file_steps = BTreeMap::new(); + + for (path, steps) in self.file_steps { + let flattened_step = + steps + .into_iter() + .map(|named_step| named_step.step) + .reduce(|flattened, next| { + let flattened = flattened?; + let next = next?; + + Ok(match flattened { + TemplatePlanStep::Create { .. } => match next { + TemplatePlanStep::Create { .. } => { + bail!("Illegal template step sequence: Create, Create"); + } + TemplatePlanStep::Overwrite { .. } => { + bail!("Illegal template step sequence: Create, Overwrite"); + } + TemplatePlanStep::Merge { current: _, new } => { + TemplatePlanStep::Create { new } + } + TemplatePlanStep::SkipSame { current } => { + TemplatePlanStep::Create { new: current } + } + }, + TemplatePlanStep::Overwrite { + current: prev_current, + new: prev_new, + } => match next { + TemplatePlanStep::Create { .. } => { + bail!("Illegal template step sequence: Overwrite, Create"); + } + TemplatePlanStep::Overwrite { current, new } => { + TemplatePlanStep::Overwrite { current, new } + } + TemplatePlanStep::Merge { .. } => { + bail!("Illegal template step sequence: Overwrite, Merge") + } + TemplatePlanStep::SkipSame { .. } => TemplatePlanStep::Overwrite { + current: prev_current, + new: prev_new, + }, + }, + TemplatePlanStep::Merge { + current: prev_current, + new: prev_new, + } => match next { + TemplatePlanStep::Create { .. } => { + bail!("Illegal template step sequence: Merge, Create"); + } + TemplatePlanStep::Overwrite { .. } => { + bail!("Illegal template step sequence: Merge, Overwrite"); + } + TemplatePlanStep::Merge { current: _, new } => { + if prev_current == new { + TemplatePlanStep::SkipSame { + current: prev_current, + } + } else { + TemplatePlanStep::Merge { + current: prev_current, + new, + } + } + } + TemplatePlanStep::SkipSame { .. } => TemplatePlanStep::Merge { + current: prev_current, + new: prev_new, + }, + }, + TemplatePlanStep::SkipSame { .. } => match next { + TemplatePlanStep::Create { .. } => { + bail!("Illegal template step sequence: SkipSame, Create"); + } + TemplatePlanStep::Overwrite { .. } => { + bail!("Illegal template step sequence: SkipSame, Overwrite"); + } + TemplatePlanStep::Merge { current, new } => { + TemplatePlanStep::Merge { current, new } + } + TemplatePlanStep::SkipSame { current } => { + TemplatePlanStep::SkipSame { current } + } + }, + }) + }); + + if let Some(flattened_step) = flattened_step { + file_steps.insert(path.to_path_buf(), flattened_step); + } + } + + TemplatePlan { file_steps } + } +} + +#[derive(Debug)] +pub struct FallibleNamedTemplatePlanStep { + pub name: String, + pub step: anyhow::Result, +} + +impl TemplatePlanStep { + fn planned_contents(&self) -> &str { + match self { + TemplatePlanStep::Create { new } => new, + TemplatePlanStep::Overwrite { new, .. } => new, + TemplatePlanStep::Merge { new, .. } => new, + TemplatePlanStep::SkipSame { current } => current, + } + } +} + +fn try_merge(path: &Path, current: &str, new: &str) -> anyhow::Result> { + let file_name = fs::file_name_to_str(path)?; + + fn merge(file_name: &str, current: &str, new: &str) -> anyhow::Result> { + Ok(match file_name { + ".gitignore" => Some(edit::gitignore::merge(current, new)), + "AGENTS.md" => Some(merge_with_validation( + current, + new, + edit::agents_md::validate, + edit::agents_md::merge_guides, + )?), + "golem.yaml" => Some(merge_with_validation( + current, + new, + validate_yaml, + edit::golem_yaml::merge_documents, + )?), + "main.ts" => Some(merge_with_validation( + current, + new, + edit::main_ts::validate, + edit::main_ts::merge_reexports, + )?), + "lib.rs" => Some(merge_with_validation( + current, + new, + edit::main_rs::validate, + edit::main_rs::merge_reexports, + )?), + "package.json" => Some(merge_with_validation( + current, + new, + validate_json, + edit::json::merge_object, + )?), + "Cargo.toml" => Some(merge_with_validation( + current, + new, + validate_toml, + edit::cargo_toml::merge_documents, + )?), + "tsconfig.json" => Some(merge_with_validation( + current, + new, + validate_json, + edit::json::merge_object, + )?), + _ => None, + }) + } + + merge(file_name, current, new) + .inspect_err(|_err| { + warn!("merge: file name: {}", file_name); + warn!("merge: current:\n{}\n", current); + warn!("merge: new:\n{}\n", new); + }) + .with_context(|| format!("Failed to merge {}", file_name.log_color_error_highlight())) +} + +fn ensure_valid( + label: &str, + source: &str, + parse: fn(&str) -> anyhow::Result<()>, +) -> anyhow::Result<()> { + parse(source).with_context(|| format!("{} content is not valid", label))?; + Ok(()) +} + +fn merge_with_validation( + current: &str, + new: &str, + parse: fn(&str) -> anyhow::Result<()>, + merge: fn(&str, &str) -> anyhow::Result, +) -> anyhow::Result { + ensure_valid("current", current, parse)?; + ensure_valid("new", new, parse)?; + let merged = merge(current, new)?; + ensure_valid("merged", &merged, parse)?; + Ok(merged) +} + +fn validate_json(source: &str) -> anyhow::Result<()> { + serde_json::from_str::(source)?; + Ok(()) +} + +fn validate_toml(source: &str) -> anyhow::Result<()> { + source.parse::()?; + Ok(()) +} + +fn validate_yaml(source: &str) -> anyhow::Result<()> { + serde_yaml::from_str::(source)?; + Ok(()) +} + +#[derive(Debug, Clone, PartialEq, Eq)] +pub enum MultiComponentLayoutUpgradePlanStep { + Move { source: PathBuf, target: PathBuf }, +} + +#[derive(Debug, Default, Clone, PartialEq, Eq)] +pub struct MultiComponentLayoutUpgradePlan { + steps: Vec, +} + +impl MultiComponentLayoutUpgradePlan { + pub fn new() -> Self { + Self::default() + } + + pub fn add(&mut self, step: MultiComponentLayoutUpgradePlanStep) { + self.steps.push(step); + } + + pub fn is_empty(&self) -> bool { + self.steps.is_empty() + } + + pub fn steps(&self) -> &[MultiComponentLayoutUpgradePlanStep] { + &self.steps + } +} diff --git a/cli/golem-cli/src/app/template/repo.rs b/cli/golem-cli/src/app/template/repo.rs index 3930e053c5..f246445d97 100644 --- a/cli/golem-cli/src/app/template/repo.rs +++ b/cli/golem-cli/src/app/template/repo.rs @@ -14,8 +14,8 @@ use crate::app::template::metadata::AppTemplateMetadata; use crate::app::template::template::{ - AppTemplate, AppTemplateCommon, AppTemplateCommonOnDemand, AppTemplateComponent, - AppTemplatesForLanguage, + AppTemplate, AppTemplateAgent, AppTemplateCommon, AppTemplateCommonOnDemand, + AppTemplateComponent, AppTemplatesForLanguage, }; use crate::app::template::AppTemplateName; use crate::fs; @@ -79,26 +79,45 @@ impl AppTemplateRepo { pub fn component_templates( &self, language: GuestLanguage, - ) -> anyhow::Result<&BTreeMap> { + ) -> anyhow::Result<&Option> { Ok(&self.language_templates(language)?.component) } pub fn component_template( &self, language: GuestLanguage, + ) -> anyhow::Result<&Option> { + Ok(&self.language_templates(language)?.component) + } + + pub fn agent_templates( + &self, + language: GuestLanguage, + ) -> anyhow::Result<&BTreeMap> { + Ok(&self.language_templates(language)?.agent) + } + + pub fn agent_template( + &self, template_name: &AppTemplateName, - ) -> anyhow::Result<&AppTemplateComponent> { - self.language_templates(language)? - .component + ) -> anyhow::Result<&AppTemplateAgent> { + self.language_templates(template_name.language())? + .agent .get(template_name) - .ok_or_else(|| anyhow!("{} template '{}' not found", language, template_name)) + .ok_or_else(|| { + anyhow!( + "{} template '{}' not found", + template_name.language(), + template_name + ) + }) } - pub fn search_component_templates( + pub fn search_agent_templates( &self, language: Option, query: Option<&str>, - ) -> BTreeMap> { + ) -> BTreeMap> { let query = query.map(|q| q.to_lowercase()); let query = query.as_ref(); @@ -109,11 +128,11 @@ impl AppTemplateRepo { ( *lang, lang_templates - .component + .agent .iter() .filter(|(name, template)| { query.is_none_or(|q| { - name.as_str().to_lowercase().contains(q) + name.name().to_lowercase().contains(q) || template.0.description().to_lowercase().contains(q) }) }) @@ -157,9 +176,18 @@ impl AppTemplateRepo { entry.common_on_demand = Some(AppTemplateCommonOnDemand(template)); } AppTemplateMetadata::Component { .. } => { + if entry.component.is_some() { + bail!( + "Multiple component templates found for {}", + template.language.name() + ); + } + entry.component = Some(AppTemplateComponent(template)); + } + AppTemplateMetadata::Agent { .. } => { entry - .component - .insert(template.name.clone(), AppTemplateComponent(template)); + .agent + .insert(template.name.clone(), AppTemplateAgent(template)); } } } diff --git a/cli/golem-cli/src/app/template/template.rs b/cli/golem-cli/src/app/template/template.rs index cd16ff6726..44f6a9d5c3 100644 --- a/cli/golem-cli/src/app/template/template.rs +++ b/cli/golem-cli/src/app/template/template.rs @@ -13,8 +13,8 @@ // limitations under the License. use crate::app::template::generator::{ - generate_commons_by_template, generate_component_by_template, - generate_on_demand_commons_by_template, + generate_agent_by_template, generate_commons_by_template, generate_component_by_template, + generate_on_demand_commons_by_template, InMemoryFs, StdFs, }; use crate::app::template::metadata::AppTemplateMetadata; use crate::fs; @@ -24,33 +24,73 @@ use golem_common::base_model::component::ComponentName; use serde_derive::{Deserialize, Serialize}; use std::collections::BTreeMap; use std::fmt; -use std::fmt::Formatter; +use std::fmt::{Display, Formatter}; use std::path::{Path, PathBuf}; +use std::str::FromStr; #[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)] -pub struct AppTemplateName(String); +pub struct AppTemplateName { + language: GuestLanguage, + name: String, + + rendered_name: String, +} impl AppTemplateName { - pub fn as_str(&self) -> &str { - &self.0 + pub fn new(language: GuestLanguage, name: String) -> Self { + let rendered_name = { + if name == "default" { + language.id().to_string() + } else { + format!("{}/{}", language.id(), name) + } + }; + + Self { + language, + name, + rendered_name, + } + } + + pub fn language(&self) -> GuestLanguage { + self.language } -} -impl From<&str> for AppTemplateName { - fn from(s: &str) -> Self { - AppTemplateName(s.to_string()) + pub fn name(&self) -> &str { + &self.name + } + + pub fn as_str(&self) -> &str { + &self.rendered_name } } -impl From for AppTemplateName { - fn from(s: String) -> Self { - AppTemplateName(s) +impl FromStr for AppTemplateName { + type Err = String; + + fn from_str(s: &str) -> Result { + let Some((lang, name)) = s.split_once("/") else { + return match GuestLanguage::from_id_string(s) { + Some(language) => Ok(Self::new(language, "default".to_string())), + None => Err(format!("Missing language prefix in template name: {}", s)), + }; + }; + + let language = GuestLanguage::from_id_string(lang).ok_or_else(|| { + format!( + "Failed to parse template language prefix {} for template name: {}", + lang, s + ) + })?; + + Ok(Self::new(language, name.to_string())) } } -impl fmt::Display for AppTemplateName { +impl Display for AppTemplateName { fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result { - write!(f, "{}", self.0) + f.write_str(self.as_str()) } } @@ -66,7 +106,7 @@ pub struct AppTemplate { impl AppTemplate { pub fn load(language: GuestLanguage, template_path: &Path) -> anyhow::Result { Ok(Self { - name: fs::file_name_to_str(template_path)?.into(), + name: AppTemplateName::new(language, fs::file_name_to_str(template_path)?.to_string()), language, template_path: template_path.into(), metadata: AppTemplateMetadata::load(template_path)?, @@ -79,6 +119,7 @@ impl AppTemplate { AppTemplateMetadata::Common { dev_only, .. } => dev_only, AppTemplateMetadata::CommonOnDemand { dev_only, .. } => dev_only, AppTemplateMetadata::Component { dev_only, .. } => dev_only, + AppTemplateMetadata::Agent { dev_only, .. } => dev_only, }) .unwrap_or(false) } @@ -90,14 +131,7 @@ impl AppTemplate { description.as_deref().unwrap_or("") } AppTemplateMetadata::Component { description, .. } => description.as_str(), - } - } - - pub fn skip_if_exists(&self) -> Option<&Path> { - match &self.metadata { - AppTemplateMetadata::Common { skip_if_exists, .. } => skip_if_exists.as_deref(), - AppTemplateMetadata::CommonOnDemand { .. } => None, - AppTemplateMetadata::Component { .. } => None, + AppTemplateMetadata::Agent { description, .. } => description.as_str(), } } @@ -105,21 +139,50 @@ impl AppTemplate { &self, application_name: &ApplicationName, target_path: &Path, - ) -> anyhow::Result<()> { - generate_commons_by_template(self, application_name, target_path) + ) -> anyhow::Result { + generate_commons_by_template(self, application_name, target_path, InMemoryFs::new()) } - fn generate_on_demand_commons(&self, target_path: &Path) -> anyhow::Result<()> { - generate_on_demand_commons_by_template(self, target_path) + fn generate_on_demand_commons( + &self, + application_dir: &Path, + target_path: &Path, + ) -> anyhow::Result<()> { + generate_on_demand_commons_by_template(self, application_dir, target_path, StdFs) } fn generate_component( &self, - target_path: &Path, application_name: &ApplicationName, + application_dir: &Path, component_name: &ComponentName, - ) -> anyhow::Result<()> { - generate_component_by_template(self, target_path, application_name, component_name) + component_dir: &Path, + ) -> anyhow::Result { + generate_component_by_template( + self, + application_name, + application_dir, + component_name, + component_dir, + InMemoryFs::new(), + ) + } + + fn generate_agent( + &self, + application_name: &ApplicationName, + application_dir: &Path, + component_name: &ComponentName, + component_dir: &Path, + ) -> anyhow::Result { + generate_agent_by_template( + self, + application_name, + application_dir, + component_name, + component_dir, + InMemoryFs::new(), + ) } } @@ -131,7 +194,7 @@ impl AppTemplateCommon { &self, application_name: &ApplicationName, target_path: &Path, - ) -> anyhow::Result<()> { + ) -> anyhow::Result { self.0.generate_commons(application_name, target_path) } } @@ -140,8 +203,9 @@ impl AppTemplateCommon { pub struct AppTemplateCommonOnDemand(pub AppTemplate); impl AppTemplateCommonOnDemand { - pub fn generate(&self, target_path: &Path) -> anyhow::Result<()> { - self.0.generate_on_demand_commons(target_path) + pub fn generate(&self, application_dir: &Path, target_path: &Path) -> anyhow::Result<()> { + self.0 + .generate_on_demand_commons(application_dir, target_path) } } @@ -152,11 +216,36 @@ impl AppTemplateComponent { pub fn generate( &self, application_name: &ApplicationName, + application_dir: &Path, component_name: &ComponentName, - target_path: &Path, - ) -> anyhow::Result<()> { - self.0 - .generate_component(target_path, application_name, component_name) + component_dir: &Path, + ) -> anyhow::Result { + self.0.generate_component( + application_name, + application_dir, + component_name, + component_dir, + ) + } +} + +#[derive(Debug, Clone)] +pub struct AppTemplateAgent(pub AppTemplate); + +impl AppTemplateAgent { + pub fn generate( + &self, + application_name: &ApplicationName, + application_dir: &Path, + component_name: &ComponentName, + component_dir: &Path, + ) -> anyhow::Result { + self.0.generate_agent( + application_name, + application_dir, + component_name, + component_dir, + ) } } @@ -164,5 +253,6 @@ impl AppTemplateComponent { pub struct AppTemplatesForLanguage { pub common: Option, pub common_on_demand: Option, - pub component: BTreeMap, + pub component: Option, + pub agent: BTreeMap, } diff --git a/cli/golem-cli/src/command.rs b/cli/golem-cli/src/command.rs index 43b9150a28..ad9a69c692 100644 --- a/cli/golem-cli/src/command.rs +++ b/cli/golem-cli/src/command.rs @@ -13,6 +13,7 @@ // limitations under the License. use self::api::agent_secret::AgentSecretSubcommand; +use crate::app::template::AppTemplateName; use crate::command::api::ApiSubcommand; use crate::command::cloud::CloudSubcommand; use crate::command::component::ComponentSubcommand; @@ -591,12 +592,24 @@ pub enum GolemCliCommandPartialMatch { #[derive(Debug, Subcommand)] pub enum GolemCliSubcommand { // App scoped root commands--------------------------------------------------------------------- - /// Create a new application + /// Create a new application, component, or agent New { - /// Application folder name where the new application should be created + /// Application folder path where the new application should be created, use `.` for the current directory or for an existing application + application_path: Option, + /// Optional application name, defaults to the folder name (if that is a valid application name) + #[arg(long)] application_name: Option, - /// Languages that the application should support - language: Vec, + /// Optional existing or new component name, by default uses an existing component or name the component based on the application name and the used language + #[arg(long)] + component_name: Option, + /// Optional template names to apply, in non-interactive mode at least one template must be specified + #[arg(long)] + template: Vec, + }, + /// List or search application templates + Templates { + /// Optional filter for language or template name + filter: Option, }, /// Build all or selected components in the application Build { @@ -914,27 +927,13 @@ pub mod environment { } pub mod component { - use crate::command::shared_args::{ - ComponentTemplateName, OptionalComponentName, OptionalComponentNames, - }; + use crate::command::shared_args::{OptionalComponentName, OptionalComponentNames}; use crate::model::worker::AgentUpdateMode; use clap::Subcommand; - use golem_common::model::component::{ComponentName, ComponentRevision}; + use golem_common::model::component::ComponentRevision; #[derive(Debug, Subcommand)] pub enum ComponentSubcommand { - /// Create new component in the current application - New { - /// Template to be used for the new component - component_template: Option, - /// Name of the new component in 'namespace:name' form - component_name: Option, - }, - /// List or search component templates - Templates { - /// Optional filter for language or template name - filter: Option, - }, /// List deployed component versions' metadata List, /// Get the latest or selected revision of deployed component metadata @@ -1645,12 +1644,7 @@ pub fn builtin_exec_subcommands() -> BTreeSet { fn help_target_to_subcommand_names(target: ShowClapHelpTarget) -> Vec<&'static str> { match target { - ShowClapHelpTarget::AppNew => { - vec!["new"] - } - ShowClapHelpTarget::ComponentNew => { - vec!["component", "new"] - } + ShowClapHelpTarget::AppNew => vec!["new"], } } diff --git a/cli/golem-cli/src/command_handler/app/mod.rs b/cli/golem-cli/src/command_handler/app/mod.rs index 7d7c4b92b7..ccf71d16db 100644 --- a/cli/golem-cli/src/command_handler/app/mod.rs +++ b/cli/golem-cli/src/command_handler/app/mod.rs @@ -13,7 +13,7 @@ // limitations under the License. use crate::app::error::CustomCommandError; -use crate::app::template::{AppTemplateCommon, AppTemplateComponent, AppTemplateName}; +use crate::app::template::AppTemplateName; use crate::command::builtin_exec_subcommands; use crate::command::exec::ExecSubcommand; use crate::command::shared_args::{ @@ -23,16 +23,16 @@ use crate::command_handler::app::deploy_diff::{ DeployDetails, DeployDiff, DeployDiffKind, DeployQuickDiff, RollbackDetails, RollbackDiff, RollbackEntityDetails, RollbackQuickDiff, }; +use crate::command_handler::app::template::TemplateHandler; use crate::command_handler::Handlers; use crate::context::Context; use crate::diagnose::diagnose; use crate::error::service::AnyhowMapServiceError; -use crate::error::{HintError, NonSuccessfulExit, ShowClapHelpTarget}; -use crate::fs; +use crate::error::{HintError, NonSuccessfulExit}; use crate::fuzzy::{Error, FuzzySearch}; use crate::log::{ - log_action, log_anyhow_error, log_error, log_failed_to, log_finished_ok, - log_finished_up_to_date, log_skipping_up_to_date, log_warn, log_warn_action, logged_failed_to, + log_action, log_error, log_failed_to, log_finished_ok, log_finished_up_to_date, + log_skipping_up_to_date, log_warn, log_warn_action, logged_failed_to, logged_finished_or_failed_to, logln, LogColorize, LogIndent, LogOutput, Output, }; use crate::model::app::{ @@ -70,12 +70,13 @@ use golem_common::model::domain_registration::Domain; use golem_common::model::environment::EnvironmentId; use itertools::Itertools; use std::collections::{BTreeMap, HashMap}; -use std::path::{Path, PathBuf}; +use std::path::PathBuf; use std::sync::Arc; use strum::IntoEnumIterator; use tracing::debug; mod deploy_diff; +mod template; pub struct AppCommandHandler { ctx: Arc, @@ -94,134 +95,19 @@ impl AppCommandHandler { pub async fn cmd_new( &self, + application_path: Option, application_name: Option, - languages: Vec, + component_name: Option, + template_names: Vec, ) -> anyhow::Result<()> { - self.ctx.silence_app_context_init().await; - - { - let app_ctx = self.ctx.app_context_lock().await; - let app_ctx = app_ctx.opt(); - match app_ctx { - Ok(None) => { - // NOP, there is no app - } - _ => { - log_error("The current directory is part of an existing application."); - logln(""); - logln("Switch to a directory that is not part of an application or use"); - logln(format!( - "the '{}' command to create a component in the current application.", - "component new".log_color_highlight() - )); - logln(""); - bail!(NonSuccessfulExit); - } - } - } - - let Some((application_name, components)) = ({ - match application_name { - Some(application_name) => Some((application_name, vec![])), - None => self - .ctx - .interactive_handler() - .select_new_app_name_and_components()? - .map(|new_app| (new_app.app_name, new_app.templated_component_names)), - } - }) else { - log_error("Both APPLICATION_NAME and LANGUAGES are required in non-interactive mode"); - logln(""); - bail!(HintError::ShowClapHelp(ShowClapHelpTarget::AppNew)); - }; - - if components.is_empty() && languages.is_empty() { - log_error("LANGUAGES are required in non-interactive mode"); - logln(""); - logln("Either specify languages or use the new command without APPLICATION_NAME to use the interactive wizard!"); - logln(""); - bail!(HintError::ShowClapHelp(ShowClapHelpTarget::AppNew)); - } - - let app_dir = PathBuf::from(&application_name.0); - if app_dir.exists() { - bail!( - "Application directory already exists: {}", - app_dir.log_color_error_highlight() - ); - } - - fs::create_dir_all(&app_dir)?; - log_action( - "Created", - format!( - "application directory: {}", - app_dir.display().to_string().log_color_highlight() - ), - ); - - let app_template_repo = self.ctx.app_template_repo()?; - - if components.is_empty() { - { - let _indent = LogIndent::new(); - for language in &languages { - if let Some(common_template) = app_template_repo.common_template(*language)? { - match common_template.generate(&application_name, &app_dir) { - Ok(()) => { - log_action( - "Added", - format!( - "common template for {}", - common_template.0.language.name().log_color_highlight() - ), - ); - } - Err(error) => { - bail!("Failed to add common template for new app: {:#}", error) - } - } - } - } - } - } else { - for (template_name, component_name) in &components { - log_action( - "Adding", - format!("component {}", component_name.0.log_color_highlight()), - ); - - self.generate_component(&application_name, component_name, &app_dir, template_name)? - } - } - - log_action( - "Created", - format!("application {}", application_name.0.log_color_highlight()), - ); - - logln(""); - - if components.is_empty() { - logln( - format!( - "To add components to the application, switch to the {} directory, and use the `{}` command.", - application_name.0.log_color_highlight(), - "component new".log_color_highlight(), - ) - ); - } else { - logln( - format!( - "Switch to the {} directory, and use the `{}` or `{}` commands to use your new application!", - application_name.0.log_color_highlight(), - "build".log_color_highlight(), - "deploy".log_color_highlight(), - ) - ); - } - - Ok(()) + TemplateHandler::new(self) + .cmd_new( + application_path, + application_name, + component_name, + template_names, + ) + .await } pub async fn cmd_build( @@ -493,6 +379,23 @@ impl AppCommandHandler { Ok(()) } + pub fn cmd_templates(&self, filter: Option) -> anyhow::Result<()> { + match filter { + Some(filter) => { + if let Some(language) = GuestLanguage::from_string(filter.clone()) { + self.ctx + .app_handler() + .log_templates_help(Some(language), None) + } else { + self.ctx + .app_handler() + .log_templates_help(None, Some(&filter)) + } + } + None => self.ctx.app_handler().log_templates_help(None, None), + } + } + pub async fn cmd_list_agent_types(&self) -> anyhow::Result<()> { let environment = self .ctx @@ -1976,6 +1879,8 @@ impl AppCommandHandler { Ok(true) } + // TODO: FCL + /* pub fn get_templates( &self, requested_template_name: &str, @@ -2037,6 +1942,7 @@ impl AppCommandHandler { pub fn generate_component( &self, + template_apply_plan: &mut TemplateApplyPlan, application_name: &ApplicationName, component_name: &ComponentName, app_dir: &Path, @@ -2045,24 +1951,23 @@ impl AppCommandHandler { let (common_template, component_template) = self.get_templates(template_name)?; if let Some(common_template) = common_template { - common_template.generate(application_name, app_dir)?; + template_apply_plan.add( + common_template.0.name.as_str(), + &common_template.generate(application_name, app_dir)?, + )?; } - match component_template.generate(application_name, component_name, app_dir) { - Ok(()) => { - log_action( - "Added", - format!( - "new app component {}", - component_name.0.log_color_highlight() - ), - ); - } - Err(error) => bail!("Failed to create new app component: {}", error), - } + template_apply_plan.add( + component_template.0.name.as_str(), + &component_template.generate( + application_name, + component_name, + app_dir + )?, + )?; Ok(()) - } + }*/ pub fn log_languages_help(&self) { logln(format!("\n{}", "Available languages:".underline().bold(),)); @@ -2092,25 +1997,16 @@ impl AppCommandHandler { let templates = self .ctx .app_template_repo()? - .search_component_templates(language_filter, template_filter); + .search_agent_templates(language_filter, template_filter); for (language, templates) in templates { logln(format!("- {}", language.to_string().bold())); for (template_name, template) in templates { - if template_name.as_str() == "default" { - logln(format!( - " - {}: {}", - language.id().bold(), - template.0.description(), - )); - } else { - logln(format!( - " - {}/{}: {}", - language.id().bold(), - template.0.name.as_str().bold(), - template.0.description(), - )); - } + logln(format!( + " - {}: {}", + template_name.as_str().bold(), + template.0.description(), + )); } } diff --git a/cli/golem-cli/src/command_handler/app/template.rs b/cli/golem-cli/src/command_handler/app/template.rs new file mode 100644 index 0000000000..299b46f402 --- /dev/null +++ b/cli/golem-cli/src/command_handler/app/template.rs @@ -0,0 +1,949 @@ +// Copyright 2024-2026 Golem Cloud +// +// Licensed under the Golem Source License v1.1 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://license.golem.cloud/LICENSE +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +use crate::app::context::validated_to_anyhow; +use crate::app::template::{ + AppTemplateAgent, AppTemplateCommon, AppTemplateComponent, AppTemplateName, + MultiComponentLayoutUpgradePlan, MultiComponentLayoutUpgradePlanStep, SafeTemplatePlan, + SafeTemplatePlanStep, TemplatePlan, TemplatePlanBuilder, UnsafeTemplatePlan, +}; +use crate::command_handler::app::AppCommandHandler; +use crate::command_handler::Handlers; +use crate::context::Context; +use crate::error::{HintError, NonSuccessfulExit, ShowClapHelpTarget}; +use crate::fs; +use crate::log::{ + log_action, log_anyhow_error, log_error, log_failed_to, log_finished_ok, + log_skipping_up_to_date, logln, LogColorize, LogIndent, +}; +use crate::model::text::diff::log_unified_diff; +use crate::model::GuestLanguage; +use crate::validation::ValidationBuilder; +use anyhow::{anyhow, bail}; +use colored::Colorize; +use golem_common::model::application::ApplicationName; +use golem_common::model::component::ComponentName; +use golem_common::model::diff; +use heck::ToKebabCase; +use std::collections::{BTreeMap, BTreeSet}; +use std::path::{Path, PathBuf}; +use std::sync::Arc; +use tracing::debug; + +#[derive(Debug)] +struct ExistingComponent { + pub language: GuestLanguage, + pub dir: PathBuf, // relative path, defined in the manifest 'dir' property + pub component_dir: PathBuf, // canonical resolved dir + pub manifest_source_dir: PathBuf, // source of the manifest, where the component is defined +} + +#[derive(Debug)] +struct NewCommandContext { + pub application_name_candidate: String, + pub application_path: PathBuf, + pub existing_components: BTreeMap, +} + +#[derive(Debug)] +struct NewCommandSelections { + pub application_name: ApplicationName, + pub template_names: Vec, + pub component_name: Option, +} + +#[derive(Debug)] +struct NewTemplateComponentMapping { + pub template_to_component: BTreeMap, +} + +#[derive(Debug)] +struct NewTemplateInputs { + pub common_templates: BTreeMap, + pub component_templates: BTreeMap, + pub agent_templates: BTreeMap, + pub all_component_directories: BTreeMap, +} + +pub struct TemplateHandler { + ctx: Arc, +} + +impl TemplateHandler { + pub fn new(handler: &AppCommandHandler) -> Self { + Self { + ctx: handler.ctx.clone(), + } + } + + pub async fn cmd_new( + &self, + application_path: Option, + application_name: Option, + component_name: Option, + template_names: Vec, + ) -> anyhow::Result<()> { + self.ctx.silence_app_context_init().await; + + let context = self + .resolve_new_command_context(application_path, application_name) + .await?; + + let selections = self.resolve_new_command_selections( + context.application_name_candidate, + template_names, + component_name, + )?; + + let template_mapping = self.resolve_new_template_component_mapping( + &selections.application_name, + &selections.template_names, + selections.component_name.as_ref(), + &context.existing_components, + )?; + + debug!( + "template to component map: {:#?}", + template_mapping.template_to_component + ); + + let template_inputs = self.resolve_new_template_inputs( + &selections.application_name, + &context.application_path, + &selections.template_names, + &template_mapping.template_to_component, + &context.existing_components, + )?; + + let template_plan = self.build_new_template_plan( + &selections.application_name, + &context.application_path, + &template_mapping.template_to_component, + &template_inputs, + )?; + + let (safe_template_plan, unsafe_template_plan) = template_plan.partition(); + + self.validate_new_template_plan(&unsafe_template_plan)?; + self.log_new_template_plan(&safe_template_plan); + + if !safe_template_plan.is_empty() + && !self + .ctx + .interactive_handler() + .confirm_template_plan_apply()? + { + bail!(NonSuccessfulExit); + } + + self.apply_new_template_plan(&safe_template_plan)?; + + logln(""); + log_finished_ok("applying template(s)"); + + Ok(()) + } + + async fn resolve_new_command_context( + &self, + application_path: Option, + application_name: Option, + ) -> anyhow::Result { + let is_dot_application_path = application_path.as_deref() == Some(Path::new(".")); + + let app_ctx = self.ctx.app_context_lock().await; + let app_ctx = app_ctx.opt()?; + + match app_ctx { + Some(app_ctx) => { + if !is_dot_application_path { + logln(""); + log_error("Cannot create new application in existing application directory"); + logln(""); + logln("To add new agents or component to the current application, use the 'golem new .' command!"); + logln(""); + logln("To create a new application, switch to new directory without one!"); + bail!(NonSuccessfulExit); + } + + if application_name.is_some() { + logln(""); + log_error( + "Specifying the application name is not allowed in an existing application directory", + ); + logln(""); + logln("Use `golem new .` for adding new templates to the current application,"); + logln("or switch to a different directory!"); + } + + let existing_components = app_ctx + .component_names() + .into_iter() + .map(|component_name| { + let component = app_ctx.application().component(&component_name); + let existing_component = ExistingComponent { + language: component.guess_language().ok_or_else(|| { + anyhow!( + "Failed to determine language for component {}", + component_name + ) + })?, + dir: component + .dir() + .unwrap_or_else(|| Path::new(",")) + .to_path_buf(), + component_dir: component.component_dir().to_path_buf(), + manifest_source_dir: fs::parent_or_err(component.source())? + .to_path_buf(), + }; + + Ok::<_, anyhow::Error>((component_name, existing_component)) + }) + .collect::, _>>()?; + + Ok(NewCommandContext { + application_name_candidate: app_ctx.application().application_name().0.clone(), + application_path: app_ctx.application().app_root_dir().to_path_buf(), + existing_components, + }) + } + None => { + let application_path = application_path + .as_deref() + .unwrap_or_else(|| Path::new(".")); + let application_dir = { + if application_path.is_absolute() { + fs::normalize_path_lexically(application_path) + } else { + fs::normalize_path_lexically( + &std::env::current_dir()?.join(application_path), + ) + } + }; + let application_name_candidate = match application_name { + Some(application_name) => application_name.0, + None => fs::file_name_to_str(&application_dir)?.to_string(), + }; + + Ok(NewCommandContext { + application_name_candidate, + application_path: application_dir, + existing_components: BTreeMap::new(), + }) + } + } + } + + fn resolve_new_command_selections( + &self, + application_name_candidate: String, + template_names: Vec, + component_name: Option, + ) -> anyhow::Result { + let application_name = match application_name_candidate.parse::() { + Ok(application_name) => application_name, + Err(err) => match self + .ctx + .interactive_handler() + .select_new_app_name(Some(&application_name_candidate))? + { + Some(application_name) => application_name, + None => { + logln(""); + log_error(format!("In non-interactive mode, APPLICATION_PATH must end with a valid application name: {}", err)); + bail!(HintError::ShowClapHelp(ShowClapHelpTarget::AppNew)); + } + }, + }; + + let template_names = if template_names.is_empty() { + match self + .ctx + .interactive_handler() + .select_new_app_templates_ts()? + { + Some(template_names) => template_names, + None => { + logln(""); + log_error("In non-interactive mode, at least one template must be specified"); + bail!(HintError::ShowClapHelp(ShowClapHelpTarget::AppNew)); + } + } + } else { + template_names + }; + + Ok(NewCommandSelections { + application_name, + template_names, + component_name, + }) + } + + fn resolve_new_template_component_mapping( + &self, + application_name: &ApplicationName, + template_names: &[AppTemplateName], + component_name: Option<&ComponentName>, + existing_components: &BTreeMap, + ) -> anyhow::Result { + let mut template_to_component = BTreeMap::new(); + let mut validation = ValidationBuilder::new(); + + for template_name in template_names { + match component_name { + Some(component_name) => { + if let Some(existing_component) = existing_components.get(component_name) { + if template_name.language() != existing_component.language { + validation.add_error(format!( + "Cannot add {} template {} to existing {} component {}, language mismatch!", + template_name.language().name().log_color_highlight(), + template_name.as_str().log_color_error_highlight(), + existing_component.language.name().log_color_highlight(), + component_name.as_str().log_color_highlight(), + )); + continue; + } + } + + template_to_component.insert(template_name.clone(), component_name.clone()); + } + None => { + let matching_components = existing_components + .iter() + .filter_map(|(component_name, component)| { + (component.language == template_name.language()) + .then_some(component_name) + }) + .collect::>(); + + match matching_components.as_slice() { + [] => { + let component_name = ComponentName::try_from( + format!( + "{}:{}-main", + application_name.0, + template_name.language().id() + ) + .as_str(), + ) + .map_err(|err| anyhow!(err))?; + template_to_component.insert(template_name.clone(), component_name); + } + [component_name] => { + template_to_component + .insert(template_name.clone(), (*component_name).clone()); + } + _ => { + let matching_components = + matching_components.into_iter().cloned().collect::>(); + + let selected_component = self + .ctx + .interactive_handler() + .select_component_for_template( + template_name, + matching_components, + )?; + + let Some(selected_component) = selected_component else { + logln(""); + log_error(format!( + "In non-interactive mode, --component-name must be specified when template {} matches multiple components", + template_name.as_str().log_color_error_highlight() + )); + bail!(HintError::ShowClapHelp(ShowClapHelpTarget::AppNew)); + }; + + template_to_component.insert(template_name.clone(), selected_component); + } + } + } + } + } + + validated_to_anyhow( + "Failed to map templates to components", + validation.build(()), + None, + )?; + + Ok(NewTemplateComponentMapping { + template_to_component, + }) + } + + fn resolve_new_template_inputs( + &self, + application_name: &ApplicationName, + application_path: &Path, + template_names: &[AppTemplateName], + template_to_component: &BTreeMap, + existing_components: &BTreeMap, + ) -> anyhow::Result { + let app_template_repo = self.ctx.app_template_repo()?; + + let mut common_templates = BTreeMap::new(); + let mut component_templates = BTreeMap::new(); + let mut agent_templates = BTreeMap::new(); + + for template_name in template_names { + let component_name = template_to_component.get(template_name).ok_or_else(|| { + anyhow!( + "Illegal state: template {} has no assigned component", + template_name + ) + })?; + + if let Some(common_template) = + app_template_repo.common_template(template_name.language())? + { + if !common_templates.contains_key(&common_template.0.name) { + common_templates + .insert(common_template.0.name.clone(), common_template.clone()); + } + } + + if !component_templates.contains_key(component_name) { + if let Some(component_template) = + app_template_repo.component_templates(template_name.language())? + { + component_templates.insert(component_name.clone(), component_template.clone()); + } + } + + match app_template_repo.agent_template(template_name) { + Ok(agent_template) => { + agent_templates.insert(template_name.clone(), agent_template.clone()); + } + Err(_) => { + logln(""); + log_error(format!( + "Template not found: {}", + template_name.as_str().log_color_error_highlight() + )); + logln(""); + AppCommandHandler::new(self.ctx.clone()) + .log_templates_help(Some(template_name.language()), None)?; + bail!(NonSuccessfulExit); + } + } + } + + let existing_component_names = existing_components.keys().cloned().collect::>(); + let component_names_to_add_or_update = + component_templates.keys().cloned().collect::>(); + let all_component_names = component_names_to_add_or_update + .union(&existing_component_names) + .cloned() + .collect::>(); + + let all_component_directories = if all_component_names.len() == 1 { + let mut all_component_directories = BTreeMap::new(); + + for component_name in &all_component_names { + match existing_components.get(component_name) { + Some(component) => { + all_component_directories + .insert(component_name.clone(), component.dir.clone()); + } + None => { + all_component_directories + .insert(component_name.clone(), PathBuf::from(".")); + } + } + } + + all_component_directories + } else { + let app_prefix = format!("{}:", application_name.0); + let mut all_component_directories = BTreeMap::new(); + + // Promoting root single components to multi component layout + for component_name in &all_component_names { + let new_component_dir = || { + let new_component_dir = match component_name.as_ref().strip_prefix(&app_prefix) + { + Some(suffix) => suffix.to_string(), + None => component_name.as_str().to_kebab_case(), + }; + + let full_new_component_dir = application_path.join(&new_component_dir); + if full_new_component_dir.exists() { + bail!( + "Failed to apply template(s): cannot promote application component {} to multi-component layout: directory {} already exists!", + component_name.as_str().log_color_highlight(), + full_new_component_dir.log_color_error_highlight(), + ); + } + + Ok(PathBuf::from(new_component_dir)) + }; + + match existing_components.get(component_name) { + Some(component) => { + if component.component_dir != application_path { + all_component_directories + .insert(component_name.clone(), component.dir.clone()); + continue; + } + + if component.manifest_source_dir != component.component_dir { + bail!( + "Cannot add template(s), the current application uses a custom layout." + ) + } + + let new_component_dir = new_component_dir()?; + + let component_template = + app_template_repo.component_template(component.language)?; + let upgrade_plan = self.build_multi_component_layout_upgrade_plan( + component, + application_path, + &new_component_dir, + component_template.as_ref(), + )?; + + self.validate_multi_component_layout_upgrade_plan(&upgrade_plan)?; + + self.log_multi_component_layout_upgrade_plan(component_name, &upgrade_plan); + + if !upgrade_plan.is_empty() + && !self + .ctx + .interactive_handler() + .confirm_multi_component_layout_upgrade(component_name)? + { + bail!(NonSuccessfulExit); + } + + self.apply_multi_component_layout_upgrade_plan(&upgrade_plan)?; + + all_component_directories.insert(component_name.clone(), new_component_dir); + } + None => { + all_component_directories + .insert(component_name.clone(), new_component_dir()?); + } + } + } + + all_component_directories + }; + + debug!( + "all component directories: {:#?}", + all_component_directories + ); + + // We extend the component templates again to include promoted existing components + for component_name in all_component_directories.keys() { + if let Some(component) = existing_components.get(component_name) { + if let Some(component_template) = + app_template_repo.component_template(component.language)? + { + component_templates.insert(component_name.clone(), component_template.clone()); + } + } + } + + Ok(NewTemplateInputs { + common_templates, + component_templates, + agent_templates, + all_component_directories, + }) + } + + fn build_new_template_plan( + &self, + application_name: &ApplicationName, + application_path: &Path, + template_to_component: &BTreeMap, + template_inputs: &NewTemplateInputs, + ) -> anyhow::Result { + let mut template_plan_builder = TemplatePlanBuilder::new(); + + for (common_template_name, common_template) in &template_inputs.common_templates { + template_plan_builder.add( + common_template_name.as_str(), + &common_template.generate(application_name, application_path)?, + ); + } + + for (component_name, component_template) in &template_inputs.component_templates { + let component_dir = template_inputs + .all_component_directories + .get(component_name) + .ok_or_else(|| { + anyhow!( + "Illegal state: missing component directory for: {}", + component_name + ) + })?; + + template_plan_builder.add( + component_template.0.name.as_str(), + &component_template.generate( + application_name, + application_path, + component_name, + component_dir, + )?, + ); + } + + for (agent_template_name, agent_template) in &template_inputs.agent_templates { + let component_name = + template_to_component + .get(agent_template_name) + .ok_or_else(|| { + anyhow!( + "Illegal state: template {} has no assigned component", + agent_template_name + ) + })?; + + let component_dir = template_inputs + .all_component_directories + .get(component_name) + .ok_or_else(|| { + anyhow!( + "Illegal state: missing component directory for: {}", + component_name + ) + })?; + + template_plan_builder.add( + agent_template_name.as_str(), + &agent_template.generate( + application_name, + application_path, + component_name, + component_dir, + )?, + ); + } + + debug!("template plan steps: {:#?}", template_plan_builder); + + Ok(template_plan_builder.build()) + } + + fn build_multi_component_layout_upgrade_plan( + &self, + component: &ExistingComponent, + application_path: &Path, + new_component_dir: &Path, + _component_template: Option<&AppTemplateComponent>, + ) -> anyhow::Result { + let mut upgrade_plan = MultiComponentLayoutUpgradePlan::new(); + + match component.language { + GuestLanguage::TypeScript => { + let target_root = application_path.join(new_component_dir); + + upgrade_plan.add(MultiComponentLayoutUpgradePlanStep::Move { + source: application_path.join("src"), + target: target_root.join("src"), + }); + upgrade_plan.add(MultiComponentLayoutUpgradePlanStep::Move { + source: application_path.join("tsconfig.json"), + target: target_root.join("tsconfig.json"), + }); + } + GuestLanguage::Rust => { + let target_root = application_path.join(new_component_dir); + + upgrade_plan.add(MultiComponentLayoutUpgradePlanStep::Move { + source: application_path.join("Cargo.toml"), + target: target_root.join("Cargo.toml"), + }); + upgrade_plan.add(MultiComponentLayoutUpgradePlanStep::Move { + source: application_path.join("src"), + target: target_root.join("src"), + }); + + let cargo_target_dir = application_path.join("target"); + if cargo_target_dir.exists() { + upgrade_plan.add(MultiComponentLayoutUpgradePlanStep::Move { + source: cargo_target_dir, + target: target_root.join("target"), + }); + } + } + } + + Ok(upgrade_plan) + } + + fn log_multi_component_layout_upgrade_plan( + &self, + component_name: &ComponentName, + upgrade_plan: &MultiComponentLayoutUpgradePlan, + ) { + if upgrade_plan.is_empty() { + return; + } + + logln(""); + log_action( + "Planned", + format!( + "multi-component layout upgrade steps for component {}, which is required before adding the selected template(s)", + component_name.as_str().log_color_highlight() + ), + ); + let _indent = self.ctx.log_handler().nested_text_view_indent(); + + for step in upgrade_plan.steps() { + match step { + MultiComponentLayoutUpgradePlanStep::Move { source, target } => { + logln(format!( + "- {} {} to {}", + "move".yellow(), + source.display().to_string().log_color_highlight(), + target.display().to_string().log_color_highlight() + )); + } + } + } + } + + fn validate_multi_component_layout_upgrade_plan( + &self, + upgrade_plan: &MultiComponentLayoutUpgradePlan, + ) -> anyhow::Result<()> { + if upgrade_plan.is_empty() { + return Ok(()); + } + + let mut validation_errors = Vec::::new(); + let mut targets = BTreeSet::::new(); + + for step in upgrade_plan.steps() { + match step { + MultiComponentLayoutUpgradePlanStep::Move { target, .. } => { + if !targets.insert(target.clone()) { + validation_errors.push(format!( + "Duplicate target in plan: {}", + target.display().to_string().log_color_error_highlight() + )); + } + + if target.exists() { + validation_errors.push(format!( + "Target path already exists: {}", + target.display().to_string().log_color_error_highlight() + )); + } + + if let Some(parent) = target.parent() { + if parent.exists() { + if !parent.is_dir() { + validation_errors.push(format!( + "Target parent path is not a directory: {}", + parent.display().to_string().log_color_error_highlight() + )); + } + } else { + let mut ancestor = parent.parent(); + while let Some(path) = ancestor { + if path.exists() { + if !path.is_dir() { + validation_errors.push(format!( + "Cannot create target parent directory, ancestor path is not a directory: {}", + path.display().to_string().log_color_error_highlight() + )); + } + break; + } + ancestor = path.parent(); + } + } + } + } + } + } + + if !validation_errors.is_empty() { + logln(""); + log_failed_to("validate Multi-component layout upgrade plan"); + let _indent = self.ctx.log_handler().nested_text_view_indent(); + + logln(""); + logln( + "Multi-component layout upgrade errors:" + .log_color_help_group() + .to_string(), + ); + for error in validation_errors { + logln(format!(" - {}", error)); + } + logln(""); + + bail!(NonSuccessfulExit); + } + + Ok(()) + } + + fn apply_multi_component_layout_upgrade_plan( + &self, + upgrade_plan: &MultiComponentLayoutUpgradePlan, + ) -> anyhow::Result<()> { + if upgrade_plan.is_empty() { + return Ok(()); + } + + logln(""); + log_action("Applying", "multi-component layout upgrade steps"); + let _indent = LogIndent::new(); + + for step in upgrade_plan.steps() { + match step { + MultiComponentLayoutUpgradePlanStep::Move { source, target } => { + log_action( + "Moving", + format!( + "{} to {}", + source.display().to_string().log_color_highlight(), + target.display().to_string().log_color_highlight() + ), + ); + fs::rename(source, target)?; + } + } + } + + Ok(()) + } + + fn validate_new_template_plan( + &self, + unsafe_template_plan: &UnsafeTemplatePlan, + ) -> anyhow::Result<()> { + let overwrites = unsafe_template_plan.overwrites().collect::>(); + let failed_plans = unsafe_template_plan.failed_plans().collect::>(); + + if !overwrites.is_empty() || !failed_plans.is_empty() { + logln(""); + log_failed_to("plan the required changes to apply the selected template(s)"); + let _indent = self.ctx.log_handler().nested_text_view_indent(); + + logln(""); + + if !overwrites.is_empty() { + logln( + "Already existing non-mergeable files:" + .log_color_help_group() + .to_string(), + ); + for path in &overwrites { + logln(format!(" - {}", path.log_color_highlight())); + } + logln(""); + } + + if !failed_plans.is_empty() { + logln( + "Template planning errors:" + .log_color_help_group() + .to_string(), + ); + for (path, err) in &failed_plans { + logln(format!(" - {}:", path.log_color_highlight())); + let _indent = LogIndent::prefix(" "); + log_anyhow_error(err) + } + logln(""); + } + + bail!(NonSuccessfulExit); + } + + Ok(()) + } + + fn log_new_template_plan(&self, safe_template_plan: &SafeTemplatePlan) { + if safe_template_plan.is_empty() { + return; + } + + logln(""); + log_action( + "Planned", + "required changes for applying the selected template(s)", + ); + let _indent = self.ctx.log_handler().nested_text_view_indent(); + for (path, step) in safe_template_plan.file_steps() { + match step { + SafeTemplatePlanStep::Create { .. } => { + logln(format!( + "- {} {}", + "create".green(), + path.log_color_highlight() + )); + } + SafeTemplatePlanStep::Merge { current, new } => { + logln(format!( + "- {} {}", + "update".green(), + path.log_color_highlight() + )); + let _indent = LogIndent::new(); + let _indent = self.ctx.log_handler().nested_text_view_indent(); + log_unified_diff(&diff::unified_diff(current, new)); + } + SafeTemplatePlanStep::SkipSame { .. } => { + logln(format!( + "- {} {}", + "skip".yellow(), + path.log_color_highlight(), + )); + } + } + } + } + + fn apply_new_template_plan(&self, safe_template_plan: &SafeTemplatePlan) -> anyhow::Result<()> { + if safe_template_plan.is_empty() { + log_skipping_up_to_date("applying template(s)"); + return Ok(()); + } + + logln(""); + log_action("Applying", "template(s)"); + let _indent = LogIndent::new(); + + for (path, step) in safe_template_plan.file_steps() { + match step { + SafeTemplatePlanStep::Create { new } => { + log_action("Creating", format!("{}", path.log_color_highlight())); + fs::write_str(path, new)?; + } + SafeTemplatePlanStep::Merge { new, .. } => { + log_action("Updating", format!("{}", path.log_color_highlight())); + fs::write_str(path, new)?; + } + SafeTemplatePlanStep::SkipSame { .. } => { + log_skipping_up_to_date(format!("updating {}", path.log_color_highlight())); + } + } + } + + Ok(()) + } +} diff --git a/cli/golem-cli/src/command_handler/component/mod.rs b/cli/golem-cli/src/command_handler/component/mod.rs index 4ee5508866..3ccb18bbe2 100644 --- a/cli/golem-cli/src/command_handler/component/mod.rs +++ b/cli/golem-cli/src/command_handler/component/mod.rs @@ -12,17 +12,17 @@ // See the License for the specific language governing permissions and // limitations under the License. -use crate::app::context::{to_anyhow, BuildContext}; +use crate::app::context::{validated_to_anyhow, BuildContext}; use crate::app::build::extract_agent_type::extract_and_store_agent_types; use crate::command::component::ComponentSubcommand; -use crate::command::shared_args::{ComponentTemplateName, OptionalComponentNames, PostDeployArgs}; +use crate::command::shared_args::{OptionalComponentNames, PostDeployArgs}; use crate::command_handler::component::ifs::IfsFileManager; use crate::command_handler::component::staging::ComponentStager; use crate::command_handler::Handlers; use crate::context::Context; use crate::error::service::AnyhowMapServiceError; -use crate::error::{HintError, NonSuccessfulExit, ShowClapHelpTarget}; +use crate::error::NonSuccessfulExit; use crate::log::{log_action, log_error, log_warn_action, logln, LogColorize, LogIndent}; use crate::model::app::BuildConfig; use crate::model::app::{ApplicationComponentSelectMode, DynamicHelpSections}; @@ -56,7 +56,6 @@ use golem_common::model::diff::{self, VecDiffable}; use golem_common::model::environment::EnvironmentName; use itertools::Itertools; use std::collections::{BTreeMap, HashMap, HashSet}; -use std::path::PathBuf; use std::str::FromStr; use std::sync::Arc; @@ -78,11 +77,6 @@ impl ComponentCommandHandler { ) -> std::pin::Pin> + '_>> { Box::pin(async move { match subcommand { - ComponentSubcommand::New { - component_template, - component_name, - } => self.cmd_new(component_template, component_name).await, - ComponentSubcommand::Templates { filter } => self.cmd_templates(filter), ComponentSubcommand::List => self.cmd_list().await, ComponentSubcommand::Get { component_name, @@ -117,87 +111,6 @@ impl ComponentCommandHandler { }) } - async fn cmd_new( - &self, - template: Option, - component_name: Option, - ) -> anyhow::Result<()> { - self.ctx.silence_app_context_init().await; - - // Loading app for: - // - checking that we are inside an application - // - switching to the root dir as a side effect - // - getting existing component names - let (existing_component_names, application_name) = { - let app_ctx = self.ctx.app_context_lock().await; - let app_ctx = app_ctx.some_or_err()?; - ( - app_ctx - .application() - .component_names() - .map(|name| name.to_string()) - .collect::>(), - app_ctx.application().application_name().clone(), - ) - }; - - let Some((template, component_name)) = ({ - match (template, component_name) { - (Some(template), Some(component_package_name)) => { - Some((template, component_package_name)) - } - _ => self - .ctx - .interactive_handler() - .select_new_component_template_and_package_name( - existing_component_names.clone(), - )?, - } - }) else { - log_error("Both TEMPLATE and COMPONENT_NAME are required in non-interactive mode"); - logln(""); - self.ctx.app_handler().log_templates_help(None, None)?; - logln(""); - bail!(HintError::ShowClapHelp(ShowClapHelpTarget::ComponentNew)); - }; - - if existing_component_names.contains(component_name.as_str()) { - let app_ctx = self.ctx.app_context_lock().await; - let app_ctx = app_ctx.some_or_err()?; - - log_error(format!("Component {component_name} already exists")); - logln(""); - app_ctx.log_dynamic_help(&DynamicHelpSections::show_components())?; - bail!(NonSuccessfulExit) - } - - self.ctx.app_handler().generate_component( - &application_name, - &component_name, - &PathBuf::from("."), - template.as_str(), - )?; - - Ok(()) - } - - fn cmd_templates(&self, filter: Option) -> anyhow::Result<()> { - match filter { - Some(filter) => { - if let Some(language) = GuestLanguage::from_string(filter.clone()) { - self.ctx - .app_handler() - .log_templates_help(Some(language), None) - } else { - self.ctx - .app_handler() - .log_templates_help(None, Some(&filter)) - } - } - None => self.ctx.app_handler().log_templates_help(None, None), - } - } - async fn cmd_list(&self) -> anyhow::Result<()> { let show_sensitive = self.ctx.show_sensitive(); @@ -849,7 +762,7 @@ impl ComponentCommandHandler { ) -> anyhow::Result> { let component_names = { let app_ctx = self.ctx.app_context_lock().await; - app_ctx.some_or_err()?.deployable_component_names() + app_ctx.some_or_err()?.component_names() }; let mut components = BTreeMap::::new(); @@ -875,10 +788,6 @@ impl ComponentCommandHandler { .await?; let component = app_ctx.application().component(component_name); let wasm_path = component.final_wasm(); - - if !component.component_type().is_deployable() { - bail!("Component {component_name} is not deployable"); - } let files = component.files().clone(); let plugins = component.plugins().clone(); let env = resolve_env_vars(component_name, component.env())?; @@ -1291,7 +1200,7 @@ fn resolve_env_vars( }, ); - to_anyhow( + validated_to_anyhow( &format!( "Failed to prepare environment variables for component: {}", component_name.as_str().log_color_highlight() diff --git a/cli/golem-cli/src/command_handler/interactive.rs b/cli/golem-cli/src/command_handler/interactive.rs index 1f5cdb4033..3359f73a71 100644 --- a/cli/golem-cli/src/command_handler/interactive.rs +++ b/cli/golem-cli/src/command_handler/interactive.rs @@ -12,13 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. +use crate::app::template::AppTemplateName; use crate::config::{AuthSecret, AuthenticationConfig, Profile, ProfileConfig, ProfileName}; use crate::context::Context; use crate::error::NonSuccessfulExit; use crate::log::{log_warn, log_warn_action, logln, LogColorize}; use crate::model::format::Format; use crate::model::worker::RawAgentId; -use crate::model::{GuestLanguage, NewInteractiveApp}; +use crate::model::GuestLanguage; use anyhow::bail; use colored::Colorize; use golem_client::model::Account; @@ -29,14 +30,13 @@ use golem_common::model::environment::EnvironmentName; use indoc::formatdoc; use inquire::error::InquireResult; use inquire::validator::{ErrorMessage, Validation}; -use inquire::{Confirm, CustomType, InquireError, Select, Text}; +use inquire::{Confirm, CustomType, InquireError, MultiSelect, Select, Text}; use itertools::Itertools; use std::collections::HashSet; use std::fmt::{Display, Formatter}; use std::str::FromStr; use std::sync::Arc; use strum::IntoEnumIterator; -use strum_macros::EnumIter; use url::Url; // NOTE: in the interactive handler is it okay to _read_ context (e.g. read selected component names) @@ -326,19 +326,20 @@ impl InteractiveHandler { .prompt()?) } - pub fn select_new_app_name_and_components(&self) -> anyhow::Result> { - let Some(app_name) = Text::new("Application name:") - .with_validator(|value: &str| { - if std::env::current_dir()?.join(value).exists() { - return Ok(Validation::Invalid(ErrorMessage::Custom( - "The specified application name already exists as a directory!".to_string(), - ))); - } + pub fn select_new_app_name( + &self, + placeholder: Option<&str>, + ) -> anyhow::Result> { + let mut prompt = Text::new("Application name:"); + if let Some(placeholder) = placeholder { + prompt = prompt.with_placeholder(placeholder); + } + let Some(app_name) = prompt + .with_validator(|value: &str| { if let Err(error) = ApplicationName::from_str(value) { return Ok(Validation::Invalid(ErrorMessage::Custom(error))); } - Ok(Validation::Valid) }) .prompt() @@ -346,110 +347,83 @@ impl InteractiveHandler { else { return Ok(None); }; - let app_name = ApplicationName(app_name); - - let mut existing_component_names = HashSet::::new(); - let mut templated_component_names = Vec::<(String, ComponentName)>::new(); - - loop { - let Some(templated_component_name) = self - .select_new_component_template_and_package_name(existing_component_names.clone())? - else { - return Ok(None); - }; - - let Some(choice) = Select::new( - "Add another component or create application?", - AddComponentOrCreateApp::iter().collect_vec(), - ) - .prompt() - .none_if_not_interactive_logged()? - else { - return Ok(None); - }; - - match choice { - AddComponentOrCreateApp::AddComponent => { - existing_component_names.insert(templated_component_name.1 .0.clone()); - templated_component_names.push(templated_component_name); - continue; - } - AddComponentOrCreateApp::CreateApp => { - templated_component_names.push(templated_component_name); - break; - } - } - } - Ok(Some(NewInteractiveApp { - app_name, - templated_component_names, - })) + Ok(Some(ApplicationName(app_name))) } - pub fn select_new_component_template_and_package_name( - &self, - existing_component_names: HashSet, - ) -> anyhow::Result> { - let available_languages = self.ctx.app_template_repo()?.languages(); - - let Some(language) = Select::new( - "Select language for the new component", - GuestLanguage::iter() - .filter(|lang| available_languages.contains(lang)) - .collect(), - ) - .prompt() - .none_if_not_interactive_logged()? + pub fn select_new_app_templates_ts(&self) -> anyhow::Result>> { + let app_template_repo = self.ctx.app_template_repo()?; + + let available_languages = app_template_repo + .languages() + .iter() + .copied() + .sorted() + .collect::>(); + + let Some(language) = Select::new("Select languages:", available_languages) + .prompt() + .none_if_not_interactive_logged()? else { return Ok(None); }; - let template_options = self - .ctx - .app_template_repo()? - .component_templates(language)? + let template_options = app_template_repo + .agent_templates(language)? .values() .map(|template| TemplateOption { - template_name: template.0.name.to_string(), + template_name: template.0.name.clone(), description: template.0.description().to_string(), }) .collect::>(); - let Some(template) = - Select::new("Select a template for the new component:", template_options) - .prompt() - .none_if_not_interactive_logged()? + let Some(selected) = MultiSelect::new("Select templates:", template_options) + .prompt() + .none_if_not_interactive_logged()? else { return Ok(None); }; - let Some(component_name) = Text::new("Component Package Name:") - .with_validator(move |value: &str| { - if existing_component_names.contains(value) { - return Ok(Validation::Invalid(ErrorMessage::Custom( - "The component name already exists!".to_string(), - ))); - } + Ok(Some( + selected + .into_iter() + .map(|template| template.template_name) + .collect(), + )) + } - if let Err(error) = ComponentName::from_str(value) { - return Ok(Validation::Invalid(ErrorMessage::Custom(error))); - } + pub fn select_component_for_template( + &self, + template_name: &AppTemplateName, + component_names: Vec, + ) -> anyhow::Result> { + let prompt = format!("Select component for template {}:", template_name.as_str()); - Ok(Validation::Valid) - }) - .with_placeholder("package-name:component-name") + Select::new(&prompt, component_names) .prompt() - .none_if_not_interactive_logged()? - else { - return Ok(None); - }; - let component_name = ComponentName(component_name); + .none_if_not_interactive_logged() + } - Ok(Some(( - format!("{}/{}", language.id(), template.template_name), - component_name, - ))) + pub fn confirm_multi_component_layout_upgrade( + &self, + component_name: &ComponentName, + ) -> anyhow::Result { + self.confirm( + true, + format!( + "The above multi-component layout upgrade steps for component {} will now be applied. Do you want to continue?", + component_name.as_str().log_color_highlight(), + ), + None, + ) + } + + pub fn confirm_template_plan_apply(&self) -> anyhow::Result { + self.confirm( + true, + "The above template plan steps will now be applied. Do you want to continue?", + None, + ) } fn confirm>( @@ -599,8 +573,9 @@ fn confirm>( result } +#[derive(Clone)] struct TemplateOption { - pub template_name: String, + pub template_name: AppTemplateName, pub description: String, } @@ -609,23 +584,8 @@ impl Display for TemplateOption { write!( f, "{}: {}", - self.template_name.log_color_highlight(), + self.template_name.as_str().log_color_highlight(), self.description ) } } - -#[derive(Debug, Clone, Copy, EnumIter)] -enum AddComponentOrCreateApp { - CreateApp, - AddComponent, -} - -impl Display for AddComponentOrCreateApp { - fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - match self { - AddComponentOrCreateApp::AddComponent => write!(f, "Add another component"), - AddComponentOrCreateApp::CreateApp => write!(f, "Create application"), - } - } -} diff --git a/cli/golem-cli/src/command_handler/mod.rs b/cli/golem-cli/src/command_handler/mod.rs index 98abd76bff..c079cebbb6 100644 --- a/cli/golem-cli/src/command_handler/mod.rs +++ b/cli/golem-cli/src/command_handler/mod.rs @@ -253,14 +253,19 @@ impl CommandHandler { match command.subcommand { // App scoped root commands GolemCliSubcommand::New { + application_path, application_name, - language, + component_name, + template, } => { self.ctx .app_handler() - .cmd_new(application_name, language) + .cmd_new(application_path, application_name, component_name, template) .await } + GolemCliSubcommand::Templates { filter } => { + self.ctx.app_handler().cmd_templates(filter) + } GolemCliSubcommand::Build { component_name, build: build_args, diff --git a/cli/golem-cli/src/command_handler/partial_match.rs b/cli/golem-cli/src/command_handler/partial_match.rs index a5d7473c0c..747fc2b855 100644 --- a/cli/golem-cli/src/command_handler/partial_match.rs +++ b/cli/golem-cli/src/command_handler/partial_match.rs @@ -259,9 +259,6 @@ impl ErrorHandler { ShowClapHelpTarget::AppNew => { self.ctx.app_handler().log_languages_help(); } - ShowClapHelpTarget::ComponentNew => { - self.ctx.app_handler().log_templates_help(None, None)?; - } } Ok(()) } diff --git a/cli/golem-cli/src/command_handler/repl/typescript.rs b/cli/golem-cli/src/command_handler/repl/typescript.rs index e97954913b..7ecf289fb8 100644 --- a/cli/golem-cli/src/command_handler/repl/typescript.rs +++ b/cli/golem-cli/src/command_handler/repl/typescript.rs @@ -87,11 +87,10 @@ impl TypeScriptRepl { let package_json_path = args.repl_root_dir.join("package.json"); let tsconfig_json_path = args.repl_root_dir.join("tsconfig.json"); let repl_ts_path = args.repl_root_dir.join("repl.ts"); - let relative_bridge_sdk_unix_path = fs::path_to_str(fs::strip_prefix_or_err( + let relative_bridge_sdk_unix_path = fs::path_to_unix_str(fs::strip_prefix_or_err( &args.repl_root_bridge_sdk_dir, &args.repl_root_dir, - )?)? - .replace("\\", "/"); + )?)?; let build_config = BuildConfig::new(); let build_ctx = BuildContext::new(app_ctx, &build_config); diff --git a/cli/golem-cli/src/error.rs b/cli/golem-cli/src/error.rs index 68add03906..ae9207272f 100644 --- a/cli/golem-cli/src/error.rs +++ b/cli/golem-cli/src/error.rs @@ -34,7 +34,6 @@ impl Error for PipedExitCode {} #[derive(Clone, Copy, Debug, Display, EnumIter)] pub enum ShowClapHelpTarget { AppNew, - ComponentNew, } /// Errors that should be handled by the command handler with showing hints or error messages diff --git a/cli/golem-cli/src/fs.rs b/cli/golem-cli/src/fs.rs index 5256d32630..9c8c8860f6 100644 --- a/cli/golem-cli/src/fs.rs +++ b/cli/golem-cli/src/fs.rs @@ -14,7 +14,9 @@ use crate::log::{log_warn_action, LogColorize}; use anyhow::{anyhow, bail, Context, Error}; +use serde_json::Value as JsonValue; use std::cmp::PartialEq; +use std::collections::BTreeSet; use std::fs::{Metadata, OpenOptions}; use std::io::Write; use std::path::{Component, Path, PathBuf}; @@ -42,6 +44,10 @@ pub fn path_to_str(path: &Path) -> anyhow::Result<&str> { .ok_or_else(|| anyhow!("Path {} cannot be converted to string", path.display())) } +pub fn path_to_unix_str(path: &Path) -> anyhow::Result { + Ok(normalize_str_path_as_unix(path_to_str(path)?)) +} + pub fn file_name_to_str(path: &Path) -> anyhow::Result<&str> { path.file_name() .ok_or_else(|| anyhow!("Path {} has no filename", path.display()))? @@ -54,13 +60,42 @@ pub fn canonicalize_path(path: &Path) -> anyhow::Result { .map_err(|err| anyhow!("Failed to canonicalize path ({}): {}", path.display(), err)) } -pub fn create_dir_all>(path: P) -> anyhow::Result<()> { +pub fn normalize_path_lexically(path: &Path) -> PathBuf { + let mut normalized = PathBuf::new(); + + for component in path.components() { + match component { + Component::Prefix(prefix) => normalized.push(prefix.as_os_str()), + Component::RootDir => normalized.push(component.as_os_str()), + Component::CurDir => {} + Component::ParentDir => match normalized.components().next_back() { + Some(Component::Normal(_)) => { + normalized.pop(); + } + Some(Component::ParentDir) | None => { + if !normalized.has_root() { + normalized.push(".."); + } + } + Some(Component::RootDir) | Some(Component::Prefix(_)) | Some(Component::CurDir) => { + } + }, + Component::Normal(name) => normalized.push(name), + } + } + + normalized +} + +pub fn create_dir_all>(path: P) -> anyhow::Result { let path = path.as_ref(); if path.exists() { - Ok(()) + Ok(false) } else { - std::fs::create_dir_all(path) - .with_context(|| anyhow!("Failed to create directory {}", path.log_color_highlight())) + std::fs::create_dir_all(path).with_context(|| { + anyhow!("Failed to create directory {}", path.log_color_highlight()) + })?; + Ok(true) } } @@ -177,6 +212,22 @@ pub fn write, C: AsRef<[u8]>>(path: P, contents: C) -> anyhow::Re std::fs::write(path, contents).with_context(context) } +pub fn rename, Q: AsRef>(from: P, to: Q) -> anyhow::Result<()> { + let from = from.as_ref(); + let to = to.as_ref(); + + let context = || { + anyhow!( + "Failed to rename {} to {}", + from.log_color_highlight(), + to.log_color_highlight() + ) + }; + + create_dir_all(parent_or_err(to)?).with_context(context)?; + std::fs::rename(from, to).with_context(context) +} + pub fn remove>(path: P) -> anyhow::Result<()> { let path = path.as_ref(); if path.exists() { @@ -425,6 +476,7 @@ pub fn resolve_relative_glob, S: AsRef>( ) -> anyhow::Result<(PathBuf, String)> { let glob = glob.as_ref(); let path = Path::new(glob); + let mut prefix_path = PathBuf::new(); let mut resolved_path = PathBuf::new(); let mut prefix_ended = false; @@ -471,41 +523,184 @@ pub fn resolve_relative_glob, S: AsRef>( )) } -pub fn compile_and_collect_globs(root_dir: &Path, globs: &[String]) -> Result, Error> { - Ok(globs - .iter() - .map(|pattern| resolve_relative_glob(root_dir, pattern)) - .collect::, _>>()? - .iter() - .map(|(root_dir, pattern)| { - let normalized_pattern = normalize_pattern(pattern); - Glob::new(&normalized_pattern) - .with_context(|| anyhow!("Failed to compile glob expression: {}", pattern)) - .map(|pattern| (root_dir, pattern.into_owned())) - }) - .collect::, _>>()? +fn split_absolute_glob(base_dir: &Path, glob: &str) -> anyhow::Result<(PathBuf, String)> { + let path = Path::new(glob); + if !path.is_absolute() { + bail!( + "Expected absolute glob, got: {}", + glob.log_color_error_highlight() + ); + } + + let relative = path.strip_prefix(base_dir).map_err(|_| { + anyhow!( + "Absolute glob {} is outside base directory {}", + glob.log_color_error_highlight(), + base_dir.display().to_string().log_color_highlight() + ) + })?; + + Ok((base_dir.to_path_buf(), path_to_str(relative)?.to_string())) +} + +pub fn compile_and_collect_globs( + root_dir_for_absolute_globs: &Path, + root_dir_for_relative_globs: &Path, + globs: &[String], +) -> Result, Error> { + let compiled_globs = compile_globs( + root_dir_for_absolute_globs, + root_dir_for_relative_globs, + globs, + )?; + Ok(collect_glob_matches(&compiled_globs).into_iter().collect()) +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum GlobExpander { + TsConfigInclude, +} + +pub fn compile_and_collect_globs_with_expanders( + root_dir_for_absolute_globs: &Path, + root_dir_for_relative_globs: &Path, + globs: &[String], + expanders: &[GlobExpander], +) -> Result, Error> { + let specs = compile_globs( + root_dir_for_absolute_globs, + root_dir_for_relative_globs, + globs, + )?; + let mut matches = collect_glob_matches(&specs); + + if expanders.contains(&GlobExpander::TsConfigInclude) { + for spec in specs + .iter() + .filter(|spec| is_explicit_tsconfig_pattern(&spec.original_pattern)) + { + for tsconfig in collect_single_glob_matches(spec) { + for include_pattern in read_tsconfig_include_patterns(&tsconfig) { + let include_specs = vec![compile_glob_spec( + root_dir_for_absolute_globs, + tsconfig.parent().unwrap_or(root_dir_for_relative_globs), + &include_pattern, + )?]; + matches.extend(collect_glob_matches(&include_specs)); + } + } + } + } + + Ok(matches.into_iter().collect()) +} + +#[derive(Debug)] +struct CompiledGlob { + root_dir: PathBuf, + glob: Glob<'static>, + original_pattern: String, +} + +fn compile_globs( + root_dir_for_absolute_globs: &Path, + root_dir_for_relative_globs: &Path, + globs: &[String], +) -> Result, Error> { + globs .iter() - .flat_map(|(root_dir, glob)| { - glob.walk_with_behavior( - root_dir, - WalkBehavior { - link: LinkBehavior::ReadFile, - ..WalkBehavior::default() - }, + .map(|pattern| { + compile_glob_spec( + root_dir_for_absolute_globs, + root_dir_for_relative_globs, + pattern, ) - .filter_map(|entry| entry.ok()) - .map(|walk_item| walk_item.path().to_path_buf()) }) - .collect::>()) + .collect() +} + +fn compile_glob_spec( + root_dir_for_absolute_globs: &Path, + root_dir_for_relative_globs: &Path, + pattern: &str, +) -> Result { + let (root_dir, resolved_pattern) = if Path::new(pattern).is_absolute() { + split_absolute_glob(root_dir_for_absolute_globs, pattern)? + } else { + resolve_relative_glob(root_dir_for_relative_globs, pattern)? + }; + + let normalized_pattern = normalize_str_path_as_unix(&resolved_pattern); + let glob = Glob::new(&normalized_pattern) + .with_context(|| anyhow!("Failed to compile glob expression: {}", resolved_pattern))? + .into_owned(); + + Ok(CompiledGlob { + root_dir, + glob, + original_pattern: pattern.to_string(), + }) +} + +fn collect_glob_matches(specs: &[CompiledGlob]) -> BTreeSet { + let mut matches = BTreeSet::new(); + for spec in specs { + matches.extend(collect_single_glob_matches(spec)); + } + matches +} + +fn collect_single_glob_matches(spec: &CompiledGlob) -> BTreeSet { + spec.glob + .walk_with_behavior( + &spec.root_dir, + WalkBehavior { + link: LinkBehavior::ReadFile, + ..WalkBehavior::default() + }, + ) + .filter_map(|entry| entry.ok()) + .map(|walk_item| walk_item.path().to_path_buf()) + .collect::>() +} + +fn is_explicit_tsconfig_pattern(pattern: &str) -> bool { + Path::new(pattern) + .file_name() + .and_then(|name| name.to_str()) + .map(|name| name == "tsconfig.json") + .unwrap_or(false) +} + +fn read_tsconfig_include_patterns(path: &Path) -> Vec { + let Ok(contents) = read_to_string(path) else { + return Vec::new(); + }; + let Ok(json) = serde_json::from_str::(&contents) else { + return Vec::new(); + }; + + let Some(include) = json.get("include") else { + return Vec::new(); + }; + + match include { + JsonValue::String(value) => vec![value.clone()], + JsonValue::Array(values) => values + .iter() + .filter_map(|value| value.as_str().map(ToString::to_string)) + .collect(), + _ => Vec::new(), + } } #[cfg(not(windows))] -fn normalize_pattern(pattern: &str) -> String { +fn normalize_str_path_as_unix(pattern: &str) -> String { pattern.to_string() } #[cfg(windows)] -fn normalize_pattern(pattern: &str) -> String { +fn normalize_str_path(pattern: &str) -> String { // Replacing \ with / to make it work as a glob pattern pattern.replace('\\', "/") } @@ -531,7 +726,10 @@ pub fn delete_logged(context: &str, path: &Path) -> anyhow::Result<()> { mod test { use crate::fs; use pretty_assertions::assert_eq; + use std::collections::BTreeSet; + use std::path::Path; use std::path::PathBuf; + use tempfile::TempDir; use test_r::test; #[test] @@ -556,4 +754,129 @@ mod test { (base_dir.join("../../../"), "target/a".to_string()) ); } + + #[test] + fn normalize_path_lexically_collapses_current_and_parent_segments() { + assert_eq!( + fs::normalize_path_lexically(Path::new("./a/./b/../c")), + PathBuf::from("a/c") + ); + } + + #[test] + fn normalize_path_lexically_keeps_leading_parent_segments_for_relative_paths() { + assert_eq!( + fs::normalize_path_lexically(Path::new("../../a/b")), + PathBuf::from("../../a/b") + ); + } + + #[test] + #[cfg(not(windows))] + fn normalize_path_lexically_handles_absolute_paths() { + assert_eq!( + fs::normalize_path_lexically(Path::new("/tmp/golem/./a/../b")), + PathBuf::from("/tmp/golem/b") + ); + } + + #[test] + #[cfg(not(windows))] + fn resolve_absolute_globs_under_base_dir() { + let base_dir = PathBuf::from("/tmp/golem"); + + assert_eq!( + fs::split_absolute_glob(&base_dir, "/tmp/golem/dir/**/*.ts").unwrap(), + (base_dir.clone(), "dir/**/*.ts".to_string()) + ); + } + + #[test] + #[cfg(not(windows))] + fn resolve_absolute_globs_outside_base_dir() { + let base_dir = PathBuf::from("/tmp/golem"); + + assert!(fs::split_absolute_glob(&base_dir, "/tmp/other/**/*.ts").is_err()); + } + + #[test] + fn compile_globs_with_tsconfig_include_expander() { + let temp_dir = TempDir::new().unwrap(); + let app_root = temp_dir.path(); + let build_dir = app_root.join("component"); + + fs::create_dir_all(&build_dir).unwrap(); + fs::write_str( + build_dir.join("tsconfig.json"), + r#"{ + "include": ["src/**/*.ts", "shared.ts"] +}"#, + ) + .unwrap(); + fs::write_str(build_dir.join("src/main.ts"), "export {};").unwrap(); + fs::write_str(build_dir.join("shared.ts"), "export {};").unwrap(); + + let patterns = vec!["tsconfig.json".to_string()]; + + let without_expander = + fs::compile_and_collect_globs(app_root, &build_dir, &patterns).unwrap(); + let with_expander = fs::compile_and_collect_globs_with_expanders( + app_root, + &build_dir, + &patterns, + &[fs::GlobExpander::TsConfigInclude], + ) + .unwrap(); + + assert_eq!( + path_set(without_expander), + path_set(vec![build_dir.join("tsconfig.json")]) + ); + + assert_eq!( + path_set(with_expander), + path_set(vec![ + build_dir.join("tsconfig.json"), + build_dir.join("src/main.ts"), + build_dir.join("shared.ts"), + ]) + ); + } + + #[test] + fn compile_globs_with_tsconfig_include_expander_is_lenient() { + let temp_dir = TempDir::new().unwrap(); + let app_root = temp_dir.path(); + let build_dir = app_root.join("component"); + + fs::create_dir_all(&build_dir).unwrap(); + fs::write_str(build_dir.join("tsconfig.json"), "{ invalid json }").unwrap(); + fs::write_str(build_dir.join("src/main.ts"), "export {};").unwrap(); + + let patterns = vec!["tsconfig.json".to_string()]; + + let with_expander = fs::compile_and_collect_globs_with_expanders( + app_root, + &build_dir, + &patterns, + &[fs::GlobExpander::TsConfigInclude], + ) + .unwrap(); + + assert_eq!( + path_set(with_expander), + path_set(vec![build_dir.join("tsconfig.json")]) + ); + } + + fn path_set(paths: Vec) -> BTreeSet { + paths + .into_iter() + .map(|path| normalize_for_assert(path.as_path())) + .collect() + } + + fn normalize_for_assert(path: &Path) -> PathBuf { + fs::canonicalize_path(path).unwrap_or_else(|_| path.to_path_buf()) + } } diff --git a/cli/golem-cli/src/model/app.rs b/cli/golem-cli/src/model/app.rs index 3d3d6a81ec..9aadf1e3e2 100644 --- a/cli/golem-cli/src/model/app.rs +++ b/cli/golem-cli/src/model/app.rs @@ -22,13 +22,10 @@ use crate::model::cascade::property::map::{MapMergeMode, MapProperty}; use crate::model::cascade::property::optional::OptionalProperty; use crate::model::cascade::property::vec::{VecMergeMode, VecProperty}; use crate::model::cascade::property::Property; -use crate::model::component::AppComponentType; use crate::model::repl::ReplLanguage; use crate::model::template::Template; use crate::model::{app_raw, GuestLanguage}; use crate::validation::{ValidatedResult, ValidationBuilder}; - -use crate::app::template::AppTemplateName; use golem_common::model::agent::{AgentType, AgentTypeName}; use golem_common::model::application::ApplicationName; use golem_common::model::component::{ @@ -112,14 +109,18 @@ pub struct ApplicationConfig { pub enable_wasmtime_fs_cache: bool, } +#[derive(Debug, Clone)] +pub struct LoadedRawApps { + pub app_root_dir: PathBuf, + pub calling_working_dir: PathBuf, + pub raw_apps: Vec, +} + #[derive(Debug, Clone)] pub enum ApplicationSourceMode { Automatic, ByRootManifest(PathBuf), - Preloaded { - raw_apps: Vec, - calling_working_dir: PathBuf, - }, + Preloaded(LoadedRawApps), None, } @@ -281,13 +282,7 @@ pub fn includes_from_yaml_file(source: &Path) -> Vec { fs::read_to_string(source) .ok() .and_then(|source| app_raw::Application::from_yaml_str(source.as_str()).ok()) - .map(|app| { - if app.includes.is_empty() { - vec!["**/golem.yaml".to_string()] - } else { - app.includes - } - }) + .map(|app| app.includes) .unwrap_or_default() } @@ -320,6 +315,7 @@ pub struct ApplicationNameAndEnvironments { #[derive(Clone, Debug)] pub struct Application { + app_root_dir: PathBuf, application_name: WithSource, environments: BTreeMap, component_preset_selector: ComponentPresetSelector, @@ -377,13 +373,24 @@ impl Application { &self.environments } + pub fn app_root_dir(&self) -> &Path { + &self.app_root_dir + } + pub fn from_raw_apps( + root_dir: PathBuf, application_name: WithSource, environments: BTreeMap, component_presets: ComponentPresetSelector, apps: Vec, ) -> ValidatedResult { - build_application(application_name, environments, component_presets, apps) + build_application( + root_dir, + application_name, + environments, + component_presets, + apps, + ) } pub fn all_sources(&self) -> &BTreeSet { @@ -563,23 +570,21 @@ struct PartitionedComponentPresets { } impl PartitionedComponentPresets { - fn new(presets: IndexMap) -> Self { + fn new(presets: IndexMap) -> Self { let mut default_custom_preset = None; let mut custom_presets = IndexMap::new(); let mut env_presets = IndexMap::new(); - for (preset_name, properties) in presets { + for (preset_name, preset) in presets { match preset_name.strip_prefix(APP_ENV_PRESET_PREFIX) { Some(env_name) => { - env_presets.insert(env_name.to_string(), properties.into()); + env_presets.insert(env_name.to_string(), preset.component_properties.into()); } None => { - if properties.default == Some(app_raw::Marker) - || default_custom_preset.is_none() - { + if preset.default == Some(app_raw::Marker) || default_custom_preset.is_none() { default_custom_preset = Some(preset_name.clone()); } - custom_presets.insert(preset_name, properties.into()); + custom_presets.insert(preset_name, preset.component_properties.into()); } } } @@ -595,9 +600,9 @@ impl PartitionedComponentPresets { #[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize)] #[serde(rename_all = "camelCase")] pub enum ComponentLayerId { - TemplateCommon(AppTemplateName), - TemplateEnvironmentPresets(AppTemplateName), - TemplateCustomPresets(AppTemplateName), + TemplateCommon(String), + TemplateEnvironmentPresets(String), + TemplateCustomPresets(String), ComponentCommon(ComponentName), ComponentEnvironmentPresets(ComponentName), ComponentCustomPresets(ComponentName), @@ -662,7 +667,7 @@ impl ComponentLayerId { } } - pub fn template_name(&self) -> Option<&AppTemplateName> { + pub fn template_name(&self) -> Option<&str> { match self { ComponentLayerId::TemplateCommon(template_name) | ComponentLayerId::TemplateEnvironmentPresets(template_name) @@ -690,7 +695,7 @@ impl ComponentLayerId { parent_ids .into_vec() .into_iter() - .map(|parent_id| Self::TemplateCustomPresets(parent_id.into())) + .map(Self::TemplateCustomPresets) .collect() } } @@ -713,17 +718,30 @@ enum ComponentLayerPropertiesKind { }, } +const EMPTY_STR: &str = ""; + #[derive(Debug, Clone)] pub struct ComponentLayerApplyContext { env: minijinja::Environment<'static>, component_name: Option, + app_root_dir: Option, + golem_temp_dir: Option, + component_dir: Option, } impl ComponentLayerApplyContext { - pub fn new(id: &ComponentLayerId) -> Self { + pub fn new( + component_name: Option, + app_root_dir: Option, + golem_temp_dir: Option, + component_dir: Option, + ) -> Self { Self { env: Self::new_template_env(), - component_name: id.component_name().cloned(), + component_name, + app_root_dir, + golem_temp_dir, + component_dir, } } @@ -753,12 +771,14 @@ impl ComponentLayerApplyContext { &self.env } - fn template_context(&self) -> Option { - self.component_name.as_ref().map(|component_name| { - minijinja::context! { - componentName => component_name.0.as_str(), - component_name => component_name.0.as_str(), - } + fn template_context(&self) -> impl Serialize { + let component_name = self.component_name.as_ref().map(|name| name.0.as_str()); + Some(minijinja::context! { + componentName => component_name, + component_name => component_name, + appRootDir => self.app_root_dir.as_deref().unwrap_or(EMPTY_STR), + golemTempDir => self.golem_temp_dir.as_deref().unwrap_or(EMPTY_STR), + componentDir => self.component_dir.as_deref().unwrap_or(EMPTY_STR), }) } } @@ -848,33 +868,9 @@ impl Layer for ComponentLayer { for properties in property_layers_to_apply { let template_env = ctx.template_env(); - let template_ctx = self - .id - .is_template() - .then(|| ctx.template_context()) - .flatten(); + let template_ctx = self.id.is_template().then(|| ctx.template_context()); let template_ctx = template_ctx.as_ref(); - value.source_wit.apply_layer( - id, - selection, - properties - .source_wit - .value() - .render_or_clone(template_env, template_ctx) - .map_err(|err| format!("Failed to render sourceWit: {}", err))?, - ); - - value.generated_wit.apply_layer( - id, - selection, - properties - .generated_wit - .value() - .render_or_clone(template_env, template_ctx) - .map_err(|err| format!("Failed to render generatedWit: {}", err))?, - ); - value.component_wasm.apply_layer( id, selection, @@ -934,10 +930,6 @@ impl Layer for ComponentLayer { ), ); - value - .component_type - .apply_layer(id, selection, *properties.component_type.value()); - value.files.apply_layer( id, selection, @@ -986,10 +978,6 @@ impl Layer for ComponentLayer { Ok(()) } - - fn root_id_to_context(id: &Self::Id) -> Self::ApplyContext { - ComponentLayerApplyContext::new(id) - } } #[derive(Clone, Debug)] @@ -1004,14 +992,11 @@ impl<'a> Component<'a> { self.component_name } - pub fn component_type(&self) -> AppComponentType { - self.properties().component_type - } - + // TODO: FCL: cleanup this, and make lang ids reserved for template names pub fn guess_language(&self) -> Option { self.applied_layers().iter().find_map(|(id, _)| { id.template_name() - .and_then(|template_name| match template_name.as_str() { + .and_then(|template_name| match template_name { "ts" => Some(GuestLanguage::TypeScript), "rust" => Some(GuestLanguage::Rust), _ => None, @@ -1027,18 +1012,14 @@ impl<'a> Component<'a> { self.layer_properties().applied_layers.as_slice() } - pub fn source_dir(&self) -> &Path { - let parent = self.source().parent().unwrap_or_else(|| { - panic!( - "Failed to get parent for component, source: {}", - self.source().display() - ) - }); - if parent.as_os_str().is_empty() { - Path::new(".") - } else { - parent - } + // The manifest component dir property + pub fn dir(&self) -> Option<&Path> { + self.properties().dir.as_deref() + } + + // Fully resolved component dir + pub fn component_dir(&self) -> &Path { + &self.properties.value.0.component_dir } pub fn properties(&self) -> &ComponentProperties { @@ -1053,10 +1034,6 @@ impl<'a> Component<'a> { self.component_name.as_str().replace(":", "_") } - pub fn source_wit(&self) -> PathBuf { - self.source_dir().join(&self.properties().source_wit) - } - pub fn generated_base_wit(&self) -> PathBuf { self.temp_dir .join("generated-base-wit") @@ -1076,13 +1053,8 @@ impl<'a> Component<'a> { .join("exports.wit") } - pub fn generated_wit(&self) -> PathBuf { - self.source_dir() - .join(self.properties().generated_wit.clone()) - } - pub fn wasm(&self) -> PathBuf { - self.source_dir() + self.component_dir() .join(self.properties().component_wasm.clone()) } @@ -1091,7 +1063,7 @@ impl<'a> Component<'a> { self.properties() .output_wasm .as_ref() - .map(|output_wasm| self.source_dir().join(output_wasm)) + .map(|output_wasm| self.component_dir().join(output_wasm)) .unwrap_or_else(|| { self.temp_dir .join("final-wasm") @@ -1132,10 +1104,6 @@ impl<'a> Component<'a> { &self.properties().plugins } - pub fn is_deployable(&self) -> bool { - self.properties().component_type.is_deployable() - } - pub fn custom_commands(&self) -> &BTreeMap> { &self.properties().custom_commands } @@ -1158,8 +1126,6 @@ pub struct ComponentLayerProperties { )] pub applied_layers: Vec<(ComponentLayerId, Option)>, - pub source_wit: OptionalProperty, - pub generated_wit: OptionalProperty, pub component_wasm: OptionalProperty, pub output_wasm: OptionalProperty, #[serde(skip_serializing_if = "Option::is_none")] @@ -1167,7 +1133,6 @@ pub struct ComponentLayerProperties { pub build: VecProperty, pub custom_commands: MapProperty>, pub clean: VecProperty, - pub component_type: OptionalProperty, #[serde(skip_serializing_if = "Option::is_none")] pub files_merge_mode: Option, pub files: VecProperty, @@ -1189,15 +1154,12 @@ impl From for ComponentLayerProperties { fn from(value: app_raw::ComponentLayerProperties) -> Self { Self { applied_layers: vec![], - source_wit: value.source_wit.into(), - generated_wit: value.generated_wit.into(), component_wasm: value.component_wasm.into(), output_wasm: value.output_wasm.into(), build_merge_mode: value.build_merge_mode, build: value.build.into(), custom_commands: value.custom_commands.into(), clean: value.clean.into(), - component_type: value.component_type.into(), files_merge_mode: value.files_merge_mode, files: value.files.unwrap_or_default().into(), plugins_merge_mode: value.plugins_merge_mode, @@ -1214,14 +1176,11 @@ impl From for ComponentLayerProperties { impl ComponentLayerProperties { pub fn compact_traces(&mut self) { - self.source_wit.compact_trace(); - self.generated_wit.compact_trace(); self.component_wasm.compact_trace(); self.output_wasm.compact_trace(); self.build.compact_trace(); self.custom_commands.compact_trace(); self.clean.compact_trace(); - self.component_type.compact_trace(); self.files.compact_trace(); self.plugins.compact_trace(); self.env.compact_trace(); @@ -1256,14 +1215,13 @@ impl ComponentLayerProperties { #[derive(Clone, Debug)] pub struct ComponentProperties { - pub source_wit: String, - pub generated_wit: String, + pub dir: Option, // Relative path starting from the defining golem.yaml + pub component_dir: PathBuf, // Resolved canonical component path pub component_wasm: String, pub output_wasm: Option, pub build: Vec, pub custom_commands: BTreeMap>, pub clean: Vec, - pub component_type: AppComponentType, pub files: Vec, pub plugins: Vec, pub env: BTreeMap, @@ -1275,6 +1233,8 @@ impl ComponentProperties { fn from_merged( validation: &mut ValidationBuilder, source: &Path, + dir: Option, + component_dir: PathBuf, merged: &ComponentLayerProperties, ) -> Self { let files = @@ -1295,8 +1255,8 @@ impl ComponentProperties { } let properties = Self { - source_wit: merged.source_wit.value().clone().unwrap_or_default(), - generated_wit: merged.generated_wit.value().clone().unwrap_or_default(), + dir, + component_dir, component_wasm: merged.component_wasm.value().clone().unwrap_or_default(), output_wasm: merged.output_wasm.value().clone(), build: merged.build.value().clone(), @@ -1307,7 +1267,6 @@ impl ComponentProperties { .map(|(k, v)| (k.clone(), v.clone())) .collect(), clean: merged.clean.value().clone(), - component_type: (*merged.component_type.value()).unwrap_or_default(), files, plugins, env: Self::validate_and_normalize_env(validation, merged.env.value()), @@ -1320,11 +1279,7 @@ impl ComponentProperties { agent_config, }; - for (name, value) in [ - ("sourceWit", &properties.source_wit), - ("generatedWit", &properties.generated_wit), - ("componentWasm", &properties.component_wasm), - ] { + for (name, value) in [("componentWasm", &properties.component_wasm)] { if value.is_empty() { validation.add_error(format!( "Property {} is empty or undefined", @@ -1510,13 +1465,13 @@ impl PluginInstallation { } mod app_builder { - use crate::app::template::AppTemplateName; use crate::fuzzy::FuzzySearch; use crate::log::LogColorize; use crate::model::app::{ - Application, ApplicationNameAndEnvironments, ComponentLayer, ComponentLayerId, - ComponentLayerProperties, ComponentLayerPropertiesKind, ComponentPresetName, - ComponentPresetSelector, ComponentProperties, PartitionedComponentPresets, WithSource, + Application, ApplicationNameAndEnvironments, ComponentLayer, ComponentLayerApplyContext, + ComponentLayerId, ComponentLayerProperties, ComponentLayerPropertiesKind, + ComponentPresetName, ComponentPresetSelector, ComponentProperties, + PartitionedComponentPresets, WithSource, TEMP_DIR, }; use crate::model::app_raw; use crate::model::cascade::store::Store; @@ -1544,12 +1499,19 @@ mod app_builder { // Load full manifest EXCEPT environments pub fn build_application( + root_dir: PathBuf, application_name: WithSource, environments: BTreeMap, component_presets: ComponentPresetSelector, apps: Vec, ) -> ValidatedResult { - AppBuilder::build_app(application_name, environments, component_presets, apps) + AppBuilder::build_app( + root_dir, + application_name, + environments, + component_presets, + apps, + ) } // Load only environments @@ -1564,7 +1526,7 @@ mod app_builder { App, Include, CustomCommand(String), - Template(AppTemplateName), + Template(String), Component(ComponentName), Environment(EnvironmentName), Bridge, @@ -1614,13 +1576,17 @@ mod app_builder { default_environment_names: BTreeSet, environments: IndexMap, + // "Consts" for component templating + app_root_dir_str: String, + golem_temp_dir_str: String, + // For app build include: Vec, custom_commands: HashMap>>, clean: Vec>, raw_component_names: HashSet, - component_names_to_source: BTreeMap, + component_names_to_source_and_dir: BTreeMap)>, component_custom_presets: BTreeSet, component_layer_store: Store, @@ -1649,13 +1615,32 @@ mod app_builder { // flows that do not use manifest otherwise won't get blocked by high-level validation errors, // and we do not "steal" manifest loading logs from those which do use the manifest fully. fn build_app( + app_root_dir: PathBuf, application_name: WithSource, environments: BTreeMap, component_presets: ComponentPresetSelector, apps: Vec, ) -> ValidatedResult { - let mut builder = Self::default(); let mut validation = ValidationBuilder::default(); + let mut builder = Self::default(); + + match Ok::<&PathBuf, anyhow::Error>(&app_root_dir).and_then(|app_root_dir| { + Ok(( + fs::path_to_str(app_root_dir).map(|path| path.to_string())?, + fs::path_to_str(&app_root_dir.join(TEMP_DIR)).map(|path| path.to_string())?, + )) + }) { + Ok((app_root_dir_str, golem_temp_dir_str)) => { + builder.app_root_dir_str = app_root_dir_str; + builder.golem_temp_dir_str = golem_temp_dir_str; + } + Err(err) => { + return ValidatedResult::from_error(format!( + "Failed to get app root directory: {}", + err + )); + } + } for app in apps { builder.add_raw_app(&mut validation, app); @@ -1668,6 +1653,7 @@ mod app_builder { builder.validate_http_api_deployments(&mut validation, &environments); validation.build(Application { + app_root_dir, environments, component_preset_selector: component_presets, application_name, @@ -1764,7 +1750,6 @@ mod app_builder { } for (template_name, template) in app.application.component_templates { - let template_name = AppTemplateName::from(template_name); if self.add_entity_source( UniqueSourceCheckedEntityKey::Template(template_name.clone()), &app.source, @@ -1790,8 +1775,8 @@ mod app_builder { UniqueSourceCheckedEntityKey::Component(component_name.clone()); if self.add_entity_source(unique_key, &app.source) { self.raw_component_names.insert(component_name.0.clone()); - self.component_names_to_source - .insert(component_name.clone(), app.source.clone()); + self.component_names_to_source_and_dir + .insert(component_name.clone(), (app.source.clone(), component.dir.as_ref().map(PathBuf::from))); self.add_component(validation, component_name, component); } } @@ -1996,7 +1981,7 @@ mod app_builder { fn add_component_template( &mut self, validation: &mut ValidationBuilder, - template_name: AppTemplateName, + template_name: String, template: app_raw::ComponentTemplate, ) { validation.with_context( @@ -2175,7 +2160,7 @@ mod app_builder { validation: &mut ValidationBuilder, component_presets: &ComponentPresetSelector, ) { - for (component_name, source) in self.component_names_to_source.clone() { + for (component_name, (source, dir)) in self.component_names_to_source_and_dir.clone() { validation.with_context( vec![ ("source", source.to_string_lossy().to_string()), @@ -2186,6 +2171,7 @@ mod app_builder { validation, component_presets, source, + dir, component_name, ); }, @@ -2198,16 +2184,49 @@ mod app_builder { validation: &mut ValidationBuilder, component_presets: &ComponentPresetSelector, source: PathBuf, + dir: Option, component_name: ComponentName, ) { + let component_dir = match fs::parent_or_err(&source) + .and_then(fs::canonicalize_path) + .map(|path| { + let path = dir.as_ref().map(|dir| path.join(dir)).unwrap_or(path); + fs::normalize_path_lexically(&path) + }) { + Ok(path) => path, + Err(err) => { + validation.add_error(err.to_string()); + return; + } + }; + + let component_dir_str = + match fs::path_to_str(&component_dir).map(|path| path.to_string()) { + Ok(path) => path, + Err(err) => { + validation.add_error(err.to_string()); + return; + } + }; + + let ctx = ComponentLayerApplyContext::new( + Some(component_name.clone()), + Some(self.app_root_dir_str.clone()), + Some(self.golem_temp_dir_str.clone()), + Some(component_dir_str), + ); + match self.component_layer_store.value( &ComponentLayerId::ComponentCustomPresets(component_name.clone()), component_presets, + &ctx, ) { Ok(component_layer_properties) => { let component_properties = ComponentProperties::from_merged( validation, &source, + dir, + component_dir, &component_layer_properties, ); self.components.insert( @@ -2364,11 +2383,12 @@ mod app_builder { #[cfg(test)] mod test { + use crate::fs; use crate::model::app::{Application, ApplicationNameAndEnvironments, ComponentPresetSelector}; use crate::model::app_raw; use indoc::indoc; use pretty_assertions::assert_eq; - use std::path::PathBuf; + use tempfile::TempDir; use test_r::test; #[test] @@ -2386,8 +2406,6 @@ mod test { componentTemplates: malbogle: - sourceWit: dummy-source.wit - generatedWit: dummy-generated.wit componentWasm: dummy-component.wasm components: @@ -2395,13 +2413,13 @@ mod test { templates: malbogle presets: a: - sourceWit: a.wit + componentWasm: a.wasm b: - sourceWit: b.wit + componentWasm: b.wasm "# }; - let app = load_app( + let (app, app_tmp_dir) = load_app( source, &ComponentPresetSelector { environment: "local".parse().unwrap(), @@ -2412,13 +2430,16 @@ mod test { let component_name = "app:main".parse().unwrap(); let component = app.component(&component_name); - assert_eq!(component.source_wit(), PathBuf::from("./a.wit")); + assert_eq!(component.wasm(), app_tmp_dir.path().join("a.wasm")); } - fn load_app(source: &str, selector: &ComponentPresetSelector) -> Application { - let raw_app = - app_raw::ApplicationWithSource::from_yaml_string(PathBuf::from("golem.yaml"), source) - .unwrap(); + fn load_app(source: &str, selector: &ComponentPresetSelector) -> (Application, TempDir) { + let tmp_dir = tempfile::tempdir().unwrap(); + + let golem_yaml_path = tmp_dir.path().join("golem.yaml"); + fs::write(&golem_yaml_path, source).unwrap(); + + let raw_app = app_raw::ApplicationWithSource::from_yaml_file(&golem_yaml_path).unwrap(); let raw_apps = vec![raw_app]; let (app_name_and_envs, warns, errors) = @@ -2433,11 +2454,16 @@ mod test { panic!("expected Some(ApplicationNameAndEnvironments)") }; - let (app, warns, errors) = - Application::from_raw_apps(application_name, environments, selector.clone(), raw_apps) - .into_product(); + let (app, warns, errors) = Application::from_raw_apps( + std::env::current_dir().unwrap(), + application_name, + environments, + selector.clone(), + raw_apps, + ) + .into_product(); assert!(warns.is_empty(), "\n{}", warns.join("\n\n")); assert!(errors.is_empty(), "\n{}", errors.join("\n\n")); - app.unwrap() + (app.unwrap(), tmp_dir) } } diff --git a/cli/golem-cli/src/model/app_raw.rs b/cli/golem-cli/src/model/app_raw.rs index 1c3b92481b..5bd613e6cb 100644 --- a/cli/golem-cli/src/model/app_raw.rs +++ b/cli/golem-cli/src/model/app_raw.rs @@ -15,7 +15,6 @@ use crate::log::LogColorize; use crate::model::cascade::property::map::MapMergeMode; use crate::model::cascade::property::vec::VecMergeMode; -use crate::model::component::AppComponentType; use crate::model::format::Format; use crate::model::GuestLanguage; use crate::{fs, APP_MANIFEST_JSON_SCHEMA}; @@ -31,7 +30,7 @@ use serde::{Deserialize, Deserializer, Serialize, Serializer}; use std::collections::{BTreeMap, BTreeSet, HashMap}; use std::error::Error; use std::fmt::{Display, Formatter}; -use std::path::PathBuf; +use std::path::{Path, PathBuf}; use std::sync::LazyLock; use strum::IntoEnumIterator; use url::Url; @@ -63,8 +62,8 @@ pub struct ApplicationWithSource { } impl ApplicationWithSource { - pub fn from_yaml_file(file: PathBuf) -> anyhow::Result { - Self::from_yaml_string(file.clone(), &fs::read_to_string(file.clone())?) + pub fn from_yaml_file(file: &Path) -> anyhow::Result { + Self::from_yaml_string(file.to_path_buf(), &fs::read_to_string(file)?) .with_context(|| anyhow!("Failed to load source {}", file.log_color_highlight())) } @@ -227,7 +226,7 @@ pub struct ComponentTemplate { #[serde(flatten)] pub component_properties: ComponentLayerProperties, #[serde(default, skip_serializing_if = "IndexMap::is_empty")] - pub presets: IndexMap, + pub presets: IndexMap, } #[derive(Clone, Debug, Serialize, Deserialize)] @@ -235,10 +234,21 @@ pub struct ComponentTemplate { pub struct Component { #[serde(default, skip_serializing_if = "LenientTokenList::is_empty")] pub templates: LenientTokenList, + #[serde(default, skip_serializing_if = "Option::is_none")] + pub dir: Option, #[serde(flatten)] pub component_properties: ComponentLayerProperties, #[serde(default, skip_serializing_if = "IndexMap::is_empty")] - pub presets: IndexMap, + pub presets: IndexMap, +} + +#[derive(Clone, Debug, Serialize, Deserialize)] +#[serde(rename_all = "camelCase", deny_unknown_fields)] +pub struct ComponentPreset { + #[serde(default, skip_serializing_if = "Option::is_none")] + pub default: Option, + #[serde(flatten)] + pub component_properties: ComponentLayerProperties, } #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] @@ -423,12 +433,6 @@ pub struct InitialComponentFile { #[derive(Clone, Debug, Serialize, Deserialize)] #[serde(rename_all = "camelCase", deny_unknown_fields)] pub struct ComponentLayerProperties { - #[serde(default, skip_serializing_if = "Option::is_none")] - pub default: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub source_wit: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub generated_wit: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub component_wasm: Option, #[serde(default, skip_serializing_if = "Option::is_none")] @@ -442,8 +446,6 @@ pub struct ComponentLayerProperties { #[serde(default, skip_serializing_if = "Vec::is_empty")] pub clean: Vec, #[serde(default, skip_serializing_if = "Option::is_none")] - pub component_type: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] pub files_merge_mode: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub files: Option>, @@ -523,6 +525,8 @@ pub struct ExternalCommand { pub command: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub dir: Option, + #[serde(default, skip_serializing_if = "IndexMap::is_empty")] + pub env: IndexMap, #[serde(default, skip_serializing_if = "Vec::is_empty")] pub rmdirs: Vec, #[serde(default, skip_serializing_if = "Vec::is_empty")] diff --git a/cli/golem-cli/src/model/cascade/layer.rs b/cli/golem-cli/src/model/cascade/layer.rs index b82007f84a..bea35a3e09 100644 --- a/cli/golem-cli/src/model/cascade/layer.rs +++ b/cli/golem-cli/src/model/cascade/layer.rs @@ -34,6 +34,4 @@ pub trait Layer { selector: &Self::Selector, value: &mut Self::Value, ) -> Result<(), Self::ApplyError>; - - fn root_id_to_context(id: &Self::Id) -> Self::ApplyContext; } diff --git a/cli/golem-cli/src/model/cascade/store.rs b/cli/golem-cli/src/model/cascade/store.rs index ceee392a03..808c737ab8 100644 --- a/cli/golem-cli/src/model/cascade/store.rs +++ b/cli/golem-cli/src/model/cascade/store.rs @@ -47,8 +47,9 @@ impl Store { &self, id: &L::Id, selector: &L::Selector, + ctx: &L::ApplyContext, ) -> Result> { - self.value_internal(&L::root_id_to_context(id), id, selector) + self.value_internal(ctx, id, selector) } fn value_internal( diff --git a/cli/golem-cli/src/model/component.rs b/cli/golem-cli/src/model/component.rs index 296abb41b4..2c57625023 100644 --- a/cli/golem-cli/src/model/component.rs +++ b/cli/golem-cli/src/model/component.rs @@ -30,7 +30,6 @@ use heck::{ToLowerCamelCase, ToSnakeCase}; use itertools::Itertools; use serde::{Deserialize, Serialize}; use std::collections::BTreeMap; -use std::fmt::Display; use std::path::PathBuf; pub enum ComponentRevisionSelection<'a> { @@ -62,34 +61,6 @@ pub struct SelectedComponents { pub component_names: Vec, } -#[derive(Debug, Copy, Clone, PartialEq, Eq, Serialize, Deserialize)] -#[serde(rename_all = "kebab-case")] -#[derive(Default)] -pub enum AppComponentType { - /// Durable Golem component - #[default] - Agent, - /// Library component, to be used in composition (not deployable) - Library, -} - -impl AppComponentType { - pub fn is_deployable(&self) -> bool { - match self { - AppComponentType::Agent => true, - AppComponentType::Library => false, - } - } -} -impl Display for AppComponentType { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - match self { - AppComponentType::Agent => write!(f, "Agent"), - AppComponentType::Library => write!(f, "Library"), - } - } -} - pub enum ComponentUpsertResult { Skipped, Added(ComponentDto), diff --git a/cli/golem-cli/src/model/mod.rs b/cli/golem-cli/src/model/mod.rs index 2cfba663f5..3f33fde849 100644 --- a/cli/golem-cli/src/model/mod.rs +++ b/cli/golem-cli/src/model/mod.rs @@ -32,7 +32,6 @@ pub mod wave; pub mod worker; use crate::app::template::{AppTemplate, AppTemplateName}; -use crate::command::shared_args::ComponentTemplateName; use crate::config::AuthenticationConfig; use crate::config::{NamedProfile, ProfileConfig, ProfileName}; use anyhow::{anyhow, Context}; @@ -40,8 +39,6 @@ use clap::builder::{StringValueParser, TypedValueParser}; use clap::error::{ContextKind, ContextValue, ErrorKind}; use clap::{Arg, Error}; use golem_common::model::account::AccountId; -use golem_common::model::application::ApplicationName; -use golem_common::model::component::ComponentName; use serde::{Deserialize, Serialize}; use serde_json::Value; use std::ffi::OsStr; @@ -54,12 +51,13 @@ use strum::IntoEnumIterator; use strum_macros::EnumIter; use url::Url; +// NOTE: the order of languages (currently) is NOT alphabetical, rather based on recommendation #[derive( Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, EnumIter, Serialize, Deserialize, )] pub enum GuestLanguage { - Rust, TypeScript, + Rust, } impl GuestLanguage { @@ -258,8 +256,3 @@ impl From for AccountDetails { } } } - -pub struct NewInteractiveApp { - pub app_name: ApplicationName, - pub templated_component_names: Vec<(ComponentTemplateName, ComponentName)>, -} diff --git a/cli/golem-cli/src/model/template.rs b/cli/golem-cli/src/model/template.rs index 8bb52fe4d6..16c0c63ad8 100644 --- a/cli/golem-cli/src/model/template.rs +++ b/cli/golem-cli/src/model/template.rs @@ -89,6 +89,7 @@ impl Template for app_raw::ExternalCommand { Ok(app_raw::ExternalCommand { command: self.command.render(env, ctx)?, dir: self.dir.render(env, ctx)?, + env: self.env.render(env, ctx)?, rmdirs: self.rmdirs.render(env, ctx)?, mkdirs: self.mkdirs.render(env, ctx)?, sources: self.sources.render(env, ctx)?, diff --git a/cli/golem-cli/templates/rust/common-on-demand/golem.yaml b/cli/golem-cli/templates/rust/common-on-demand/golem.yaml index b513ce7cca..628f7f5261 100644 --- a/cli/golem-cli/templates/rust/common-on-demand/golem.yaml +++ b/cli/golem-cli/templates/rust/common-on-demand/golem.yaml @@ -7,35 +7,30 @@ componentTemplates: default: true build: - command: cargo build --target wasm32-wasip2 + env: + CARGO_TARGET_DIR: "{{ componentDir }}/target" sources: - - src - - ../../common-rust - - Cargo.toml - - ../../Cargo.toml + - "{{ componentDir }}/src" + - "{{ componentDir }}/Cargo.toml" targets: - - ../../target/wasm32-wasip2/debug/{{ component_name | to_snake_case }}.wasm - sourceWit: .wit/wit - generatedWit: ../../golem-temp/agents/{{ component_name | to_snake_case }}/wit-generated - componentWasm: ../../target/wasm32-wasip2/debug/{{ component_name | to_snake_case }}.wasm - outputWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}_debug.wasm + - "{{ componentDir }}/target/wasm32-wasip2/debug/{{ component_name | to_snake_case }}.wasm" + componentWasm: "{{ componentDir }}/target/wasm32-wasip2/debug/{{ component_name | to_snake_case }}.wasm" + outputWasm: "{{ golemTempDir }}/agents/{{ component_name | to_snake_case }}_debug.wasm" clean: - - src/bindings.rs + - "{{ appDir }}/target" + - "{{ componentDir }}/target" release: build: - command: cargo build --target wasm32-wasip2 --release + env: + CARGO_TARGET_DIR: "{{ componentDir }}/target" sources: - - src - - ../../common-rust - - Cargo.toml - - ../../Cargo.toml + - "{{ componentDir }}/src" + - "{{ componentDir }}/Cargo.toml" targets: - - ../../target/wasm32-wasip2/release/{{ component_name | to_snake_case }}.wasm - sourceWit: .wit/wit - generatedWit: ../../golem-temp/agents/{{ component_name | to_snake_case }}/wit-generated - componentWasm: ../../target/wasm32-wasip2/release/{{ component_name | to_snake_case }}.wasm - outputWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}_release.wasm + - "{{ componentDir }}/target/wasm32-wasip2/release/{{ component_name | to_snake_case }}.wasm" + componentWasm: "{{ componentDir }}/target/wasm32-wasip2/release/{{ component_name | to_snake_case }}.wasm" + outputWasm: "{{ golemTempDir }}/agents/{{ component_name | to_snake_case }}_release.wasm" clean: - - src/bindings.rs -customCommands: - cargo-clean: - - command: cargo clean + - "{{ appDir }}/target" + - "{{ componentDir }}/target" diff --git a/cli/golem-cli/templates/rust/common/.gitignore b/cli/golem-cli/templates/rust/common/.gitignore index ed09b53992..1ef9c2fe51 100644 --- a/cli/golem-cli/templates/rust/common/.gitignore +++ b/cli/golem-cli/templates/rust/common/.gitignore @@ -1,2 +1,2 @@ /golem-temp -/target +target diff --git a/cli/golem-cli/templates/rust/common/AGENTS.md b/cli/golem-cli/templates/rust/common/AGENTS.md index ecc4d68729..fe1303b46d 100644 --- a/cli/golem-cli/templates/rust/common/AGENTS.md +++ b/cli/golem-cli/templates/rust/common/AGENTS.md @@ -1,3 +1,6 @@ + + + # Golem Application Development Guide (Rust) ## Overview @@ -20,16 +23,30 @@ Key concepts: ## Project Structure ``` -golem.yaml # Root application manifest -Cargo.toml # Workspace Cargo.toml -components-rust/ # Component crates (each becomes a WASM component) - / - src/lib.rs # Agent definitions and implementations - Cargo.toml # Must use crate-type = ["cdylib"] - golem.yaml # Component-level manifest (templates, env, dependencies) -common-rust/ # Shared Golem Rust templates - golem.yaml # Build templates for all Rust components +# Single-component app +golem.yaml # Golem Application Manifest (contains components..dir = ".") +Cargo.toml # Component crate manifest +src/ + lib.rs # Module entry point; re-exports of agents + .rs # Agent definitions and implementations + +# Multi-component app +golem.yaml # Golem Application Manifest (components map with explicit dir per component) +/ + Cargo.toml # Component crate manifest (must use crate-type = ["cdylib"]) + src/ + lib.rs # Module entry point; re-exports of agents + .rs # Agent definitions and implementations +/ + Cargo.toml # Component crate manifest (must use crate-type = ["cdylib"]) + src/ + lib.rs # Module entry point; re-exports of agents + .rs # Agent definitions and implementations + golem-temp/ # Build artifacts (gitignored) + common/ # Shared Golem templates (generated on-demand) + rust/ # Shared Golem Rust templates + golem.yaml # Build templates for all Rust components ``` ## Prerequisites @@ -258,8 +275,6 @@ pub struct MyData { } ``` -Shared types can be placed in `common-rust/common-lib/` and used across components. - ### Method annotations ```rust @@ -364,28 +379,97 @@ tx.execute(op1, "input".to_string()); }); ``` -## Adding New Components +## Using `golem new` + +Use `golem new` to create new applications and to add new components or agents to existing applications. + +### Create a new application + +```shell +golem new my-app --template rust +``` + +This creates a new application directory, initializes `golem.yaml`, and creates the first Rust component with a default agent template. + +You can also run `golem new .` in an empty directory to initialize the current folder as a new application. + +If the folder name is not a valid Golem application name (lowercase kebab-case), specify one explicitly: + +```shell +golem new . --application-name my-app --template rust +``` + +### Add to an existing application + +From inside an existing application, use `.` as the path: + +```shell +golem new . --template rust +``` + +By default this applies the Rust template to a matching Rust component, or creates one if needed. + +### Create or target a specific component + +```shell +golem new . --template rust --component-name my-app:billing +``` + +- If `my-app:billing` exists and is Rust, the template is applied there. +- If it does not exist, `golem new` creates the component and applies the template. + +### Applying multiple templates + +You can apply multiple templates to the same component in one command: ```shell -golem component new rust my:new-component +golem new . --template rust --template my:agent-template --component-name my-app:billing ``` -This creates a new directory under `components-rust/` with the standard structure. +You can also apply templates incrementally by running `golem new` multiple times for the same component. + +If multiple templates affect the same files, `golem new` merges the changes and shows the planned updates before applying them. + +### Component directory behavior + +- If the application has exactly one component, its `dir` in `golem.yaml` is `.`. +- If the application has multiple components, each component has an explicit `dir` in `golem.yaml`. +- When needed, `golem new` can promote an existing root component layout into explicit per-component directories. + +### Choosing one vs multiple components + +In most cases, prefer a single component with multiple agents. + +Use multiple components only when you have a technical reason, for example: +- using different guest languages in the same application (for example Rust + TypeScript) +- separating components with distinct operational or ownership constraints + +### Useful flags + +- `--template `: can be used multiple times to apply and merge several templates into one component (in non-interactive mode, at least one template is required) +- `--component-name `: target or create a specific component +- `--application-name `: set the application name when creating a new application + +To discover available templates: + +```shell +golem templates +``` ## Application Manifest (golem.yaml) -- Root `golem.yaml`: app name, includes, witDeps, environments -- `common-rust/golem.yaml`: build templates (debug/release profiles) shared by all Rust components -- `components-rust//golem.yaml`: component-specific config (templates reference, env vars, dependencies) +- Root `golem.yaml`: app name, includes, witDeps, environments, and `components` entries +- `golem-temp/common/rust/golem.yaml`: generated on-demand build templates (debug/release profiles) shared by all Rust components -Key fields in component manifest: +Key fields in each `components.` entry: +- `dir`: component directory (`"."` for single-component apps) - `templates`: references a template from common golem.yaml (e.g., `rust`) - `env`: environment variables passed to agents at runtime - `dependencies`: WASM dependencies (e.g., LLM providers from golem-ai) ## Available Libraries -From workspace `Cargo.toml`: +From your component (or shared workspace) `Cargo.toml`: - `golem-rust` (with `export_golem_agentic` feature) — agent framework, durability, transactions - `wstd` — WASI standard library (HTTP client via `wstd::http`, async I/O, etc.) - `log` — logging (uses `wasi-logger` backend, logs visible via `golem agent stream`) @@ -411,13 +495,12 @@ golem agent invoke '' 'method' args # Invoke method directly - All agent method parameters passed by value (no references) - All custom types need `Schema` derive (plus `IntoValue` and `FromValueAndType`, which `Schema` implies) - `proc-macro-enable` must be true in rust-analyzer settings (already configured in `.vscode/settings.json`) -- Do not manually edit files in `.wit/` directories — they are auto-managed by the build tooling -- `golem-temp/` and `target/` are gitignored build artifacts +- `golem-temp/` and `target/` are gitignored build artifacts, do not manually edit files in those directories ## Formatting and Linting ```shell -cargo fmt # Format code +cargo fmt # Format code cargo clippy --target wasm32-wasip1 # Lint (must target wasm32-wasip1) ``` @@ -426,3 +509,5 @@ cargo clippy --target wasm32-wasip1 # Lint (must target wasm32-wasip1) - App manifest reference: https://learn.golem.cloud/app-manifest - Full docs: https://learn.golem.cloud - golem-rust SDK: https://docs.rs/golem-rust + + diff --git a/cli/golem-cli/templates/rust/common/Cargo.toml._ b/cli/golem-cli/templates/rust/common/Cargo.toml._ deleted file mode 100644 index dede053ba8..0000000000 --- a/cli/golem-cli/templates/rust/common/Cargo.toml._ +++ /dev/null @@ -1,23 +0,0 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] -exclude = ["golem-temp"] - -[profile.release] -opt-level = "s" -lto = true - -[workspace.dependencies] - -golem-rust = { GOLEM_RUST_VERSION_OR_PATH, features = [ - "export_golem_agentic", -] } - -# Advanced HTTP client, alternative of wstd::http -# golem-wasi-http = { version = "0.2.0", features = ["json"] } - -log = { version = "0.4.29", features = ["kv"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -uuid = { version = "1.15.1", features = ["v4"] } -wstd = {version = "=0.6.5", features = ["default", "json"] } diff --git a/cli/golem-cli/templates/rust/common/golem.yaml b/cli/golem-cli/templates/rust/common/golem.yaml index d382f00437..212bb33c49 100644 --- a/cli/golem-cli/templates/rust/common/golem.yaml +++ b/cli/golem-cli/templates/rust/common/golem.yaml @@ -2,8 +2,6 @@ app: app-name -includes: -- components-*/*/golem.yaml environments: local: server: local diff --git a/cli/golem-cli/templates/rust/common/metadata.json b/cli/golem-cli/templates/rust/common/metadata.json index 9219574c61..bfa5cc514c 100644 --- a/cli/golem-cli/templates/rust/common/metadata.json +++ b/cli/golem-cli/templates/rust/common/metadata.json @@ -1,5 +1,4 @@ { "type": "common", - "description": "Common template for Rust", - "skipIfExists": "Cargo.toml" + "description": "Common template for Rust" } diff --git a/cli/golem-cli/templates/rust/component/component-dir/Cargo.toml._ b/cli/golem-cli/templates/rust/component/component-dir/Cargo.toml._ new file mode 100644 index 0000000000..13a6092ab8 --- /dev/null +++ b/cli/golem-cli/templates/rust/component/component-dir/Cargo.toml._ @@ -0,0 +1,19 @@ +[package] +name = "component_name" +version = "0.0.1" +edition = "2021" + +[profile.release] +opt-level = "s" +lto = true + +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" + +[dependencies] +log = { version = "0.4.29", features = ["kv"] } +golem-rust = { GOLEM_RUST_VERSION_OR_PATH, features = ["export_golem_agentic"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/cli/golem-cli/templates/rust/component/golem.yaml b/cli/golem-cli/templates/rust/component/golem.yaml new file mode 100644 index 0000000000..41a29feec8 --- /dev/null +++ b/cli/golem-cli/templates/rust/component/golem.yaml @@ -0,0 +1,9 @@ +# golem-app-manifest-header + +components: + componentname: + dir: "componentDir" + templates: rust + + # golem-app-manifest-env-doc + env: diff --git a/cli/golem-cli/templates/rust/component/metadata.json b/cli/golem-cli/templates/rust/component/metadata.json new file mode 100644 index 0000000000..caa210f086 --- /dev/null +++ b/cli/golem-cli/templates/rust/component/metadata.json @@ -0,0 +1,4 @@ +{ + "type": "component", + "description": "Common Rust component files" +} diff --git a/cli/golem-cli/templates/rust/default/components-rust/component-name/src/lib.rs b/cli/golem-cli/templates/rust/default/component-dir/src/counter_agent.rs similarity index 91% rename from cli/golem-cli/templates/rust/default/components-rust/component-name/src/lib.rs rename to cli/golem-cli/templates/rust/default/component-dir/src/counter_agent.rs index aab189d0f7..aa87531233 100644 --- a/cli/golem-cli/templates/rust/default/components-rust/component-name/src/lib.rs +++ b/cli/golem-cli/templates/rust/default/component-dir/src/counter_agent.rs @@ -1,8 +1,6 @@ use golem_rust::{agent_definition, agent_implementation, endpoint}; -#[agent_definition( - mount = "/counters/{name}" -)] +#[agent_definition(mount = "/counters/{name}")] pub trait CounterAgent { // The agent constructor, it's parameters identify the agent fn new(name: String) -> Self; diff --git a/cli/golem-cli/templates/rust/default/component-dir/src/lib.rs b/cli/golem-cli/templates/rust/default/component-dir/src/lib.rs new file mode 100644 index 0000000000..8d1d448ee3 --- /dev/null +++ b/cli/golem-cli/templates/rust/default/component-dir/src/lib.rs @@ -0,0 +1,3 @@ +mod counter_agent; + +pub use counter_agent::*; diff --git a/cli/golem-cli/templates/rust/default/components-rust/component-name/Cargo.lock b/cli/golem-cli/templates/rust/default/components-rust/component-name/Cargo.lock deleted file mode 100644 index 2a3d162ccf..0000000000 --- a/cli/golem-cli/templates/rust/default/components-rust/component-name/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "component-name" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/cli/golem-cli/templates/rust/default/components-rust/component-name/Cargo.toml._ b/cli/golem-cli/templates/rust/default/components-rust/component-name/Cargo.toml._ deleted file mode 100644 index df9b9f9399..0000000000 --- a/cli/golem-cli/templates/rust/default/components-rust/component-name/Cargo.toml._ +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "component_name" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/cli/golem-cli/templates/rust/default/components-rust/component-name/golem.yaml b/cli/golem-cli/templates/rust/default/components-rust/component-name/golem.yaml deleted file mode 100644 index 678aa35167..0000000000 --- a/cli/golem-cli/templates/rust/default/components-rust/component-name/golem.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# golem-app-manifest-header - -httpApi: - deployments: - local: - - domain: app-name.localhost:9006 - agents: - CounterAgent: {} - -components: - componentname: - templates: rust - - # golem-app-manifest-env-doc - env: - # golem-app-manifest-dep-env-vars-doc - - # golem-app-manifest-env-presets diff --git a/cli/golem-cli/templates/rust/default/golem.yaml b/cli/golem-cli/templates/rust/default/golem.yaml new file mode 100644 index 0000000000..79afc91484 --- /dev/null +++ b/cli/golem-cli/templates/rust/default/golem.yaml @@ -0,0 +1,8 @@ +# golem-app-manifest-header + +httpApi: + deployments: + local: + - domain: app-name.localhost:9006 + agents: + CounterAgent: {} diff --git a/cli/golem-cli/templates/rust/default/metadata.json b/cli/golem-cli/templates/rust/default/metadata.json index a1c94beb79..cdf6621c3c 100644 --- a/cli/golem-cli/templates/rust/default/metadata.json +++ b/cli/golem-cli/templates/rust/default/metadata.json @@ -1,4 +1,4 @@ { - "type": "component", + "type": "agent", "description": "A simple agent implementing a counter" -} \ No newline at end of file +} diff --git a/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/Cargo.toml._ b/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/Cargo.toml._ new file mode 100644 index 0000000000..afaa78c66a --- /dev/null +++ b/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/Cargo.toml._ @@ -0,0 +1,2 @@ +[dependencies] +uuid = { version = "1.15.1", features = ["v4"] } diff --git a/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/decision.rs b/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/decision.rs new file mode 100644 index 0000000000..528fed8ca7 --- /dev/null +++ b/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/decision.rs @@ -0,0 +1,9 @@ +use golem_rust::Schema; + +pub type WorkflowId = String; + +#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize, Schema)] +pub enum Decision { + Approved, + Rejected, +} diff --git a/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/src/lib.rs b/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/human_agent.rs similarity index 51% rename from cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/src/lib.rs rename to cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/human_agent.rs index e3ab165bd0..e32980d03b 100644 --- a/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/src/lib.rs +++ b/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/human_agent.rs @@ -1,71 +1,11 @@ +use crate::decision::{Decision, WorkflowId}; use golem_rust::{ - agent_definition, agent_implementation, await_promise_json, complete_promise_json, - create_promise, description, prompt, PromiseId, Schema, endpoint + agent_definition, agent_implementation, complete_promise_json, description, endpoint, prompt, + PromiseId, }; use std::collections::HashMap; -use uuid::Uuid; -type WorkflowId = String; - -#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize, Schema)] -pub enum Decision { - Approved, - Rejected, -} - -#[agent_definition( - mount = "/workflows", - phantom_agent = true -)] -pub trait WorkflowAgent { - fn new() -> Self; - - #[prompt("Start approval process")] - #[description("Starts a workflow that requires human approval before continuing")] - async fn start(&mut self) -> String; -} - -struct WorkflowAgentImpl { - id: WorkflowId, -} - -#[agent_implementation] -impl WorkflowAgent for WorkflowAgentImpl { - fn new() -> Self { - Self { - id: Uuid::new_v4().to_string() - } - } - - #[endpoint(post = "/")] - async fn start(&mut self) -> String { - // 1. Create a promise that represents waiting for human input - let approval_promise_id = create_promise(); - - // Normally you would send this ID to some UI, email, etc. - // For demo purposes, we'll just tell you where to send the approval - let mut approver = HumanAgentClient::get("bob".to_string()); - approver - .request_approval(self.id.clone(), approval_promise_id.clone()) - .await; - - // 2. Pause here until the promise is completed - let result: Decision = await_promise_json(&approval_promise_id) - .await - .expect("Invalid promise payload"); - - // 3. Continue based on human input - if result == Decision::Approved { - format!("Workflow {} was approved ✅", self.id) - } else { - format!("Workflow {} was rejected ❌", self.id) - } - } -} - -#[agent_definition( - mount = "/humans/{username}" -)] +#[agent_definition(mount = "/humans/{username}")] pub trait HumanAgent { fn new(username: String) -> Self; diff --git a/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/lib.rs b/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/lib.rs new file mode 100644 index 0000000000..c4cb40fcde --- /dev/null +++ b/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/lib.rs @@ -0,0 +1,7 @@ +mod decision; +mod human_agent; +mod workflow_agent; + +pub use decision::*; +pub use human_agent::*; +pub use workflow_agent::*; diff --git a/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/workflow_agent.rs b/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/workflow_agent.rs new file mode 100644 index 0000000000..a8a3d863f9 --- /dev/null +++ b/cli/golem-cli/templates/rust/human-in-the-loop/component-dir/src/workflow_agent.rs @@ -0,0 +1,54 @@ +use crate::decision::{Decision, WorkflowId}; +use crate::human_agent::HumanAgentClient; +use golem_rust::{ + agent_definition, agent_implementation, await_promise_json, create_promise, description, + endpoint, prompt, +}; +use uuid::Uuid; + +#[agent_definition(mount = "/workflows", phantom_agent = true)] +pub trait WorkflowAgent { + fn new() -> Self; + + #[prompt("Start approval process")] + #[description("Starts a workflow that requires human approval before continuing")] + async fn start(&mut self) -> String; +} + +struct WorkflowAgentImpl { + id: WorkflowId, +} + +#[agent_implementation] +impl WorkflowAgent for WorkflowAgentImpl { + fn new() -> Self { + Self { + id: Uuid::new_v4().to_string(), + } + } + + #[endpoint(post = "/")] + async fn start(&mut self) -> String { + // 1. Create a promise that represents waiting for human input + let approval_promise_id = create_promise(); + + // Normally you would send this ID to some UI, email, etc. + // For demo purposes, we'll just tell you where to send the approval + let mut approver = HumanAgentClient::get("bob".to_string()); + approver + .request_approval(self.id.clone(), approval_promise_id.clone()) + .await; + + // 2. Pause here until the promise is completed + let result: Decision = await_promise_json(&approval_promise_id) + .await + .expect("Invalid promise payload"); + + // 3. Continue based on human input + if result == Decision::Approved { + format!("Workflow {} was approved ✅", self.id) + } else { + format!("Workflow {} was rejected ❌", self.id) + } + } +} diff --git a/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/Cargo.lock b/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/Cargo.lock deleted file mode 100644 index 2a3d162ccf..0000000000 --- a/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "component-name" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/Cargo.toml._ b/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/Cargo.toml._ deleted file mode 100644 index 6d4acde522..0000000000 --- a/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/Cargo.toml._ +++ /dev/null @@ -1,16 +0,0 @@ -[package] -name = "component_name" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -uuid = { workspace = true } -wstd = { workspace = true } diff --git a/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/golem.yaml b/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/golem.yaml deleted file mode 100644 index ef0bc2e66f..0000000000 --- a/cli/golem-cli/templates/rust/human-in-the-loop/components-rust/component-name/golem.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# golem-app-manifest-header - -httpApi: - deployments: - local: - - domain: app-name.localhost:9006 - agents: - WorkflowAgent: {} - HumanAgent: {} - -components: - componentname: - templates: rust - - # golem-app-manifest-env-doc - env: - # golem-app-manifest-dep-env-vars-doc - - # golem-app-manifest-env-presets diff --git a/cli/golem-cli/templates/rust/human-in-the-loop/golem.yaml b/cli/golem-cli/templates/rust/human-in-the-loop/golem.yaml new file mode 100644 index 0000000000..4de50106ea --- /dev/null +++ b/cli/golem-cli/templates/rust/human-in-the-loop/golem.yaml @@ -0,0 +1,9 @@ +# golem-app-manifest-header + +httpApi: + deployments: + local: + - domain: app-name.localhost:9006 + agents: + WorkflowAgent: {} + HumanAgent: {} diff --git a/cli/golem-cli/templates/rust/human-in-the-loop/metadata.json b/cli/golem-cli/templates/rust/human-in-the-loop/metadata.json index c6f1b95c05..aad27606a6 100644 --- a/cli/golem-cli/templates/rust/human-in-the-loop/metadata.json +++ b/cli/golem-cli/templates/rust/human-in-the-loop/metadata.json @@ -1,4 +1,4 @@ { - "type": "component", + "type": "agent", "description": "An example agent using promises to implement a human in the loop workflow." } diff --git a/cli/golem-cli/templates/rust/json/component-dir/Cargo.toml._ b/cli/golem-cli/templates/rust/json/component-dir/Cargo.toml._ new file mode 100644 index 0000000000..146e194cf0 --- /dev/null +++ b/cli/golem-cli/templates/rust/json/component-dir/Cargo.toml._ @@ -0,0 +1,3 @@ +[dependencies] +chrono = "0.4.42" +golem-rust = { features = ["chrono"] } diff --git a/cli/golem-cli/templates/rust/json/component-dir/src/lib.rs b/cli/golem-cli/templates/rust/json/component-dir/src/lib.rs new file mode 100644 index 0000000000..217c728e98 --- /dev/null +++ b/cli/golem-cli/templates/rust/json/component-dir/src/lib.rs @@ -0,0 +1,3 @@ +mod tasks; + +pub use tasks::*; diff --git a/cli/golem-cli/templates/rust/json/components-rust/component-name/src/lib.rs b/cli/golem-cli/templates/rust/json/component-dir/src/tasks.rs similarity index 94% rename from cli/golem-cli/templates/rust/json/components-rust/component-name/src/lib.rs rename to cli/golem-cli/templates/rust/json/component-dir/src/tasks.rs index db0a2c8531..eaf7b9e35f 100644 --- a/cli/golem-cli/templates/rust/json/components-rust/component-name/src/lib.rs +++ b/cli/golem-cli/templates/rust/json/component-dir/src/tasks.rs @@ -1,5 +1,5 @@ use chrono::{DateTime, Utc}; -use golem_rust::{agent_definition, agent_implementation, description, prompt, Schema, endpoint}; +use golem_rust::{agent_definition, agent_implementation, description, endpoint, prompt, Schema}; #[derive(Clone, Schema)] pub struct Task { @@ -14,10 +14,7 @@ pub struct CreateTaskRequest { title: String, } -#[agent_definition( - mount = "/task-agents/{name}", - cors = [ "*" ] -)] +#[agent_definition(mount = "/task-agents/{name}", cors = [ "*" ])] #[description("An agent managing a named set of tasks")] pub trait Tasks { fn new(name: String) -> Self; diff --git a/cli/golem-cli/templates/rust/json/components-rust/component-name/Cargo.lock b/cli/golem-cli/templates/rust/json/components-rust/component-name/Cargo.lock deleted file mode 100644 index 2a3d162ccf..0000000000 --- a/cli/golem-cli/templates/rust/json/components-rust/component-name/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "component-name" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/cli/golem-cli/templates/rust/json/components-rust/component-name/Cargo.toml._ b/cli/golem-cli/templates/rust/json/components-rust/component-name/Cargo.toml._ deleted file mode 100644 index 06a8fd045b..0000000000 --- a/cli/golem-cli/templates/rust/json/components-rust/component-name/Cargo.toml._ +++ /dev/null @@ -1,16 +0,0 @@ -[package] -name = "component_name" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -chrono = "0.4.42" -log = { workspace = true } -golem-rust = { workspace = true, features = ["chrono"] } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/cli/golem-cli/templates/rust/json/components-rust/component-name/golem.yaml b/cli/golem-cli/templates/rust/json/components-rust/component-name/golem.yaml deleted file mode 100644 index 9a48481f25..0000000000 --- a/cli/golem-cli/templates/rust/json/components-rust/component-name/golem.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# golem-app-manifest-header - -httpApi: - deployments: - local: - - domain: app-name.localhost:9006 - agents: - Tasks: {} - -components: - componentname: - templates: rust - - # golem-app-manifest-env-doc - env: - # golem-app-manifest-dep-env-vars-doc - - # golem-app-manifest-env-presets diff --git a/cli/golem-cli/templates/rust/json/golem.yaml b/cli/golem-cli/templates/rust/json/golem.yaml new file mode 100644 index 0000000000..7c527c65c3 --- /dev/null +++ b/cli/golem-cli/templates/rust/json/golem.yaml @@ -0,0 +1,8 @@ +# golem-app-manifest-header + +httpApi: + deployments: + local: + - domain: app-name.localhost:9006 + agents: + Tasks: {} diff --git a/cli/golem-cli/templates/rust/json/metadata.json b/cli/golem-cli/templates/rust/json/metadata.json index af06a053a6..375e733ebe 100644 --- a/cli/golem-cli/templates/rust/json/metadata.json +++ b/cli/golem-cli/templates/rust/json/metadata.json @@ -1,4 +1,4 @@ { - "type": "component", + "type": "agent", "description": "A simple agent demonstrating JSON API support" -} \ No newline at end of file +} diff --git a/cli/golem-cli/templates/rust/llm-session/components-rust/component-name/Cargo.toml._ b/cli/golem-cli/templates/rust/llm-session/component-dir/Cargo.toml._ similarity index 73% rename from cli/golem-cli/templates/rust/llm-session/components-rust/component-name/Cargo.toml._ rename to cli/golem-cli/templates/rust/llm-session/component-dir/Cargo.toml._ index 1f212cbf6d..97e2096800 100644 --- a/cli/golem-cli/templates/rust/llm-session/components-rust/component-name/Cargo.toml._ +++ b/cli/golem-cli/templates/rust/llm-session/component-dir/Cargo.toml._ @@ -1,19 +1,4 @@ -[package] -name = "component_name" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - [dependencies] -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } - # Golem AI provider crates - uncomment the ones you need: # LLM providers (pick one plus the base library) golem-ai-llm = { git = "https://github.com/golemcloud/golem-ai", branch = "dev" } diff --git a/cli/golem-cli/templates/rust/llm-session/components-rust/component-name/src/lib.rs b/cli/golem-cli/templates/rust/llm-session/component-dir/src/chat_agent.rs similarity index 100% rename from cli/golem-cli/templates/rust/llm-session/components-rust/component-name/src/lib.rs rename to cli/golem-cli/templates/rust/llm-session/component-dir/src/chat_agent.rs diff --git a/cli/golem-cli/templates/rust/llm-session/component-dir/src/lib.rs b/cli/golem-cli/templates/rust/llm-session/component-dir/src/lib.rs new file mode 100644 index 0000000000..0733b98fb9 --- /dev/null +++ b/cli/golem-cli/templates/rust/llm-session/component-dir/src/lib.rs @@ -0,0 +1,3 @@ +mod chat_agent; + +pub use chat_agent::*; diff --git a/cli/golem-cli/templates/rust/llm-session/components-rust/component-name/Cargo.lock b/cli/golem-cli/templates/rust/llm-session/components-rust/component-name/Cargo.lock deleted file mode 100644 index 2a3d162ccf..0000000000 --- a/cli/golem-cli/templates/rust/llm-session/components-rust/component-name/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "component-name" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/cli/golem-cli/templates/rust/llm-session/components-rust/component-name/golem.yaml b/cli/golem-cli/templates/rust/llm-session/components-rust/component-name/golem.yaml deleted file mode 100644 index a97ab5bb54..0000000000 --- a/cli/golem-cli/templates/rust/llm-session/components-rust/component-name/golem.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# golem-app-manifest-header - -httpApi: - deployments: - local: - - domain: app-name.localhost:9006 - agents: - ChatAgent: {} - -components: - componentname: - templates: rust - - # golem-app-manifest-env-doc - env: - # golem-app-manifest-dep-env-vars-doc - - # golem-app-manifest-env-presets diff --git a/cli/golem-cli/templates/rust/llm-session/golem.yaml b/cli/golem-cli/templates/rust/llm-session/golem.yaml new file mode 100644 index 0000000000..bcb3f1bd2f --- /dev/null +++ b/cli/golem-cli/templates/rust/llm-session/golem.yaml @@ -0,0 +1,8 @@ +# golem-app-manifest-header + +httpApi: + deployments: + local: + - domain: app-name.localhost:9006 + agents: + ChatAgent: {} diff --git a/cli/golem-cli/templates/rust/llm-session/metadata.json b/cli/golem-cli/templates/rust/llm-session/metadata.json index 8feedad813..968fdc9cf0 100644 --- a/cli/golem-cli/templates/rust/llm-session/metadata.json +++ b/cli/golem-cli/templates/rust/llm-session/metadata.json @@ -1,5 +1,5 @@ { - "type": "component", + "type": "agent", "description": "LLM chat with durable history", "devOnly": true -} \ No newline at end of file +} diff --git a/cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/Cargo.toml._ b/cli/golem-cli/templates/rust/llm-websearch-summary-example/component-dir/Cargo.toml._ similarity index 82% rename from cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/Cargo.toml._ rename to cli/golem-cli/templates/rust/llm-websearch-summary-example/component-dir/Cargo.toml._ index d09196fde0..bc6b2aa03e 100644 --- a/cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/Cargo.toml._ +++ b/cli/golem-cli/templates/rust/llm-websearch-summary-example/component-dir/Cargo.toml._ @@ -1,19 +1,4 @@ -[package] -name = "component_name" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - [dependencies] -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } - # Golem AI provider crates - uncomment the ones you need: # LLM providers (pick one plus the base library) golem-ai-llm = { git = "https://github.com/golemcloud/golem-ai", branch = "dev" } diff --git a/cli/golem-cli/templates/rust/llm-websearch-summary-example/component-dir/src/lib.rs b/cli/golem-cli/templates/rust/llm-websearch-summary-example/component-dir/src/lib.rs new file mode 100644 index 0000000000..0a904f5ebd --- /dev/null +++ b/cli/golem-cli/templates/rust/llm-websearch-summary-example/component-dir/src/lib.rs @@ -0,0 +1,3 @@ +mod research_agent; + +pub use research_agent::*; diff --git a/cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/src/lib.rs b/cli/golem-cli/templates/rust/llm-websearch-summary-example/component-dir/src/research_agent.rs similarity index 96% rename from cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/src/lib.rs rename to cli/golem-cli/templates/rust/llm-websearch-summary-example/component-dir/src/research_agent.rs index dc11d5a26e..a7e18d60df 100644 --- a/cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/src/lib.rs +++ b/cli/golem-cli/templates/rust/llm-websearch-summary-example/component-dir/src/research_agent.rs @@ -1,8 +1,8 @@ use golem_ai_llm::model::*; use golem_ai_llm::LlmProvider; -use golem_ai_web_search::model::web_search; use golem_ai_web_search::model::types; -use golem_rust::{agent_definition, agent_implementation, description, Schema, endpoint}; +use golem_ai_web_search::model::web_search; +use golem_rust::{agent_definition, agent_implementation, description, endpoint, Schema}; type Provider = golem_ai_llm_openai::DurableOpenAI; type SearchProvider = golem_ai_web_search_google::DurableGoogleCustomSearch; @@ -14,10 +14,7 @@ pub struct SearchResult { snippet: String, } -#[agent_definition( - mount = "/research", - phantom_agent = true -)] +#[agent_definition(mount = "/research", phantom_agent = true)] pub trait ResearchAgent { fn new() -> Self; @@ -114,7 +111,7 @@ fn search_web_for_topic(topic: &str) -> Vec { advanced_answer: Some(true), region: None, }) - .expect("Failed to start search"); + .expect("Failed to start search"); let mut content: Vec = Vec::new(); diff --git a/cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/Cargo.lock b/cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/Cargo.lock deleted file mode 100644 index 2a3d162ccf..0000000000 --- a/cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "component-name" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/golem.yaml b/cli/golem-cli/templates/rust/llm-websearch-summary-example/golem.yaml similarity index 86% rename from cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/golem.yaml rename to cli/golem-cli/templates/rust/llm-websearch-summary-example/golem.yaml index e5785780ac..db49c8ba35 100644 --- a/cli/golem-cli/templates/rust/llm-websearch-summary-example/components-rust/component-name/golem.yaml +++ b/cli/golem-cli/templates/rust/llm-websearch-summary-example/golem.yaml @@ -9,9 +9,6 @@ httpApi: components: componentname: - templates: rust - - # golem-app-manifest-env-doc env: # Local ollama llm model to use LLM_MODEL: hf.co/unsloth/gpt-oss-20b-GGUF:Q8_0 @@ -21,5 +18,3 @@ components: GOOGLE_SEARCH_ENGINE_ID: "changeme" # golem-app-manifest-dep-env-vars-doc - - # golem-app-manifest-env-presets diff --git a/cli/golem-cli/templates/rust/llm-websearch-summary-example/metadata.json b/cli/golem-cli/templates/rust/llm-websearch-summary-example/metadata.json index 89005993d1..f10c6cf676 100644 --- a/cli/golem-cli/templates/rust/llm-websearch-summary-example/metadata.json +++ b/cli/golem-cli/templates/rust/llm-websearch-summary-example/metadata.json @@ -1,5 +1,5 @@ { - "type": "component", + "type": "agent", "description": "An example agent using the golem-ai library to search the web and summarize the results.", "devOnly": true -} \ No newline at end of file +} diff --git a/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/src/lib.rs b/cli/golem-cli/templates/rust/snapshotting/component-dir/src/counter_with_snapshot_agent.rs similarity index 72% rename from cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/src/lib.rs rename to cli/golem-cli/templates/rust/snapshotting/component-dir/src/counter_with_snapshot_agent.rs index 143dbe57e8..6d522342fb 100644 --- a/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/src/lib.rs +++ b/cli/golem-cli/templates/rust/snapshotting/component-dir/src/counter_with_snapshot_agent.rs @@ -1,21 +1,21 @@ use golem_rust::{agent_definition, agent_implementation, endpoint}; -#[agent_definition] -pub trait CounterAgent { +#[agent_definition(mount = "/snapshot-counters/{name}")] +pub trait CounterWithSnapshotAgent { // The agent constructor, it's parameters identify the agent fn new(name: String) -> Self; + #[endpoint(post = "/increment")] fn increment(&mut self) -> u32; } struct CounterImpl { _name: String, - count: u32, } + count: u32, +} -#[agent_implementation( - mount = "/counters/{name}" -)] -impl CounterAgent for CounterImpl { +#[agent_implementation(mount = "/snapshot-counters/{name}")] +impl CounterWithSnapshotAgent for CounterImpl { fn new(name: String) -> Self { Self { _name: name, diff --git a/cli/golem-cli/templates/rust/snapshotting/component-dir/src/lib.rs b/cli/golem-cli/templates/rust/snapshotting/component-dir/src/lib.rs new file mode 100644 index 0000000000..cf002ce808 --- /dev/null +++ b/cli/golem-cli/templates/rust/snapshotting/component-dir/src/lib.rs @@ -0,0 +1,3 @@ +mod counter_with_snapshot_agent; + +pub use counter_with_snapshot_agent::*; diff --git a/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/Cargo.lock b/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/Cargo.lock deleted file mode 100644 index 2a3d162ccf..0000000000 --- a/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "component-name" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/Cargo.toml._ b/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/Cargo.toml._ deleted file mode 100644 index df9b9f9399..0000000000 --- a/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/Cargo.toml._ +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "component_name" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/golem.yaml b/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/golem.yaml deleted file mode 100644 index e161f9f3c3..0000000000 --- a/cli/golem-cli/templates/rust/snapshotting/components-rust/component-name/golem.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# golem-app-manifest-header - -# httpApi: -# definitions: -# component-name-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /component-name-api/{name}/increment -# binding: -# type: default -# __cn__: componentname -# response: | -# let name: string = request.path.name; -# let agent = CounterAgent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } - -# deployments: -# local: -# - domain: app-name.localhost:9006 -# definitions: -# - component-name-api - -components: - componentname: - templates: rust - - # golem-app-manifest-env-doc - env: - # golem-app-manifest-dep-env-vars-doc - - # golem-app-manifest-env-presets diff --git a/cli/golem-cli/templates/rust/snapshotting/golem.yaml b/cli/golem-cli/templates/rust/snapshotting/golem.yaml new file mode 100644 index 0000000000..1a7e04aa35 --- /dev/null +++ b/cli/golem-cli/templates/rust/snapshotting/golem.yaml @@ -0,0 +1,8 @@ +# golem-app-manifest-header + +httpApi: + deployments: + local: + - domain: app-name.localhost:9006 + agents: + CounterWithSnapshotAgent: {} diff --git a/cli/golem-cli/templates/rust/snapshotting/metadata.json b/cli/golem-cli/templates/rust/snapshotting/metadata.json index 148f400b9d..2856c8bffd 100644 --- a/cli/golem-cli/templates/rust/snapshotting/metadata.json +++ b/cli/golem-cli/templates/rust/snapshotting/metadata.json @@ -1,4 +1,4 @@ { - "type": "component", + "type": "agent", "description": "A simple agent implementing a counter with custom state snapshotting" -} \ No newline at end of file +} diff --git a/cli/golem-cli/templates/ts/common-on-demand/golem.yaml b/cli/golem-cli/templates/ts/common-on-demand/golem.yaml index fbe7541dc4..d729ee649b 100644 --- a/cli/golem-cli/templates/ts/common-on-demand/golem.yaml +++ b/cli/golem-cli/templates/ts/common-on-demand/golem.yaml @@ -3,36 +3,38 @@ componentTemplates: ts: build: - - command: npx tsc --noEmit false --emitDeclarationOnly --declaration --outFile ../../golem-temp/ts-check/{{ component_name | to_kebab_case }}/main.d.ts + - command: npx tsc --project "{{ componentDir }}" --noEmit false --emitDeclarationOnly --declaration --outFile "{{ golemTempDir }}/ts-check/{{ component_name | to_kebab_case }}/main.d.ts" sources: - - src - - ../../common-ts - - tsconfig.js + - "{{ componentDir }}/src" + - "{{ componentDir }}/tsconfig.json" targets: - - ../../golem-temp/ts-check/{{ component_name | to_kebab_case }}/main.d.ts - - command: npx --no golem-typegen ../../../components-ts/{{ component_name | to_kebab_case }}/tsconfig.json --files ../../../components-ts/{{ component_name | to_kebab_case }}/src/**/*.ts - dir: ../../golem-temp/ts-metadata/{{ component_name | to_kebab_case }} + - "{{ golemTempDir }}/ts-check/{{ component_name | to_kebab_case }}/main.d.ts" + - command: npx --no golem-typegen "{{ componentDir }}/tsconfig.json" --files "{{ componentDir }}/src/**/*.ts" + dir: "{{ golemTempDir }}/ts-metadata/{{ component_name | to_kebab_case }}" sources: - - ../../../components-ts/{{ component_name | to_kebab_case }}/src + - "{{ componentDir }}/src" + - "{{ componentDir }}/tsconfig.json" targets: - .metadata - - command: npx --no rollup -- -c + - command: npx --no rollup -- -c "{{ golemTempDir }}/common/ts/rollup.config.component.mjs" + dir: "{{ componentDir }}" + env: + GOLEM_APP_ROOT: "{{ appRootDir }}" + GOLEM_TEMP: "{{ golemTempDir }}" + GOLEM_COMPONENT_NAME: "{{ component_name | to_kebab_case }}" sources: - - src - - ../../common-ts - - rollup.config.mjs - - tsconfig.js - - ../../golem-temp/ts-metadata/{{ component_name | to_kebab_case }} + - "{{ componentDir }}/src" + - "{{ golemTempDir }}/common/ts/rollup.config.component.mjs" + - "{{ componentDir }}/tsconfig.json" + - "{{ golemTempDir }}/ts-metadata/{{ component_name | to_kebab_case }}" targets: - - ../../golem-temp/ts-dist/{{ component_name | to_kebab_case }}/main.js - - injectToPrebuiltQuickjs: ../../node_modules/@golemcloud/golem-ts-sdk/wasm/agent_guest.wasm - module: ../../golem-temp/ts-dist/{{ component_name | to_kebab_case }}/main.js - moduleWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.module.wasm - into: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm - sourceWit: ../../node_modules/@golemcloud/golem-ts-sdk/wasm/agent_guest.wasm - generatedWit: ../../golem-temp/agents/{{ component_name | to_snake_case }}/wit-generated - componentWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.dynamic.wasm - outputWasm: ../../golem-temp/agents/{{ component_name | to_snake_case }}.wasm + - "{{ golemTempDir }}/ts-dist/{{ component_name | to_kebab_case }}/main.js" + - injectToPrebuiltQuickjs: "{{ appRootDir }}/node_modules/@golemcloud/golem-ts-sdk/wasm/agent_guest.wasm" + module: "{{ golemTempDir }}/ts-dist/{{ component_name | to_kebab_case }}/main.js" + moduleWasm: "{{ golemTempDir }}/agents/{{ component_name | to_snake_case }}.module.wasm" + into: "{{ golemTempDir }}/agents/{{ component_name | to_snake_case }}.dynamic.wasm" + componentWasm: "{{ golemTempDir }}/agents/{{ component_name | to_snake_case }}.dynamic.wasm" + outputWasm: "{{ golemTempDir }}/agents/{{ component_name | to_snake_case }}.wasm" customCommands: ts-npm-install: - - command: npm install \ No newline at end of file + - command: npm install diff --git a/cli/golem-cli/templates/ts/common-on-demand/rollup.config.component.mjs b/cli/golem-cli/templates/ts/common-on-demand/rollup.config.component.mjs index 3c4ad2d8b0..874eeab492 100644 --- a/cli/golem-cli/templates/ts/common-on-demand/rollup.config.component.mjs +++ b/cli/golem-cli/templates/ts/common-on-demand/rollup.config.component.mjs @@ -1,12 +1,28 @@ -import alias from "@rollup/plugin-alias"; import commonjs from "@rollup/plugin-commonjs"; import json from "@rollup/plugin-json"; import nodeResolve from "@rollup/plugin-node-resolve"; import typescript from "@rollup/plugin-typescript"; import url from "node:url"; import path from "node:path"; +import process from "node:process"; + +function componentRollupConfig() { + const componentName = process.env.GOLEM_COMPONENT_NAME; + if (!componentName) { + throw new Error("GOLEM_COMPONENT_NAME is not set"); + } + + const golemTemp = process.env.GOLEM_TEMP; + if (!golemTemp) { + throw new Error("GOLEM_TEMP is not set"); + } + + const appRootDir = process.env.GOLEM_APP_ROOT; + if (!appRootDir) { + throw new Error("GOLEM_APP_ROOT is not set"); + } + -export default function componentRollupConfig(componentName) { const dir = path.dirname(url.fileURLToPath(import.meta.url)); const externalPackages = (id) => { @@ -31,7 +47,7 @@ export default function componentRollupConfig(componentName) { if (id === resolvedVirtualAgentMainId) { return ` import { TypescriptTypeRegistry } from '@golemcloud/golem-ts-sdk'; -import { Metadata } from '../../golem-temp/ts-metadata/${componentName}/.metadata/generated-types'; +import { Metadata } from '${golemTemp}/ts-metadata/${componentName}/.metadata/generated-types'; TypescriptTypeRegistry.register(Metadata); @@ -46,7 +62,7 @@ export default (async () => { return await import("./src/main");})(); return { input: virtualAgentMainId, output: { - file: `../../golem-temp/ts-dist/${componentName}/main.js`, + file: `${golemTemp}/ts-dist/${componentName}/main.js`, format: "esm", inlineDynamicImports: true, sourcemap: false, @@ -58,15 +74,14 @@ export default (async () => { return await import("./src/main");})(); extensions: [".mjs", ".js", ".node", ".ts"], }), commonjs({ - include: ["../../node_modules/**"], + include: [`${appRootDir}/node_modules/**`], }), json(), typescript({ noEmitOnError: true, - include: [ - "./src/**/*.ts", - ], }), ], }; } + +export default componentRollupConfig(); diff --git a/cli/golem-cli/templates/ts/common/AGENTS.md b/cli/golem-cli/templates/ts/common/AGENTS.md index 73e3fef423..fc1667b951 100644 --- a/cli/golem-cli/templates/ts/common/AGENTS.md +++ b/cli/golem-cli/templates/ts/common/AGENTS.md @@ -1,3 +1,6 @@ + + + # Golem Application Development Guide (TypeScript) ## Overview @@ -20,20 +23,33 @@ Key concepts: ## Project Structure ``` -golem.yaml # Root application manifest -package.json # Root package.json (npm workspaces) -components-ts/ # Component directories (each becomes a WASM component) - / - src/main.ts # Agent definitions and implementations - package.json # Component-level package.json - rollup.config.mjs # Rollup config (imports shared base config) - tsconfig.json # TypeScript config (extends shared base) - golem.yaml # Component-level manifest (templates, env, dependencies) -common-ts/ # Shared TypeScript Golem templates and configuration - golem.yaml # Build templates for all TS components - rollup.config.component.mjs # Shared Rollup configuration - tsconfig.component.json # Shared TypeScript configuration -golem-temp/ # Build artifacts (gitignored) +# Single-component app +golem.yaml # Golem Application Manifest (contains components..dir = ".") +package.json # Root npm dependencies +tsconfig.json # Component TypeScript config +src/ + main.ts # Module entry point; re-exports of agents + .ts # Agent definitions and implementations + +# Multi-component app +golem.yaml # Golem Application Manifest (components map with explicit dir per component) +package.json # NPM dependencies (shared for all components) +/ + tsconfig.json # Component TypeScript config + src/ + main.ts # Module entry point; re-exports of agents + .ts # Agent definitions and implementations +/ + tsconfig.json # Component TypeScript config + src/ + main.ts # Module entry point; re-exports of agents + .ts # Agent definitions and implementations + +golem-temp/ # Build artifacts (gitignored) + common/ # Shared Golem templates and configuration (generated on-demand) + ts/ # Shared TypeScript Golem templates and configuration + golem.yaml # Build templates for all TS components + rollup.config.component.mjs # Shared Rollup configuration ``` ## Prerequisites @@ -256,8 +272,6 @@ class WeatherAgent extends BaseAgent { } ``` -Shared types can be placed in `common-ts/src/` and imported as `common/lib` across components. - ### Method annotations ```typescript @@ -371,21 +385,90 @@ const result2 = infallibleTransaction((tx) => { }); ``` -## Adding New Components +## Using `golem new` + +Use `golem new` to create new applications and to add new components or agents to existing applications. + +### Create a new application + +```shell +golem new my-app --template ts +``` + +This creates a new application directory, initializes `golem.yaml`, and creates the first TypeScript component with a default agent template. + +You can also run `golem new .` in an empty directory to initialize the current folder as a new application. + +If the folder name is not a valid Golem application name (lowercase kebab-case), specify one explicitly: + +```shell +golem new . --application-name my-app --template ts +``` + +### Add to an existing application + +From inside an existing application, use `.` as the path: + +```shell +golem new . --template ts +``` + +By default this applies the TypeScript template to a matching TypeScript component, or creates one if needed. + +### Create or target a specific component ```shell -golem component new ts my:new-component +golem new . --template ts --component-name my-app:billing ``` -This creates a new directory under `components-ts/` with the standard structure. +- If `my-app:billing` exists and is TypeScript, the template is applied there. +- If it does not exist, `golem new` creates the component and applies the template. + +### Applying multiple templates + +You can apply multiple templates to the same component in one command: + +```shell +golem new . --template ts --template my:agent-template --component-name my-app:billing +``` + +You can also apply templates incrementally by running `golem new` multiple times for the same component. + +If multiple templates affect the same files, `golem new` merges the changes and shows the planned updates before applying them. + +### Component directory behavior + +- If the application has exactly one component, its `dir` in `golem.yaml` is `.`. +- If the application has multiple components, each component has an explicit `dir` in `golem.yaml`. +- When needed, `golem new` can promote an existing root component layout into explicit per-component directories. + +### Choosing one vs multiple components + +In most cases, prefer a single component with multiple agents. + +Use multiple components only when you have a technical reason, for example: +- using different guest languages in the same application (for example Rust + TypeScript) +- separating components with distinct operational or ownership constraints + +### Useful flags + +- `--template `: can be used multiple times to apply and merge several templates into one component (in non-interactive mode, at least one template is required) +- `--component-name `: target or create a specific component +- `--application-name `: set the application name when creating a new application + +To discover available templates: + +```shell +golem templates +``` ## Application Manifest (golem.yaml) -- Root `golem.yaml`: app name, includes, environments -- `common-ts/golem.yaml`: build templates (TypeScript compilation, Rollup bundling, WASM composition) shared by all TS components -- `components-ts//golem.yaml`: component-specific config (templates reference, env vars, dependencies) +- Root `golem.yaml`: app name, includes, environments, and `components` entries +- `golem-temp/common/ts/golem.yaml`: generated on-demand build templates (TypeScript compilation, Rollup bundling, WASM composition) shared by all TS components -Key fields in component manifest: +Key fields in each `components.` entry: +- `dir`: component directory (`"."` for single-component apps) - `templates`: references a template from common golem.yaml (e.g., `ts`) - `env`: environment variables passed to agents at runtime - `dependencies`: WASM dependencies (e.g., LLM providers from golem-ai) @@ -421,7 +504,6 @@ golem agent invoke '' 'method' args # Invoke method directly - TypeScript **enums are not supported** — use string literal unions instead - All agent classes must extend `BaseAgent` and be decorated with `@agent()` - Constructor parameters define agent identity — they must be serializable types -- Do not modify `rollup.config.mjs` or `common-ts/rollup.config.component.mjs` — they are pre-configured for Golem's build pipeline - Do not manually edit files in `golem-temp/` — they are auto-generated build artifacts - The build pipeline uses `golem-typegen` to extract type metadata from TypeScript via decorators; ensure `experimentalDecorators` and `emitDecoratorMetadata` are enabled in `tsconfig.json` @@ -431,3 +513,5 @@ golem agent invoke '' 'method' args # Invoke method directly - Name mapping: https://learn.golem.cloud/name-mapping - Type mapping: https://learn.golem.cloud/type-mapping - Full docs: https://learn.golem.cloud + + diff --git a/cli/golem-cli/templates/ts/common/golem.yaml b/cli/golem-cli/templates/ts/common/golem.yaml index 5680c91d63..212bb33c49 100644 --- a/cli/golem-cli/templates/ts/common/golem.yaml +++ b/cli/golem-cli/templates/ts/common/golem.yaml @@ -2,9 +2,6 @@ app: app-name -includes: -- components-*/*/golem.yaml - environments: local: server: local diff --git a/cli/golem-cli/templates/ts/common/metadata.json b/cli/golem-cli/templates/ts/common/metadata.json index 0310a69788..f6d55da4fd 100644 --- a/cli/golem-cli/templates/ts/common/metadata.json +++ b/cli/golem-cli/templates/ts/common/metadata.json @@ -1,5 +1,4 @@ { "type": "common", - "description": "Common template for TypeScript Agents", - "skipIfExists": "package.json" + "description": "Common template for TypeScript Agents" } diff --git a/cli/golem-cli/templates/ts/common/package.json b/cli/golem-cli/templates/ts/common/package.json index 61bd01ceb5..b202c0d8df 100644 --- a/cli/golem-cli/templates/ts/common/package.json +++ b/cli/golem-cli/templates/ts/common/package.json @@ -1,8 +1,5 @@ { "name": "app", - "workspaces": [ - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "GOLEM_TS_SDK_VERSION_OR_PATH" }, diff --git a/cli/golem-cli/templates/ts/common-on-demand/tsconfig.component.json b/cli/golem-cli/templates/ts/component/component-dir/tsconfig.json similarity index 92% rename from cli/golem-cli/templates/ts/common-on-demand/tsconfig.component.json rename to cli/golem-cli/templates/ts/component/component-dir/tsconfig.json index 4a4cd2127a..d7714b0e18 100644 --- a/cli/golem-cli/templates/ts/common-on-demand/tsconfig.component.json +++ b/cli/golem-cli/templates/ts/component/component-dir/tsconfig.json @@ -20,5 +20,8 @@ "experimentalDecorators": true, "emitDecoratorMetadata": true, "useDefineForClassFields": false - } + }, + "include": [ + "src/**/*.ts" + ] } diff --git a/cli/golem-cli/templates/ts/component/golem.yaml b/cli/golem-cli/templates/ts/component/golem.yaml new file mode 100644 index 0000000000..b10263d1d0 --- /dev/null +++ b/cli/golem-cli/templates/ts/component/golem.yaml @@ -0,0 +1,9 @@ +# golem-app-manifest-header + +components: + componentname: + dir: "componentDir" + templates: ts + + # golem-app-manifest-env-doc + env: diff --git a/cli/golem-cli/templates/ts/component/metadata.json b/cli/golem-cli/templates/ts/component/metadata.json new file mode 100644 index 0000000000..543c8164f5 --- /dev/null +++ b/cli/golem-cli/templates/ts/component/metadata.json @@ -0,0 +1,4 @@ +{ + "type": "component", + "description": "Common TypeScript component files" +} diff --git a/cli/golem-cli/templates/ts/default/components-ts/component-name/src/main.ts b/cli/golem-cli/templates/ts/default/component-dir/src/counter-agent.ts similarity index 92% rename from cli/golem-cli/templates/ts/default/components-ts/component-name/src/main.ts rename to cli/golem-cli/templates/ts/default/component-dir/src/counter-agent.ts index 8e2dc4f07b..286561db78 100644 --- a/cli/golem-cli/templates/ts/default/components-ts/component-name/src/main.ts +++ b/cli/golem-cli/templates/ts/default/component-dir/src/counter-agent.ts @@ -9,7 +9,7 @@ import { @agent({ mount: "/counters/{name}" }) -class CounterAgent extends BaseAgent { +export class CounterAgent extends BaseAgent { private readonly name: string; private value: number = 0; diff --git a/cli/golem-cli/templates/ts/default/component-dir/src/main.ts b/cli/golem-cli/templates/ts/default/component-dir/src/main.ts new file mode 100644 index 0000000000..ef9198d1e7 --- /dev/null +++ b/cli/golem-cli/templates/ts/default/component-dir/src/main.ts @@ -0,0 +1 @@ +export { CounterAgent } from './counter-agent'; diff --git a/cli/golem-cli/templates/ts/default/components-ts/component-name/golem.yaml b/cli/golem-cli/templates/ts/default/components-ts/component-name/golem.yaml deleted file mode 100644 index bf92d4ff37..0000000000 --- a/cli/golem-cli/templates/ts/default/components-ts/component-name/golem.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# golem-app-manifest-header - -httpApi: - deployments: - local: - - domain: app-name.localhost:9006 - agents: - CounterAgent: {} - -components: - componentname: - templates: ts - - # golem-app-manifest-env-doc - env: - # golem-app-manifest-dep-env-vars-doc - - # golem-app-manifest-env-presets diff --git a/cli/golem-cli/templates/ts/default/components-ts/component-name/package.json b/cli/golem-cli/templates/ts/default/components-ts/component-name/package.json deleted file mode 100644 index 514b91ea83..0000000000 --- a/cli/golem-cli/templates/ts/default/components-ts/component-name/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "component-name" -} diff --git a/cli/golem-cli/templates/ts/default/components-ts/component-name/rollup.config.mjs b/cli/golem-cli/templates/ts/default/components-ts/component-name/rollup.config.mjs deleted file mode 100644 index a6206bcb6f..0000000000 --- a/cli/golem-cli/templates/ts/default/components-ts/component-name/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../golem-temp/common/ts/rollup.config.component.mjs"; - -export default componentRollupConfig("component-name"); diff --git a/cli/golem-cli/templates/ts/default/components-ts/component-name/tsconfig.json b/cli/golem-cli/templates/ts/default/components-ts/component-name/tsconfig.json deleted file mode 100644 index aff6e266bd..0000000000 --- a/cli/golem-cli/templates/ts/default/components-ts/component-name/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../golem-temp/common/ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} \ No newline at end of file diff --git a/cli/golem-cli/templates/ts/default/golem.yaml b/cli/golem-cli/templates/ts/default/golem.yaml new file mode 100644 index 0000000000..79afc91484 --- /dev/null +++ b/cli/golem-cli/templates/ts/default/golem.yaml @@ -0,0 +1,8 @@ +# golem-app-manifest-header + +httpApi: + deployments: + local: + - domain: app-name.localhost:9006 + agents: + CounterAgent: {} diff --git a/cli/golem-cli/templates/ts/default/metadata.json b/cli/golem-cli/templates/ts/default/metadata.json index a1c94beb79..cdf6621c3c 100644 --- a/cli/golem-cli/templates/ts/default/metadata.json +++ b/cli/golem-cli/templates/ts/default/metadata.json @@ -1,4 +1,4 @@ { - "type": "component", + "type": "agent", "description": "A simple agent implementing a counter" -} \ No newline at end of file +} diff --git a/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/src/main.ts b/cli/golem-cli/templates/ts/human-in-the-loop/component-dir/src/human-agent.ts similarity index 52% rename from cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/src/main.ts rename to cli/golem-cli/templates/ts/human-in-the-loop/component-dir/src/human-agent.ts index 9830ed849d..f66ff7a15e 100644 --- a/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/src/main.ts +++ b/cli/golem-cli/templates/ts/human-in-the-loop/component-dir/src/human-agent.ts @@ -1,63 +1,19 @@ import { BaseAgent, - Result, agent, prompt, description, PromiseId, - createPromise, - awaitPromise, completePromise, endpoint } from '@golemcloud/golem-ts-sdk'; -type WorkflowId = string; +export type WorkflowId = string; -// --- Workflow Agent --- -@agent({ - mount: '/workflows', - // The agent identity is not fully described by the constructor parameters, - // so we need to enable phantom mode to allow duplicates. - phantom: true, -}) -class WorkflowAgent extends BaseAgent { - private readonly workflowId: WorkflowId; - - constructor() { - super(); - this.workflowId = crypto.randomUUID(); - } - - @prompt("Start approval process") - @description("Starts a workflow that requires human approval before continuing") - @endpoint({ post: "/" }) - async start(): Promise { - // 1. Create a promise that represents waiting for human input - const approvalPromiseId = createPromise(); - - // Normally you would send this ID to some UI, email, etc. - // For demo purposes we’ll just tell you where to send the approval - const approver = HumanAgent.get("bob"); - await approver.requestApproval(this.workflowId, approvalPromiseId); - - // 2. Pause here until promise is completed - const resultBytes = await awaitPromise(approvalPromiseId); - const result = new TextDecoder().decode(resultBytes); - - // 3. Continue based on human input - if (result === "approved") { - return `Workflow ${this.workflowId} was approved ✅`; - } else { - return `Workflow ${this.workflowId} was rejected ❌`; - } - } -} - -// --- Human Agent --- @agent({ mount: "/humans/{username}" }) -class HumanAgent extends BaseAgent { +export class HumanAgent extends BaseAgent { private readonly username: string; private pending: Map = new Map(); diff --git a/cli/golem-cli/templates/ts/human-in-the-loop/component-dir/src/main.ts b/cli/golem-cli/templates/ts/human-in-the-loop/component-dir/src/main.ts new file mode 100644 index 0000000000..2ffa218639 --- /dev/null +++ b/cli/golem-cli/templates/ts/human-in-the-loop/component-dir/src/main.ts @@ -0,0 +1,2 @@ +export { HumanAgent } from './human-agent'; +export { WorkflowAgent } from './workflow-agent'; diff --git a/cli/golem-cli/templates/ts/human-in-the-loop/component-dir/src/workflow-agent.ts b/cli/golem-cli/templates/ts/human-in-the-loop/component-dir/src/workflow-agent.ts new file mode 100644 index 0000000000..bd065ad41d --- /dev/null +++ b/cli/golem-cli/templates/ts/human-in-the-loop/component-dir/src/workflow-agent.ts @@ -0,0 +1,49 @@ +import { + BaseAgent, + agent, + prompt, + description, + createPromise, + awaitPromise, + endpoint +} from '@golemcloud/golem-ts-sdk'; +import { HumanAgent, WorkflowId } from './human-agent'; + +@agent({ + mount: '/workflows', + // The agent identity is not fully described by the constructor parameters, + // so we need to enable phantom mode to allow duplicates. + phantom: true, +}) +export class WorkflowAgent extends BaseAgent { + private readonly workflowId: WorkflowId; + + constructor() { + super(); + this.workflowId = crypto.randomUUID(); + } + + @prompt("Start approval process") + @description("Starts a workflow that requires human approval before continuing") + @endpoint({ post: "/" }) + async start(): Promise { + // 1. Create a promise that represents waiting for human input + const approvalPromiseId = createPromise(); + + // Normally you would send this ID to some UI, email, etc. + // For demo purposes we’ll just tell you where to send the approval + const approver = HumanAgent.get("bob"); + await approver.requestApproval(this.workflowId, approvalPromiseId); + + // 2. Pause here until promise is completed + const resultBytes = await awaitPromise(approvalPromiseId); + const result = new TextDecoder().decode(resultBytes); + + // 3. Continue based on human input + if (result === "approved") { + return `Workflow ${this.workflowId} was approved ✅`; + } else { + return `Workflow ${this.workflowId} was rejected ❌`; + } + } +} diff --git a/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/golem.yaml b/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/golem.yaml deleted file mode 100644 index fcc1bb8927..0000000000 --- a/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/golem.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# golem-app-manifest-header - -httpApi: - deployments: - local: - - domain: app-name.localhost:9006 - agents: - WorkflowAgent: {} - HumanAgent: {} - -components: - componentname: - templates: ts - - # golem-app-manifest-env-doc - env: - # golem-app-manifest-dep-env-vars-doc - - # golem-app-manifest-env-presets diff --git a/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/package.json b/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/package.json deleted file mode 100644 index 514b91ea83..0000000000 --- a/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "component-name" -} diff --git a/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/rollup.config.mjs b/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/rollup.config.mjs deleted file mode 100644 index a6206bcb6f..0000000000 --- a/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../golem-temp/common/ts/rollup.config.component.mjs"; - -export default componentRollupConfig("component-name"); diff --git a/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/tsconfig.json b/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/tsconfig.json deleted file mode 100644 index aff6e266bd..0000000000 --- a/cli/golem-cli/templates/ts/human-in-the-loop/components-ts/component-name/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../golem-temp/common/ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} \ No newline at end of file diff --git a/cli/golem-cli/templates/ts/human-in-the-loop/golem.yaml b/cli/golem-cli/templates/ts/human-in-the-loop/golem.yaml new file mode 100644 index 0000000000..4de50106ea --- /dev/null +++ b/cli/golem-cli/templates/ts/human-in-the-loop/golem.yaml @@ -0,0 +1,9 @@ +# golem-app-manifest-header + +httpApi: + deployments: + local: + - domain: app-name.localhost:9006 + agents: + WorkflowAgent: {} + HumanAgent: {} diff --git a/cli/golem-cli/templates/ts/human-in-the-loop/metadata.json b/cli/golem-cli/templates/ts/human-in-the-loop/metadata.json index c6f1b95c05..aad27606a6 100644 --- a/cli/golem-cli/templates/ts/human-in-the-loop/metadata.json +++ b/cli/golem-cli/templates/ts/human-in-the-loop/metadata.json @@ -1,4 +1,4 @@ { - "type": "component", + "type": "agent", "description": "An example agent using promises to implement a human in the loop workflow." } diff --git a/cli/golem-cli/templates/ts/json/component-dir/src/main.ts b/cli/golem-cli/templates/ts/json/component-dir/src/main.ts new file mode 100644 index 0000000000..5c71250276 --- /dev/null +++ b/cli/golem-cli/templates/ts/json/component-dir/src/main.ts @@ -0,0 +1 @@ +export { TaskAgent } from './task-agent'; diff --git a/cli/golem-cli/templates/ts/json/components-ts/component-name/src/main.ts b/cli/golem-cli/templates/ts/json/component-dir/src/task-agent.ts similarity index 97% rename from cli/golem-cli/templates/ts/json/components-ts/component-name/src/main.ts rename to cli/golem-cli/templates/ts/json/component-dir/src/task-agent.ts index 8e3d63912b..c0940111dd 100644 --- a/cli/golem-cli/templates/ts/json/components-ts/component-name/src/main.ts +++ b/cli/golem-cli/templates/ts/json/component-dir/src/task-agent.ts @@ -22,7 +22,7 @@ interface CreateTaskRequest { mount: '/task-agents/{name}', cors: [ "*" ] }) -class TaskAgent extends BaseAgent { +export class TaskAgent extends BaseAgent { private tasks: Task[] = []; private nextId: number = 1; diff --git a/cli/golem-cli/templates/ts/json/components-ts/component-name/golem.yaml b/cli/golem-cli/templates/ts/json/components-ts/component-name/golem.yaml deleted file mode 100644 index 6138579f59..0000000000 --- a/cli/golem-cli/templates/ts/json/components-ts/component-name/golem.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# golem-app-manifest-header - -httpApi: - deployments: - local: - - domain: app-name.localhost:9006 - agents: - TaskAgent: {} - -components: - componentname: - templates: ts - - # golem-app-manifest-env-doc - env: - # golem-app-manifest-dep-env-vars-doc - - # golem-app-manifest-env-presets diff --git a/cli/golem-cli/templates/ts/json/components-ts/component-name/package.json b/cli/golem-cli/templates/ts/json/components-ts/component-name/package.json deleted file mode 100644 index 514b91ea83..0000000000 --- a/cli/golem-cli/templates/ts/json/components-ts/component-name/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "component-name" -} diff --git a/cli/golem-cli/templates/ts/json/components-ts/component-name/rollup.config.mjs b/cli/golem-cli/templates/ts/json/components-ts/component-name/rollup.config.mjs deleted file mode 100644 index a6206bcb6f..0000000000 --- a/cli/golem-cli/templates/ts/json/components-ts/component-name/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../golem-temp/common/ts/rollup.config.component.mjs"; - -export default componentRollupConfig("component-name"); diff --git a/cli/golem-cli/templates/ts/json/components-ts/component-name/tsconfig.json b/cli/golem-cli/templates/ts/json/components-ts/component-name/tsconfig.json deleted file mode 100644 index aff6e266bd..0000000000 --- a/cli/golem-cli/templates/ts/json/components-ts/component-name/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../golem-temp/common/ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} \ No newline at end of file diff --git a/cli/golem-cli/templates/ts/json/golem.yaml b/cli/golem-cli/templates/ts/json/golem.yaml new file mode 100644 index 0000000000..c479923c7a --- /dev/null +++ b/cli/golem-cli/templates/ts/json/golem.yaml @@ -0,0 +1,8 @@ +# golem-app-manifest-header + +httpApi: + deployments: + local: + - domain: app-name.localhost:9006 + agents: + TaskAgent: {} diff --git a/cli/golem-cli/templates/ts/json/metadata.json b/cli/golem-cli/templates/ts/json/metadata.json index 01925ed6f2..375e733ebe 100644 --- a/cli/golem-cli/templates/ts/json/metadata.json +++ b/cli/golem-cli/templates/ts/json/metadata.json @@ -1,4 +1,4 @@ { - "type": "component", + "type": "agent", "description": "A simple agent demonstrating JSON API support" } diff --git a/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/src/main.ts b/cli/golem-cli/templates/ts/snapshotting/component-dir/src/counter-with-snapshot-agent.ts similarity index 91% rename from cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/src/main.ts rename to cli/golem-cli/templates/ts/snapshotting/component-dir/src/counter-with-snapshot-agent.ts index 047cd49a7d..c2d369e5b5 100644 --- a/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/src/main.ts +++ b/cli/golem-cli/templates/ts/snapshotting/component-dir/src/counter-with-snapshot-agent.ts @@ -7,9 +7,9 @@ import { } from '@golemcloud/golem-ts-sdk'; @agent({ - mount: "/counters/{name}" + mount: "/snapshot-counters/{name}" }) -class CounterAgent extends BaseAgent { +export class CounterWithSnapshotAgent extends BaseAgent { private readonly name: string; private value: number = 0; diff --git a/cli/golem-cli/templates/ts/snapshotting/component-dir/src/main.ts b/cli/golem-cli/templates/ts/snapshotting/component-dir/src/main.ts new file mode 100644 index 0000000000..c6788d1803 --- /dev/null +++ b/cli/golem-cli/templates/ts/snapshotting/component-dir/src/main.ts @@ -0,0 +1 @@ +export { CounterWithSnapshotAgent } from './counter-with-snapshot-agent'; diff --git a/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/golem.yaml b/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/golem.yaml deleted file mode 100644 index bf92d4ff37..0000000000 --- a/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/golem.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# golem-app-manifest-header - -httpApi: - deployments: - local: - - domain: app-name.localhost:9006 - agents: - CounterAgent: {} - -components: - componentname: - templates: ts - - # golem-app-manifest-env-doc - env: - # golem-app-manifest-dep-env-vars-doc - - # golem-app-manifest-env-presets diff --git a/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/package.json b/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/package.json deleted file mode 100644 index 514b91ea83..0000000000 --- a/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "component-name" -} diff --git a/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/rollup.config.mjs b/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/rollup.config.mjs deleted file mode 100644 index a6206bcb6f..0000000000 --- a/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../golem-temp/common/ts/rollup.config.component.mjs"; - -export default componentRollupConfig("component-name"); diff --git a/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/tsconfig.json b/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/tsconfig.json deleted file mode 100644 index aff6e266bd..0000000000 --- a/cli/golem-cli/templates/ts/snapshotting/components-ts/component-name/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../golem-temp/common/ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} \ No newline at end of file diff --git a/cli/golem-cli/templates/ts/snapshotting/golem.yaml b/cli/golem-cli/templates/ts/snapshotting/golem.yaml new file mode 100644 index 0000000000..1a7e04aa35 --- /dev/null +++ b/cli/golem-cli/templates/ts/snapshotting/golem.yaml @@ -0,0 +1,8 @@ +# golem-app-manifest-header + +httpApi: + deployments: + local: + - domain: app-name.localhost:9006 + agents: + CounterWithSnapshotAgent: {} diff --git a/cli/golem-cli/templates/ts/snapshotting/metadata.json b/cli/golem-cli/templates/ts/snapshotting/metadata.json index 148f400b9d..2856c8bffd 100644 --- a/cli/golem-cli/templates/ts/snapshotting/metadata.json +++ b/cli/golem-cli/templates/ts/snapshotting/metadata.json @@ -1,4 +1,4 @@ { - "type": "component", + "type": "agent", "description": "A simple agent implementing a counter with custom state snapshotting" -} \ No newline at end of file +} diff --git a/cli/golem-cli/tests/app/agents.rs b/cli/golem-cli/tests/app/agents.rs index 97d89333c9..9a480bab05 100644 --- a/cli/golem-cli/tests/app/agents.rs +++ b/cli/golem-cli/tests/app/agents.rs @@ -1,4 +1,4 @@ -use crate::app::{cmd, flag, replace_strings_in_file, TestContext}; +use crate::app::{cmd, flag, merge_into_manifest, replace_strings_in_file, TestContext}; use crate::crate_path; use std::path::PathBuf; @@ -26,16 +26,13 @@ async fn test_rust_counter() { ctx.start_server().await; - let outputs = ctx.cli([cmd::NEW, app_name, "rust"]).await; - assert!(outputs.success_or_dump()); - - ctx.cd(app_name); - let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "rust", "app:counter"]) + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "rust"]) .await; assert!(outputs.success_or_dump()); + ctx.cd(app_name); + let outputs = ctx.cli([cmd::DEPLOY, flag::YES]).await; assert!(outputs.success_or_dump()); @@ -103,43 +100,35 @@ async fn test_rust_code_first_with_rpc_and_all_types() { ctx.start_server().await; - let outputs = ctx.cli([cmd::NEW, app_name, "rust"]).await; + let outputs = ctx + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "rust"]) + .await; assert!(outputs.success_or_dump()); ctx.cd(app_name); - let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "rust", "rust:agent"]) - .await; + let component_manifest_path = ctx.cwd_path_join("golem.yaml"); - assert!(outputs.success_or_dump()); + let component_source_code_lib_file = ctx.cwd_path_join("src/lib.rs"); - let component_manifest_path = ctx.cwd_path_join( - Path::new("components-rust") - .join("rust-agent") - .join("golem.yaml"), - ); - - let component_source_code_lib_file = ctx.cwd_path_join( - Path::new("components-rust") - .join("rust-agent") - .join("src") - .join("lib.rs"), - ); - - let component_source_code_model_file = ctx.cwd_path_join( - Path::new("components-rust") - .join("rust-agent") - .join("src") - .join("model.rs"), - ); + let component_source_code_model_file = ctx.cwd_path_join("src/model.rs"); fs::write_str( &component_manifest_path, indoc! { r#" + app: rust-code-first + + environments: + local: + server: local + componentPresets: debug + cloud: + server: cloud + componentPresets: release + components: - rust:agent: + rust-code-first:rust-main: templates: rust # We also test that we can generate the bridge SDKs during the build process @@ -167,11 +156,11 @@ async fn test_rust_code_first_with_rpc_and_all_types() { let outputs = ctx.cli([cmd::BUILD]).await; assert!(outputs.success_or_dump()); - check_agent_types_golden_file(ctx.cwd_path(), GuestLanguage::Rust).unwrap(); - let outputs = ctx.cli([cmd::DEPLOY, flag::YES]).await; assert!(outputs.success_or_dump()); + check_agent_types_golden_file(ctx.cwd_path(), GuestLanguage::Rust).unwrap(); + async fn run_and_assert(ctx: &TestContext, func: &str, args: &[&str]) { let uuid = Uuid::new_v4().to_string(); @@ -186,7 +175,7 @@ async fn test_rust_code_first_with_rpc_and_all_types() { run_and_assert(&ctx, "get_id", &[]).await; - run_and_assert(&ctx, "rust:agent/FooAgent.{fun_string}", &["\"sample\""]).await; + run_and_assert(&ctx, "FooAgent.{fun_string}", &["\"sample\""]).await; // A char type run_and_assert(&ctx, "fun_char", &[r#"'a'"#]).await; @@ -194,18 +183,13 @@ async fn test_rust_code_first_with_rpc_and_all_types() { // Testing trigger invocation run_and_assert( &ctx, - "rust:agent/FooAgent.{fun_string_fire_and_forget}", + "FooAgent.{fun_string_fire_and_forget}", &["\"sample\""], ) .await; // Testing scheduled invocation - run_and_assert( - &ctx, - "rust:agent/FooAgent.{fun_string_later}", - &["\"sample\""], - ) - .await; + run_and_assert(&ctx, "FooAgent.{fun_string_later}", &["\"sample\""]).await; run_and_assert(&ctx, "fun_u8", &["42"]).await; @@ -386,39 +370,14 @@ async fn test_rust_code_first_with_rpc_and_all_types() { run_and_assert(&ctx, "fun_simple_enum", &["I64(-12345)"]).await; // cli invoke gets confused with `fun-result` and `fun-result-unit-left` etc, and therefore fully qualified function name. - run_and_assert( - &ctx, - "rust:agent/FooAgent.{fun_result}", - &["Ok(\"success\")"], - ) - .await; - run_and_assert( - &ctx, - "rust:agent/FooAgent.{fun_result}", - &["Err(\"failed\")"], - ) - .await; + run_and_assert(&ctx, "FooAgent.{fun_result}", &["Ok(\"success\")"]).await; + run_and_assert(&ctx, "FooAgent.{fun_result}", &["Err(\"failed\")"]).await; - run_and_assert( - &ctx, - "rust:agent/FooAgent.{fun_result_unit_ok}", - &["Ok(())"], - ) - .await; + run_and_assert(&ctx, "FooAgent.{fun_result_unit_ok}", &["Ok(())"]).await; - run_and_assert( - &ctx, - "rust:agent/FooAgent.{fun_result_unit_err}", - &["Err(())"], - ) - .await; + run_and_assert(&ctx, "FooAgent.{fun_result_unit_err}", &["Err(())"]).await; - run_and_assert( - &ctx, - "rust:agent/FooAgent.{fun_result_unit_both}", - &["Ok(())"], - ) - .await; + run_and_assert(&ctx, "FooAgent.{fun_result_unit_both}", &["Ok(())"]).await; let result_complex_arg = r#" Ok({ @@ -438,12 +397,7 @@ async fn test_rust_code_first_with_rpc_and_all_types() { run_and_assert(&ctx, "fun_result_complex", &[result_complex_arg]).await; - run_and_assert( - &ctx, - "rust:agent/FooAgent.{fun_option}", - &["Some(\"optional value\")"], - ) - .await; + run_and_assert(&ctx, "FooAgent.{fun_option}", &["Some(\"optional value\")"]).await; let option_complex_arg = r#" Some({ @@ -461,61 +415,56 @@ async fn test_rust_code_first_with_rpc_and_all_types() { }) "#; - run_and_assert( - &ctx, - "rust:agent/FooAgent.{fun_option_complex}", - &[option_complex_arg], - ) - .await; + run_and_assert(&ctx, "FooAgent.{fun_option_complex}", &[option_complex_arg]).await; run_and_assert(&ctx, "fun_enum_with_only_literals", &["A"]).await; // TODO: Re-enable once CLI WAVE argument parsing supports multimodal/unstructured types // run_and_assert( // &ctx, - // "rust:agent/FooAgent.{fun_multi_modal}", + // "FooAgent.{fun_multi_modal}", // &[r#"[text("foo"), text("foo"), data({id: 1, name: "foo"})]"#], // ) // .await; // // run_and_assert( // &ctx, - // "rust:agent/FooAgent.{fun_multi_modal_basic}", + // "FooAgent.{fun_multi_modal_basic}", // &[r#"[text(url("foo"))]"#], // ) // .await; // // run_and_assert( // &ctx, - // "rust:agent/FooAgent.{fun_unstructured_text}", + // "FooAgent.{fun_unstructured_text}", // &[r#"url("foo")"#], // ) // .await; // // run_and_assert( // &ctx, - // "rust:agent/FooAgent.{fun_unstructured_text}", + // "FooAgent.{fun_unstructured_text}", // &[r#"inline({data: "foo", text-type: none})"#], // ) // .await; // // run_and_assert( // &ctx, - // "rust:agent/FooAgent.{fun_unstructured_text_lc}", + // "FooAgent.{fun_unstructured_text_lc}", // &[r#"url("foo")"#], // ) // .await; // // run_and_assert( // &ctx, - // "rust:agent/FooAgent.{fun_unstructured_text_lc}", + // "FooAgent.{fun_unstructured_text_lc}", // &[r#"inline({data: "foo", text-type: some({language-code: "en"})})"#], // ) // .await; // // run_and_assert( // &ctx, - // "rust:agent/FooAgent.{fun_unstructured_binary}", + // "FooAgent.{fun_unstructured_binary}", // &[r#"url("foo")"#], // ) // .await; @@ -528,16 +477,13 @@ async fn test_ts_counter() { ctx.start_server().await; - let outputs = ctx.cli([cmd::NEW, app_name, "ts"]).await; - assert!(outputs.success_or_dump()); - - ctx.cd(app_name); - let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "ts", "app:counter"]) + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "ts"]) .await; assert!(outputs.success_or_dump()); + ctx.cd(app_name); + let outputs = ctx.cli([cmd::DEPLOY, flag::YES]).await; assert!(outputs.success_or_dump()); @@ -610,41 +556,37 @@ async fn test_ts_code_first_with_rpc_and_all_types() { ctx.start_server().await; - let outputs = ctx.cli([cmd::NEW, app_name, "ts"]).await; + let outputs = ctx + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "ts"]) + .await; assert!(outputs.success_or_dump()); ctx.cd(app_name); - let outputs = ctx.cli([cmd::COMPONENT, cmd::NEW, "ts", "ts:agent"]).await; - assert!(outputs.success_or_dump()); - let component_manifest_path = ctx.cwd_path_join( - Path::new("components-ts") - .join("ts-agent") - .join("golem.yaml"), - ); - - let component_source_code_main_file = ctx.cwd_path_join( - Path::new("components-ts") - .join("ts-agent") - .join("src") - .join("main.ts"), - ); - - let component_source_code_model_file = ctx.cwd_path_join( - Path::new("components-ts") - .join("ts-agent") - .join("src") - .join("model.ts"), - ); + let component_manifest_path = ctx.cwd_path_join("golem.yaml"); + + let component_source_code_main_file = ctx.cwd_path_join("src/main.ts"); + + let component_source_code_model_file = ctx.cwd_path_join("src/model.ts"); fs::write_str( &component_manifest_path, indoc! { r#" + app: ts-code-first + + environments: + local: + server: local + componentPresets: debug + cloud: + server: cloud + componentPresets: release + components: - ts:agent: + ts-code-first:ts-main: templates: ts # We also test that we can generate the bridge SDKs during the build process @@ -672,11 +614,11 @@ async fn test_ts_code_first_with_rpc_and_all_types() { let outputs = ctx.cli([cmd::BUILD]).await; assert!(outputs.success_or_dump()); - check_agent_types_golden_file(ctx.cwd_path(), GuestLanguage::TypeScript).unwrap(); - let outputs = ctx.cli([cmd::DEPLOY, flag::YES]).await; assert!(outputs.success_or_dump()); + check_agent_types_golden_file(ctx.cwd_path(), GuestLanguage::TypeScript).unwrap(); + async fn run_and_assert(ctx: &TestContext, func: &str, args: &[&str]) { let uuid = Uuid::new_v4().to_string(); @@ -698,7 +640,7 @@ async fn test_ts_code_first_with_rpc_and_all_types() { // function optional (that has null, defined as union) run_and_assert( &ctx, - "ts:agent/FooAgent.{funOptional}", + "FooAgent.{funOptional}", &[ r#"{tag: "case1", value: "foo"}"#, r#"{a: "foo"}"#, @@ -763,14 +705,14 @@ async fn test_ts_code_first_with_rpc_and_all_types() { // // Multimodal // run_and_assert( // &ctx, - // "ts:agent/FooAgent.{funMultimodal}", + // "FooAgent.{funMultimodal}", // &["[text(inline({data: \"data\", text-type: none}))]"], // ) // .await; // // run_and_assert( // &ctx, - // "ts:agent/FooAgent.{funMultimodalAdvanced}", + // "FooAgent.{funMultimodalAdvanced}", // &["[text(\"foo\")]"], // ) // .await; @@ -883,27 +825,20 @@ async fn test_component_env_var_substitution() { let mut ctx = TestContext::new(); let app_name = "env-var-substitution"; - let outputs = ctx.cli([cmd::NEW, app_name, "ts"]).await; - assert!(outputs.success_or_dump()); - - ctx.cd(app_name); - let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "ts", "app:weather-agent"]) + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "ts"]) .await; assert!(outputs.success_or_dump()); - let component_manifest_path = ctx.cwd_path_join( - Path::new("components-ts") - .join("app-weather-agent") - .join("golem.yaml"), - ); + ctx.cd(app_name); + + let component_manifest_path = ctx.cwd_path_join("golem.yaml"); - fs::write_str( + merge_into_manifest( &component_manifest_path, indoc! { r#" components: - app:weather-agent: + env-var-substitution:ts-main: templates: ts env: NORMAL: 'REALLY' @@ -962,39 +897,45 @@ async fn test_http_api_merging() { let mut ctx = TestContext::new(); let app_name = "http-api-merging"; - let outputs = ctx.cli([cmd::NEW, app_name, "ts"]).await; + let outputs = ctx + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "ts"]) + .await; assert!(outputs.success_or_dump()); ctx.cd(app_name); let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "ts", "app:counter1"]) + .cli([ + flag::YES, + cmd::NEW, + ".", + flag::TEMPLATE, + "ts", + flag::COMPONENT_NAME, + "app:counter1", + ]) .await; assert!(outputs.success_or_dump()); - let component1_manifest_path = ctx.cwd_path_join( - Path::new("components-ts") - .join("app-counter1") - .join("golem.yaml"), - ); + let component1_manifest_path = ctx.cwd_path_join(Path::new("app-counter1").join("golem.yaml")); let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "ts", "app:counter2"]) + .cli([ + flag::YES, + cmd::NEW, + ".", + flag::TEMPLATE, + "ts", + flag::COMPONENT_NAME, + "app:counter2", + ]) .await; assert!(outputs.success_or_dump()); - let component2_source_path = ctx.cwd_path_join( - Path::new("components-ts") - .join("app-counter2") - .join("src") - .join("main.ts"), - ); + let component2_source_path = + ctx.cwd_path_join(Path::new("app-counter2").join("src").join("main.ts")); replace_strings_in_file(component2_source_path, &[("CounterAgent", "CounterAgent2")]).unwrap(); - let component2_manifest_path = ctx.cwd_path_join( - Path::new("components-ts") - .join("app-counter2") - .join("golem.yaml"), - ); + let component2_manifest_path = ctx.cwd_path_join(Path::new("app-counter2").join("golem.yaml")); // Add mergeable definitions and deployments to both components fs::write_str( @@ -1157,22 +1098,30 @@ async fn test_invoke_and_repl_agent_id_casing_and_normalizing() { let mut ctx = TestContext::new(); let app_name = "agent-id-casing-and-normalizing"; - let outputs = ctx.cli([cmd::NEW, app_name, "ts"]).await; + let outputs = ctx + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "ts"]) + .await; assert!(outputs.success_or_dump()); ctx.cd(app_name); - let outputs = ctx.cli([cmd::COMPONENT, cmd::NEW, "ts", "app:agent"]).await; + let outputs = ctx + .cli([ + flag::YES, + cmd::NEW, + ".", + flag::TEMPLATE, + "ts", + flag::COMPONENT_NAME, + "app:agent", + ]) + .await; assert!(outputs.success_or_dump()); let outputs = ctx.cli([cmd::BUILD]).await; assert!(outputs.success_or_dump()); - let component_golem_yaml = ctx.cwd_path_join( - Path::new("components-ts") - .join("app-agent") - .join("golem.yaml"), - ); + let component_golem_yaml = ctx.cwd_path_join(Path::new("app-agent").join("golem.yaml")); fs::write_str( &component_golem_yaml, indoc! { r#" @@ -1183,12 +1132,8 @@ async fn test_invoke_and_repl_agent_id_casing_and_normalizing() { ) .unwrap(); - let component_source_code = ctx.cwd_path_join( - Path::new("components-ts") - .join("app-agent") - .join("src") - .join("main.ts"), - ); + let component_source_code = + ctx.cwd_path_join(Path::new("app-agent").join("src").join("main.ts")); fs::write_str( &component_source_code, @@ -1263,19 +1208,27 @@ async fn test_naming_extremes() { ctx.start_server().await; - let outputs = ctx.cli([cmd::NEW, app_name, "ts"]).await; + let outputs = ctx + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "ts"]) + .await; assert!(outputs.success_or_dump()); ctx.cd(app_name); - let outputs = ctx.cli([cmd::COMPONENT, cmd::NEW, "ts", "app:agent"]).await; + let outputs = ctx + .cli([ + flag::YES, + cmd::NEW, + ".", + flag::TEMPLATE, + "ts", + flag::COMPONENT_NAME, + "app:agent", + ]) + .await; assert!(outputs.success_or_dump()); - let component_golem_yaml = ctx.cwd_path_join( - Path::new("components-ts") - .join("app-agent") - .join("golem.yaml"), - ); + let component_golem_yaml = ctx.cwd_path_join(Path::new("app-agent").join("golem.yaml")); fs::write_str( component_golem_yaml, @@ -1287,12 +1240,8 @@ async fn test_naming_extremes() { ) .unwrap(); - let component_source_code = ctx.cwd_path_join( - Path::new("components-ts") - .join("app-agent") - .join("src") - .join("main.ts"), - ); + let component_source_code = + ctx.cwd_path_join(Path::new("app-agent").join("src").join("main.ts")); fs::copy( ctx.test_data_path_join("ts-code-first-snippets/naming_extremes.ts"), diff --git a/cli/golem-cli/tests/app/app.rs b/cli/golem-cli/tests/app/app.rs index bd0818e030..cfa6d77de7 100644 --- a/cli/golem-cli/tests/app/app.rs +++ b/cli/golem-cli/tests/app/app.rs @@ -26,18 +26,44 @@ async fn app_new_with_many_components_and_then_help_in_app_folder(_tracing: &Tra let app_name = "test-app-name"; let mut ctx = TestContext::new(); - let outputs = ctx.cli([cmd::NEW, app_name, "typescript", "rust"]).await; + let outputs = ctx + .cli([ + flag::YES, + cmd::NEW, + app_name, + flag::TEMPLATE, + "ts", + flag::TEMPLATE, + "rust", + ]) + .await; assert!(outputs.success_or_dump()); ctx.cd(app_name); let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "typescript", "app:typescript"]) + .cli([ + flag::YES, + cmd::NEW, + ".", + flag::TEMPLATE, + "ts", + flag::COMPONENT_NAME, + "app:typescript", + ]) .await; assert!(outputs.success_or_dump()); let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "rust", "app:rust"]) + .cli([ + flag::YES, + cmd::NEW, + ".", + flag::TEMPLATE, + "rust", + flag::COMPONENT_NAME, + "app:rust", + ]) .await; assert!(outputs.success_or_dump()); @@ -48,7 +74,6 @@ async fn app_new_with_many_components_and_then_help_in_app_folder(_tracing: &Tra assert!(outputs.stderr_contains("app:rust")); assert!(outputs.stderr_contains("app:typescript")); assert!(outputs.stderr_contains(pattern::HELP_APPLICATION_CUSTOM_COMMANDS)); - assert!(outputs.stderr_contains("cargo-clean")); assert!(outputs.stderr_contains("npm-install")); } @@ -57,37 +82,34 @@ async fn app_build_with_rust_component(_tracing: &Tracing) { let app_name = "test-app-name"; let mut ctx = TestContext::new(); - let outputs = ctx.cli([cmd::NEW, app_name, "rust"]).await; - assert!(outputs.success_or_dump()); - - ctx.cd(app_name); - let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "rust", "app:rust"]) + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "rust"]) .await; assert!(outputs.success_or_dump()); + ctx.cd(app_name); + // First build let outputs = ctx.cli([cmd::BUILD]).await; assert!(outputs.success_or_dump()); - assert!(outputs.stdout_contains("Compiling app_rust v0.0.1")); + assert!(outputs.stdout_contains("Compiling test_app_name_rust_main v0.0.1")); check_component_metadata( &ctx.working_dir - .join("golem-temp/agents/app_rust_debug.wasm"), - "app:rust".to_string(), + .join("golem-temp/agents/test_app_name_rust_main_debug.wasm"), + "test-app-name:rust-main".to_string(), None, ); // Rebuild - 1 let outputs = ctx.cli([cmd::BUILD]).await; assert!(outputs.success_or_dump()); - assert!(!outputs.stdout_contains("Compiling app_rust v0.0.1")); + assert!(!outputs.stdout_contains("Compiling test_app_name_rust_main v0.0.1")); // Rebuild - 2 let outputs = ctx.cli([cmd::BUILD]).await; assert!(outputs.success_or_dump()); - assert!(!outputs.stdout_contains("Compiling app_rust v0.0.1")); + assert!(!outputs.stdout_contains("Compiling test_app_name_rust_main v0.0.1")); // Rebuild - 3 - force, but cargo is smart to skip actual compile let outputs = ctx.cli([cmd::BUILD, flag::FORCE_BUILD]).await; @@ -97,7 +119,7 @@ async fn app_build_with_rust_component(_tracing: &Tracing) { // Rebuild - 4 let outputs = ctx.cli([cmd::BUILD]).await; assert!(outputs.success_or_dump()); - assert!(!outputs.stdout_contains("Compiling app_rust v0.0.1")); + assert!(!outputs.stdout_contains("Compiling test_app_name_rust_main v0.0.1")); // Clean let outputs = ctx.cli([cmd::BUILD]).await; @@ -106,13 +128,13 @@ async fn app_build_with_rust_component(_tracing: &Tracing) { // Rebuild - 5 let outputs = ctx.cli([cmd::BUILD]).await; assert!(outputs.success_or_dump()); - assert!(!outputs.stdout_contains("Compiling app_rust v0.0.1")); + assert!(!outputs.stdout_contains("Compiling test_app_name_rust_main v0.0.1")); } #[test] async fn app_new_language_hints(_tracing: &Tracing) { let ctx = TestContext::new(); - let outputs = ctx.cli([cmd::NEW, "dummy-app-name"]).await; + let outputs = ctx.cli([flag::YES, cmd::NEW, "dummy-app-name"]).await; assert!(!outputs.success()); assert!(outputs.stdout_contains("Available languages:")); @@ -154,28 +176,15 @@ async fn ts_repl_interactive(_tracing: &Tracing) { ctx.start_server().await; - let outputs = ctx.cli([cmd::NEW, app_name, "ts"]).await; - assert!(outputs.success_or_dump()); - - ctx.cd(app_name); - let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "ts", "app:ts-main"]) + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "ts"]) .await; assert!(outputs.success_or_dump()); - let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "ts", "app:ts-extra"]) - .await; - assert!(outputs.success_or_dump()); + ctx.cd(app_name); fs::write_str( - ctx.cwd_path_join( - Path::new("components-ts") - .join("app-ts-extra") - .join("src") - .join("main.ts"), - ), + ctx.cwd_path_join(Path::new("src").join("sample-agent.ts")), indoc! { r#" import { @@ -213,6 +222,17 @@ async fn ts_repl_interactive(_tracing: &Tracing) { ) .unwrap(); + fs::write_str( + ctx.cwd_path_join(Path::new("src").join("main.ts")), + indoc! { + r#" + export * from './counter-agent'; + export * from './sample-agent'; + "# + }, + ) + .unwrap(); + let outputs = ctx.cli([cmd::DEPLOY, flag::YES]).await; assert!(outputs.success_or_dump()); @@ -316,25 +336,28 @@ async fn basic_ifs_deploy(_tracing: &Tracing) { let mut ctx = TestContext::new(); let app_name = "test-app-name"; - let outputs = ctx.cli([cmd::NEW, app_name, "rust"]).await; - assert!(outputs.success_or_dump()); - - ctx.cd(app_name); - let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "rust", "app:rust"]) + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "rust"]) .await; assert!(outputs.success_or_dump()); + ctx.cd(app_name); + fs::write_str( - ctx.cwd_path_join( - Path::new("components-rust") - .join("app-rust") - .join("golem.yaml"), - ), + ctx.cwd_path_join("golem.yaml"), indoc! {" + app: test-app-name + + environments: + local: + server: local + componentPresets: debug + cloud: + server: cloud + componentPresets: release + components: - app:rust: + test-app-name:rust-main: templates: rust presets: debug: @@ -360,18 +383,24 @@ async fn basic_ifs_deploy(_tracing: &Tracing) { "+ /src/lib.rs:", "+ permissions: read-write", "Planning", - "- create component app:rust", + "- create component test-app-name:rust-main", ])); fs::write_str( - ctx.cwd_path_join( - Path::new("components-rust") - .join("app-rust") - .join("golem.yaml"), - ), + ctx.cwd_path_join("golem.yaml"), indoc! {" + app: test-app-name + + environments: + local: + server: local + componentPresets: debug + cloud: + server: cloud + componentPresets: release + components: - app:rust: + test-app-name:rust-main: templates: rust presets: debug: @@ -398,7 +427,7 @@ async fn basic_ifs_deploy(_tracing: &Tracing) { "- permissions: read-write", "+ permissions: read-only", "Planning", - "- update component app:rust, changes:", + "- update component test-app-name:rust-main, changes:", " - files", " - delete file /Cargo.toml", " - create file /Cargo2.toml", @@ -412,41 +441,3 @@ async fn basic_ifs_deploy(_tracing: &Tracing) { "Finished deployment planning, no changes are required for the environment [UP-TO-DATE]" )); } - -// TODO: atomic: re-enable IF we will have any builtin subcommands for golem app -#[ignore] -#[test] -async fn custom_app_subcommand_with_builtin_name() { - let mut ctx = TestContext::new(); - let app_name = "test-app-name"; - - let outputs = ctx.cli([cmd::NEW, app_name, "rust"]).await; - assert!(outputs.success_or_dump()); - - ctx.cd(app_name); - - let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "rust", "app:rust"]) - .await; - assert!(outputs.success_or_dump()); - - fs::append_str( - ctx.cwd_path_join("golem.yaml"), - indoc! {" - - customCommands: - new: - - command: cargo tree - - "}, - ) - .unwrap(); - - let outputs = ctx.cli(cmd::NO_ARGS).await; - assert!(!outputs.success()); - assert!(outputs.stderr_contains(":new")); - - let outputs = ctx.cli([":new"]).await; - assert!(outputs.success_or_dump()); - assert!(outputs.stdout_contains("Executing external command 'cargo tree'")); -} diff --git a/cli/golem-cli/tests/app/build_and_deploy_all.rs b/cli/golem-cli/tests/app/build_and_deploy_all.rs index fce3935fef..cecf7aa1b2 100644 --- a/cli/golem-cli/tests/app/build_and_deploy_all.rs +++ b/cli/golem-cli/tests/app/build_and_deploy_all.rs @@ -1,30 +1,39 @@ -use crate::app::{cmd, flag, replace_string_in_file, TestContext}; +use crate::app::{cmd, flag, TestContext}; use crate::Tracing; +use golem_cli::fs; use golem_cli::model::GuestLanguage; -use heck::ToKebabCase; +use golem_common::base_model::agent::DeployedRegisteredAgentType; use strum::IntoEnumIterator; -use test_r::{inherit_test_dep, tag, test}; +use test_r::{inherit_test_dep, test}; inherit_test_dep!(Tracing); #[test] -#[tag(group2)] -async fn build_and_deploy_all_templates() { +async fn build_and_deploy_all_templates_for_ts() { + build_and_deploy_all_templates_for_lang(GuestLanguage::TypeScript).await; +} + +#[test] +async fn build_and_deploy_all_templates_for_rust() { + build_and_deploy_all_templates_for_lang(GuestLanguage::Rust).await; +} + +async fn build_and_deploy_all_templates_for_lang(language: GuestLanguage) { let mut ctx = TestContext::new(); - let app_name = "all-templates-app"; + let app_name = format!("all-templates-app-{}", language.id()); - let outputs = ctx.cli([cmd::COMPONENT, cmd::TEMPLATES]).await; + let outputs = ctx.cli([cmd::TEMPLATES]).await; assert!(outputs.success_or_dump()); - let template_prefix = " - "; + let template_text_output_prefix = " - "; let templates = outputs .stdout() - .filter(|line| line.starts_with(template_prefix) && line.contains(':')) + .filter(|line| line.starts_with(template_text_output_prefix) && line.contains(':')) .map(|line| { - let template_with_desc = line.strip_prefix(template_prefix); + let template_with_desc = line.strip_prefix(template_text_output_prefix); let Some(template_with_desc) = template_with_desc else { panic!("{}", line) }; @@ -35,39 +44,21 @@ async fn build_and_deploy_all_templates() { template_with_desc[..separator_index].to_string() }) + .filter(|template| template.starts_with(language.id())) .collect::>(); println!("{templates:#?}"); - let outputs = ctx.cli([cmd::NEW, app_name, "rust"]).await; - assert!(outputs.success_or_dump()); - + fs::create_dir_all(ctx.cwd_path_join(&app_name)).unwrap(); ctx.cd(app_name); for template in &templates { - let component_name = format!("app:{}", template.to_kebab_case(),); let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, template, &component_name]) + .cli([flag::YES, cmd::NEW, ".", flag::TEMPLATE, template]) .await; assert!(outputs.success_or_dump()); } - let agent_metas = agent_metas(); - - // NOTE: renaming conflicting agent names, prefix all agents with Rust/Ts - // to avoid conflicts between language implementations - for agent_meta in &agent_metas { - replace_string_in_file( - ctx.cwd_path_join(agent_meta.src_path), - agent_meta.agent_template_name, - agent_meta.agent_test_name, - ) - .unwrap(); - for (path, from, to) in &agent_meta.extra_replaces { - replace_string_in_file(ctx.cwd_path_join(path), from, to).unwrap() - } - } - let outputs = ctx.cli([cmd::BUILD]).await; assert!(outputs.success_or_dump()); @@ -76,22 +67,29 @@ async fn build_and_deploy_all_templates() { let outputs = ctx.cli([cmd::DEPLOY, flag::YES]).await; assert!(outputs.success_or_dump()); - // Checking bridge SDKs for all agents and languages, one by one + let outputs = ctx.cli([cmd::LIST_AGENT_TYPES, flag::FORMAT, "json"]).await; + let deployed_agent_types = outputs + .stdout_json::>() + .into_iter() + .flatten() + .collect::>(); + + // Checking bridge SDK generation for all agents and languages, one by one let mut failed_bridge_sdks = vec![]; for language in GuestLanguage::iter() { - for agent_meta in &agent_metas { + for deployed_agent_type in &deployed_agent_types { let output = ctx .cli([ cmd::GENERATE_BRIDGE, flag::LANGUAGE, language.id(), flag::AGENT_TYPE_NAME, - agent_meta.agent_test_name, + deployed_agent_type.agent_type.type_name.as_str(), ]) .await; if !output.success() { failed_bridge_sdks.push(( - agent_meta.agent_test_name.to_string(), + deployed_agent_type.agent_type.type_name.as_str(), language.id(), output.stderr().map(|s| s.to_string()).collect::>(), )); @@ -106,282 +104,39 @@ async fn build_and_deploy_all_templates() { ); } -fn agent_metas() -> Vec { - vec![ - // Rust agents: prefix with Rust - AgentMeta::new( - "components-rust/app-rust/src/lib.rs", - "CounterAgent", - "RustCounterAgent", - vec![ - ( - "components-rust/app-rust/src/lib.rs", - "/counters", - "/rust-counters", - ), - ( - "components-rust/app-rust/golem.yaml", - "counter-agent", - "rust-counter-agent", - ), - ( - "components-rust/app-rust/golem.yaml", - "CounterAgent", - "RustCounterAgent", - ), - ], - ), - AgentMeta::new( - "components-rust/app-rust-human-in-the-loop/src/lib.rs", - "WorkflowAgent", - "RustWorkflowAgent", - vec![ - ( - "components-rust/app-rust-human-in-the-loop/src/lib.rs", - "/workflows", - "/rust-workflows", - ), - ( - "components-rust/app-rust-human-in-the-loop/golem.yaml", - "workflow-agent", - "rust-workflow-agent", - ), - ( - "components-rust/app-rust-human-in-the-loop/golem.yaml", - "WorkflowAgent", - "RustWorkflowAgent", - ), - ], - ), - AgentMeta::new( - "components-rust/app-rust-human-in-the-loop/src/lib.rs", - "HumanAgent", - "RustHumanAgent", - vec![ - ( - "components-rust/app-rust-human-in-the-loop/src/lib.rs", - "/humans", - "/rust-humans", - ), - ( - "components-rust/app-rust-human-in-the-loop/golem.yaml", - "human-agent", - "rust-human-agent", - ), - ( - "components-rust/app-rust-human-in-the-loop/golem.yaml", - "HumanAgent", - "RustHumanAgent", - ), - ], - ), - AgentMeta::new( - "components-rust/app-rust-json/src/lib.rs", - "Tasks", - "RustTasks", - vec![ - ( - "components-rust/app-rust-json/src/lib.rs", - "/task-agents", - "/rust-task-agents", - ), - ( - "components-rust/app-rust-json/golem.yaml", - "tasks(name)", - "rust-tasks(name)", - ), - ( - "components-rust/app-rust-json/golem.yaml", - "Tasks", - "RustTasks", - ), - ], - ), - // NOTE: These are temporarily disabled because of golem-ai depending on an older golem-rust - // AgentMeta::new( - // "components-rust/app-rust-llm-session/src/lib.rs", - // "ChatAgent", - // "RustChatAgent", - // vec![ - // ( - // "components-rust/app-rust-llm-session/src/lib.rs", - // "/chats", - // "/rust-chats", - // ), - // ( - // "components-rust/app-rust-llm-session/golem.yaml", - // "chat-agent", - // "rust-chat-agent", - // ), - // ], - // ), - // AgentMeta::new( - // "components-rust/app-rust-llm-websearch-summary-example/src/lib.rs", - // "ResearchAgent", - // "RustResearchAgent", - // vec![ - // ( - // "components-rust/app-rust-llm-websearch-summary-example/src/lib.rs", - // "/research", - // "/rust-research", - // ), - // ( - // "components-rust/app-rust-llm-websearch-summary-example/golem.yaml", - // "research-agent", - // "rust-research-agent", - // ), - // ], - // ), - AgentMeta::new( - "components-rust/app-rust-snapshotting/src/lib.rs", - "CounterAgent", - "RustCounterAgentSnapshotting", - vec![ - ( - "components-rust/app-rust-snapshotting/src/lib.rs", - "/counters", - "/rust-agent-snapshotting-counters", - ), - ( - "components-rust/app-rust-snapshotting/golem.yaml", - "counter-agent", - "rust-counter-agent-snapshotting", - ), - ], - ), - // TypeScript agents: prefix with Ts - AgentMeta::new( - "components-ts/app-ts/src/main.ts", - "CounterAgent", - "TsCounterAgent", - vec![ - ( - "components-ts/app-ts/src/main.ts", - "/counters", - "/ts-counters", - ), - ( - "components-ts/app-ts/golem.yaml", - "counter-agent", - "ts-counter-agent", - ), - ( - "components-ts/app-ts/golem.yaml", - "CounterAgent", - "TsCounterAgent", - ), - ], - ), - AgentMeta::new( - "components-ts/app-ts-human-in-the-loop/src/main.ts", - "WorkflowAgent", - "TsWorkflowAgent", - vec![ - ( - "components-ts/app-ts-human-in-the-loop/src/main.ts", - "/workflows", - "/ts-workflows", - ), - ( - "components-ts/app-ts-human-in-the-loop/golem.yaml", - "workflow-agent", - "ts-workflow-agent", - ), - ( - "components-ts/app-ts-human-in-the-loop/golem.yaml", - "WorkflowAgent", - "TsWorkflowAgent", - ), - ], - ), - AgentMeta::new( - "components-ts/app-ts-human-in-the-loop/src/main.ts", - "HumanAgent", - "TsHumanAgent", - vec![ - ( - "components-ts/app-ts-human-in-the-loop/src/main.ts", - "/humans", - "/ts-humans", - ), - ( - "components-ts/app-ts-human-in-the-loop/golem.yaml", - "human-agent", - "ts-human-agent", - ), - ( - "components-ts/app-ts-human-in-the-loop/golem.yaml", - "HumanAgent", - "TsHumanAgent", - ), - ], - ), - AgentMeta::new( - "components-ts/app-ts-json/src/main.ts", - "TaskAgent", - "TsTaskAgent", - vec![ - ( - "components-ts/app-ts-json/src/main.ts", - "/task-agents", - "/ts-task-agents", - ), - ( - "components-ts/app-ts-json/golem.yaml", - "task-agent", - "ts-task-agent", - ), - ( - "components-ts/app-ts-json/golem.yaml", - "TaskAgent", - "TsTaskAgent", - ), - ], - ), - AgentMeta::new( - "components-ts/app-ts-snapshotting/src/main.ts", - "CounterAgent", - "TsCounterAgentSnapshotting", - vec![ - ( - "components-ts/app-ts-snapshotting/src/main.ts", - "/counters", - "/ts-agent-snapshotting-counters", - ), - ( - "components-ts/app-ts-snapshotting/golem.yaml", - "counter-agent", - "ts-counter-agent-snapshotting", - ), - ( - "components-ts/app-ts-snapshotting/golem.yaml", - "CounterAgent", - "TsCounterAgentSnapshotting", - ), - ], - ), - ] -} +// We only select a few non-conflicting templates from all apps +#[test] +async fn build_mixed_language_app() { + let mut ctx = TestContext::new(); -struct AgentMeta { - src_path: &'static str, - agent_template_name: &'static str, - agent_test_name: &'static str, - extra_replaces: Vec<(&'static str, &'static str, &'static str)>, -} + let templates = GuestLanguage::iter() + .flat_map(|language| match language { + GuestLanguage::TypeScript => { + vec!["ts", "ts/human-in-the-loop"] + } + GuestLanguage::Rust => { + vec!["rust/json", "rust/snapshotting"] + } + }) + .collect::>(); -impl AgentMeta { - pub fn new( - src_path: &'static str, - agent_template_name: &'static str, - agent_test_name: &'static str, - extra_replaces: Vec<(&'static str, &'static str, &'static str)>, - ) -> Self { - Self { - src_path, - agent_template_name, - agent_test_name, - extra_replaces, - } + let app_name = "mixed-lang-templates-app"; + + fs::create_dir_all(ctx.cwd_path_join(app_name)).unwrap(); + ctx.cd(app_name); + + for template in &templates { + let outputs = ctx + .cli([flag::YES, cmd::NEW, ".", flag::TEMPLATE, template]) + .await; + assert!(outputs.success_or_dump()); } + + let outputs = ctx.cli([cmd::BUILD]).await; + assert!(outputs.success_or_dump()); + + ctx.start_server().await; + + let outputs = ctx.cli([cmd::DEPLOY, flag::YES]).await; + assert!(outputs.success_or_dump()); } diff --git a/cli/golem-cli/tests/app/mod.rs b/cli/golem-cli/tests/app/mod.rs index 3fc255873e..eccf098c2c 100644 --- a/cli/golem-cli/tests/app/mod.rs +++ b/cli/golem-cli/tests/app/mod.rs @@ -26,6 +26,7 @@ sequential_suite!(app); tag_suite!(plugins, group1); sequential_suite!(plugins); +tag_suite!(build_and_deploy_all, group2); sequential_suite!(build_and_deploy_all); tag_suite!(agents, group3); @@ -37,12 +38,14 @@ use crate::{crate_path, workspace_path, Tracing}; use anyhow::Context; use colored::Colorize; use expectrl::Expect; -use golem_cli::fs::{read_to_string, write_str}; +use golem_cli::app::edit; +use golem_cli::fs; use golem_cli::sdk_overrides::sdk_overrides; use golem_client::api::HealthCheckClient; use golem_client::Security; use itertools::Itertools; use lenient_bool::LenientBool; +use serde::de::DeserializeOwned; use std::collections::{HashMap, HashSet}; use std::ffi::OsStr; use std::path::{Path, PathBuf}; @@ -70,6 +73,7 @@ mod cmd { pub static GET: &str = "get"; pub static INVOKE: &str = "invoke"; pub static LIST: &str = "list"; + pub static LIST_AGENT_TYPES: &str = "list-agent-types"; pub static NEW: &str = "new"; pub static PLUGIN: &str = "plugin"; pub static REGISTER: &str = "register"; @@ -79,11 +83,13 @@ mod cmd { mod flag { pub static AGENT_TYPE_NAME: &str = "--agent-type-name"; + pub static COMPONENT_NAME: &str = "--component-name"; pub static FORCE_BUILD: &str = "--force-build"; pub static FORMAT: &str = "--format"; pub static LANGUAGE: &str = "--language"; pub static SCRIPT: &str = "--script"; pub static SHOW_SENSITIVE: &str = "--show-sensitive"; + pub static TEMPLATE: &str = "--template"; pub static YES: &str = "--yes"; } @@ -100,6 +106,7 @@ enum CommandOutput { } pub struct Output { + quiet: bool, status: ExitStatus, output: Vec, } @@ -158,6 +165,7 @@ impl Output { } Ok(Self { + quiet, status: child.wait().await?, output, }) @@ -170,6 +178,20 @@ impl Output { }) } + fn stdout_json(&self) -> Vec { + self.output + .iter() + .filter_map(|output| match output { + CommandOutput::Stdout(line) => { + Some(serde_json::from_str::(line).unwrap_or_else(|err| { + panic!("Failed to parse line as JSON: {err}, input line:\n{}", line) + })) + } + CommandOutput::Stderr(_) => None, + }) + .collect() + } + fn stderr(&self) -> impl Iterator { self.output.iter().filter_map(|output| match output { CommandOutput::Stdout(_) => None, @@ -185,7 +207,7 @@ impl Output { #[must_use] fn success_or_dump(&self) -> bool { let success = self.status.success(); - if !success { + if !success && self.quiet { self.dump(); } success @@ -606,11 +628,11 @@ pub fn replace_strings_in_file( replace: &[(&str, &str)], ) -> anyhow::Result<()> { let path = path.as_ref(); - let mut content = read_to_string(path)?; + let mut content = fs::read_to_string(path)?; for (from, to) in replace { content = content.replace(from, to); } - write_str(path, content) + fs::write_str(path, content) } pub fn replace_string_in_file(path: impl AsRef, from: &str, to: &str) -> anyhow::Result<()> { @@ -691,3 +713,10 @@ where Ok(()) } } + +fn merge_into_manifest(path: &Path, update: &str) -> anyhow::Result<()> { + let manifest = fs::read_to_string(path)?; + let updated_manifest = edit::golem_yaml::merge_documents(&manifest, update)?; + fs::write_str(path, updated_manifest)?; + Ok(()) +} diff --git a/cli/golem-cli/tests/app/plugins.rs b/cli/golem-cli/tests/app/plugins.rs index fddd5a5926..5e15dc94d0 100644 --- a/cli/golem-cli/tests/app/plugins.rs +++ b/cli/golem-cli/tests/app/plugins.rs @@ -39,41 +39,55 @@ async fn plugin_installation_test1(_tracing: &Tracing) { let mut ctx = TestContext::new(); let app_name = "test-app-name"; - let outputs = ctx.cli([cmd::NEW, app_name, "rust"]).await; + let outputs = ctx + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "rust"]) + .await; assert!(outputs.success_or_dump()); ctx.cd(app_name); let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "rust", "test:rust1"]) + .cli([ + flag::YES, + cmd::NEW, + ".", + flag::TEMPLATE, + "rust", + flag::COMPONENT_NAME, + "test:rust1", + ]) .await; assert!(outputs.success_or_dump()); replace_string_in_file( - ctx.cwd_path_join("components-rust/test-rust1/src/lib.rs"), + ctx.cwd_path_join("test-rust1/src/lib.rs"), "CounterAgent", "CounterAgent1", ) .unwrap(); let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "rust", "test:rust2"]) + .cli([ + flag::YES, + cmd::NEW, + ".", + flag::TEMPLATE, + "rust", + flag::COMPONENT_NAME, + "test:rust2", + ]) .await; assert!(outputs.success_or_dump()); replace_string_in_file( - ctx.cwd_path_join("components-rust/test-rust2/src/lib.rs"), + ctx.cwd_path_join("test-rust2/src/lib.rs"), "CounterAgent", "CounterAgent2", ) .unwrap(); fs::write_str( - ctx.cwd_path_join( - Path::new("components-rust") - .join("test-rust1") - .join("golem.yaml"), - ), + ctx.cwd_path_join(Path::new("test-rust1").join("golem.yaml")), indoc! {" components: test:rust1: @@ -86,11 +100,7 @@ async fn plugin_installation_test1(_tracing: &Tracing) { .unwrap(); fs::write_str( - ctx.cwd_path_join( - Path::new("components-rust") - .join("test-rust2") - .join("golem.yaml"), - ), + ctx.cwd_path_join(Path::new("test-rust2").join("golem.yaml")), indoc! {" components: test:rust2: @@ -170,11 +180,7 @@ async fn plugin_installation_test1(_tracing: &Tracing) { assert!(outputs.success_or_dump()); fs::write_str( - ctx.cwd_path_join( - Path::new("components-rust") - .join("test-rust1") - .join("golem.yaml"), - ), + ctx.cwd_path_join(Path::new("test-rust1").join("golem.yaml")), indoc! {" components: test:rust1: @@ -203,11 +209,7 @@ async fn plugin_installation_test1(_tracing: &Tracing) { assert!(outputs.stdout_contains("y: 2")); fs::write_str( - ctx.cwd_path_join( - Path::new("components-rust") - .join("test-rust1") - .join("golem.yaml"), - ), + ctx.cwd_path_join(Path::new("test-rust1").join("golem.yaml")), indoc! {" components: test:rust1: @@ -253,11 +255,7 @@ async fn plugin_installation_test1(_tracing: &Tracing) { ); fs::write_str( - ctx.cwd_path_join( - Path::new("components-rust") - .join("test-rust1") - .join("golem.yaml"), - ), + ctx.cwd_path_join(Path::new("test-rust1").join("golem.yaml")), indoc! {" components: test:rust1: @@ -401,13 +399,23 @@ async fn plugin_installation_test2(_tracing: &Tracing) { // Creating a test app let app_name = "test-app-name"; - let outputs = ctx.cli([cmd::NEW, app_name, "rust"]).await; + let outputs = ctx + .cli([flag::YES, cmd::NEW, app_name, flag::TEMPLATE, "rust"]) + .await; assert!(outputs.success_or_dump()); ctx.cd(app_name); let outputs = ctx - .cli([cmd::COMPONENT, cmd::NEW, "rust", "test:rust1"]) + .cli([ + flag::YES, + cmd::NEW, + ".", + flag::TEMPLATE, + "rust", + flag::COMPONENT_NAME, + "test:rust1", + ]) .await; assert!(outputs.success_or_dump()); @@ -419,11 +427,7 @@ async fn plugin_installation_test2(_tracing: &Tracing) { assert_eq!(outputs.stdout().count(), 5); fs::write_str( - ctx.cwd_path_join( - Path::new("components-rust") - .join("test-rust1") - .join("golem.yaml"), - ), + ctx.cwd_path_join(Path::new("test-rust1").join("golem.yaml")), indoc! {" components: test:rust1: diff --git a/golem-worker-executor/src/services/shutdown.rs b/golem-worker-executor/src/services/shutdown.rs index 8e97636c57..9406e77294 100644 --- a/golem-worker-executor/src/services/shutdown.rs +++ b/golem-worker-executor/src/services/shutdown.rs @@ -1,6 +1,6 @@ -// Copyright 2024-2025 Golem Cloud +// Copyright 2024-2026 Golem Cloud // -// Licensed under the Golem Source License v1.0 (the "License"); +// Licensed under the Golem Source License v1.1 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // diff --git a/golem-worker-executor/tests/api.rs b/golem-worker-executor/tests/api.rs index d2fb3a1a1c..976385402d 100644 --- a/golem-worker-executor/tests/api.rs +++ b/golem-worker-executor/tests/api.rs @@ -1497,7 +1497,7 @@ async fn get_worker_metadata( )? .len(); assert_eq!(metadata2.component_size, component_file_size); - assert_eq!(metadata2.total_linear_memory_size, 1638400); + assert_eq!(metadata2.total_linear_memory_size, 1572864); Ok(()) } diff --git a/golem-worker-executor/tests/http.rs b/golem-worker-executor/tests/http.rs index 1a8da4eb01..1c82aa279b 100644 --- a/golem-worker-executor/tests/http.rs +++ b/golem-worker-executor/tests/http.rs @@ -453,7 +453,7 @@ async fn outgoing_http_contains_idempotency_key( assert_eq!( result, data_value!( - "200 ExampleResponse { percentage: 0.0, message: Some(\"8c25adee-7935-5315-a99b-457f41180bc1\") }" + "200 ExampleResponse { percentage: 0.0, message: Some(\"e7158c39-c997-5318-9d0d-a3c47f406e12\") }" ) ); Ok(()) diff --git a/sdks/ts/packages/golem-ts-typegen/src/bin/golem-typegen.ts b/sdks/ts/packages/golem-ts-typegen/src/bin/golem-typegen.ts index f249cc2f26..942b4ff54c 100644 --- a/sdks/ts/packages/golem-ts-typegen/src/bin/golem-typegen.ts +++ b/sdks/ts/packages/golem-ts-typegen/src/bin/golem-typegen.ts @@ -6,7 +6,7 @@ import pc from 'picocolors'; import logSymbols from 'log-symbols'; import { saveAndClearInMemoryMetadata, updateMetadataFromSourceFiles } from '../index.js'; import { TypeMetadata } from '@golemcloud/golem-ts-types-core'; -import path from 'path'; +import { normalizeCliPath, normalizeFilePatterns } from './path-normalization.js'; const program = new Command(); @@ -38,8 +38,11 @@ program ) => { console.log(logSymbols.info, pc.cyan('Starting type metadata generation…')); - const project = new Project({ tsConfigFilePath: path.resolve(tsconfig) }); - const sourceFiles = project.getSourceFiles(options.files); + const normalizedTsconfig = normalizeCliPath(tsconfig); + const normalizedFilePatterns = normalizeFilePatterns(options.files); + + const project = new Project({ tsConfigFilePath: normalizedTsconfig }); + const sourceFiles = project.getSourceFiles(normalizedFilePatterns); console.log(logSymbols.info, pc.blue(`Processing ${sourceFiles.length} source files…`)); @@ -54,6 +57,18 @@ program const result = TypeMetadata.getAll(); + if (result.size === 0) { + console.warn( + logSymbols.warning, + pc.yellow('No agent classes extracted; metadata is empty.'), + ); + console.warn(logSymbols.info, pc.gray(`tsconfig: ${normalizedTsconfig}`)); + console.warn( + logSymbols.info, + pc.gray(`file patterns: ${normalizedFilePatterns.join(', ')}`), + ); + } + console.log( logSymbols.success, pc.green(`Metadata tracked for: ${Array.from(result.keys()).join(', ')}`), diff --git a/sdks/ts/packages/golem-ts-typegen/src/bin/path-normalization.ts b/sdks/ts/packages/golem-ts-typegen/src/bin/path-normalization.ts new file mode 100644 index 0000000000..1bbe0d666a --- /dev/null +++ b/sdks/ts/packages/golem-ts-typegen/src/bin/path-normalization.ts @@ -0,0 +1,13 @@ +import path from 'path'; + +export function normalizeCliPath(inputPath: string, cwd: string = process.cwd()): string { + if (path.isAbsolute(inputPath)) { + return path.normalize(inputPath); + } + + return path.normalize(path.resolve(cwd, inputPath)); +} + +export function normalizeFilePatterns(patterns: string[], cwd: string = process.cwd()): string[] { + return patterns.map((pattern) => normalizeCliPath(pattern, cwd)); +} diff --git a/sdks/ts/packages/golem-ts-typegen/tests/path-normalization.test.ts b/sdks/ts/packages/golem-ts-typegen/tests/path-normalization.test.ts new file mode 100644 index 0000000000..a55ca56a2f --- /dev/null +++ b/sdks/ts/packages/golem-ts-typegen/tests/path-normalization.test.ts @@ -0,0 +1,31 @@ +import path from 'path'; +import { describe, expect, it } from 'vitest'; +import { normalizeCliPath, normalizeFilePatterns } from '../src/bin/path-normalization.js'; + +describe('path normalization', () => { + it('normalizes dotted absolute paths', () => { + const input = '/tmp/test-components/agent-promise/./src/**/*.ts'; + const expected = path.normalize('/tmp/test-components/agent-promise/src/**/*.ts'); + + expect(normalizeCliPath(input)).toBe(expected); + }); + + it('resolves and normalizes dotted relative paths', () => { + const cwd = '/tmp/work'; + const input = './src/../src/**/*.ts'; + const expected = path.normalize(path.resolve(cwd, 'src/**/*.ts')); + + expect(normalizeCliPath(input, cwd)).toBe(expected); + }); + + it('normalizes all file patterns', () => { + const cwd = '/tmp/work'; + const inputs = ['./src/**/*.ts', '/tmp/work/./other/**/*.ts']; + const expected = [ + path.normalize(path.resolve(cwd, 'src/**/*.ts')), + path.normalize('/tmp/work/other/**/*.ts'), + ]; + + expect(normalizeFilePatterns(inputs, cwd)).toEqual(expected); + }); +}); diff --git a/test-components/agent-constructor-parameter-echo/.gitignore b/test-components/agent-constructor-parameter-echo/.gitignore index 779a474853..258bec6838 100644 --- a/test-components/agent-constructor-parameter-echo/.gitignore +++ b/test-components/agent-constructor-parameter-echo/.gitignore @@ -1,3 +1,2 @@ -/dist /golem-temp /node_modules diff --git a/test-components/agent-constructor-parameter-echo/components-ts/.gitignore b/test-components/agent-constructor-parameter-echo/components-ts/.gitignore deleted file mode 100644 index e2175397ed..0000000000 --- a/test-components/agent-constructor-parameter-echo/components-ts/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/*/dist -/*/src/generated -/*/wit-generated -/*/.metadata diff --git a/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/golem.yaml b/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/golem.yaml deleted file mode 100644 index 583757ed26..0000000000 --- a/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/golem.yaml +++ /dev/null @@ -1,160 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# See https://learn.golem.cloud/docs/app-manifest#field-reference for field reference -# For creating APIs see https://learn.golem.cloud/invoke/making-custom-apis - -components: - golem-it:constructor-parameter-echo: - templates: ts, ts-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - # Graph database providers - # ------------------------------------------------------------------------------------------------------------ - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - # Search providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - # Speech-to-text providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: 10 # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: - # GOOGLE_BUCKET_NAME: - - # GOOGLE_APPLICATION_CREDENTIALS: "" - ## or - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - # Video generation providers - # ------------------------------------------------------------------------------------------------------------ - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - # WebSearch providers - # ------------------------------------------------------------------------------------------------------------ - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY. "" diff --git a/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/package.json b/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/package.json deleted file mode 100644 index b1c1d74acb..0000000000 --- a/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "golem-it-constructor-parameter-echo" -} diff --git a/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/rollup.config.mjs b/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/rollup.config.mjs deleted file mode 100644 index bd3a030340..0000000000 --- a/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../golem-temp/common/ts/rollup.config.component.mjs"; - -export default componentRollupConfig("golem-it-constructor-parameter-echo"); diff --git a/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/tsconfig.json b/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/tsconfig.json deleted file mode 100644 index 44bfdcd636..0000000000 --- a/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../golem-temp/common/ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} diff --git a/test-components/agent-constructor-parameter-echo/golem.yaml b/test-components/agent-constructor-parameter-echo/golem.yaml index 27618b2d3e..56d65dcb67 100644 --- a/test-components/agent-constructor-parameter-echo/golem.yaml +++ b/test-components/agent-constructor-parameter-echo/golem.yaml @@ -9,9 +9,13 @@ app: agent-constructor-parameter-echo includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + golem-it:constructor-parameter-echo: + dir: "." + templates: ts, ts-test-component + environments: local: server: local diff --git a/test-components/agent-constructor-parameter-echo/package-lock.json b/test-components/agent-constructor-parameter-echo/package-lock.json index efe915dc5e..6966d0b5d4 100644 --- a/test-components/agent-constructor-parameter-echo/package-lock.json +++ b/test-components/agent-constructor-parameter-echo/package-lock.json @@ -5,12 +5,6 @@ "packages": { "": { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/agent-constructor-parameter-echo/package.json b/test-components/agent-constructor-parameter-echo/package.json index 5781158f58..4a7f0dc720 100644 --- a/test-components/agent-constructor-parameter-echo/package.json +++ b/test-components/agent-constructor-parameter-echo/package.json @@ -1,11 +1,5 @@ { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/src/main.ts b/test-components/agent-constructor-parameter-echo/src/main.ts similarity index 100% rename from test-components/agent-constructor-parameter-echo/components-ts/golem-it-constructor-parameter-echo/src/main.ts rename to test-components/agent-constructor-parameter-echo/src/main.ts diff --git a/test-components/agent-constructor-parameter-echo/tsconfig.json b/test-components/agent-constructor-parameter-echo/tsconfig.json new file mode 100644 index 0000000000..d7714b0e18 --- /dev/null +++ b/test-components/agent-constructor-parameter-echo/tsconfig.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "skipLibCheck": true, + "target": "ES2020", + "noEmit": true, + "lib": [ + "ES2020" + ], + "types": [ + "node" + ], + "moduleResolution": "bundler", + "checkJs": false, + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "useDefineForClassFields": false + }, + "include": [ + "src/**/*.ts" + ] +} diff --git a/test-components/agent-counters/.gitignore b/test-components/agent-counters/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/agent-counters/.gitignore +++ b/test-components/agent-counters/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/agent-counters/Cargo.lock b/test-components/agent-counters/Cargo.lock index 876fdec113..8c8d27c54a 100644 --- a/test-components/agent-counters/Cargo.lock +++ b/test-components/agent-counters/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "async-task" @@ -36,9 +36,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "base64" @@ -48,43 +48,42 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.46" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97463e1064cb1b1c1384ad0a0b9c8abd0988e2a91f52606c80ef14aadb63e36" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ - "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -159,9 +158,9 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "fastrand" @@ -173,16 +172,10 @@ dependencies = [ ] [[package]] -name = "find-msvc-tools" +name = "foldhash" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "foldhash" @@ -192,9 +185,9 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "form_urlencoded" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -207,9 +200,9 @@ checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-lite" @@ -228,14 +221,15 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", "r-efi", "wasip2", + "wasip3", ] [[package]] @@ -300,13 +294,22 @@ dependencies = [ "wstd", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash 0.1.5", +] + [[package]] name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -326,12 +329,11 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "http" -version = "1.3.1" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" dependencies = [ "bytes", - "fnv", "itoa", ] @@ -366,9 +368,9 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -390,22 +392,21 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ "displaydoc", - "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locale_core" -version = "2.1.1" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", "litemap", @@ -414,61 +415,99 @@ dependencies = [ "zerovec", ] +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ + "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", + "utf16_iter", + "utf8_iter", + "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] name = "icu_properties" -version = "2.1.1" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ + "displaydoc", "icu_collections", - "icu_locale_core", + "icu_locid_transform", "icu_properties_data", "icu_provider", - "zerotrie", + "tinystr", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] name = "icu_provider" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ "displaydoc", - "icu_locale_core", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", "writeable", "yoke", "zerofrom", - "zerotrie", "zerovec", ] +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "id-arena" version = "2.3.0" @@ -477,9 +516,9 @@ checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" [[package]] name = "idna" -version = "1.1.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ "idna_adapter", "smallvec", @@ -488,9 +527,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ "icu_normalizer", "icu_properties", @@ -503,7 +542,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -527,7 +566,6 @@ dependencies = [ "golem-wasi-http", "serde", "serde_json", - "uuid", ] [[package]] @@ -541,15 +579,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.82" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -569,15 +607,15 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.177" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "litemap" -version = "0.8.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "log" @@ -587,9 +625,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" -version = "2.7.6" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "mime" @@ -608,9 +646,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "parking" @@ -620,24 +658,15 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "percent-encoding" -version = "2.3.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "potential_utf" -version = "0.1.4" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "prettyplease" @@ -651,36 +680,36 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.42" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.3.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rustversion" @@ -690,9 +719,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.20" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "semver" @@ -732,15 +761,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -769,9 +798,12 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" @@ -790,15 +822,15 @@ dependencies = [ [[package]] name = "stable_deref_trait" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "syn" -version = "2.0.110" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a99801b5bd34ede4cf3fc688c5919368fea4e4814a4664359503e6015b280aea" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -807,9 +839,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", @@ -818,9 +850,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ "displaydoc", "zerovec", @@ -828,18 +860,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.0.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" dependencies = [ "indexmap", "toml_datetime", @@ -849,18 +881,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.0.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" dependencies = [ "winnow", ] [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" @@ -876,16 +908,21 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "url" -version = "2.5.7" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", - "serde", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -894,9 +931,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.19.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ "getrandom", "js-sys", @@ -930,11 +967,20 @@ dependencies = [ "wit-bindgen 0.51.0", ] +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + [[package]] name = "wasm-bindgen" -version = "0.2.105" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -945,9 +991,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.105" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -955,9 +1001,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.105" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", @@ -968,9 +1014,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.105" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -984,6 +1030,16 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-encoder" version = "0.245.1" @@ -1010,6 +1066,18 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-metadata" version = "0.245.1" @@ -1033,6 +1101,18 @@ dependencies = [ "semver", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.2", + "indexmap", + "semver", +] + [[package]] name = "wasmparser" version = "0.245.1" @@ -1040,7 +1120,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ "bitflags", - "hashbrown", + "hashbrown 0.16.1", "indexmap", "semver", ] @@ -1106,9 +1186,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.13" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a0236b59786fed61e2a80582dd500fe61f18b5dca67a4a067d0bc9039339cf" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] @@ -1130,6 +1210,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" dependencies = [ "bitflags", + "wit-bindgen-rust-macro 0.51.0", ] [[package]] @@ -1152,6 +1233,17 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-bindgen-core" version = "0.53.1" @@ -1195,6 +1287,22 @@ dependencies = [ "wit-component 0.202.0", ] +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", +] + [[package]] name = "wit-bindgen-rust" version = "0.53.1" @@ -1225,6 +1333,21 @@ dependencies = [ "wit-bindgen-rust 0.24.0", ] +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", +] + [[package]] name = "wit-bindgen-rust-macro" version = "0.53.1" @@ -1259,6 +1382,25 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-component" version = "0.245.1" @@ -1296,6 +1438,24 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + [[package]] name = "wit-parser" version = "0.245.1" @@ -1303,7 +1463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929" dependencies = [ "anyhow", - "hashbrown", + "hashbrown 0.16.1", "id-arena", "indexmap", "log", @@ -1315,11 +1475,17 @@ dependencies = [ "wasmparser 0.245.1", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + [[package]] name = "writeable" -version = "0.6.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wstd" @@ -1355,10 +1521,11 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ + "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -1366,9 +1533,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", @@ -1378,18 +1545,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", @@ -1397,22 +1564,11 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - [[package]] name = "zerovec" -version = "0.11.5" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ "yoke", "zerofrom", @@ -1421,11 +1577,17 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", "syn", ] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test-components/agent-counters/Cargo.toml b/test-components/agent-counters/Cargo.toml index 065950eb74..daa7be3053 100644 --- a/test-components/agent-counters/Cargo.toml +++ b/test-components/agent-counters/Cargo.toml @@ -1,12 +1,17 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "it_agent_counters" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" + +[dependencies] async-trait = {version = "0.1.89"} golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_load_snapshot", "export_save_snapshot", "export_golem_agentic"] } golem-wasi-http = { version = "0.2.0", features = ["json"] } diff --git a/test-components/agent-counters/components-rust/.gitignore b/test-components/agent-counters/components-rust/.gitignore deleted file mode 100644 index 077f8ae54d..0000000000 --- a/test-components/agent-counters/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated diff --git a/test-components/agent-counters/components-rust/it-agent-counters/Cargo.lock b/test-components/agent-counters/components-rust/it-agent-counters/Cargo.lock deleted file mode 100644 index 4a394e2366..0000000000 --- a/test-components/agent-counters/components-rust/it-agent-counters/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "golem-it" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/agent-counters/components-rust/it-agent-counters/Cargo.toml b/test-components/agent-counters/components-rust/it-agent-counters/Cargo.toml deleted file mode 100644 index eea4dc9b8a..0000000000 --- a/test-components/agent-counters/components-rust/it-agent-counters/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "it_agent_counters" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -async-trait = { workspace = true } -ctor = { workspace = true } -golem-rust = { workspace = true } -golem-wasi-http = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -uuid = "1.18.1" diff --git a/test-components/agent-counters/components-rust/it-agent-counters/golem.yaml b/test-components/agent-counters/components-rust/it-agent-counters/golem.yaml deleted file mode 100644 index fd75b7f3c0..0000000000 --- a/test-components/agent-counters/components-rust/it-agent-counters/golem.yaml +++ /dev/null @@ -1,182 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -#httpApi: -# definitions: -# golem-it-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /golem-it-api/{name}/increment -# binding: -# type: default -# componentName: golem:it -# response: | -# let name: string = request.path.name; -# let agent = counter-agent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } -# -# deployments: -# local: -# - host: localhost:9006 -# definitions: -# - golem-it-api - -components: - it:agent-counters: - templates: rust, rust-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - # Graph database providers - # ------------------------------------------------------------------------------------------------------------ - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - # Search providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - # Speech-to-text providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: 10 # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: - # GOOGLE_BUCKET_NAME: - - # GOOGLE_APPLICATION_CREDENTIALS: "" - ## or - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - # Video generation providers - # ------------------------------------------------------------------------------------------------------------ - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - # WebSearch providers - # ------------------------------------------------------------------------------------------------------------ - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY. "" diff --git a/test-components/agent-counters/golem.yaml b/test-components/agent-counters/golem.yaml index d95a451675..d8e1ca14ac 100644 --- a/test-components/agent-counters/golem.yaml +++ b/test-components/agent-counters/golem.yaml @@ -9,9 +9,13 @@ app: agent-counters includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + it:agent-counters: + dir: "." + templates: rust, rust-test-component + environments: local: server: local diff --git a/test-components/agent-counters/components-rust/it-agent-counters/src/lib.rs b/test-components/agent-counters/src/lib.rs similarity index 100% rename from test-components/agent-counters/components-rust/it-agent-counters/src/lib.rs rename to test-components/agent-counters/src/lib.rs diff --git a/test-components/agent-counters/components-rust/it-agent-counters/src/repository.rs b/test-components/agent-counters/src/repository.rs similarity index 100% rename from test-components/agent-counters/components-rust/it-agent-counters/src/repository.rs rename to test-components/agent-counters/src/repository.rs diff --git a/test-components/agent-counters/components-rust/it-agent-counters/src/snapshot_test.rs b/test-components/agent-counters/src/snapshot_test.rs similarity index 100% rename from test-components/agent-counters/components-rust/it-agent-counters/src/snapshot_test.rs rename to test-components/agent-counters/src/snapshot_test.rs diff --git a/test-components/agent-invocation-context/.gitignore b/test-components/agent-invocation-context/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/agent-invocation-context/.gitignore +++ b/test-components/agent-invocation-context/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/agent-invocation-context/Cargo.lock b/test-components/agent-invocation-context/Cargo.lock index 29743503be..82964c64fd 100644 --- a/test-components/agent-invocation-context/Cargo.lock +++ b/test-components/agent-invocation-context/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "async-task" @@ -36,9 +36,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "base64" @@ -48,15 +48,15 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytes" @@ -66,25 +66,24 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.55" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ - "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -159,9 +158,9 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "fastrand" @@ -173,10 +172,10 @@ dependencies = [ ] [[package]] -name = "find-msvc-tools" -version = "0.1.9" +name = "foldhash" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "foldhash" @@ -186,9 +185,9 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "form_urlencoded" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -201,9 +200,9 @@ checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-lite" @@ -222,14 +221,15 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", "r-efi", "wasip2", + "wasip3", ] [[package]] @@ -306,13 +306,22 @@ dependencies = [ "wstd", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash 0.1.5", +] + [[package]] name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -395,22 +404,21 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ "displaydoc", - "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locale_core" -version = "2.1.1" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", "litemap", @@ -419,61 +427,99 @@ dependencies = [ "zerovec", ] +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ + "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", + "utf16_iter", + "utf8_iter", + "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] name = "icu_properties" -version = "2.1.2" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ + "displaydoc", "icu_collections", - "icu_locale_core", + "icu_locid_transform", "icu_properties_data", "icu_provider", - "zerotrie", + "tinystr", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.1.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] name = "icu_provider" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ "displaydoc", - "icu_locale_core", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", "writeable", "yoke", "zerofrom", - "zerotrie", "zerovec", ] +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "id-arena" version = "2.3.0" @@ -482,9 +528,9 @@ checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" [[package]] name = "idna" -version = "1.1.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ "idna_adapter", "smallvec", @@ -493,9 +539,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ "icu_normalizer", "icu_properties", @@ -508,7 +554,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -533,15 +579,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -561,15 +607,15 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.181" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "litemap" -version = "0.8.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "log" @@ -579,9 +625,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" -version = "2.8.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "mime" @@ -600,9 +646,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "parking" @@ -612,24 +658,15 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "percent-encoding" -version = "2.3.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project-lite" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "potential_utf" -version = "0.1.4" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "prettyplease" @@ -643,36 +680,36 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.3.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rustversion" @@ -682,9 +719,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.23" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "semver" @@ -761,9 +798,12 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" -version = "0.4.12" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" @@ -782,15 +822,15 @@ dependencies = [ [[package]] name = "stable_deref_trait" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -799,9 +839,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", @@ -810,9 +850,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ "displaydoc", "zerovec", @@ -820,18 +860,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.0.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" dependencies = [ "indexmap", "toml_datetime", @@ -841,18 +881,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.7+spec-1.1.0" +version = "1.0.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "247eaa3197818b831697600aadf81514e577e0cba5eab10f7e064e78ae154df1" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" dependencies = [ "winnow", ] [[package]] name = "unicode-ident" -version = "1.0.23" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" @@ -868,16 +908,21 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "url" -version = "2.5.8" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", - "serde", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -886,9 +931,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.20.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ "getrandom", "js-sys", @@ -922,11 +967,20 @@ dependencies = [ "wit-bindgen 0.51.0", ] +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -937,9 +991,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -947,9 +1001,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", @@ -960,9 +1014,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -976,6 +1030,16 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-encoder" version = "0.245.1" @@ -1002,6 +1066,18 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-metadata" version = "0.245.1" @@ -1025,6 +1101,18 @@ dependencies = [ "semver", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.2", + "indexmap", + "semver", +] + [[package]] name = "wasmparser" version = "0.245.1" @@ -1032,7 +1120,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ "bitflags", - "hashbrown", + "hashbrown 0.16.1", "indexmap", "semver", ] @@ -1098,9 +1186,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] @@ -1122,6 +1210,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" dependencies = [ "bitflags", + "wit-bindgen-rust-macro 0.51.0", ] [[package]] @@ -1144,6 +1233,17 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-bindgen-core" version = "0.53.1" @@ -1187,6 +1287,22 @@ dependencies = [ "wit-component 0.202.0", ] +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", +] + [[package]] name = "wit-bindgen-rust" version = "0.53.1" @@ -1217,6 +1333,21 @@ dependencies = [ "wit-bindgen-rust 0.24.0", ] +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", +] + [[package]] name = "wit-bindgen-rust-macro" version = "0.53.1" @@ -1251,6 +1382,25 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-component" version = "0.245.1" @@ -1288,6 +1438,24 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + [[package]] name = "wit-parser" version = "0.245.1" @@ -1295,7 +1463,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929" dependencies = [ "anyhow", - "hashbrown", + "hashbrown 0.16.1", "id-arena", "indexmap", "log", @@ -1307,11 +1475,17 @@ dependencies = [ "wasmparser 0.245.1", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + [[package]] name = "writeable" -version = "0.6.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wstd" @@ -1347,10 +1521,11 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ + "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -1358,9 +1533,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", @@ -1370,18 +1545,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", @@ -1389,22 +1564,11 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - [[package]] name = "zerovec" -version = "0.11.5" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ "yoke", "zerofrom", @@ -1413,9 +1577,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", @@ -1424,6 +1588,6 @@ dependencies = [ [[package]] name = "zmij" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test-components/agent-invocation-context/Cargo.toml b/test-components/agent-invocation-context/Cargo.toml index bc67c2dfee..2493c86f2a 100644 --- a/test-components/agent-invocation-context/Cargo.toml +++ b/test-components/agent-invocation-context/Cargo.toml @@ -1,22 +1,20 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "golem_it_agent_invocation_context" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] - -golem-rust = { path = "../../sdks/rust/golem-rust", features = [ - "export_golem_agentic", -] } -golem-wasi-http = { version = "0.2.0", features = ["json"] } - -# Advanced HTTP client, alternative of wstd::http -# golem-wasi-http = { version = "0.2.0", features = ["json"] } +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" +[dependencies] log = { version = "0.4.29", features = ["kv"] } +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -wstd = {version = "=0.6.5", features = ["default", "json"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } +golem-wasi-http = { version = "0.2.0", features = ["json"] } diff --git a/test-components/agent-invocation-context/components-rust/.gitignore b/test-components/agent-invocation-context/components-rust/.gitignore deleted file mode 100644 index 077f8ae54d..0000000000 --- a/test-components/agent-invocation-context/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated diff --git a/test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/Cargo.lock b/test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/Cargo.lock deleted file mode 100644 index d08d15fd71..0000000000 --- a/test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "golem-it-agent-invocation-context" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/Cargo.toml b/test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/Cargo.toml deleted file mode 100644 index 216b4363b4..0000000000 --- a/test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/Cargo.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -name = "golem_it_agent_invocation_context" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } -golem-wasi-http = { workspace = true } diff --git a/test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/golem.yaml b/test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/golem.yaml deleted file mode 100644 index 33f6ef0edf..0000000000 --- a/test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/golem.yaml +++ /dev/null @@ -1,185 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -components: - golem-it:agent-invocation-context: - templates: rust, rust-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Embedding providers - # ------------------- - - ## OpenAI - # OPENAI_API_KEY: "" - - ## Cohere - # COHERE_API_KEY: "" - - ## HuggingFace - # HUGGING_FACE_API_KEY: "" - - ## VoyageAI - # VOYAGEAI_API_KEY: "" - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/agent-invocation-context/golem.yaml b/test-components/agent-invocation-context/golem.yaml index 4c372822d8..42261277d5 100644 --- a/test-components/agent-invocation-context/golem.yaml +++ b/test-components/agent-invocation-context/golem.yaml @@ -9,13 +9,17 @@ app: agent-invocation-context includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + golem-it:agent-invocation-context: + dir: "." + templates: rust, rust-test-component + environments: local: server: local componentPresets: debug cloud: server: cloud - componentPresets: release \ No newline at end of file + componentPresets: release diff --git a/test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/src/lib.rs b/test-components/agent-invocation-context/src/lib.rs similarity index 100% rename from test-components/agent-invocation-context/components-rust/golem-it-agent-invocation-context/src/lib.rs rename to test-components/agent-invocation-context/src/lib.rs diff --git a/test-components/agent-mcp/.gitignore b/test-components/agent-mcp/.gitignore index ed09b53992..1ef9c2fe51 100644 --- a/test-components/agent-mcp/.gitignore +++ b/test-components/agent-mcp/.gitignore @@ -1,2 +1,2 @@ /golem-temp -/target +target diff --git a/test-components/agent-mcp/Cargo.lock b/test-components/agent-mcp/Cargo.lock index 9468832886..6207361560 100644 --- a/test-components/agent-mcp/Cargo.lock +++ b/test-components/agent-mcp/Cargo.lock @@ -36,21 +36,21 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytes" @@ -60,19 +60,18 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.56" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ - "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" @@ -133,9 +132,9 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "fastrand" @@ -146,12 +145,6 @@ dependencies = [ "instant", ] -[[package]] -name = "find-msvc-tools" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" - [[package]] name = "foldhash" version = "0.1.5" @@ -166,9 +159,9 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" @@ -220,7 +213,7 @@ dependencies = [ "wasi-logger", "wasip2", "wit-bindgen 0.53.1", - "wstd 0.6.5", + "wstd", ] [[package]] @@ -244,7 +237,7 @@ dependencies = [ "uuid", "wasip2", "wit-bindgen-rt 0.44.0", - "wstd 0.6.5", + "wstd", ] [[package]] @@ -255,14 +248,14 @@ dependencies = [ "log", "serde", "serde_json", - "wstd 0.5.4", + "wstd", ] [[package]] name = "hashbrown" -version = "0.15.5" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" dependencies = [ "foldhash 0.1.5", ] @@ -392,9 +385,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" @@ -420,9 +413,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.183" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b646652bf6661599e1da8901b3b9522896f01e736bad5f723fe7a3a27f899d" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "log" @@ -432,9 +425,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" -version = "2.8.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "num-traits" @@ -447,9 +440,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "parking" @@ -459,9 +452,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "pin-project-lite" -version = "0.2.17" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "prettyplease" @@ -484,18 +477,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.45" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -575,9 +568,12 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" -version = "0.4.12" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" @@ -607,18 +603,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.0.0+spec-1.1.0" +version = "1.0.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32c2555c699578a4f59f0cc68e5116c8d7cabbd45e1409b989d4be085b53f13e" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.25.4+spec-1.1.0" +version = "0.25.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7193cbd0ce53dc966037f54351dbbcf0d5a642c7f0038c382ef9e677ce8c13f2" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" dependencies = [ "indexmap", "toml_datetime", @@ -628,18 +624,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.9+spec-1.1.0" +version = "1.0.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" dependencies = [ "winnow", ] [[package]] name = "unicode-ident" -version = "1.0.24" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" @@ -672,15 +668,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" -[[package]] -name = "wasi" -version = "0.14.1+wasi-0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad7df608df60a1c33e247881838b0f809512086e3e3bb1c18323b77eeb1f844e" -dependencies = [ - "wit-bindgen-rt 0.39.0", -] - [[package]] name = "wasi-logger" version = "0.1.2" @@ -841,7 +828,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ "bitflags", - "hashbrown 0.15.5", + "hashbrown 0.15.2", "indexmap", "semver", ] @@ -919,9 +906,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.15" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] @@ -997,15 +984,6 @@ dependencies = [ "bitflags", ] -[[package]] -name = "wit-bindgen-rt" -version = "0.39.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" -dependencies = [ - "bitflags", -] - [[package]] name = "wit-bindgen-rt" version = "0.44.0" @@ -1217,23 +1195,6 @@ dependencies = [ "wasmparser 0.245.1", ] -[[package]] -name = "wstd" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f51495e1ae93476d1629b5810bd6068fdf22545a8ada7ea5929e2faed7b793" -dependencies = [ - "futures-core", - "http", - "itoa", - "pin-project-lite", - "serde", - "serde_json", - "slab", - "wasi", - "wstd-macro 0.5.4", -] - [[package]] name = "wstd" version = "0.6.5" @@ -1253,17 +1214,7 @@ dependencies = [ "serde_json", "slab", "wasip2", - "wstd-macro 0.6.5", -] - -[[package]] -name = "wstd-macro" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225ac858e4405bdf164d92d070422c0b3b9b81f9b0b68836841f4d1bafc446b3" -dependencies = [ - "quote", - "syn", + "wstd-macro", ] [[package]] diff --git a/test-components/agent-mcp/Cargo.toml b/test-components/agent-mcp/Cargo.toml index f6dd398fd4..f27746d94d 100644 --- a/test-components/agent-mcp/Cargo.toml +++ b/test-components/agent-mcp/Cargo.toml @@ -1,22 +1,19 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "golem_it_mcp" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] - -golem-rust = { path = "../../sdks/rust/golem-rust", features = [ - "export_golem_agentic", -] } - -# Advanced HTTP client, alternative of wstd::http -# golem-wasi-http = { version = "0.1.0", features = ["json"] } +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" +[dependencies] log = { version = "0.4.29", features = ["kv"] } +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -uuid = { version = "1.15.1", features = ["v4"] } -wstd = {version = "=0.5.4", features = ["default", "json"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/agent-mcp/components-rust/golem-it-mcp/Cargo.lock b/test-components/agent-mcp/components-rust/golem-it-mcp/Cargo.lock deleted file mode 100644 index 7a84090f38..0000000000 --- a/test-components/agent-mcp/components-rust/golem-it-mcp/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "golem-it-mcp" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/agent-mcp/components-rust/golem-it-mcp/Cargo.toml b/test-components/agent-mcp/components-rust/golem-it-mcp/Cargo.toml deleted file mode 100644 index 6f4e73ad40..0000000000 --- a/test-components/agent-mcp/components-rust/golem-it-mcp/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "golem_it_mcp" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/test-components/agent-mcp/components-rust/golem-it-mcp/golem.yaml b/test-components/agent-mcp/components-rust/golem-it-mcp/golem.yaml deleted file mode 100644 index e9607385c6..0000000000 --- a/test-components/agent-mcp/components-rust/golem-it-mcp/golem.yaml +++ /dev/null @@ -1,195 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -mcp: - deployments: - local: - - domain: localhost:9007 - agents: - DynamicResource: {} - StaticResource: {} - WeatherAgent: {} - WeatherAgentSingleton: {} - -components: - golem-it:mcp: - templates: rust, rust-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Embedding providers - # ------------------- - - ## OpenAI - # OPENAI_API_KEY: "" - - ## Cohere - # COHERE_API_KEY: "" - - ## HuggingFace - # HUGGING_FACE_API_KEY: "" - - ## VoyageAI - # VOYAGEAI_API_KEY: "" - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/agent-mcp/golem.yaml b/test-components/agent-mcp/golem.yaml index e6ed4bf9fc..ad4c4a09f5 100644 --- a/test-components/agent-mcp/golem.yaml +++ b/test-components/agent-mcp/golem.yaml @@ -9,8 +9,12 @@ app: agent-mcp includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml + +components: + golem-it:mcp: + dir: "." + templates: rust, rust-test-component environments: local: server: local diff --git a/test-components/agent-mcp/components-rust/golem-it-mcp/src/dynamic_resource.rs b/test-components/agent-mcp/src/dynamic_resource.rs similarity index 100% rename from test-components/agent-mcp/components-rust/golem-it-mcp/src/dynamic_resource.rs rename to test-components/agent-mcp/src/dynamic_resource.rs diff --git a/test-components/agent-mcp/components-rust/golem-it-mcp/src/lib.rs b/test-components/agent-mcp/src/lib.rs similarity index 100% rename from test-components/agent-mcp/components-rust/golem-it-mcp/src/lib.rs rename to test-components/agent-mcp/src/lib.rs diff --git a/test-components/agent-mcp/components-rust/golem-it-mcp/src/location_details.rs b/test-components/agent-mcp/src/location_details.rs similarity index 100% rename from test-components/agent-mcp/components-rust/golem-it-mcp/src/location_details.rs rename to test-components/agent-mcp/src/location_details.rs diff --git a/test-components/agent-mcp/components-rust/golem-it-mcp/src/static_resource.rs b/test-components/agent-mcp/src/static_resource.rs similarity index 100% rename from test-components/agent-mcp/components-rust/golem-it-mcp/src/static_resource.rs rename to test-components/agent-mcp/src/static_resource.rs diff --git a/test-components/agent-mcp/components-rust/golem-it-mcp/src/weather_agent.rs b/test-components/agent-mcp/src/weather_agent.rs similarity index 100% rename from test-components/agent-mcp/components-rust/golem-it-mcp/src/weather_agent.rs rename to test-components/agent-mcp/src/weather_agent.rs diff --git a/test-components/agent-mcp/components-rust/golem-it-mcp/src/weather_agent_singleton.rs b/test-components/agent-mcp/src/weather_agent_singleton.rs similarity index 100% rename from test-components/agent-mcp/components-rust/golem-it-mcp/src/weather_agent_singleton.rs rename to test-components/agent-mcp/src/weather_agent_singleton.rs diff --git a/test-components/agent-promise/.gitignore b/test-components/agent-promise/.gitignore index 779a474853..258bec6838 100644 --- a/test-components/agent-promise/.gitignore +++ b/test-components/agent-promise/.gitignore @@ -1,3 +1,2 @@ -/dist /golem-temp /node_modules diff --git a/test-components/agent-promise/components-ts/.gitignore b/test-components/agent-promise/components-ts/.gitignore deleted file mode 100644 index e2175397ed..0000000000 --- a/test-components/agent-promise/components-ts/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/*/dist -/*/src/generated -/*/wit-generated -/*/.metadata diff --git a/test-components/agent-promise/components-ts/golem-it-agent-promise/golem.yaml b/test-components/agent-promise/components-ts/golem-it-agent-promise/golem.yaml deleted file mode 100644 index b5f1d7c530..0000000000 --- a/test-components/agent-promise/components-ts/golem-it-agent-promise/golem.yaml +++ /dev/null @@ -1,160 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# See https://learn.golem.cloud/docs/app-manifest#field-reference for field reference -# For creating APIs see https://learn.golem.cloud/invoke/making-custom-apis - -components: - golem-it:agent-promise: - templates: ts, ts-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - # Graph database providers - # ------------------------------------------------------------------------------------------------------------ - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - # Search providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - # Speech-to-text providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: 10 # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: - # GOOGLE_BUCKET_NAME: - - # GOOGLE_APPLICATION_CREDENTIALS: "" - ## or - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - # Video generation providers - # ------------------------------------------------------------------------------------------------------------ - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - # WebSearch providers - # ------------------------------------------------------------------------------------------------------------ - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY. "" diff --git a/test-components/agent-promise/components-ts/golem-it-agent-promise/package.json b/test-components/agent-promise/components-ts/golem-it-agent-promise/package.json deleted file mode 100644 index 8d2bb406e2..0000000000 --- a/test-components/agent-promise/components-ts/golem-it-agent-promise/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "golem-it-agent-promise" -} diff --git a/test-components/agent-promise/components-ts/golem-it-agent-promise/rollup.config.mjs b/test-components/agent-promise/components-ts/golem-it-agent-promise/rollup.config.mjs deleted file mode 100644 index e76b85bbf2..0000000000 --- a/test-components/agent-promise/components-ts/golem-it-agent-promise/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../golem-temp/common/ts/rollup.config.component.mjs"; - -export default componentRollupConfig("golem-it-agent-promise"); diff --git a/test-components/agent-promise/components-ts/golem-it-agent-promise/tsconfig.json b/test-components/agent-promise/components-ts/golem-it-agent-promise/tsconfig.json deleted file mode 100644 index 44bfdcd636..0000000000 --- a/test-components/agent-promise/components-ts/golem-it-agent-promise/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../golem-temp/common/ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} diff --git a/test-components/agent-promise/golem.yaml b/test-components/agent-promise/golem.yaml index 9151566513..77ccd75121 100644 --- a/test-components/agent-promise/golem.yaml +++ b/test-components/agent-promise/golem.yaml @@ -9,9 +9,13 @@ app: agent-promise includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + golem-it:agent-promise: + dir: "." + templates: ts, ts-test-component + environments: local: server: local diff --git a/test-components/agent-promise/package-lock.json b/test-components/agent-promise/package-lock.json index efe915dc5e..6966d0b5d4 100644 --- a/test-components/agent-promise/package-lock.json +++ b/test-components/agent-promise/package-lock.json @@ -5,12 +5,6 @@ "packages": { "": { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/agent-promise/package.json b/test-components/agent-promise/package.json index 5781158f58..4a7f0dc720 100644 --- a/test-components/agent-promise/package.json +++ b/test-components/agent-promise/package.json @@ -1,11 +1,5 @@ { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/agent-promise/components-ts/golem-it-agent-promise/src/main.ts b/test-components/agent-promise/src/main.ts similarity index 100% rename from test-components/agent-promise/components-ts/golem-it-agent-promise/src/main.ts rename to test-components/agent-promise/src/main.ts diff --git a/test-components/agent-promise/tsconfig.json b/test-components/agent-promise/tsconfig.json new file mode 100644 index 0000000000..d7714b0e18 --- /dev/null +++ b/test-components/agent-promise/tsconfig.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "skipLibCheck": true, + "target": "ES2020", + "noEmit": true, + "lib": [ + "ES2020" + ], + "types": [ + "node" + ], + "moduleResolution": "bundler", + "checkJs": false, + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "useDefineForClassFields": false + }, + "include": [ + "src/**/*.ts" + ] +} diff --git a/test-components/agent-rpc/.gitignore b/test-components/agent-rpc/.gitignore index e9a6b77589..aa47aecf70 100644 --- a/test-components/agent-rpc/.gitignore +++ b/test-components/agent-rpc/.gitignore @@ -1,5 +1,3 @@ -/dist /golem-temp +target /node_modules -/target -/.wit diff --git a/test-components/agent-rpc/Cargo.toml b/test-components/agent-rpc/Cargo.toml deleted file mode 100644 index b575049c50..0000000000 --- a/test-components/agent-rpc/Cargo.toml +++ /dev/null @@ -1,22 +0,0 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] - -[profile.release] -opt-level = "s" -lto = true - -[workspace.dependencies] - -golem-rust = { path = "../../sdks/rust/golem-rust", features = [ - "export_golem_agentic", -# "golem_ai" # Uncomment to use Golem AI libraries -] } - -# Advanced HTTP client, alternative of wstd::http -# golem-wasi-http = { version = "0.2.0", features = ["json"] } - -log = { version = "0.4.29", features = ["kv"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -wstd = {version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/agent-rpc/components-rust/.gitignore b/test-components/agent-rpc/components-rust/.gitignore deleted file mode 100644 index 077f8ae54d..0000000000 --- a/test-components/agent-rpc/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated diff --git a/test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/Cargo.lock b/test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/Cargo.lock deleted file mode 100644 index 58f92b6632..0000000000 --- a/test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "golem-it-agent-rpc-rust" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/Cargo.toml b/test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/Cargo.toml deleted file mode 100644 index 7d65c0cb3a..0000000000 --- a/test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "golem_it_agent_rpc_rust" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/golem.yaml b/test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/golem.yaml deleted file mode 100644 index 5191826729..0000000000 --- a/test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/golem.yaml +++ /dev/null @@ -1,207 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -# httpApi: -# definitions: -# golem-it-agent-rpc-rust-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /golem-it-agent-rpc-rust-api/{name}/increment -# binding: -# type: default -# componentName: golem-it:agent-rpc-rust -# response: | -# let name: string = request.path.name; -# let agent = counter-agent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } - -# deployments: -# local: -# - domain: agent-rpc.localhost:9006 -# definitions: -# - golem-it-agent-rpc-rust-api - -components: - golem-it:agent-rpc-rust: - templates: rust, rust-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Embedding providers - # ------------------- - - ## OpenAI - # OPENAI_API_KEY: "" - - ## Cohere - # COHERE_API_KEY: "" - - ## HuggingFace - # HUGGING_FACE_API_KEY: "" - - ## VoyageAI - # VOYAGEAI_API_KEY: "" - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/agent-rpc/components-ts/.gitignore b/test-components/agent-rpc/components-ts/.gitignore deleted file mode 100644 index e2175397ed..0000000000 --- a/test-components/agent-rpc/components-ts/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/*/dist -/*/src/generated -/*/wit-generated -/*/.metadata diff --git a/test-components/agent-rpc/components-ts/golem-it-agent-rpc/golem.yaml b/test-components/agent-rpc/components-ts/golem-it-agent-rpc/golem.yaml deleted file mode 100644 index 11b6ce2850..0000000000 --- a/test-components/agent-rpc/components-ts/golem-it-agent-rpc/golem.yaml +++ /dev/null @@ -1,160 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# See https://learn.golem.cloud/docs/app-manifest#field-reference for field reference -# For creating APIs see https://learn.golem.cloud/invoke/making-custom-apis - -components: - golem-it:agent-rpc: - templates: ts, ts-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - # Graph database providers - # ------------------------------------------------------------------------------------------------------------ - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - # Search providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - # Speech-to-text providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: 10 # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: - # GOOGLE_BUCKET_NAME: - - # GOOGLE_APPLICATION_CREDENTIALS: "" - ## or - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - # Video generation providers - # ------------------------------------------------------------------------------------------------------------ - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - # WebSearch providers - # ------------------------------------------------------------------------------------------------------------ - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY. "" diff --git a/test-components/agent-rpc/components-ts/golem-it-agent-rpc/rollup.config.mjs b/test-components/agent-rpc/components-ts/golem-it-agent-rpc/rollup.config.mjs deleted file mode 100644 index 7c9aad4b4d..0000000000 --- a/test-components/agent-rpc/components-ts/golem-it-agent-rpc/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../golem-temp/common/ts/rollup.config.component.mjs"; - -export default componentRollupConfig("golem-it-agent-rpc"); diff --git a/test-components/agent-rpc/components-ts/golem-it-agent-rpc/tsconfig.json b/test-components/agent-rpc/components-ts/golem-it-agent-rpc/tsconfig.json deleted file mode 100644 index 44bfdcd636..0000000000 --- a/test-components/agent-rpc/components-ts/golem-it-agent-rpc/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../golem-temp/common/ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} diff --git a/test-components/agent-rpc/golem-it-agent-rpc-rust/Cargo.lock b/test-components/agent-rpc/golem-it-agent-rpc-rust/Cargo.lock new file mode 100644 index 0000000000..12c25d19c4 --- /dev/null +++ b/test-components/agent-rpc/golem-it-agent-rpc-rust/Cargo.lock @@ -0,0 +1,1234 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" + +[[package]] +name = "cc" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "ctor" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec09e802f5081de6157da9a75701d6c713d8dc3ba52571fd4bd25f412644e8a6" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" + +[[package]] +name = "dtor" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cbdf2ad6846025e8e25df05171abfb30e3ababa12ee0a0e44b9bbe570633a8" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7454e41ff9012c00d53cf7f475c5e3afa3b91b7c90568495495e8d9bf47a1055" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + +[[package]] +name = "golem-rust" +version = "0.0.0" +dependencies = [ + "async-trait", + "ctor", + "golem-rust-macro", + "golem-wasm", + "http", + "log", + "serde", + "serde_json", + "uuid", + "wasi-logger", + "wasip2", + "wit-bindgen 0.53.1", + "wstd", +] + +[[package]] +name = "golem-rust-macro" +version = "0.0.0" +dependencies = [ + "heck 0.5.0", + "humantime", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "golem-wasm" +version = "0.0.0" +dependencies = [ + "chrono", + "itertools", + "uuid", + "wasip2", + "wit-bindgen-rt 0.44.0", + "wstd", +] + +[[package]] +name = "golem_it_agent_rpc_rust" +version = "0.0.1" +dependencies = [ + "golem-rust", + "log", + "serde", + "serde_json", + "wstd", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "foldhash 0.2.0", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "humantime" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + +[[package]] +name = "js-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "pin-project-lite" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "spdx" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e17e880bafaeb362a7b751ec46bdc5b61445a188f80e0606e68167cd540fa3" +dependencies = [ + "smallvec", +] + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "toml_datetime" +version = "1.0.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.10+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" +dependencies = [ + "winnow", +] + +[[package]] +name = "unicode-ident" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "uuid" +version = "1.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" +dependencies = [ + "getrandom", + "js-sys", + "serde_core", + "sha1_smol", + "wasm-bindgen", +] + +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + +[[package]] +name = "wasi-logger" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aa5201b7f5d96ef2e747a1f60a6dbc38bdd1287ce5e046d1498bd7a793f74b" +dependencies = [ + "log", + "wit-bindgen 0.24.0", +] + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd106365a7f5f7aa3c1916a98cbb3ad477f5ff96ddb130285a91c6e7429e67a" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + +[[package]] +name = "wasm-encoder" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9dca005e69bf015e45577e415b9af8c67e8ee3c0e38b5b0add5aa92581ed5c" +dependencies = [ + "leb128fmt", + "wasmparser 0.245.1", +] + +[[package]] +name = "wasm-metadata" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "094aea3cb90e09f16ee25a4c0e324b3e8c934e7fd838bfa039aef5352f44a917" +dependencies = [ + "anyhow", + "indexmap", + "serde", + "serde_derive", + "serde_json", + "spdx", + "wasm-encoder 0.202.0", + "wasmparser 0.202.0", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + +[[package]] +name = "wasm-metadata" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da55e60097e8b37b475a0fa35c3420dd71d9eb7bd66109978ab55faf56a57efb" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.245.1", + "wasmparser 0.245.1", +] + +[[package]] +name = "wasmparser" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6998515d3cf3f8b980ef7c11b29a9b1017d4cf86b99ae93b546992df9931413" +dependencies = [ + "bitflags", + "indexmap", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.2", + "indexmap", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" +dependencies = [ + "bitflags", + "hashbrown 0.16.1", + "indexmap", + "semver", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "winnow" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb4e7653763780be47e38f479e9aa83c768aa6a3b2ed086dc2826fdbbb7e7f5" +dependencies = [ + "wit-bindgen-rt 0.24.0", + "wit-bindgen-rust-macro 0.24.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "bitflags", + "wit-bindgen-rust-macro 0.51.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e915216dde3e818093168df8380a64fba25df468d626c80dd5d6a184c87e7c7" +dependencies = [ + "bitflags", + "wit-bindgen-rust-macro 0.53.1", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b67e11c950041849a10828c7600ea62a4077c01e8af72e8593253575428f91b" +dependencies = [ + "anyhow", + "wit-parser 0.202.0", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deda4b7e9f522d994906f6e6e0fc67965ea8660306940a776b76732be8f3933" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.245.1", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0780cf7046630ed70f689a098cd8d56c5c3b22f2a7379bbdb088879963ff96" +dependencies = [ + "bitflags", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "653c85dd7aee6fe6f4bded0d242406deadae9819029ce6f7d258c920c384358a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30acbe8fb708c3a830a33c4cb705df82659bf831b492ec6ca1a17a369cfeeafb" +dependencies = [ + "anyhow", + "heck 0.4.1", + "indexmap", + "wasm-metadata 0.202.0", + "wit-bindgen-core 0.24.0", + "wit-component 0.202.0", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863a7ab3c4dfee58db196811caeb0718b88412a0aef3d1c2b02fcbae1e37c688" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.245.1", + "wit-bindgen-core 0.53.1", + "wit-component 0.245.1", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b1b06eae85feaecdf9f2854f7cac124e00d5a6e5014bfb02eb1ecdeb5f265b9" +dependencies = [ + "anyhow", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.24.0", + "wit-bindgen-rust 0.24.0", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d14f3a9bfa3804bb0e9ab7f66da047f210eded6a1297ae3ba5805b384d64797f" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.53.1", + "wit-bindgen-rust 0.53.1", +] + +[[package]] +name = "wit-component" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c836b1fd9932de0431c1758d8be08212071b6bba0151f7bac826dbc4312a2a9" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.202.0", + "wasm-metadata 0.202.0", + "wasmparser 0.202.0", + "wit-parser 0.202.0", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] + +[[package]] +name = "wit-component" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4894f10d2d5cbc17c77e91f86a1e48e191a788da4425293b55c98b44ba3fcac9" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.245.1", + "wasm-metadata 0.245.1", + "wasmparser 0.245.1", + "wit-parser 0.245.1", +] + +[[package]] +name = "wit-parser" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744237b488352f4f27bca05a10acb79474415951c450e52ebd0da784c1df2bcc" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.202.0", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + +[[package]] +name = "wit-parser" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929" +dependencies = [ + "anyhow", + "hashbrown 0.16.1", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.245.1", +] + +[[package]] +name = "wstd" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f743611ee524c2416bc1513157eb3235ca24f4270d1b3ab19f93676fcff21398" +dependencies = [ + "anyhow", + "async-task", + "bytes", + "futures-lite", + "http", + "http-body", + "http-body-util", + "itoa", + "pin-project-lite", + "serde", + "serde_json", + "slab", + "wasip2", + "wstd-macro", +] + +[[package]] +name = "wstd-macro" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5db5d13d6e3f2b180b04be8ff8d5c35b37d5621d3e2d0aa85ab99adf817a780" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test-components/agent-rpc/golem-it-agent-rpc-rust/Cargo.toml b/test-components/agent-rpc/golem-it-agent-rpc-rust/Cargo.toml new file mode 100644 index 0000000000..b68078d92e --- /dev/null +++ b/test-components/agent-rpc/golem-it-agent-rpc-rust/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "golem_it_agent_rpc_rust" +version = "0.0.1" +edition = "2021" + +[profile.release] +opt-level = "s" +lto = true + +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" + +[dependencies] +# To use common shared agent definitions, place them in common_lib and uncomment the line below +# common-lib = { path = "../../common-rust/common-lib" } + +log = { version = "0.4.29", features = ["kv"] } +golem-rust = { path = "../../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/src/lib.rs b/test-components/agent-rpc/golem-it-agent-rpc-rust/src/lib.rs similarity index 100% rename from test-components/agent-rpc/components-rust/golem-it-agent-rpc-rust/src/lib.rs rename to test-components/agent-rpc/golem-it-agent-rpc-rust/src/lib.rs diff --git a/test-components/agent-rpc/components-ts/golem-it-agent-rpc/package.json b/test-components/agent-rpc/golem-it-agent-rpc/package.json similarity index 100% rename from test-components/agent-rpc/components-ts/golem-it-agent-rpc/package.json rename to test-components/agent-rpc/golem-it-agent-rpc/package.json diff --git a/test-components/agent-rpc/components-ts/golem-it-agent-rpc/src/main.ts b/test-components/agent-rpc/golem-it-agent-rpc/src/main.ts similarity index 100% rename from test-components/agent-rpc/components-ts/golem-it-agent-rpc/src/main.ts rename to test-components/agent-rpc/golem-it-agent-rpc/src/main.ts diff --git a/test-components/agent-rpc/golem-it-agent-rpc/tsconfig.json b/test-components/agent-rpc/golem-it-agent-rpc/tsconfig.json new file mode 100644 index 0000000000..d7714b0e18 --- /dev/null +++ b/test-components/agent-rpc/golem-it-agent-rpc/tsconfig.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "skipLibCheck": true, + "target": "ES2020", + "noEmit": true, + "lib": [ + "ES2020" + ], + "types": [ + "node" + ], + "moduleResolution": "bundler", + "checkJs": false, + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "useDefineForClassFields": false + }, + "include": [ + "src/**/*.ts" + ] +} diff --git a/test-components/agent-rpc/golem.yaml b/test-components/agent-rpc/golem.yaml index 3d0ca7f8c5..3aec1ea558 100644 --- a/test-components/agent-rpc/golem.yaml +++ b/test-components/agent-rpc/golem.yaml @@ -9,9 +9,16 @@ app: agent-rpc includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + golem-it:agent-rpc-rust: + dir: "golem-it-agent-rpc-rust" + templates: rust, rust-test-component + golem-it:agent-rpc: + dir: "golem-it-agent-rpc" + templates: ts, ts-test-component + environments: local: server: local diff --git a/test-components/agent-rpc/package-lock.json b/test-components/agent-rpc/package-lock.json index efe915dc5e..6966d0b5d4 100644 --- a/test-components/agent-rpc/package-lock.json +++ b/test-components/agent-rpc/package-lock.json @@ -5,12 +5,6 @@ "packages": { "": { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/agent-rpc/package.json b/test-components/agent-rpc/package.json index 5781158f58..4a7f0dc720 100644 --- a/test-components/agent-rpc/package.json +++ b/test-components/agent-rpc/package.json @@ -1,11 +1,5 @@ { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/agent-sdk-rust/.gitignore b/test-components/agent-sdk-rust/.gitignore index d5dc8d016f..1ef9c2fe51 100644 --- a/test-components/agent-sdk-rust/.gitignore +++ b/test-components/agent-sdk-rust/.gitignore @@ -1,3 +1,2 @@ -golem-temp +/golem-temp target -/.wit diff --git a/test-components/agent-sdk-rust/Cargo.lock b/test-components/agent-sdk-rust/Cargo.lock index 955bf4523f..a943a997e0 100644 --- a/test-components/agent-sdk-rust/Cargo.lock +++ b/test-components/agent-sdk-rust/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "async-task" @@ -36,21 +36,21 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytes" @@ -60,25 +60,24 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.55" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ - "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -133,9 +132,9 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "fastrand" @@ -147,10 +146,10 @@ dependencies = [ ] [[package]] -name = "find-msvc-tools" -version = "0.1.9" +name = "foldhash" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "foldhash" @@ -166,9 +165,9 @@ checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-lite" @@ -187,14 +186,15 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", "r-efi", "wasip2", + "wasip3", ] [[package]] @@ -251,13 +251,22 @@ dependencies = [ "wstd", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash 0.1.5", +] + [[package]] name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -351,7 +360,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -376,15 +385,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -404,9 +413,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.180" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "log" @@ -416,9 +425,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" -version = "2.8.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "num-traits" @@ -431,9 +440,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "parking" @@ -443,9 +452,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "prettyplease" @@ -459,36 +468,36 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.3.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rustversion" @@ -559,9 +568,12 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" -version = "0.4.12" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" @@ -580,9 +592,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -591,18 +603,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.0.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" dependencies = [ "indexmap", "toml_datetime", @@ -612,18 +624,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.6+spec-1.1.0" +version = "1.0.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3198b4b0a8e11f09dd03e133c0280504d0801269e9afa46362ffde1cbeebf44" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" dependencies = [ "winnow", ] [[package]] name = "unicode-ident" -version = "1.0.23" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" @@ -639,9 +651,9 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "uuid" -version = "1.20.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ "getrandom", "js-sys", @@ -675,11 +687,20 @@ dependencies = [ "wit-bindgen 0.51.0", ] +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -690,9 +711,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -700,9 +721,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", @@ -713,9 +734,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -729,6 +750,16 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-encoder" version = "0.245.1" @@ -755,6 +786,18 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-metadata" version = "0.245.1" @@ -778,6 +821,18 @@ dependencies = [ "semver", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.2", + "indexmap", + "semver", +] + [[package]] name = "wasmparser" version = "0.245.1" @@ -785,7 +840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ "bitflags", - "hashbrown", + "hashbrown 0.16.1", "indexmap", "semver", ] @@ -851,9 +906,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] @@ -875,6 +930,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" dependencies = [ "bitflags", + "wit-bindgen-rust-macro 0.51.0", ] [[package]] @@ -897,6 +953,17 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-bindgen-core" version = "0.53.1" @@ -940,6 +1007,22 @@ dependencies = [ "wit-component 0.202.0", ] +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", +] + [[package]] name = "wit-bindgen-rust" version = "0.53.1" @@ -970,6 +1053,21 @@ dependencies = [ "wit-bindgen-rust 0.24.0", ] +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", +] + [[package]] name = "wit-bindgen-rust-macro" version = "0.53.1" @@ -1004,6 +1102,25 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-component" version = "0.245.1" @@ -1041,6 +1158,24 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + [[package]] name = "wit-parser" version = "0.245.1" @@ -1048,7 +1183,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929" dependencies = [ "anyhow", - "hashbrown", + "hashbrown 0.16.1", "id-arena", "indexmap", "log", @@ -1094,6 +1229,6 @@ dependencies = [ [[package]] name = "zmij" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test-components/agent-sdk-rust/Cargo.toml b/test-components/agent-sdk-rust/Cargo.toml index b575049c50..73d9494f36 100644 --- a/test-components/agent-sdk-rust/Cargo.toml +++ b/test-components/agent-sdk-rust/Cargo.toml @@ -1,22 +1,22 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "golem_it_agent_sdk_rust" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" -golem-rust = { path = "../../sdks/rust/golem-rust", features = [ - "export_golem_agentic", -# "golem_ai" # Uncomment to use Golem AI libraries -] } - -# Advanced HTTP client, alternative of wstd::http -# golem-wasi-http = { version = "0.2.0", features = ["json"] } +[dependencies] +# To use common shared agent definitions, place them in common_lib and uncomment the line below +# common-lib = { path = "../../common-rust/common-lib" } log = { version = "0.4.29", features = ["kv"] } +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -wstd = {version = "=0.6.5", features = ["default", "json"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/Cargo.lock b/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/Cargo.lock deleted file mode 100644 index d92707f480..0000000000 --- a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "http-rust" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/Cargo.toml b/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/Cargo.toml deleted file mode 100644 index 376580e5d6..0000000000 --- a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "golem_it_agent_sdk_rust" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/golem.yaml b/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/golem.yaml deleted file mode 100644 index 89dba1c559..0000000000 --- a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/golem.yaml +++ /dev/null @@ -1,207 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -# httpApi: -# definitions: -# http-rust-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /http-rust-api/{name}/increment -# binding: -# type: default -# componentName: http:rust -# response: | -# let name: string = request.path.name; -# let agent = counter-agent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } - -# deployments: -# local: -# - domain: agent-http-routes-rust.localhost:9006 -# definitions: -# - http-rust-api - -components: - golem-it:agent-sdk-rust: - templates: rust, rust-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Embedding providers - # ------------------- - - ## OpenAI - # OPENAI_API_KEY: "" - - ## Cohere - # COHERE_API_KEY: "" - - ## HuggingFace - # HUGGING_FACE_API_KEY: "" - - ## VoyageAI - # VOYAGEAI_API_KEY: "" - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/agent-sdk-rust/golem.yaml b/test-components/agent-sdk-rust/golem.yaml index 71194c733f..72400ef75b 100644 --- a/test-components/agent-sdk-rust/golem.yaml +++ b/test-components/agent-sdk-rust/golem.yaml @@ -9,13 +9,17 @@ app: agent-http-routes-rust includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + golem-it:agent-sdk-rust: + dir: "." + templates: rust, rust-test-component + environments: local: server: local componentPresets: debug cloud: server: cloud - componentPresets: release \ No newline at end of file + componentPresets: release diff --git a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/src/config.rs b/test-components/agent-sdk-rust/src/config.rs similarity index 100% rename from test-components/agent-sdk-rust/components-rust/agent-sdk-rust/src/config.rs rename to test-components/agent-sdk-rust/src/config.rs diff --git a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/src/http/agent.rs b/test-components/agent-sdk-rust/src/http/agent.rs similarity index 100% rename from test-components/agent-sdk-rust/components-rust/agent-sdk-rust/src/http/agent.rs rename to test-components/agent-sdk-rust/src/http/agent.rs diff --git a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/src/http/mod.rs b/test-components/agent-sdk-rust/src/http/mod.rs similarity index 100% rename from test-components/agent-sdk-rust/components-rust/agent-sdk-rust/src/http/mod.rs rename to test-components/agent-sdk-rust/src/http/mod.rs diff --git a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/src/http/model.rs b/test-components/agent-sdk-rust/src/http/model.rs similarity index 100% rename from test-components/agent-sdk-rust/components-rust/agent-sdk-rust/src/http/model.rs rename to test-components/agent-sdk-rust/src/http/model.rs diff --git a/test-components/agent-sdk-rust/components-rust/agent-sdk-rust/src/lib.rs b/test-components/agent-sdk-rust/src/lib.rs similarity index 100% rename from test-components/agent-sdk-rust/components-rust/agent-sdk-rust/src/lib.rs rename to test-components/agent-sdk-rust/src/lib.rs diff --git a/test-components/agent-sdk-ts/.gitignore b/test-components/agent-sdk-ts/.gitignore index 779a474853..258bec6838 100644 --- a/test-components/agent-sdk-ts/.gitignore +++ b/test-components/agent-sdk-ts/.gitignore @@ -1,3 +1,2 @@ -/dist /golem-temp /node_modules diff --git a/test-components/agent-sdk-ts/components-ts/.gitignore b/test-components/agent-sdk-ts/components-ts/.gitignore deleted file mode 100644 index e2175397ed..0000000000 --- a/test-components/agent-sdk-ts/components-ts/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/*/dist -/*/src/generated -/*/wit-generated -/*/.metadata diff --git a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/golem.yaml b/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/golem.yaml deleted file mode 100644 index cdd9c2bf12..0000000000 --- a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/golem.yaml +++ /dev/null @@ -1,207 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -# httpApi: -# definitions: -# golem-it-agent-http-routes-ts-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /golem-it-agent-http-routes-ts-api/{name}/increment -# binding: -# type: default -# componentName: golem-it:agent-http-routes-ts -# response: | -# let name: string = request.path.name; -# let agent = counter-agent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } - -# deployments: -# local: -# - domain: agent-http-routes-ts.localhost:9006 -# definitions: -# - golem-it-agent-http-routes-ts-api - -components: - golem-it:agent-sdk-ts: - templates: ts, ts-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Embedding providers - # ------------------- - - ## OpenAI - # OPENAI_API_KEY: "" - - ## Cohere - # COHERE_API_KEY: "" - - ## HuggingFace - # HUGGING_FACE_API_KEY: "" - - ## VoyageAI - # VOYAGEAI_API_KEY: "" - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/package.json b/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/package.json deleted file mode 100644 index 562db02452..0000000000 --- a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "golem-it-agent-sdk-ts" -} diff --git a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/rollup.config.mjs b/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/rollup.config.mjs deleted file mode 100644 index 4959c660e7..0000000000 --- a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../golem-temp/common/ts/rollup.config.component.mjs"; - -export default componentRollupConfig("golem-it-agent-sdk-ts"); diff --git a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/tsconfig.json b/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/tsconfig.json deleted file mode 100644 index 44bfdcd636..0000000000 --- a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../golem-temp/common/ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} diff --git a/test-components/agent-sdk-ts/golem.yaml b/test-components/agent-sdk-ts/golem.yaml index 1fd341a915..932cd66e86 100644 --- a/test-components/agent-sdk-ts/golem.yaml +++ b/test-components/agent-sdk-ts/golem.yaml @@ -9,13 +9,17 @@ app: agent-http-routes-ts includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + golem-it:agent-sdk-ts: + dir: "." + templates: ts, ts-test-component + environments: local: server: local componentPresets: debug cloud: server: cloud - componentPresets: release \ No newline at end of file + componentPresets: release diff --git a/test-components/agent-sdk-ts/package-lock.json b/test-components/agent-sdk-ts/package-lock.json index 3227968615..51aa7d6bdb 100644 --- a/test-components/agent-sdk-ts/package-lock.json +++ b/test-components/agent-sdk-ts/package-lock.json @@ -5,12 +5,6 @@ "packages": { "": { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/agent-sdk-ts/package.json b/test-components/agent-sdk-ts/package.json index 8e793a8079..3a25e649a4 100644 --- a/test-components/agent-sdk-ts/package.json +++ b/test-components/agent-sdk-ts/package.json @@ -1,11 +1,5 @@ { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/src/config.ts b/test-components/agent-sdk-ts/src/config.ts similarity index 100% rename from test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/src/config.ts rename to test-components/agent-sdk-ts/src/config.ts diff --git a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/src/http.ts b/test-components/agent-sdk-ts/src/http.ts similarity index 100% rename from test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/src/http.ts rename to test-components/agent-sdk-ts/src/http.ts diff --git a/test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/src/main.ts b/test-components/agent-sdk-ts/src/main.ts similarity index 100% rename from test-components/agent-sdk-ts/components-ts/golem-it-agent-sdk-ts/src/main.ts rename to test-components/agent-sdk-ts/src/main.ts diff --git a/test-components/agent-sdk-ts/tsconfig.json b/test-components/agent-sdk-ts/tsconfig.json new file mode 100644 index 0000000000..d7714b0e18 --- /dev/null +++ b/test-components/agent-sdk-ts/tsconfig.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "skipLibCheck": true, + "target": "ES2020", + "noEmit": true, + "lib": [ + "ES2020" + ], + "types": [ + "node" + ], + "moduleResolution": "bundler", + "checkJs": false, + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "useDefineForClassFields": false + }, + "include": [ + "src/**/*.ts" + ] +} diff --git a/test-components/agent-self-rpc/.gitignore b/test-components/agent-self-rpc/.gitignore index eac82bc1f1..258bec6838 100644 --- a/test-components/agent-self-rpc/.gitignore +++ b/test-components/agent-self-rpc/.gitignore @@ -1,4 +1,2 @@ -/dist /golem-temp /node_modules -/.wit diff --git a/test-components/agent-self-rpc/components-ts/.gitignore b/test-components/agent-self-rpc/components-ts/.gitignore deleted file mode 100644 index e2175397ed..0000000000 --- a/test-components/agent-self-rpc/components-ts/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/*/dist -/*/src/generated -/*/wit-generated -/*/.metadata diff --git a/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/golem.yaml b/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/golem.yaml deleted file mode 100644 index 530e9c2900..0000000000 --- a/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/golem.yaml +++ /dev/null @@ -1,182 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# See https://learn.golem.cloud/docs/app-manifest#field-reference for field reference -# For creating APIs see https://learn.golem.cloud/invoke/making-custom-apis - -# httpApi: -# definitions: -# golem-it-agent-self-rpc-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /golem-it-agent-self-rpc-api/{name}/increment -# binding: -# type: default -# componentName: golem-it:agent-self-rpc -# response: | -# let name: string = request.path.name; -# let agent = counter-agent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } -# -# deployments: -# local: -# - domain: localhost:9006 -# definitions: -# - golem-it-agent-self-rpc-api - -components: - golem-it:agent-self-rpc: - templates: ts, ts-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - # Graph database providers - # ------------------------------------------------------------------------------------------------------------ - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - # Search providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - # Speech-to-text providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: 10 # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: - # GOOGLE_BUCKET_NAME: - - # GOOGLE_APPLICATION_CREDENTIALS: "" - ## or - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - # Video generation providers - # ------------------------------------------------------------------------------------------------------------ - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - # WebSearch providers - # ------------------------------------------------------------------------------------------------------------ - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY. "" diff --git a/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/package.json b/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/package.json deleted file mode 100644 index 8eace61ae3..0000000000 --- a/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "name": "golem-it-agent-self-rpc" -} diff --git a/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/rollup.config.mjs b/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/rollup.config.mjs deleted file mode 100644 index 768c8097c2..0000000000 --- a/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/rollup.config.mjs +++ /dev/null @@ -1,3 +0,0 @@ -import componentRollupConfig from "../../golem-temp/common/ts/rollup.config.component.mjs"; - -export default componentRollupConfig("golem-it-agent-self-rpc"); diff --git a/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/tsconfig.json b/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/tsconfig.json deleted file mode 100644 index 44bfdcd636..0000000000 --- a/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../golem-temp/common/ts/tsconfig.component.json", - "include": [ - "src/**/*.ts" - ] -} diff --git a/test-components/agent-self-rpc/golem.yaml b/test-components/agent-self-rpc/golem.yaml index 369194338f..37377cf634 100644 --- a/test-components/agent-self-rpc/golem.yaml +++ b/test-components/agent-self-rpc/golem.yaml @@ -9,9 +9,13 @@ app: agent-self-rpc includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + golem-it:agent-self-rpc: + dir: "." + templates: ts, ts-test-component + environments: local: server: local diff --git a/test-components/agent-self-rpc/package.json b/test-components/agent-self-rpc/package.json index 5781158f58..4a7f0dc720 100644 --- a/test-components/agent-self-rpc/package.json +++ b/test-components/agent-self-rpc/package.json @@ -1,11 +1,5 @@ { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/src/main.ts b/test-components/agent-self-rpc/src/main.ts similarity index 100% rename from test-components/agent-self-rpc/components-ts/golem-it-agent-self-rpc/src/main.ts rename to test-components/agent-self-rpc/src/main.ts diff --git a/test-components/agent-self-rpc/tsconfig.json b/test-components/agent-self-rpc/tsconfig.json new file mode 100644 index 0000000000..d7714b0e18 --- /dev/null +++ b/test-components/agent-self-rpc/tsconfig.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "skipLibCheck": true, + "target": "ES2020", + "noEmit": true, + "lib": [ + "ES2020" + ], + "types": [ + "node" + ], + "moduleResolution": "bundler", + "checkJs": false, + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "useDefineForClassFields": false + }, + "include": [ + "src/**/*.ts" + ] +} diff --git a/test-components/agent-updates-v1/.gitignore b/test-components/agent-updates-v1/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/agent-updates-v1/.gitignore +++ b/test-components/agent-updates-v1/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/agent-updates-v1/Cargo.lock b/test-components/agent-updates-v1/Cargo.lock index 3d2a912c4b..0d4dc9b90c 100644 --- a/test-components/agent-updates-v1/Cargo.lock +++ b/test-components/agent-updates-v1/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "async-task" @@ -36,49 +36,48 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.49" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ - "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -133,9 +132,9 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "fastrand" @@ -147,10 +146,10 @@ dependencies = [ ] [[package]] -name = "find-msvc-tools" +name = "foldhash" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "foldhash" @@ -166,9 +165,9 @@ checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-lite" @@ -187,14 +186,15 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", "r-efi", "wasip2", + "wasip3", ] [[package]] @@ -240,13 +240,22 @@ dependencies = [ "wstd", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash 0.1.5", +] + [[package]] name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -305,9 +314,9 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -340,7 +349,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -376,15 +385,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -404,9 +413,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.178" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "log" @@ -416,9 +425,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" -version = "2.7.6" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "num-traits" @@ -431,9 +440,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "parking" @@ -443,9 +452,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "prettyplease" @@ -459,36 +468,36 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.42" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.3.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rustversion" @@ -496,12 +505,6 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - [[package]] name = "semver" version = "1.0.27" @@ -540,15 +543,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -565,9 +568,12 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" @@ -586,9 +592,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -597,18 +603,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.3" +version = "1.0.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.9" +version = "0.25.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d7cbc3b4b49633d57a0509303158ca50de80ae32c265093b24c414705807832" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" dependencies = [ "indexmap", "toml_datetime", @@ -618,18 +624,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.4" +version = "1.0.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" dependencies = [ "winnow", ] [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" @@ -645,9 +651,9 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "uuid" -version = "1.19.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ "getrandom", "js-sys", @@ -681,11 +687,20 @@ dependencies = [ "wit-bindgen 0.51.0", ] +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -696,9 +711,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -706,9 +721,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", @@ -719,9 +734,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -735,6 +750,16 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-encoder" version = "0.245.1" @@ -761,6 +786,18 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-metadata" version = "0.245.1" @@ -784,6 +821,18 @@ dependencies = [ "semver", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.2", + "indexmap", + "semver", +] + [[package]] name = "wasmparser" version = "0.245.1" @@ -791,7 +840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ "bitflags", - "hashbrown", + "hashbrown 0.16.1", "indexmap", "semver", ] @@ -857,9 +906,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] @@ -881,6 +930,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" dependencies = [ "bitflags", + "wit-bindgen-rust-macro 0.51.0", ] [[package]] @@ -903,6 +953,17 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-bindgen-core" version = "0.53.1" @@ -946,6 +1007,22 @@ dependencies = [ "wit-component 0.202.0", ] +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", +] + [[package]] name = "wit-bindgen-rust" version = "0.53.1" @@ -976,6 +1053,21 @@ dependencies = [ "wit-bindgen-rust 0.24.0", ] +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", +] + [[package]] name = "wit-bindgen-rust-macro" version = "0.53.1" @@ -1010,6 +1102,25 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-component" version = "0.245.1" @@ -1047,6 +1158,24 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + [[package]] name = "wit-parser" version = "0.245.1" @@ -1054,7 +1183,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929" dependencies = [ "anyhow", - "hashbrown", + "hashbrown 0.16.1", "id-arena", "indexmap", "log", @@ -1097,3 +1226,9 @@ dependencies = [ "quote", "syn", ] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test-components/agent-updates-v1/Cargo.toml b/test-components/agent-updates-v1/Cargo.toml index f24503d681..67f5af65f1 100644 --- a/test-components/agent-updates-v1/Cargo.toml +++ b/test-components/agent-updates-v1/Cargo.toml @@ -1,19 +1,22 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "it_agent_update" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" -golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } - -# Advanced HTTP client, alternative of wstd::http -# golem-wasi-http = { version = "0.2.0", features = ["json"] } +[dependencies] +# To use common shared agent definitions, place them in common_lib and uncomment the line below +# common-lib = { path = "../../common-rust/common-lib" } log = { version = "0.4.29", features = ["kv"] } +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -wstd = {version = "=0.6.5", features = ["default", "json"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/agent-updates-v1/components-rust/.gitignore b/test-components/agent-updates-v1/components-rust/.gitignore deleted file mode 100644 index f19eeb7b2e..0000000000 --- a/test-components/agent-updates-v1/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated \ No newline at end of file diff --git a/test-components/agent-updates-v1/components-rust/it-agent-update/Cargo.lock b/test-components/agent-updates-v1/components-rust/it-agent-update/Cargo.lock deleted file mode 100644 index 13eb8f0455..0000000000 --- a/test-components/agent-updates-v1/components-rust/it-agent-update/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "it-agent-update1" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/agent-updates-v1/components-rust/it-agent-update/Cargo.toml b/test-components/agent-updates-v1/components-rust/it-agent-update/Cargo.toml deleted file mode 100644 index c4a2261fec..0000000000 --- a/test-components/agent-updates-v1/components-rust/it-agent-update/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "it_agent_update" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/test-components/agent-updates-v1/components-rust/it-agent-update/golem.yaml b/test-components/agent-updates-v1/components-rust/it-agent-update/golem.yaml deleted file mode 100644 index 9f19520a73..0000000000 --- a/test-components/agent-updates-v1/components-rust/it-agent-update/golem.yaml +++ /dev/null @@ -1,200 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -#httpApi: -# definitions: -# it-agent-update1-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /it-agent-update1-api/{name}/increment -# binding: -# type: default -# componentName: it:agent-update1 -# response: | -# let name: string = request.path.name; -# let agent = counter-agent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } -# -# deployments: -# local: -# - domain: agent-updates.localhost:9006 -# definitions: -# - it-agent-update1-api - -components: - it:agent-update: - templates: rust, rust-test-component - presets: - debug: - customCommands: - copy: - - command: cp ../../golem-temp/agents/it_agent_update_debug.wasm ../../../it_agent_update_v1_debug.wasm - release: - customCommands: - copy: - - command: cp ../../golem-temp/agents/it_agent_update_release.wasm ../../../it_agent_update_v1_release.wasm - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/agent-updates-v1/golem.yaml b/test-components/agent-updates-v1/golem.yaml index 0c4b7dc85e..48bad2055f 100644 --- a/test-components/agent-updates-v1/golem.yaml +++ b/test-components/agent-updates-v1/golem.yaml @@ -9,13 +9,26 @@ app: agent-updates includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + it:agent-update: + dir: "." + templates: rust, rust-test-component + presets: + debug: + customCommands: + copy: + - command: cp golem-temp/agents/it_agent_update_debug.wasm ../it_agent_update_v1_debug.wasm + release: + customCommands: + copy: + - command: cp golem-temp/agents/it_agent_update_release.wasm ../it_agent_update_v1_release.wasm + environments: local: server: local componentPresets: debug cloud: server: cloud - componentPresets: release \ No newline at end of file + componentPresets: release diff --git a/test-components/agent-updates-v1/components-rust/it-agent-update/src/lib.rs b/test-components/agent-updates-v1/src/lib.rs similarity index 100% rename from test-components/agent-updates-v1/components-rust/it-agent-update/src/lib.rs rename to test-components/agent-updates-v1/src/lib.rs diff --git a/test-components/agent-updates-v2/.gitignore b/test-components/agent-updates-v2/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/agent-updates-v2/.gitignore +++ b/test-components/agent-updates-v2/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/agent-updates-v2/Cargo.lock b/test-components/agent-updates-v2/Cargo.lock index 3d2a912c4b..0d4dc9b90c 100644 --- a/test-components/agent-updates-v2/Cargo.lock +++ b/test-components/agent-updates-v2/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.100" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "async-task" @@ -36,49 +36,48 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bumpalo" -version = "3.19.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytes" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.49" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90583009037521a116abf44494efecd645ba48b6622457080f080b85544e2215" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ - "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.42" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145052bdd345b87320e369255277e3fb5152762ad123a901ef5c262dd38fe8d2" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -133,9 +132,9 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "fastrand" @@ -147,10 +146,10 @@ dependencies = [ ] [[package]] -name = "find-msvc-tools" +name = "foldhash" version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" [[package]] name = "foldhash" @@ -166,9 +165,9 @@ checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-lite" @@ -187,14 +186,15 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.3.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if", "libc", "r-efi", "wasip2", + "wasip3", ] [[package]] @@ -240,13 +240,22 @@ dependencies = [ "wstd", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash 0.1.5", +] + [[package]] name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -305,9 +314,9 @@ checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" [[package]] name = "iana-time-zone" -version = "0.1.64" +version = "0.1.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33e57f83510bb73707521ebaffa789ec8caf86f9657cad665b092b581d40e9fb" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" dependencies = [ "android_system_properties", "core-foundation-sys", @@ -340,7 +349,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -376,15 +385,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.15" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.83" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -404,9 +413,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.178" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c93d8daa9d8a012fd8ab92f088405fb202ea0b6ab73ee2482ae66af4f42091" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "log" @@ -416,9 +425,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" -version = "2.7.6" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "num-traits" @@ -431,9 +440,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "parking" @@ -443,9 +452,9 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "prettyplease" @@ -459,36 +468,36 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.103" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.42" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.3.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rustversion" @@ -496,12 +505,6 @@ version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" -[[package]] -name = "ryu" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" - [[package]] name = "semver" version = "1.0.27" @@ -540,15 +543,15 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.145" +version = "1.0.149" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" dependencies = [ "itoa", "memchr", - "ryu", "serde", "serde_core", + "zmij", ] [[package]] @@ -565,9 +568,12 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" -version = "0.4.11" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" @@ -586,9 +592,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.111" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "390cc9a294ab71bdb1aa2e99d13be9c753cd2d7bd6560c77118597410c4d2e87" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -597,18 +603,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.3" +version = "1.0.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.9" +version = "0.25.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d7cbc3b4b49633d57a0509303158ca50de80ae32c265093b24c414705807832" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" dependencies = [ "indexmap", "toml_datetime", @@ -618,18 +624,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.4" +version = "1.0.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" dependencies = [ "winnow", ] [[package]] name = "unicode-ident" -version = "1.0.22" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" @@ -645,9 +651,9 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "uuid" -version = "1.19.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ "getrandom", "js-sys", @@ -681,11 +687,20 @@ dependencies = [ "wit-bindgen 0.51.0", ] +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + [[package]] name = "wasm-bindgen" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -696,9 +711,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -706,9 +721,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", @@ -719,9 +734,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.106" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -735,6 +750,16 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-encoder" version = "0.245.1" @@ -761,6 +786,18 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-metadata" version = "0.245.1" @@ -784,6 +821,18 @@ dependencies = [ "semver", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.2", + "indexmap", + "semver", +] + [[package]] name = "wasmparser" version = "0.245.1" @@ -791,7 +840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ "bitflags", - "hashbrown", + "hashbrown 0.16.1", "indexmap", "semver", ] @@ -857,9 +906,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] @@ -881,6 +930,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" dependencies = [ "bitflags", + "wit-bindgen-rust-macro 0.51.0", ] [[package]] @@ -903,6 +953,17 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-bindgen-core" version = "0.53.1" @@ -946,6 +1007,22 @@ dependencies = [ "wit-component 0.202.0", ] +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", +] + [[package]] name = "wit-bindgen-rust" version = "0.53.1" @@ -976,6 +1053,21 @@ dependencies = [ "wit-bindgen-rust 0.24.0", ] +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", +] + [[package]] name = "wit-bindgen-rust-macro" version = "0.53.1" @@ -1010,6 +1102,25 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-component" version = "0.245.1" @@ -1047,6 +1158,24 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + [[package]] name = "wit-parser" version = "0.245.1" @@ -1054,7 +1183,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929" dependencies = [ "anyhow", - "hashbrown", + "hashbrown 0.16.1", "id-arena", "indexmap", "log", @@ -1097,3 +1226,9 @@ dependencies = [ "quote", "syn", ] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test-components/agent-updates-v2/Cargo.toml b/test-components/agent-updates-v2/Cargo.toml index f24503d681..67f5af65f1 100644 --- a/test-components/agent-updates-v2/Cargo.toml +++ b/test-components/agent-updates-v2/Cargo.toml @@ -1,19 +1,22 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "it_agent_update" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" -golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } - -# Advanced HTTP client, alternative of wstd::http -# golem-wasi-http = { version = "0.2.0", features = ["json"] } +[dependencies] +# To use common shared agent definitions, place them in common_lib and uncomment the line below +# common-lib = { path = "../../common-rust/common-lib" } log = { version = "0.4.29", features = ["kv"] } +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -wstd = {version = "=0.6.5", features = ["default", "json"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/agent-updates-v2/components-rust/.gitignore b/test-components/agent-updates-v2/components-rust/.gitignore deleted file mode 100644 index f19eeb7b2e..0000000000 --- a/test-components/agent-updates-v2/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated \ No newline at end of file diff --git a/test-components/agent-updates-v2/components-rust/it-agent-update/Cargo.lock b/test-components/agent-updates-v2/components-rust/it-agent-update/Cargo.lock deleted file mode 100644 index 8796f7aceb..0000000000 --- a/test-components/agent-updates-v2/components-rust/it-agent-update/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "it-agent-update2" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/agent-updates-v2/components-rust/it-agent-update/Cargo.toml b/test-components/agent-updates-v2/components-rust/it-agent-update/Cargo.toml deleted file mode 100644 index c4a2261fec..0000000000 --- a/test-components/agent-updates-v2/components-rust/it-agent-update/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "it_agent_update" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/test-components/agent-updates-v2/components-rust/it-agent-update/golem.yaml b/test-components/agent-updates-v2/components-rust/it-agent-update/golem.yaml deleted file mode 100644 index 0e14136a86..0000000000 --- a/test-components/agent-updates-v2/components-rust/it-agent-update/golem.yaml +++ /dev/null @@ -1,200 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -#httpApi: -# definitions: -# it-agent-update2-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /it-agent-update2-api/{name}/increment -# binding: -# type: default -# componentName: it:agent-update2 -# response: | -# let name: string = request.path.name; -# let agent = counter-agent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } -# -# deployments: -# local: -# - domain: agent-updates.localhost:9006 -# definitions: -# - it-agent-update2-api - -components: - it:agent-update: - templates: rust, rust-test-component - presets: - debug: - customCommands: - copy: - - command: cp ../../golem-temp/agents/it_agent_update_debug.wasm ../../../it_agent_update_v2_debug.wasm - release: - customCommands: - copy: - - command: cp ../../golem-temp/agents/it_agent_update_release.wasm ../../../it_agent_update_v2_release.wasm - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/agent-updates-v2/golem.yaml b/test-components/agent-updates-v2/golem.yaml index aae6c5cf3d..e04dc3d8c9 100644 --- a/test-components/agent-updates-v2/golem.yaml +++ b/test-components/agent-updates-v2/golem.yaml @@ -9,9 +9,22 @@ app: agent-updates includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + it:agent-update: + dir: "." + templates: rust, rust-test-component + presets: + debug: + customCommands: + copy: + - command: cp golem-temp/agents/it_agent_update_debug.wasm ../it_agent_update_v2_debug.wasm + release: + customCommands: + copy: + - command: cp golem-temp/agents/it_agent_update_release.wasm ../it_agent_update_v2_release.wasm + environments: local: server: local diff --git a/test-components/agent-updates-v2/components-rust/it-agent-update/src/lib.rs b/test-components/agent-updates-v2/src/lib.rs similarity index 100% rename from test-components/agent-updates-v2/components-rust/it-agent-update/src/lib.rs rename to test-components/agent-updates-v2/src/lib.rs diff --git a/test-components/agent-updates-v3/.gitignore b/test-components/agent-updates-v3/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/agent-updates-v3/.gitignore +++ b/test-components/agent-updates-v3/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/agent-updates-v3/Cargo.toml b/test-components/agent-updates-v3/Cargo.toml index f24503d681..67f5af65f1 100644 --- a/test-components/agent-updates-v3/Cargo.toml +++ b/test-components/agent-updates-v3/Cargo.toml @@ -1,19 +1,22 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "it_agent_update" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" -golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } - -# Advanced HTTP client, alternative of wstd::http -# golem-wasi-http = { version = "0.2.0", features = ["json"] } +[dependencies] +# To use common shared agent definitions, place them in common_lib and uncomment the line below +# common-lib = { path = "../../common-rust/common-lib" } log = { version = "0.4.29", features = ["kv"] } +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -wstd = {version = "=0.6.5", features = ["default", "json"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/agent-updates-v3/components-rust/.gitignore b/test-components/agent-updates-v3/components-rust/.gitignore deleted file mode 100644 index 077f8ae54d..0000000000 --- a/test-components/agent-updates-v3/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated diff --git a/test-components/agent-updates-v3/components-rust/it-agent-update/Cargo.toml b/test-components/agent-updates-v3/components-rust/it-agent-update/Cargo.toml deleted file mode 100644 index c4a2261fec..0000000000 --- a/test-components/agent-updates-v3/components-rust/it-agent-update/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "it_agent_update" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/test-components/agent-updates-v3/components-rust/it-agent-update/golem.yaml b/test-components/agent-updates-v3/components-rust/it-agent-update/golem.yaml deleted file mode 100644 index 9dded4fae1..0000000000 --- a/test-components/agent-updates-v3/components-rust/it-agent-update/golem.yaml +++ /dev/null @@ -1,200 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -#httpApi: -# definitions: -# it-agent-update3-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /it-agent-update3-api/{name}/increment -# binding: -# type: default -# componentName: it:agent-update3 -# response: | -# let name: string = request.path.name; -# let agent = counter-agent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } -# -# deployments: -# local: -# - domain: agent-updates.localhost:9006 -# definitions: -# - it-agent-update3-api - -components: - it:agent-update: - templates: rust, rust-test-component - presets: - debug: - customCommands: - copy: - - command: cp ../../golem-temp/agents/it_agent_update_debug.wasm ../../../it_agent_update_v3_debug.wasm - release: - customCommands: - copy: - - command: cp ../../golem-temp/agents/it_agent_update_release.wasm ../../../it_agent_update_v3_release.wasm - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/agent-updates-v3/golem.yaml b/test-components/agent-updates-v3/golem.yaml index aae6c5cf3d..f87d392464 100644 --- a/test-components/agent-updates-v3/golem.yaml +++ b/test-components/agent-updates-v3/golem.yaml @@ -9,9 +9,22 @@ app: agent-updates includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + it:agent-update: + dir: "." + templates: rust, rust-test-component + presets: + debug: + customCommands: + copy: + - command: cp golem-temp/agents/it_agent_update_debug.wasm ../it_agent_update_v3_debug.wasm + release: + customCommands: + copy: + - command: cp golem-temp/agents/it_agent_update_release.wasm ../it_agent_update_v3_release.wasm + environments: local: server: local diff --git a/test-components/agent-updates-v3/components-rust/it-agent-update/src/lib.rs b/test-components/agent-updates-v3/src/lib.rs similarity index 100% rename from test-components/agent-updates-v3/components-rust/it-agent-update/src/lib.rs rename to test-components/agent-updates-v3/src/lib.rs diff --git a/test-components/agent-updates-v4/.gitignore b/test-components/agent-updates-v4/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/agent-updates-v4/.gitignore +++ b/test-components/agent-updates-v4/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/agent-updates-v4/Cargo.toml b/test-components/agent-updates-v4/Cargo.toml index f24503d681..67f5af65f1 100644 --- a/test-components/agent-updates-v4/Cargo.toml +++ b/test-components/agent-updates-v4/Cargo.toml @@ -1,19 +1,22 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "it_agent_update" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" -golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } - -# Advanced HTTP client, alternative of wstd::http -# golem-wasi-http = { version = "0.2.0", features = ["json"] } +[dependencies] +# To use common shared agent definitions, place them in common_lib and uncomment the line below +# common-lib = { path = "../../common-rust/common-lib" } log = { version = "0.4.29", features = ["kv"] } +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -wstd = {version = "=0.6.5", features = ["default", "json"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/agent-updates-v4/components-rust/.gitignore b/test-components/agent-updates-v4/components-rust/.gitignore deleted file mode 100644 index 077f8ae54d..0000000000 --- a/test-components/agent-updates-v4/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated diff --git a/test-components/agent-updates-v4/components-rust/it-agent-update/Cargo.toml b/test-components/agent-updates-v4/components-rust/it-agent-update/Cargo.toml deleted file mode 100644 index c4a2261fec..0000000000 --- a/test-components/agent-updates-v4/components-rust/it-agent-update/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "it_agent_update" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/test-components/agent-updates-v4/components-rust/it-agent-update/golem.yaml b/test-components/agent-updates-v4/components-rust/it-agent-update/golem.yaml deleted file mode 100644 index 3310aafec5..0000000000 --- a/test-components/agent-updates-v4/components-rust/it-agent-update/golem.yaml +++ /dev/null @@ -1,200 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -#httpApi: -# definitions: -# it-agent-update4-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /it-agent-update4-api/{name}/increment -# binding: -# type: default -# componentName: it:agent-update4 -# response: | -# let name: string = request.path.name; -# let agent = counter-agent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } -# -# deployments: -# local: -# - domain: agent-updates.localhost:9006 -# definitions: -# - it-agent-update4-api - -components: - it:agent-update: - templates: rust, rust-test-component - presets: - debug: - customCommands: - copy: - - command: cp ../../golem-temp/agents/it_agent_update_debug.wasm ../../../it_agent_update_v4_debug.wasm - release: - customCommands: - copy: - - command: cp ../../golem-temp/agents/it_agent_update_release.wasm ../../../it_agent_update_v4_release.wasm - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/agent-updates-v4/golem.yaml b/test-components/agent-updates-v4/golem.yaml index aae6c5cf3d..da02b7fb6c 100644 --- a/test-components/agent-updates-v4/golem.yaml +++ b/test-components/agent-updates-v4/golem.yaml @@ -9,9 +9,22 @@ app: agent-updates includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + it:agent-update: + dir: "." + templates: rust, rust-test-component + presets: + debug: + customCommands: + copy: + - command: cp golem-temp/agents/it_agent_update_debug.wasm ../it_agent_update_v4_debug.wasm + release: + customCommands: + copy: + - command: cp golem-temp/agents/it_agent_update_release.wasm ../it_agent_update_v4_release.wasm + environments: local: server: local diff --git a/test-components/agent-updates-v4/components-rust/it-agent-update/src/lib.rs b/test-components/agent-updates-v4/src/lib.rs similarity index 100% rename from test-components/agent-updates-v4/components-rust/it-agent-update/src/lib.rs rename to test-components/agent-updates-v4/src/lib.rs diff --git a/test-components/benchmark_agent_rust_release.wasm b/test-components/benchmark_agent_rust_release.wasm index 1e01ad206f..f48ce0f436 100644 Binary files a/test-components/benchmark_agent_rust_release.wasm and b/test-components/benchmark_agent_rust_release.wasm differ diff --git a/test-components/benchmark_agent_ts.wasm b/test-components/benchmark_agent_ts.wasm index 074704eac8..ecc6bfcd21 100644 Binary files a/test-components/benchmark_agent_ts.wasm and b/test-components/benchmark_agent_ts.wasm differ diff --git a/test-components/benchmarks/.gitignore b/test-components/benchmarks/.gitignore index 60a88b67ce..aa47aecf70 100644 --- a/test-components/benchmarks/.gitignore +++ b/test-components/benchmarks/.gitignore @@ -1,5 +1,3 @@ -/dist /golem-temp +target /node_modules -/target -/wit/deps \ No newline at end of file diff --git a/test-components/benchmarks/Cargo.toml b/test-components/benchmarks/Cargo.toml index 3595d052a0..873f4a34dc 100644 --- a/test-components/benchmarks/Cargo.toml +++ b/test-components/benchmarks/Cargo.toml @@ -1,14 +1,6 @@ [workspace] -resolver = "2" -members = ["components-rust/*", "common-rust/*"] - -[profile.release] -opt-level = "s" -lto = true +members = ["common-rust/common-lib", "benchmark-agent-rust"] [workspace.dependencies] -golem-rust = { path="../../sdks/rust/golem-rust", features = ["export_load_snapshot", "export_save_snapshot", "export_oplog_processor", "export_golem_agentic"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -wit-bindgen-rt = { version = "0.42.1", features = ["bitflags"] } -wstd = "=0.6.5" +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/benchmarks/benchmark-agent-rust/Cargo.toml b/test-components/benchmarks/benchmark-agent-rust/Cargo.toml new file mode 100644 index 0000000000..86ebe63041 --- /dev/null +++ b/test-components/benchmarks/benchmark-agent-rust/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "benchmark_agent_rust" +version = "0.0.1" +edition = "2021" + +[profile.release] +opt-level = "s" +lto = true + +[lib] +path = "src/lib.rs" +crate-type = ["cdylib"] +required-features = [] + +[dependencies] +wit-bindgen-rt = { version = "0.42.1", features = ["bitflags"] } + +async-trait = "0.1.89" +common-lib = { path = "../common-rust/common-lib" } +ctor = "0.6.1" +golem-rust = { path = "../../../sdks/rust/golem-rust", features = ["export_load_snapshot", "export_save_snapshot", "export_oplog_processor", "export_golem_agentic"] } diff --git a/test-components/benchmarks/components-rust/benchmark-agent-rust/src/lib.rs b/test-components/benchmarks/benchmark-agent-rust/src/lib.rs similarity index 100% rename from test-components/benchmarks/components-rust/benchmark-agent-rust/src/lib.rs rename to test-components/benchmarks/benchmark-agent-rust/src/lib.rs diff --git a/test-components/benchmarks/components-ts/benchmark-agent-ts/package.json b/test-components/benchmarks/benchmark-agent-ts/package.json similarity index 100% rename from test-components/benchmarks/components-ts/benchmark-agent-ts/package.json rename to test-components/benchmarks/benchmark-agent-ts/package.json diff --git a/test-components/benchmarks/components-ts/benchmark-agent-ts/src/main.ts b/test-components/benchmarks/benchmark-agent-ts/src/main.ts similarity index 100% rename from test-components/benchmarks/components-ts/benchmark-agent-ts/src/main.ts rename to test-components/benchmarks/benchmark-agent-ts/src/main.ts diff --git a/test-components/benchmarks/benchmark-agent-ts/tsconfig.json b/test-components/benchmarks/benchmark-agent-ts/tsconfig.json new file mode 100644 index 0000000000..681bfc8d33 --- /dev/null +++ b/test-components/benchmarks/benchmark-agent-ts/tsconfig.json @@ -0,0 +1,33 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "skipLibCheck": true, + "target": "ES2020", + "noEmit": true, + "lib": [ + "ES2020" + ], + "types": [ + "node" + ], + "moduleResolution": "bundler", + "checkJs": false, + "strict": true, + "noUncheckedIndexedAccess": true, + "noImplicitOverride": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "useDefineForClassFields": false, + "paths": { + "common/*": [ + "../common-ts/src/*" + ] + } + }, + "include": [ + "src/**/*.ts", + "../common-ts/src/**/*.ts" + ] +} diff --git a/test-components/benchmarks/components-rust/.gitignore b/test-components/benchmarks/components-rust/.gitignore deleted file mode 100644 index f19eeb7b2e..0000000000 --- a/test-components/benchmarks/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated \ No newline at end of file diff --git a/test-components/benchmarks/components-rust/benchmark-agent-rust/Cargo.toml b/test-components/benchmarks/components-rust/benchmark-agent-rust/Cargo.toml deleted file mode 100644 index 2a49389629..0000000000 --- a/test-components/benchmarks/components-rust/benchmark-agent-rust/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "benchmark_agent_rust" -version = "0.0.1" -edition = "2021" - -[lib] -path = "src/lib.rs" -crate-type = ["cdylib"] -required-features = [] - -[dependencies] -wit-bindgen-rt = { workspace = true } - -async-trait = "0.1.89" -common-lib = { path = "../../common-rust/common-lib" } -ctor = "0.6.1" -golem-rust = { workspace = true } diff --git a/test-components/benchmarks/components-rust/benchmark-agent-rust/golem.yaml b/test-components/benchmarks/components-rust/benchmark-agent-rust/golem.yaml deleted file mode 100644 index 6d62dd9a50..0000000000 --- a/test-components/benchmarks/components-rust/benchmark-agent-rust/golem.yaml +++ /dev/null @@ -1,3 +0,0 @@ -components: - benchmark:agent-rust: - templates: rust, rust-test-component diff --git a/test-components/benchmarks/components-ts/.gitignore b/test-components/benchmarks/components-ts/.gitignore deleted file mode 100644 index 3a328f56d2..0000000000 --- a/test-components/benchmarks/components-ts/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -/*/.metadata -/*/dist -/*/src/generated -/*/wit-generated \ No newline at end of file diff --git a/test-components/benchmarks/components-ts/benchmark-agent-ts/golem.yaml b/test-components/benchmarks/components-ts/benchmark-agent-ts/golem.yaml deleted file mode 100644 index cc82732705..0000000000 --- a/test-components/benchmarks/components-ts/benchmark-agent-ts/golem.yaml +++ /dev/null @@ -1,160 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -components: - benchmark:agent-ts: - templates: ts, ts-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - # Graph database providers - # ------------------------------------------------------------------------------------------------------------ - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - # Search providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - # Speech-to-text providers - # ------------------------------------------------------------------------------------------------------------ - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: 10 # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: - # GOOGLE_BUCKET_NAME: - - # GOOGLE_APPLICATION_CREDENTIALS: "" - ## or - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - # Video generation providers - # ------------------------------------------------------------------------------------------------------------ - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - # WebSearch providers - # ------------------------------------------------------------------------------------------------------------ - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY. "" diff --git a/test-components/benchmarks/components-ts/benchmark-agent-ts/rollup.config.mjs b/test-components/benchmarks/components-ts/benchmark-agent-ts/rollup.config.mjs deleted file mode 100644 index f9bec57007..0000000000 --- a/test-components/benchmarks/components-ts/benchmark-agent-ts/rollup.config.mjs +++ /dev/null @@ -1,21 +0,0 @@ -import componentRollupConfig from "../../golem-temp/common/ts/rollup.config.component.mjs"; -import typescript from "@rollup/plugin-typescript"; -import alias from "@rollup/plugin-alias"; -import path from "node:path"; -import url from "node:url"; - -// NOTE: this will be handled automatically soon with "simple templates" - -let config = componentRollupConfig("benchmark-agent-ts"); - -config.plugins[config.plugins.length - 1] = typescript({ - noEmitOnError: true, - include: [ - "./src/**/*.ts", - "../../common-ts/**/*.ts", - ], -}); - -const dir = path.dirname(url.fileURLToPath(import.meta.url)); - -export default config; diff --git a/test-components/benchmarks/components-ts/benchmark-agent-ts/tsconfig.json b/test-components/benchmarks/components-ts/benchmark-agent-ts/tsconfig.json deleted file mode 100644 index e9ee6db4ae..0000000000 --- a/test-components/benchmarks/components-ts/benchmark-agent-ts/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "https://json.schemastore.org/tsconfig", - "extends": "../../golem-temp/common/ts/tsconfig.component.json", - "include": [ - "src/**/*.ts", - "../../common-ts/src/**/*.ts" - ], - "compilerOptions": { - "paths": { - "common/*": [ - "../../common-ts/src/*" - ] - } - } -} diff --git a/test-components/benchmarks/golem.yaml b/test-components/benchmarks/golem.yaml index 15c7813351..38b769f782 100644 --- a/test-components/benchmarks/golem.yaml +++ b/test-components/benchmarks/golem.yaml @@ -9,9 +9,16 @@ app: benchmarks includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + benchmark:agent-rust: + dir: "benchmark-agent-rust" + templates: rust, rust-test-component + benchmark:agent-ts: + dir: "benchmark-agent-ts" + templates: ts, ts-test-component + environments: local: server: local diff --git a/test-components/benchmarks/package-lock.json b/test-components/benchmarks/package-lock.json index efe915dc5e..6966d0b5d4 100644 --- a/test-components/benchmarks/package-lock.json +++ b/test-components/benchmarks/package-lock.json @@ -5,12 +5,6 @@ "packages": { "": { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/benchmarks/package.json b/test-components/benchmarks/package.json index 5781158f58..4a7f0dc720 100644 --- a/test-components/benchmarks/package.json +++ b/test-components/benchmarks/package.json @@ -1,11 +1,5 @@ { "name": "app", - "workspaces": [ - "common-js/*/*", - "components-js/*/*", - "common-ts/*/*", - "components-ts/*/*" - ], "dependencies": { "@golemcloud/golem-ts-sdk": "file:../../sdks/ts/packages/golem-ts-sdk" }, diff --git a/test-components/build-components.sh b/test-components/build-components.sh index 38bcfc22dc..892396e3d9 100755 --- a/test-components/build-components.sh +++ b/test-components/build-components.sh @@ -66,7 +66,6 @@ if [ "$single_group" = "false" ] || [ "$group" = "rust" ]; then if should_clean; then echo "Cleaning $subdir..." "$GOLEM_CLI" clean - cargo clean fi if [ "$clean_only" = false ]; then @@ -118,7 +117,6 @@ if [ "$single_group" = "false" ] || [ "$group" = "benchmarks" ]; then echo "Cleaning $subdir..." rm -rf node_modules "$GOLEM_CLI" clean - cargo clean fi if [ "$clean_only" = false ]; then diff --git a/test-components/golem-test-components-common.yaml b/test-components/golem-test-components-common.yaml index 2134319401..f85e63178d 100644 --- a/test-components/golem-test-components-common.yaml +++ b/test-components/golem-test-components-common.yaml @@ -4,12 +4,12 @@ componentTemplates: debug: customCommands: copy: - - command: cp ../../golem-temp/agents/{{ component_name | to_snake_case }}_debug.wasm ../../.. + - command: cp "{{ golemTempDir }}/agents/{{ component_name | to_snake_case }}_debug.wasm" "{{ appRootDir }}/../{{ component_name | to_snake_case }}_debug.wasm" release: customCommands: copy: - - command: cp ../../golem-temp/agents/{{ component_name | to_snake_case }}_release.wasm ../../.. + - command: cp "{{ golemTempDir }}/agents/{{ component_name | to_snake_case }}_release.wasm" "{{ appRootDir }}/../{{ component_name | to_snake_case }}_release.wasm" ts-test-component: customCommands: copy: - - command: cp ../../golem-temp/agents/{{ component_name | to_snake_case }}.wasm ../../../{{ component_name | to_snake_case }}.wasm + - command: cp "{{ golemTempDir }}/agents/{{ component_name | to_snake_case }}.wasm" "{{ appRootDir }}/../{{ component_name | to_snake_case }}.wasm" diff --git a/test-components/golem_it_agent_invocation_context_release.wasm b/test-components/golem_it_agent_invocation_context_release.wasm index df46d16d48..eab03372cb 100644 Binary files a/test-components/golem_it_agent_invocation_context_release.wasm and b/test-components/golem_it_agent_invocation_context_release.wasm differ diff --git a/test-components/golem_it_agent_promise.wasm b/test-components/golem_it_agent_promise.wasm index 0e65cc15b9..4cfaf57008 100644 Binary files a/test-components/golem_it_agent_promise.wasm and b/test-components/golem_it_agent_promise.wasm differ diff --git a/test-components/golem_it_agent_rpc.wasm b/test-components/golem_it_agent_rpc.wasm index 7b8349c682..71508d3f4c 100644 Binary files a/test-components/golem_it_agent_rpc.wasm and b/test-components/golem_it_agent_rpc.wasm differ diff --git a/test-components/golem_it_agent_rpc_rust_release.wasm b/test-components/golem_it_agent_rpc_rust_release.wasm index 53e91ed866..32177d3b6b 100644 Binary files a/test-components/golem_it_agent_rpc_rust_release.wasm and b/test-components/golem_it_agent_rpc_rust_release.wasm differ diff --git a/test-components/golem_it_agent_sdk_rust_release.wasm b/test-components/golem_it_agent_sdk_rust_release.wasm index 1ae0ca7948..b96c12390f 100644 Binary files a/test-components/golem_it_agent_sdk_rust_release.wasm and b/test-components/golem_it_agent_sdk_rust_release.wasm differ diff --git a/test-components/golem_it_agent_sdk_ts.wasm b/test-components/golem_it_agent_sdk_ts.wasm index d523bfb83d..586e2fff3b 100644 Binary files a/test-components/golem_it_agent_sdk_ts.wasm and b/test-components/golem_it_agent_sdk_ts.wasm differ diff --git a/test-components/golem_it_constructor_parameter_echo.wasm b/test-components/golem_it_constructor_parameter_echo.wasm index 722b96c1a7..37cf1b3d71 100644 Binary files a/test-components/golem_it_constructor_parameter_echo.wasm and b/test-components/golem_it_constructor_parameter_echo.wasm differ diff --git a/test-components/golem_it_host_api_tests_release.wasm b/test-components/golem_it_host_api_tests_release.wasm index 311928f330..5e2fbc3b1b 100644 Binary files a/test-components/golem_it_host_api_tests_release.wasm and b/test-components/golem_it_host_api_tests_release.wasm differ diff --git a/test-components/golem_it_http_tests_release.wasm b/test-components/golem_it_http_tests_release.wasm index c0698127b5..0b5827e369 100644 Binary files a/test-components/golem_it_http_tests_release.wasm and b/test-components/golem_it_http_tests_release.wasm differ diff --git a/test-components/golem_it_mcp_release.wasm b/test-components/golem_it_mcp_release.wasm index efbf31734c..e722c91e69 100644 Binary files a/test-components/golem_it_mcp_release.wasm and b/test-components/golem_it_mcp_release.wasm differ diff --git a/test-components/host-api-tests/.gitignore b/test-components/host-api-tests/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/host-api-tests/.gitignore +++ b/test-components/host-api-tests/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/host-api-tests/Cargo.lock b/test-components/host-api-tests/Cargo.lock index bcbd57c758..0f050bf501 100644 --- a/test-components/host-api-tests/Cargo.lock +++ b/test-components/host-api-tests/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "async-task" @@ -36,9 +36,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "base64" @@ -48,15 +48,15 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytes" @@ -66,25 +66,24 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.55" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ - "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -118,9 +117,9 @@ checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" [[package]] name = "deranged" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", ] @@ -168,9 +167,9 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "fastrand" @@ -187,18 +186,18 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" -[[package]] -name = "find-msvc-tools" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" - [[package]] name = "fixedbitset" version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foldhash" version = "0.2.0" @@ -207,9 +206,9 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "form_urlencoded" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -229,9 +228,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-io" @@ -275,8 +274,21 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", "wasip2", + "wasip3", ] [[package]] @@ -358,13 +370,22 @@ dependencies = [ "wstd", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash 0.1.5", +] + [[package]] name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -447,22 +468,21 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ "displaydoc", - "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locale_core" -version = "2.1.1" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", "litemap", @@ -471,61 +491,99 @@ dependencies = [ "zerovec", ] +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ + "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", + "utf16_iter", + "utf8_iter", + "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] name = "icu_properties" -version = "2.1.2" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ + "displaydoc", "icu_collections", - "icu_locale_core", + "icu_locid_transform", "icu_properties_data", "icu_provider", - "zerotrie", + "tinystr", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.1.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] name = "icu_provider" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ "displaydoc", - "icu_locale_core", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", "writeable", "yoke", "zerofrom", - "zerotrie", "zerovec", ] +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "id-arena" version = "2.3.0" @@ -534,9 +592,9 @@ checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" [[package]] name = "idna" -version = "1.1.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ "idna_adapter", "smallvec", @@ -545,9 +603,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ "icu_normalizer", "icu_properties", @@ -560,7 +618,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -585,15 +643,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -613,15 +671,15 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.181" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "litemap" -version = "0.8.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "log" @@ -631,9 +689,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" -version = "2.8.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "mime" @@ -658,9 +716,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "parking" @@ -670,24 +728,24 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "percent-encoding" -version = "2.3.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", @@ -696,18 +754,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" - -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "powerfmt" @@ -736,27 +785,27 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -767,6 +816,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" version = "0.9.2" @@ -793,7 +848,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ - "getrandom", + "getrandom 0.3.4", ] [[package]] @@ -804,9 +859,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.23" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "semver" @@ -883,36 +938,39 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" -version = "0.4.12" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" -version = "1.15.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "spdx" -version = "0.10.9" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e17e880bafaeb362a7b751ec46bdc5b61445a188f80e0606e68167cd540fa3" +checksum = "58b69356da67e2fc1f542c71ea7e654a361a79c938e4424392ecf4fa065d2193" dependencies = [ "smallvec", ] [[package]] name = "stable_deref_trait" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -921,9 +979,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", @@ -963,9 +1021,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ "displaydoc", "zerovec", @@ -973,18 +1031,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.0.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" dependencies = [ "indexmap", "toml_datetime", @@ -994,18 +1052,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.7+spec-1.1.0" +version = "1.0.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "247eaa3197818b831697600aadf81514e577e0cba5eab10f7e064e78ae154df1" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" dependencies = [ "winnow", ] [[package]] name = "unicode-ident" -version = "1.0.23" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" @@ -1021,16 +1079,21 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "url" -version = "2.5.8" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", - "serde", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -1039,11 +1102,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.20.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ - "getrandom", + "getrandom 0.4.2", "js-sys", "serde_core", "sha1_smol", @@ -1084,11 +1147,20 @@ dependencies = [ "wit-bindgen 0.51.0", ] +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -1099,9 +1171,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1109,9 +1181,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", @@ -1122,9 +1194,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -1138,6 +1210,16 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-encoder" version = "0.245.1" @@ -1164,6 +1246,18 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-metadata" version = "0.245.1" @@ -1187,6 +1281,18 @@ dependencies = [ "semver", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.2", + "indexmap", + "semver", +] + [[package]] name = "wasmparser" version = "0.245.1" @@ -1194,7 +1300,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ "bitflags", - "hashbrown", + "hashbrown 0.16.1", "indexmap", "semver", ] @@ -1260,9 +1366,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] @@ -1284,6 +1390,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" dependencies = [ "bitflags", + "wit-bindgen-rust-macro 0.51.0", ] [[package]] @@ -1306,6 +1413,17 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-bindgen-core" version = "0.53.1" @@ -1349,6 +1467,22 @@ dependencies = [ "wit-component 0.202.0", ] +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", +] + [[package]] name = "wit-bindgen-rust" version = "0.53.1" @@ -1379,6 +1513,21 @@ dependencies = [ "wit-bindgen-rust 0.24.0", ] +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", +] + [[package]] name = "wit-bindgen-rust-macro" version = "0.53.1" @@ -1413,6 +1562,25 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-component" version = "0.245.1" @@ -1450,6 +1618,24 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + [[package]] name = "wit-parser" version = "0.245.1" @@ -1457,7 +1643,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929" dependencies = [ "anyhow", - "hashbrown", + "hashbrown 0.16.1", "id-arena", "indexmap", "log", @@ -1469,11 +1655,17 @@ dependencies = [ "wasmparser 0.245.1", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + [[package]] name = "writeable" -version = "0.6.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wstd" @@ -1509,10 +1701,11 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ + "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -1520,9 +1713,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", @@ -1532,18 +1725,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", @@ -1552,18 +1745,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", @@ -1571,22 +1764,11 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - [[package]] name = "zerovec" -version = "0.11.5" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ "yoke", "zerofrom", @@ -1595,9 +1777,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", @@ -1606,6 +1788,6 @@ dependencies = [ [[package]] name = "zmij" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test-components/host-api-tests/Cargo.toml b/test-components/host-api-tests/Cargo.toml index e3e986a03b..b53fc88eea 100644 --- a/test-components/host-api-tests/Cargo.toml +++ b/test-components/host-api-tests/Cargo.toml @@ -1,25 +1,28 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "golem_it_host_api_tests" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" -golem-rust = { path = "../../sdks/rust/golem-rust", features = [ - "export_golem_agentic", -# "golem_ai" # Uncomment to use Golem AI libraries -] } +[dependencies] +# To use common shared agent definitions, place them in common_lib and uncomment the line below +# common-lib = { path = "../../common-rust/common-lib" } -# Advanced HTTP client, alternative of wstd::http -golem-wasi-http = { version = "0.2.0", features = ["json"] } - -futures-concurrency = "7.6.3" -wasi = { version = "=0.14.7+wasi-0.2.4" } log = { version = "0.4.29", features = ["kv"] } -rand = "0.9.0" +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -wstd = {version = "=0.6.5", features = ["default", "json"] } +time = { version = "0.3", features = ["formatting"] } +golem-wasi-http = { version = "0.2.0", features = ["json"] } +wasi = { version = "=0.14.7+wasi-0.2.4" } +futures-concurrency = "7.6.3" +rand = "0.9.0" +wasi-logger = { version = "0.1.2", features = ["kv"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/host-api-tests/components-rust/.gitignore b/test-components/host-api-tests/components-rust/.gitignore deleted file mode 100644 index 077f8ae54d..0000000000 --- a/test-components/host-api-tests/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/Cargo.lock b/test-components/host-api-tests/components-rust/golem-it-host-api-tests/Cargo.lock deleted file mode 100644 index dc6a50c7a3..0000000000 --- a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "golem-it-host-api-tests" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/Cargo.toml b/test-components/host-api-tests/components-rust/golem-it-host-api-tests/Cargo.toml deleted file mode 100644 index 5674559e10..0000000000 --- a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/Cargo.toml +++ /dev/null @@ -1,24 +0,0 @@ -[package] -name = "golem_it_host_api_tests" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -time = { version = "0.3", features = ["formatting"] } -golem-wasi-http = { workspace = true } -wasi = { workspace = true } -futures-concurrency = { workspace = true } -rand = { workspace = true } -wasi-logger = { version = "0.1.2", features = ["kv"] } -wstd = { workspace = true } diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/golem.yaml b/test-components/host-api-tests/components-rust/golem-it-host-api-tests/golem.yaml deleted file mode 100644 index 34951e33d5..0000000000 --- a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/golem.yaml +++ /dev/null @@ -1,207 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -# httpApi: -# definitions: -# golem-it-host-api-tests-api: -# version: '0.0.1' -# routes: -# - method: POST -# path: /golem-it-host-api-tests-api/{name}/increment -# binding: -# type: default -# componentName: golem-it:host-api-tests -# response: | -# let name: string = request.path.name; -# let agent = counter-agent(name); -# let new-value = agent.increment(); -# { status: 200, body: { result: "incremented ${name}, new value is ${new-value}" } } - -# deployments: -# local: -# - domain: host-api-tests.localhost:9006 -# definitions: -# - golem-it-host-api-tests-api - -components: - golem-it:host-api-tests: - templates: rust, rust-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Embedding providers - # ------------------- - - ## OpenAI - # OPENAI_API_KEY: "" - - ## Cohere - # COHERE_API_KEY: "" - - ## HuggingFace - # HUGGING_FACE_API_KEY: "" - - ## VoyageAI - # VOYAGEAI_API_KEY: "" - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/host-api-tests/golem.yaml b/test-components/host-api-tests/golem.yaml index 768002ba2c..7a035416fd 100644 --- a/test-components/host-api-tests/golem.yaml +++ b/test-components/host-api-tests/golem.yaml @@ -9,13 +9,17 @@ app: host-api-tests includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + golem-it:host-api-tests: + dir: "." + templates: rust, rust-test-component + environments: local: server: local componentPresets: debug cloud: server: cloud - componentPresets: release \ No newline at end of file + componentPresets: release diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/blob_store.rs b/test-components/host-api-tests/src/blob_store.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/blob_store.rs rename to test-components/host-api-tests/src/blob_store.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/clock.rs b/test-components/host-api-tests/src/clock.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/clock.rs rename to test-components/host-api-tests/src/clock.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/clocks.rs b/test-components/host-api-tests/src/clocks.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/clocks.rs rename to test-components/host-api-tests/src/clocks.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/custom_durability.rs b/test-components/host-api-tests/src/custom_durability.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/custom_durability.rs rename to test-components/host-api-tests/src/custom_durability.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/environment.rs b/test-components/host-api-tests/src/environment.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/environment.rs rename to test-components/host-api-tests/src/environment.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/file_system.rs b/test-components/host-api-tests/src/file_system.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/file_system.rs rename to test-components/host-api-tests/src/file_system.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/golem_host_api.rs b/test-components/host-api-tests/src/golem_host_api.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/golem_host_api.rs rename to test-components/host-api-tests/src/golem_host_api.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/golem_wasi_http.rs b/test-components/host-api-tests/src/golem_wasi_http.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/golem_wasi_http.rs rename to test-components/host-api-tests/src/golem_wasi_http.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/invocation_context.rs b/test-components/host-api-tests/src/invocation_context.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/invocation_context.rs rename to test-components/host-api-tests/src/invocation_context.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/io.rs b/test-components/host-api-tests/src/io.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/io.rs rename to test-components/host-api-tests/src/io.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/key_value.rs b/test-components/host-api-tests/src/key_value.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/key_value.rs rename to test-components/host-api-tests/src/key_value.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/lib.rs b/test-components/host-api-tests/src/lib.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/lib.rs rename to test-components/host-api-tests/src/lib.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/logging.rs b/test-components/host-api-tests/src/logging.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/logging.rs rename to test-components/host-api-tests/src/logging.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/networking.rs b/test-components/host-api-tests/src/networking.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/networking.rs rename to test-components/host-api-tests/src/networking.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/raw_wasi_http.rs b/test-components/host-api-tests/src/raw_wasi_http.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/raw_wasi_http.rs rename to test-components/host-api-tests/src/raw_wasi_http.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/relational_databases.rs b/test-components/host-api-tests/src/relational_databases.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/relational_databases.rs rename to test-components/host-api-tests/src/relational_databases.rs diff --git a/test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/wasi_config.rs b/test-components/host-api-tests/src/wasi_config.rs similarity index 100% rename from test-components/host-api-tests/components-rust/golem-it-host-api-tests/src/wasi_config.rs rename to test-components/host-api-tests/src/wasi_config.rs diff --git a/test-components/http-tests/.gitignore b/test-components/http-tests/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/http-tests/.gitignore +++ b/test-components/http-tests/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/http-tests/Cargo.lock b/test-components/http-tests/Cargo.lock index 69e3ab3a55..657b059729 100644 --- a/test-components/http-tests/Cargo.lock +++ b/test-components/http-tests/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "async-iterator" @@ -42,9 +42,9 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.5.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "base64" @@ -54,15 +54,15 @@ checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "2.10.0" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "bytes" @@ -72,25 +72,24 @@ checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" [[package]] name = "cc" -version = "1.2.55" +version = "1.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" dependencies = [ - "find-msvc-tools", "shlex", ] [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -124,9 +123,9 @@ checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" [[package]] name = "deranged" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc3dc5ad92c2e2d1c193bbbbdf2ea477cb81331de4f3103f267ca18368b988c4" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" dependencies = [ "powerfmt", ] @@ -174,9 +173,9 @@ dependencies = [ [[package]] name = "equivalent" -version = "1.0.2" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "fastrand" @@ -193,18 +192,18 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" -[[package]] -name = "find-msvc-tools" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" - [[package]] name = "fixedbitset" version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d674e81391d1e1ab681a28d99df07927c6d4aa5b027d7da16ba32d1d21ecd99" +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + [[package]] name = "foldhash" version = "0.2.0" @@ -213,9 +212,9 @@ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" [[package]] name = "form_urlencoded" -version = "1.2.2" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" dependencies = [ "percent-encoding", ] @@ -277,9 +276,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-lite" @@ -358,8 +357,21 @@ checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", "libc", - "r-efi", + "r-efi 5.3.0", + "wasip2", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", "wasip2", + "wasip3", ] [[package]] @@ -446,13 +458,22 @@ dependencies = [ "wstd", ] +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash 0.1.5", +] + [[package]] name = "hashbrown" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" dependencies = [ - "foldhash", + "foldhash 0.2.0", ] [[package]] @@ -535,22 +556,21 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" dependencies = [ "displaydoc", - "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locale_core" -version = "2.1.1" +name = "icu_locid" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" dependencies = [ "displaydoc", "litemap", @@ -559,61 +579,99 @@ dependencies = [ "zerovec", ] +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" dependencies = [ + "displaydoc", "icu_collections", "icu_normalizer_data", "icu_properties", "icu_provider", "smallvec", + "utf16_iter", + "utf8_iter", + "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" [[package]] name = "icu_properties" -version = "2.1.2" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" dependencies = [ + "displaydoc", "icu_collections", - "icu_locale_core", + "icu_locid_transform", "icu_properties_data", "icu_provider", - "zerotrie", + "tinystr", "zerovec", ] [[package]] name = "icu_properties_data" -version = "2.1.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" [[package]] name = "icu_provider" -version = "2.1.1" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" dependencies = [ "displaydoc", - "icu_locale_core", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", "writeable", "yoke", "zerofrom", - "zerotrie", "zerovec", ] +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "id-arena" version = "2.3.0" @@ -622,9 +680,9 @@ checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" [[package]] name = "idna" -version = "1.1.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" dependencies = [ "idna_adapter", "smallvec", @@ -633,9 +691,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" dependencies = [ "icu_normalizer", "icu_properties", @@ -648,7 +706,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" dependencies = [ "equivalent", - "hashbrown", + "hashbrown 0.16.1", "serde", "serde_core", ] @@ -673,15 +731,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" dependencies = [ "once_cell", "wasm-bindgen", @@ -701,15 +759,15 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.181" +version = "0.2.169" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "459427e2af2b9c839b132acb702a1c654d95e10f8c326bfc2ad11310e458b1c5" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" [[package]] name = "litemap" -version = "0.8.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" [[package]] name = "log" @@ -719,9 +777,9 @@ checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" [[package]] name = "memchr" -version = "2.8.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "mime" @@ -746,9 +804,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "parking" @@ -758,24 +816,24 @@ checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "percent-encoding" -version = "2.3.2" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", @@ -784,9 +842,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" [[package]] name = "pin-utils" @@ -794,15 +852,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "potential_utf" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" -dependencies = [ - "zerovec", -] - [[package]] name = "powerfmt" version = "0.2.0" @@ -830,27 +879,27 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "3.4.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219cb19e96be00ab2e37d6e299658a0cfa83e52429179969b0f0121b4ac46983" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ "toml_edit", ] [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.92" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -861,6 +910,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "rand" version = "0.9.2" @@ -887,7 +942,7 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ - "getrandom", + "getrandom 0.3.4", ] [[package]] @@ -898,9 +953,9 @@ checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" [[package]] name = "ryu" -version = "1.0.23" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "semver" @@ -977,36 +1032,39 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "slab" -version = "0.4.12" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" -version = "1.15.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "spdx" -version = "0.10.9" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e17e880bafaeb362a7b751ec46bdc5b61445a188f80e0606e68167cd540fa3" +checksum = "58b69356da67e2fc1f542c71ea7e654a361a79c938e4424392ecf4fa065d2193" dependencies = [ "smallvec", ] [[package]] name = "stable_deref_trait" -version = "1.2.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -1015,9 +1073,9 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.2" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", @@ -1057,9 +1115,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" dependencies = [ "displaydoc", "zerovec", @@ -1067,18 +1125,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "1.0.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.25.5+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" dependencies = [ "indexmap", "toml_datetime", @@ -1088,18 +1146,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.7+spec-1.1.0" +version = "1.0.10+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "247eaa3197818b831697600aadf81514e577e0cba5eab10f7e064e78ae154df1" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" dependencies = [ "winnow", ] [[package]] name = "unicode-ident" -version = "1.0.23" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" [[package]] name = "unicode-segmentation" @@ -1115,16 +1173,21 @@ checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "url" -version = "2.5.8" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" dependencies = [ "form_urlencoded", "idna", "percent-encoding", - "serde", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -1133,11 +1196,11 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" [[package]] name = "uuid" -version = "1.20.0" +version = "1.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee48d38b119b0cd71fe4141b30f5ba9c7c5d9f4e7a3a8b4a674e4b6ef789976f" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" dependencies = [ - "getrandom", + "getrandom 0.4.2", "js-sys", "serde_core", "sha1_smol", @@ -1178,11 +1241,20 @@ dependencies = [ "wit-bindgen 0.51.0", ] +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" dependencies = [ "cfg-if", "once_cell", @@ -1193,9 +1265,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1203,9 +1275,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" dependencies = [ "bumpalo", "proc-macro2", @@ -1216,9 +1288,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.114" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" dependencies = [ "unicode-ident", ] @@ -1232,6 +1304,16 @@ dependencies = [ "leb128", ] +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-encoder" version = "0.245.1" @@ -1258,6 +1340,18 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + [[package]] name = "wasm-metadata" version = "0.245.1" @@ -1281,6 +1375,18 @@ dependencies = [ "semver", ] +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.2", + "indexmap", + "semver", +] + [[package]] name = "wasmparser" version = "0.245.1" @@ -1288,7 +1394,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" dependencies = [ "bitflags", - "hashbrown", + "hashbrown 0.16.1", "indexmap", "semver", ] @@ -1354,9 +1460,9 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.14" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" dependencies = [ "memchr", ] @@ -1378,6 +1484,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" dependencies = [ "bitflags", + "wit-bindgen-rust-macro 0.51.0", ] [[package]] @@ -1400,6 +1507,17 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-bindgen-core" version = "0.53.1" @@ -1443,6 +1561,22 @@ dependencies = [ "wit-component 0.202.0", ] +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", +] + [[package]] name = "wit-bindgen-rust" version = "0.53.1" @@ -1473,6 +1607,21 @@ dependencies = [ "wit-bindgen-rust 0.24.0", ] +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", +] + [[package]] name = "wit-bindgen-rust-macro" version = "0.53.1" @@ -1507,6 +1656,25 @@ dependencies = [ "wit-parser 0.202.0", ] +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] + [[package]] name = "wit-component" version = "0.245.1" @@ -1544,6 +1712,24 @@ dependencies = [ "wasmparser 0.202.0", ] +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + [[package]] name = "wit-parser" version = "0.245.1" @@ -1551,7 +1737,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929" dependencies = [ "anyhow", - "hashbrown", + "hashbrown 0.16.1", "id-arena", "indexmap", "log", @@ -1563,11 +1749,17 @@ dependencies = [ "wasmparser 0.245.1", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + [[package]] name = "writeable" -version = "0.6.2" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" [[package]] name = "wstd" @@ -1603,10 +1795,11 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" dependencies = [ + "serde", "stable_deref_trait", "yoke-derive", "zerofrom", @@ -1614,9 +1807,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" dependencies = [ "proc-macro2", "quote", @@ -1626,18 +1819,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831" dependencies = [ "proc-macro2", "quote", @@ -1646,18 +1839,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" dependencies = [ "proc-macro2", "quote", @@ -1665,22 +1858,11 @@ dependencies = [ "synstructure", ] -[[package]] -name = "zerotrie" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - [[package]] name = "zerovec" -version = "0.11.5" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" dependencies = [ "yoke", "zerofrom", @@ -1689,9 +1871,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" dependencies = [ "proc-macro2", "quote", @@ -1700,6 +1882,6 @@ dependencies = [ [[package]] name = "zmij" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4de98dfa5d5b7fef4ee834d0073d560c9ca7b6c46a71d058c48db7960f8cfaf7" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test-components/http-tests/Cargo.toml b/test-components/http-tests/Cargo.toml index ac416a7e9b..9934f51b2d 100644 --- a/test-components/http-tests/Cargo.toml +++ b/test-components/http-tests/Cargo.toml @@ -1,26 +1,29 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "golem_it_http_tests" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" -golem-rust = { path = "../../sdks/rust/golem-rust", features = [ - "export_golem_agentic", -# "golem_ai" # Uncomment to use Golem AI libraries -] } +[dependencies] +# To use common shared agent definitions, place them in common_lib and uncomment the line below +# common-lib = { path = "../../common-rust/common-lib" } -# Advanced HTTP client, alternative of wstd::http -golem-wasi-http = { version = "0.2.0", features = ["json"] } - -futures-concurrency = "7.6.3" -futures-util = "0.3" -wasi = { version = "=0.14.7+wasi-0.2.4" } log = { version = "0.4.29", features = ["kv"] } -rand = "0.9.0" +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -wstd = {version = "=0.6.5", features = ["default", "json"] } +time = { version = "0.3", features = ["formatting"] } +golem-wasi-http = { version = "0.2.0", features = ["async", "json"] } +wasi = { version = "=0.14.7+wasi-0.2.4" } +futures-concurrency = "7.6.3" +futures-util = "0.3.31" +rand = "0.9.0" +wasi-logger = { version = "0.1.2", features = ["kv"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/http-tests/components-rust/.gitignore b/test-components/http-tests/components-rust/.gitignore deleted file mode 100644 index 077f8ae54d..0000000000 --- a/test-components/http-tests/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated diff --git a/test-components/http-tests/components-rust/golem-it-http-tests/Cargo.lock b/test-components/http-tests/components-rust/golem-it-http-tests/Cargo.lock deleted file mode 100644 index dc6a50c7a3..0000000000 --- a/test-components/http-tests/components-rust/golem-it-http-tests/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "golem-it-host-api-tests" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/http-tests/components-rust/golem-it-http-tests/Cargo.toml b/test-components/http-tests/components-rust/golem-it-http-tests/Cargo.toml deleted file mode 100644 index c601ca74c8..0000000000 --- a/test-components/http-tests/components-rust/golem-it-http-tests/Cargo.toml +++ /dev/null @@ -1,25 +0,0 @@ -[package] -name = "golem_it_http_tests" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -time = { version = "0.3", features = ["formatting"] } -golem-wasi-http = { workspace = true, features = ["async"] } -wasi = { workspace = true } -futures-concurrency = { workspace = true } -futures-util = { workspace = true } -rand = { workspace = true } -wasi-logger = { version = "0.1.2", features = ["kv"] } -wstd = { workspace = true } diff --git a/test-components/http-tests/components-rust/golem-it-http-tests/golem.yaml b/test-components/http-tests/components-rust/golem-it-http-tests/golem.yaml deleted file mode 100644 index a59acb3e46..0000000000 --- a/test-components/http-tests/components-rust/golem-it-http-tests/golem.yaml +++ /dev/null @@ -1,185 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -components: - golem-it:http-tests: - templates: rust, rust-test-component - - # Component environment variables can reference system environment variables with minijinja syntax: - # - # env: - # ENV_VAR_1: "{{ ENV_VAR_1 }}" - # RENAMED_VAR_2: "{{ ENV_VAR_2 }}" - # COMPOSED_VAR_3: "{{ ENV_VAR_3 }}-{{ ENV_VAR_4}}" - # - env: - # LLM providers - # ------------- - - ## Common - # GOLEM_LLM_LOG: "trace" # Optional, defaults to warn - - ## Anthropic - # ANTHROPIC_API_KEY: "" - - ## OpenAI - # OPENAI_API_KEY: "" - - ## OpenRouter - # OPENROUTER_API_KEY: "" - - ## Amazon Bedrock - # AWS_ACCESS_KEY_ID: "" - # AWS_REGION: "" - # AWS_SECRET_ACCESS_KEY: "" - # AWS_SESSION_TOKEN: "" # Optional - - ## Grok - # XAI_API_KEY: "" - - ## Ollama - # GOLEM_OLLAMA_BASE_URL: "" # Optional, defaults to http://localhost:11434 - - - # Embedding providers - # ------------------- - - ## OpenAI - # OPENAI_API_KEY: "" - - ## Cohere - # COHERE_API_KEY: "" - - ## HuggingFace - # HUGGING_FACE_API_KEY: "" - - ## VoyageAI - # VOYAGEAI_API_KEY: "" - - - # Graph database providers - # ------------------------ - - ## ArangoDB - # ARANGODB_HOST: "" - # ARANGODB_PORT: "" # Optional, defaults to 8529 - # ARANGODB_USER: "" - # ARANGODB_PASSWORD: "" - # ARANGO_DATABASE: "" - - ## JanusGraph - # JANUSGRAPH_HOST: "" - # JANUSGRAPH_PORT: "" # Optional, defaults to 8182 - # JANUSGRAPH_USER: "" - # JANUSGRAPH_PASSWORD: "" - - ## Neo4j - # NEO4J_HOST: "" - # NEO4J_PORT: "" # Optional, defaults to 7687 - # NEO4J_USER: "" - # NEO4J_PASSWORD: "" - - - # Search providers - # ---------------- - - ## Common - # GOLEM_SEARCH_LOG: "trace" # Optional, defaults to warn - - ## Algolia - # ALGOLIA_APPLICATION_ID: "" - # ALGOLIA_API_KEY: "" - - ## ElasticSearch - # ELASTICSEARCH_URL: "" - # ELASTICSEARCH_USERNAME: "" - # ELASTICSEARCH_PASSWORD: "" - # ELASTICSEARCH_API_KEY: "" - - ## Meilisearch - # MEILISEARCH_BASE_URL: "" - # MEILISEARCH_API_KEY: "" - - ## OpenSearch - # OPENSEARCH_BASE_URL: "" - # OPENSEARCH_USERNAME: "" - # OPENSEARCH_PASSWORD: "" - # OPENSEARCH_API_KEY: "" - - ## Typesense - # TYPESENSE_BASE_URL: "" - # TYPESENSE_API_KEY: "" - - - # Speech-to-text providers - # ------------------------ - - ## Common - # STT_PROVIDER_LOG_LEVEL: "trace" # Optional, defaults to warn - # STT_PROVIDER_MAX_RETRIES: "10" # Optional, defaults to 10 - - ## AWS - # AWS_REGION: "" - # AWS_ACCESS_KEY: "" - # AWS_SECRET_KEY: "" - # AWS_BUCKET_NAME: "" - - ## Azure - # AZURE_REGION: "" - # AZURE_SUBSCRIPTION_KEY: "" - - ## Deepgram - # DEEPGRAM_API_TOKEN: "" - # DEEPGRAM_ENDPOINT: "" # Optional - - ## Google - # GOOGLE_LOCATION: "" - # GOOGLE_BUCKET_NAME: "" - # GOOGLE_APPLICATION_CREDENTIALS: "" # or use the vars below - # GOOGLE_PROJECT_ID: "" - # GOOGLE_CLIENT_EMAIL: "" - # GOOGLE_PRIVATE_KEY: "" - - ## Whisper - # OPENAI_API_KEY: "" - - - # Video generation providers - # -------------------------- - - ## Kling - # KLING_ACCESS_KEY: "" - # KLING_SECRET_KEY: "" - - ## Runway - # RUNWAY_API_KEY: "" - - ## Stability - # STABILITY_API_KEY: "" - - ## Veo - # VEO_PROJECT_ID: "" - # VEO_CLIENT_EMAIL: "" - # VEO_PRIVATE_KEY: "" - - - # WebSearch providers - # ------------------- - - ## Brave - # BRAVE_API_KEY: "" - - ## Google - # GOOGLE_API_KEY: "" - # GOOGLE_SEARCH_ENGINE_ID: "" - - ## Serper - # SERPER_API_KEY: "" - - ## Tavily - # TAVILY_API_KEY: "" diff --git a/test-components/http-tests/golem.yaml b/test-components/http-tests/golem.yaml index 8eae804fa0..4b046ad998 100644 --- a/test-components/http-tests/golem.yaml +++ b/test-components/http-tests/golem.yaml @@ -9,13 +9,17 @@ app: http-tests includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + golem-it:http-tests: + dir: "." + templates: rust, rust-test-component + environments: local: server: local componentPresets: debug cloud: server: cloud - componentPresets: release \ No newline at end of file + componentPresets: release diff --git a/test-components/http-tests/components-rust/golem-it-http-tests/src/http_client.rs b/test-components/http-tests/src/http_client.rs similarity index 100% rename from test-components/http-tests/components-rust/golem-it-http-tests/src/http_client.rs rename to test-components/http-tests/src/http_client.rs diff --git a/test-components/http-tests/components-rust/golem-it-http-tests/src/http_client_2.rs b/test-components/http-tests/src/http_client_2.rs similarity index 100% rename from test-components/http-tests/components-rust/golem-it-http-tests/src/http_client_2.rs rename to test-components/http-tests/src/http_client_2.rs diff --git a/test-components/http-tests/components-rust/golem-it-http-tests/src/http_client_3.rs b/test-components/http-tests/src/http_client_3.rs similarity index 100% rename from test-components/http-tests/components-rust/golem-it-http-tests/src/http_client_3.rs rename to test-components/http-tests/src/http_client_3.rs diff --git a/test-components/http-tests/components-rust/golem-it-http-tests/src/lib.rs b/test-components/http-tests/src/lib.rs similarity index 100% rename from test-components/http-tests/components-rust/golem-it-http-tests/src/lib.rs rename to test-components/http-tests/src/lib.rs diff --git a/test-components/http-tests/components-rust/golem-it-http-tests/src/streaming_client.rs b/test-components/http-tests/src/streaming_client.rs similarity index 100% rename from test-components/http-tests/components-rust/golem-it-http-tests/src/streaming_client.rs rename to test-components/http-tests/src/streaming_client.rs diff --git a/test-components/initial-file-system/.gitignore b/test-components/initial-file-system/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/initial-file-system/.gitignore +++ b/test-components/initial-file-system/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/initial-file-system/Cargo.toml b/test-components/initial-file-system/Cargo.toml index 4d5b4940a1..fc89a196c5 100644 --- a/test-components/initial-file-system/Cargo.toml +++ b/test-components/initial-file-system/Cargo.toml @@ -1,16 +1,21 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "it_initial_file_system" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] -async-trait = {version = "0.1.89"} -golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_load_snapshot", "export_save_snapshot", "export_golem_agentic"] } +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" + +[dependencies] +async-trait = "0.1.87" +ctor = "0.4.0" +golem-rust = { path = "../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } golem-wasi-http = { version = "0.2.0", features = ["json"] } serde = { version = "1", features = ["derive"] } serde_json = "1" -ctor = "0.4.3" -wstd = {version = "=0.6.5", features = ["default", "json"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/initial-file-system/components-rust/.gitignore b/test-components/initial-file-system/components-rust/.gitignore deleted file mode 100644 index 077f8ae54d..0000000000 --- a/test-components/initial-file-system/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated diff --git a/test-components/initial-file-system/components-rust/it-initial-file-system/Cargo.toml b/test-components/initial-file-system/components-rust/it-initial-file-system/Cargo.toml deleted file mode 100644 index 5d4d81d14c..0000000000 --- a/test-components/initial-file-system/components-rust/it-initial-file-system/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "it_initial_file_system" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -async-trait = { workspace = true } -ctor = { workspace = true } -golem-rust = { workspace = true } -golem-wasi-http = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/test-components/initial-file-system/components-rust/it-initial-file-system/golem.yaml b/test-components/initial-file-system/components-rust/it-initial-file-system/golem.yaml deleted file mode 100644 index 4180909686..0000000000 --- a/test-components/initial-file-system/components-rust/it-initial-file-system/golem.yaml +++ /dev/null @@ -1,11 +0,0 @@ -# Schema for IDEA: -# $schema: https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json -# Schema for vscode-yaml: -# yaml-language-server: $schema=https://schema.golem.cloud/app/golem/1.5.0-dev.1/golem.schema.json - -# Field reference: https://learn.golem.cloud/app-manifest#field-reference -# Creating HTTP APIs: https://learn.golem.cloud/invoke/making-custom-apis - -components: - it:initial-file-system: - templates: rust, rust-test-component diff --git a/test-components/initial-file-system/golem.yaml b/test-components/initial-file-system/golem.yaml index da1326abfe..b2a04ebf3a 100644 --- a/test-components/initial-file-system/golem.yaml +++ b/test-components/initial-file-system/golem.yaml @@ -9,9 +9,13 @@ app: initial-file-system includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + it:initial-file-system: + dir: "." + templates: rust, rust-test-component + environments: local: server: local diff --git a/test-components/initial-file-system/components-rust/it-initial-file-system/src/file_read_write.rs b/test-components/initial-file-system/src/file_read_write.rs similarity index 100% rename from test-components/initial-file-system/components-rust/it-initial-file-system/src/file_read_write.rs rename to test-components/initial-file-system/src/file_read_write.rs diff --git a/test-components/initial-file-system/components-rust/it-initial-file-system/src/ifs_update.rs b/test-components/initial-file-system/src/ifs_update.rs similarity index 100% rename from test-components/initial-file-system/components-rust/it-initial-file-system/src/ifs_update.rs rename to test-components/initial-file-system/src/ifs_update.rs diff --git a/test-components/initial-file-system/components-rust/it-initial-file-system/src/ifs_update_inside_exported_function.rs b/test-components/initial-file-system/src/ifs_update_inside_exported_function.rs similarity index 100% rename from test-components/initial-file-system/components-rust/it-initial-file-system/src/ifs_update_inside_exported_function.rs rename to test-components/initial-file-system/src/ifs_update_inside_exported_function.rs diff --git a/test-components/initial-file-system/components-rust/it-initial-file-system/src/lib.rs b/test-components/initial-file-system/src/lib.rs similarity index 100% rename from test-components/initial-file-system/components-rust/it-initial-file-system/src/lib.rs rename to test-components/initial-file-system/src/lib.rs diff --git a/test-components/it_agent_counters_release.wasm b/test-components/it_agent_counters_release.wasm index 790dfba090..80c2947171 100644 Binary files a/test-components/it_agent_counters_release.wasm and b/test-components/it_agent_counters_release.wasm differ diff --git a/test-components/it_agent_update_v1_release.wasm b/test-components/it_agent_update_v1_release.wasm index 5db5d7751d..2f0f852fa8 100644 Binary files a/test-components/it_agent_update_v1_release.wasm and b/test-components/it_agent_update_v1_release.wasm differ diff --git a/test-components/it_agent_update_v2_release.wasm b/test-components/it_agent_update_v2_release.wasm index ce9935fcaa..ebc6c1add1 100644 Binary files a/test-components/it_agent_update_v2_release.wasm and b/test-components/it_agent_update_v2_release.wasm differ diff --git a/test-components/it_agent_update_v3_release.wasm b/test-components/it_agent_update_v3_release.wasm index c16e598e65..19f6880c6a 100644 Binary files a/test-components/it_agent_update_v3_release.wasm and b/test-components/it_agent_update_v3_release.wasm differ diff --git a/test-components/it_agent_update_v4_release.wasm b/test-components/it_agent_update_v4_release.wasm index d8a8c1cb93..57c5f11cb9 100644 Binary files a/test-components/it_agent_update_v4_release.wasm and b/test-components/it_agent_update_v4_release.wasm differ diff --git a/test-components/it_initial_file_system_release.wasm b/test-components/it_initial_file_system_release.wasm index a71bb0784d..4cad4ecae7 100644 Binary files a/test-components/it_initial_file_system_release.wasm and b/test-components/it_initial_file_system_release.wasm differ diff --git a/test-components/oplog-processor/.gitignore b/test-components/oplog-processor/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/oplog-processor/.gitignore +++ b/test-components/oplog-processor/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/oplog-processor/Cargo.toml b/test-components/oplog-processor/Cargo.toml index 0b82cd0316..f2c1e61bf0 100644 --- a/test-components/oplog-processor/Cargo.toml +++ b/test-components/oplog-processor/Cargo.toml @@ -1,14 +1,21 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] +[package] +name = "oplog_processor" +version = "0.0.1" +edition = "2021" [profile.release] opt-level = "s" lto = true -[workspace.dependencies] +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" + +[dependencies] golem-rust = { path = "../../sdks/rust/golem-rust", features = [ "export_oplog_processor", ] } -wstd = { version = "=0.6.5", features = ["default", "json"] } +serde = { version = "1", features = ["derive"] } serde_json = "1" +uuid = { version = "1.10", features = ["v4"] } +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/oplog-processor/components-rust/oplog-processor/Cargo.toml b/test-components/oplog-processor/components-rust/oplog-processor/Cargo.toml deleted file mode 100644 index 57f07b1680..0000000000 --- a/test-components/oplog-processor/components-rust/oplog-processor/Cargo.toml +++ /dev/null @@ -1,15 +0,0 @@ -[package] -name = "oplog_processor" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -golem-rust = { workspace = true } -serde = { version = "1", features = ["derive"] } -serde_json = { workspace = true } -uuid = { version = "1.10", features = ["v4"] } -wstd = { workspace = true } diff --git a/test-components/oplog-processor/components-rust/oplog-processor/golem.yaml b/test-components/oplog-processor/components-rust/oplog-processor/golem.yaml deleted file mode 100644 index 9094684610..0000000000 --- a/test-components/oplog-processor/components-rust/oplog-processor/golem.yaml +++ /dev/null @@ -1,3 +0,0 @@ -components: - oplog:processor: - templates: rust, rust-test-component diff --git a/test-components/oplog-processor/golem.yaml b/test-components/oplog-processor/golem.yaml index 5d41229b51..7b6fe351b9 100644 --- a/test-components/oplog-processor/golem.yaml +++ b/test-components/oplog-processor/golem.yaml @@ -9,9 +9,13 @@ app: oplog-processor includes: - - components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + oplog:processor: + dir: "." + templates: rust, rust-test-component + environments: local: server: local diff --git a/test-components/oplog-processor/components-rust/oplog-processor/src/lib.rs b/test-components/oplog-processor/src/lib.rs similarity index 100% rename from test-components/oplog-processor/components-rust/oplog-processor/src/lib.rs rename to test-components/oplog-processor/src/lib.rs diff --git a/test-components/oplog_processor_release.wasm b/test-components/oplog_processor_release.wasm index c12e69e7fd..80b86c715b 100644 Binary files a/test-components/oplog_processor_release.wasm and b/test-components/oplog_processor_release.wasm differ diff --git a/test-components/scalability/.gitignore b/test-components/scalability/.gitignore index 33f0781852..1ef9c2fe51 100644 --- a/test-components/scalability/.gitignore +++ b/test-components/scalability/.gitignore @@ -1,3 +1,2 @@ /golem-temp -/target -/.wit +target diff --git a/test-components/scalability/Cargo.toml b/test-components/scalability/Cargo.toml deleted file mode 100644 index 88eb51c25b..0000000000 --- a/test-components/scalability/Cargo.toml +++ /dev/null @@ -1,22 +0,0 @@ -[workspace] -resolver = "2" -members = ["components-rust/*"] - -[profile.release] -opt-level = "s" -lto = true - -[workspace.dependencies] - -golem-rust = { path = "../../sdks/rust/golem-rust", features = [ - "export_golem_agentic", - # "golem_ai" # Uncomment to use Golem AI libraries -] } - -# Advanced HTTP client, alternative of wstd::http -# golem-wasi-http = { version = "0.2.0", features = ["json"] } - -log = { version = "0.4.29", features = ["kv"] } -serde = { version = "1", features = ["derive"] } -serde_json = "1" -wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/scalability/components-rust/.gitignore b/test-components/scalability/components-rust/.gitignore deleted file mode 100644 index f19eeb7b2e..0000000000 --- a/test-components/scalability/components-rust/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/*/src/bindings.rs -/*/wit-generated \ No newline at end of file diff --git a/test-components/scalability/components-rust/scalability-large-dynamic-memory/Cargo.lock b/test-components/scalability/components-rust/scalability-large-dynamic-memory/Cargo.lock deleted file mode 100644 index 35d609164b..0000000000 --- a/test-components/scalability/components-rust/scalability-large-dynamic-memory/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "scalability-large-dynamic-memory" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/scalability/components-rust/scalability-large-dynamic-memory/Cargo.toml b/test-components/scalability/components-rust/scalability-large-dynamic-memory/Cargo.toml deleted file mode 100644 index e103d805f9..0000000000 --- a/test-components/scalability/components-rust/scalability-large-dynamic-memory/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "scalability_large_dynamic_memory" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/test-components/scalability/components-rust/scalability-large-dynamic-memory/golem.yaml b/test-components/scalability/components-rust/scalability-large-dynamic-memory/golem.yaml deleted file mode 100644 index f40125830b..0000000000 --- a/test-components/scalability/components-rust/scalability-large-dynamic-memory/golem.yaml +++ /dev/null @@ -1,3 +0,0 @@ -components: - scalability:large-dynamic-memory: - templates: rust, rust-test-component diff --git a/test-components/scalability/components-rust/scalability-large-initial-memory/Cargo.lock b/test-components/scalability/components-rust/scalability-large-initial-memory/Cargo.lock deleted file mode 100644 index 63a8e30cc0..0000000000 --- a/test-components/scalability/components-rust/scalability-large-initial-memory/Cargo.lock +++ /dev/null @@ -1,1376 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 4 - -[[package]] -name = "addr2line" -version = "0.24.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627" - -[[package]] -name = "autocfg" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" - -[[package]] -name = "backtrace" -version = "0.3.74" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a" -dependencies = [ - "addr2line", - "cfg-if", - "libc", - "miniz_oxide", - "object", - "rustc-demangle", - "windows-targets 0.52.6", -] - -[[package]] -name = "base64" -version = "0.21.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "bytes" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" - -[[package]] -name = "cc" -version = "1.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "scalability-large-initial-memory" -version = "0.0.1" -dependencies = [ - "golem-rust", - "reqwest", - "serde", - "serde_json", - "wit-bindgen-rt", -] - -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "equivalent" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" - -[[package]] -name = "errno" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33d852cb9b869c2a9b3df2f71a3074817f01e1844f839a144f5fcef059a4eb5d" -dependencies = [ - "libc", - "windows-sys 0.59.0", -] - -[[package]] -name = "fastrand" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "foreign-types" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" -dependencies = [ - "foreign-types-shared", -] - -[[package]] -name = "foreign-types-shared" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" - -[[package]] -name = "form_urlencoded" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "futures-channel" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" -dependencies = [ - "futures-core", -] - -[[package]] -name = "futures-core" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" - -[[package]] -name = "futures-sink" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" - -[[package]] -name = "futures-task" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" - -[[package]] -name = "futures-util" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" -dependencies = [ - "futures-core", - "futures-task", - "pin-project-lite", - "pin-utils", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "libc", - "wasi", -] - -[[package]] -name = "gimli" -version = "0.31.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" - -[[package]] -name = "golem-rust" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c967eb388fb81f9b9f4df5d5b6634de803f21cd410c1bf687202794a4fbc0267" -dependencies = [ - "golem-rust-macro", - "serde", - "serde_json", - "uuid", - "wit-bindgen-rt", -] - -[[package]] -name = "golem-rust-macro" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bb87f831cfe4371427c63f5f4cabcc3bae1b66974c8fbcf22be9274fee3a7d1" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "h2" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util", - "tracing", -] - -[[package]] -name = "hashbrown" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "http" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "httparse" -version = "1.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d71d3574edd2771538b901e6549113b4006ece66150fb69c0fb6d9a2adae946" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - -[[package]] -name = "hyper" -version = "0.14.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-tls" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" -dependencies = [ - "bytes", - "hyper", - "native-tls", - "tokio", - "tokio-native-tls", -] - -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "idna" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - -[[package]] -name = "indexmap" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62f822373a4fe84d4bb149bf54e584a7f4abec90e072ed49cda0edea5b95471f" -dependencies = [ - "equivalent", - "hashbrown", -] - -[[package]] -name = "ipnet" -version = "2.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" - -[[package]] -name = "itoa" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" - -[[package]] -name = "js-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6717b6b5b077764fb5966237269cb3c64edddde4b14ce42647430a78ced9e7b7" -dependencies = [ - "once_cell", - "wasm-bindgen", -] - -[[package]] -name = "libc" -version = "0.2.169" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" - -[[package]] -name = "linux-raw-sys" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" - -[[package]] -name = "litemap" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ee93343901ab17bd981295f2cf0026d4ad018c7c31ba84549a4ddbb47a45104" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "miniz_oxide" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffbe83022cedc1d264172192511ae958937694cd57ce297164951b8b3568394" -dependencies = [ - "adler2", -] - -[[package]] -name = "mio" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2886843bf800fba2e3377cff24abf6379b4c4d5c6681eaf9ea5b0d15090450bd" -dependencies = [ - "libc", - "wasi", - "windows-sys 0.52.0", -] - -[[package]] -name = "native-tls" -version = "0.2.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8614eb2c83d59d1c8cc974dd3f920198647674a0a035e1af1fa58707e317466" -dependencies = [ - "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", -] - -[[package]] -name = "object" -version = "0.36.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62948e14d923ea95ea2c7c86c71013138b66525b86bdc08d2dcc262bdb497b87" -dependencies = [ - "memchr", -] - -[[package]] -name = "once_cell" -version = "1.20.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" - -[[package]] -name = "openssl" -version = "0.10.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6174bc48f102d208783c2c84bf931bb75927a617866870de8a4ea85597f871f5" -dependencies = [ - "bitflags", - "cfg-if", - "foreign-types", - "libc", - "once_cell", - "openssl-macros", - "openssl-sys", -] - -[[package]] -name = "openssl-macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "openssl-sys" -version = "0.9.104" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45abf306cbf99debc8195b66b7346498d7b10c210de50418b5ccd7ceba08c741" -dependencies = [ - "cc", - "libc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "percent-encoding" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" - -[[package]] -name = "pin-project-lite" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkg-config" -version = "0.3.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" - -[[package]] -name = "proc-macro2" -version = "1.0.92" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "reqwest" -version = "0.11.18" -source = "git+https://github.com/zivergetech/reqwest?branch=update-jun-2024#1cf59c67b93aa6292961f8948b93df5bca2753b6" -dependencies = [ - "base64", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-tls", - "ipnet", - "js-sys", - "log", - "mime", - "native-tls", - "once_cell", - "percent-encoding", - "pin-project-lite", - "serde", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-native-tls", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", - "winreg", - "wit-bindgen-rt", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" - -[[package]] -name = "rustix" -version = "0.38.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85" -dependencies = [ - "bitflags", - "errno", - "libc", - "linux-raw-sys", - "windows-sys 0.59.0", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schannel" -version = "0.1.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f29ebaa345f945cec9fbbc532eb307f0fdad8161f281b6369539c8d84876b3d" -dependencies = [ - "windows-sys 0.59.0", -] - -[[package]] -name = "security-framework" -version = "2.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1863fd3768cd83c56a7f60faa4dc0d403f1b6df0a38c3c25f44b7894e45370d5" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "serde" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.216" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.134" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "shlex" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" - -[[package]] -name = "slab" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" -dependencies = [ - "autocfg", -] - -[[package]] -name = "smallvec" -version = "1.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" - -[[package]] -name = "socket2" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c970269d99b64e60ec3bd6ad27270092a5394c4e309314b18ae3fe575695fbe8" -dependencies = [ - "libc", - "windows-sys 0.52.0", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "syn" -version = "2.0.91" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tempfile" -version = "3.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c" -dependencies = [ - "cfg-if", - "fastrand", - "once_cell", - "rustix", - "windows-sys 0.59.0", -] - -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - -[[package]] -name = "tokio" -version = "1.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551" -dependencies = [ - "backtrace", - "bytes", - "libc", - "mio", - "pin-project-lite", - "socket2", - "windows-sys 0.52.0", -] - -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-util" -version = "0.7.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7fcaa8d55a2bdd6b83ace262b016eca0d79ee02818c5c1bcdf0305114081078" -dependencies = [ - "bytes", - "futures-core", - "futures-sink", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tower-service" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" - -[[package]] -name = "tracing" -version = "0.1.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" -dependencies = [ - "pin-project-lite", - "tracing-core", -] - -[[package]] -name = "tracing-core" -version = "0.1.33" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" -dependencies = [ - "once_cell", -] - -[[package]] -name = "try-lock" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" - -[[package]] -name = "unicode-ident" -version = "1.0.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" - -[[package]] -name = "url" -version = "2.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - -[[package]] -name = "uuid" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8c5f0a0af699448548ad1a2fbf920fb4bee257eae39953ba95cb84891a0446a" -dependencies = [ - "getrandom", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "want" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" -dependencies = [ - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a474f6281d1d70c17ae7aa6a613c87fce69a127e2624002df63dcb39d6cf6396" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f89bb38646b4f81674e8f5c3fb81b562be1fd936d84320f3264486418519c79" -dependencies = [ - "bumpalo", - "log", - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.49" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38176d9b44ea84e9184eff0bc34cc167ed044f816accfe5922e54d84cf48eca2" -dependencies = [ - "cfg-if", - "js-sys", - "once_cell", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cc6181fd9a7492eef6fef1f33961e3695e4579b9872a6f7c83aee556666d4fe" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d7a95b763d3c45903ed6c81f156801839e5ee968bb07e534c44df0fcd330c2" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.99" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "943aab3fdaaa029a6e0271b35ea10b72b943135afe9bffca82384098ad0e06a6" - -[[package]] -name = "web-sys" -version = "0.3.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04dd7223427d52553d3702c004d3b2fe07c148165faa56313cb00211e31c12bc" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-sys" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-targets" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" -dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm 0.52.6", - "windows_aarch64_msvc 0.52.6", - "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", - "windows_i686_msvc 0.52.6", - "windows_x86_64_gnu 0.52.6", - "windows_x86_64_gnullvm 0.52.6", - "windows_x86_64_msvc 0.52.6", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "winreg" -version = "0.50.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" -dependencies = [ - "cfg-if", - "windows-sys 0.48.0", -] - -[[package]] -name = "wit-bindgen-rt" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c7526379ace8709ee9ab9f2bb50f112d95581063a59ef3097d9c10153886c9" -dependencies = [ - "bitflags", -] - -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - -[[package]] -name = "yoke" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "120e6aef9aa629e3d4f52dc8cc43a015c7724194c97dfaf45180d2daf2b77f40" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerofrom" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff3ee08c995dee1859d998dea82f7374f2826091dd9cd47def953cae446cd2e" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] - -[[package]] -name = "zerovec" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] diff --git a/test-components/scalability/components-rust/scalability-large-initial-memory/Cargo.toml b/test-components/scalability/components-rust/scalability-large-initial-memory/Cargo.toml deleted file mode 100644 index 075498e8b0..0000000000 --- a/test-components/scalability/components-rust/scalability-large-initial-memory/Cargo.toml +++ /dev/null @@ -1,18 +0,0 @@ -[package] -name = "scalability_large_initial_memory" -version = "0.0.1" -edition = "2021" - -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" - -[dependencies] -# To use common shared agent definitions, place them in common_lib and uncomment the line below -# common-lib = { path = "../../common-rust/common-lib" } - -log = { workspace = true } -golem-rust = { workspace = true } -serde = { workspace = true } -serde_json = { workspace = true } -wstd = { workspace = true } diff --git a/test-components/scalability/components-rust/scalability-large-initial-memory/golem.yaml b/test-components/scalability/components-rust/scalability-large-initial-memory/golem.yaml deleted file mode 100644 index daa8a9a29d..0000000000 --- a/test-components/scalability/components-rust/scalability-large-initial-memory/golem.yaml +++ /dev/null @@ -1,3 +0,0 @@ -components: - scalability:large-initial-memory: - templates: rust, rust-test-component diff --git a/test-components/scalability/golem.yaml b/test-components/scalability/golem.yaml index 2b9405dc3d..2edbf652f5 100644 --- a/test-components/scalability/golem.yaml +++ b/test-components/scalability/golem.yaml @@ -9,13 +9,20 @@ app: scalability includes: -- components-*/*/golem.yaml - ../golem-test-components-common.yaml +components: + scalability:large-initial-memory: + dir: "scalability-large-initial-memory" + templates: rust, rust-test-component + scalability:large-dynamic-memory: + dir: "scalability-large-dynamic-memory" + templates: rust, rust-test-component + environments: local: server: local componentPresets: debug cloud: server: cloud - componentPresets: release \ No newline at end of file + componentPresets: release diff --git a/test-components/scalability/scalability-large-dynamic-memory/Cargo.lock b/test-components/scalability/scalability-large-dynamic-memory/Cargo.lock new file mode 100644 index 0000000000..e1804aca56 --- /dev/null +++ b/test-components/scalability/scalability-large-dynamic-memory/Cargo.lock @@ -0,0 +1,1234 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" + +[[package]] +name = "cc" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "ctor" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec09e802f5081de6157da9a75701d6c713d8dc3ba52571fd4bd25f412644e8a6" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" + +[[package]] +name = "dtor" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cbdf2ad6846025e8e25df05171abfb30e3ababa12ee0a0e44b9bbe570633a8" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7454e41ff9012c00d53cf7f475c5e3afa3b91b7c90568495495e8d9bf47a1055" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + +[[package]] +name = "golem-rust" +version = "0.0.0" +dependencies = [ + "async-trait", + "ctor", + "golem-rust-macro", + "golem-wasm", + "http", + "log", + "serde", + "serde_json", + "uuid", + "wasi-logger", + "wasip2", + "wit-bindgen 0.53.1", + "wstd", +] + +[[package]] +name = "golem-rust-macro" +version = "0.0.0" +dependencies = [ + "heck 0.5.0", + "humantime", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "golem-wasm" +version = "0.0.0" +dependencies = [ + "chrono", + "itertools", + "uuid", + "wasip2", + "wit-bindgen-rt 0.44.0", + "wstd", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "foldhash 0.2.0", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "humantime" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + +[[package]] +name = "js-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "pin-project-lite" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "scalability_large_dynamic_memory" +version = "0.0.1" +dependencies = [ + "golem-rust", + "log", + "serde", + "serde_json", + "wstd", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "spdx" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e17e880bafaeb362a7b751ec46bdc5b61445a188f80e0606e68167cd540fa3" +dependencies = [ + "smallvec", +] + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "toml_datetime" +version = "1.0.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.10+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" +dependencies = [ + "winnow", +] + +[[package]] +name = "unicode-ident" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "uuid" +version = "1.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" +dependencies = [ + "getrandom", + "js-sys", + "serde_core", + "sha1_smol", + "wasm-bindgen", +] + +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + +[[package]] +name = "wasi-logger" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aa5201b7f5d96ef2e747a1f60a6dbc38bdd1287ce5e046d1498bd7a793f74b" +dependencies = [ + "log", + "wit-bindgen 0.24.0", +] + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd106365a7f5f7aa3c1916a98cbb3ad477f5ff96ddb130285a91c6e7429e67a" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + +[[package]] +name = "wasm-encoder" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9dca005e69bf015e45577e415b9af8c67e8ee3c0e38b5b0add5aa92581ed5c" +dependencies = [ + "leb128fmt", + "wasmparser 0.245.1", +] + +[[package]] +name = "wasm-metadata" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "094aea3cb90e09f16ee25a4c0e324b3e8c934e7fd838bfa039aef5352f44a917" +dependencies = [ + "anyhow", + "indexmap", + "serde", + "serde_derive", + "serde_json", + "spdx", + "wasm-encoder 0.202.0", + "wasmparser 0.202.0", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + +[[package]] +name = "wasm-metadata" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da55e60097e8b37b475a0fa35c3420dd71d9eb7bd66109978ab55faf56a57efb" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.245.1", + "wasmparser 0.245.1", +] + +[[package]] +name = "wasmparser" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6998515d3cf3f8b980ef7c11b29a9b1017d4cf86b99ae93b546992df9931413" +dependencies = [ + "bitflags", + "indexmap", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.2", + "indexmap", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" +dependencies = [ + "bitflags", + "hashbrown 0.16.1", + "indexmap", + "semver", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "winnow" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb4e7653763780be47e38f479e9aa83c768aa6a3b2ed086dc2826fdbbb7e7f5" +dependencies = [ + "wit-bindgen-rt 0.24.0", + "wit-bindgen-rust-macro 0.24.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "bitflags", + "wit-bindgen-rust-macro 0.51.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e915216dde3e818093168df8380a64fba25df468d626c80dd5d6a184c87e7c7" +dependencies = [ + "bitflags", + "wit-bindgen-rust-macro 0.53.1", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b67e11c950041849a10828c7600ea62a4077c01e8af72e8593253575428f91b" +dependencies = [ + "anyhow", + "wit-parser 0.202.0", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deda4b7e9f522d994906f6e6e0fc67965ea8660306940a776b76732be8f3933" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.245.1", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0780cf7046630ed70f689a098cd8d56c5c3b22f2a7379bbdb088879963ff96" +dependencies = [ + "bitflags", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "653c85dd7aee6fe6f4bded0d242406deadae9819029ce6f7d258c920c384358a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30acbe8fb708c3a830a33c4cb705df82659bf831b492ec6ca1a17a369cfeeafb" +dependencies = [ + "anyhow", + "heck 0.4.1", + "indexmap", + "wasm-metadata 0.202.0", + "wit-bindgen-core 0.24.0", + "wit-component 0.202.0", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863a7ab3c4dfee58db196811caeb0718b88412a0aef3d1c2b02fcbae1e37c688" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.245.1", + "wit-bindgen-core 0.53.1", + "wit-component 0.245.1", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b1b06eae85feaecdf9f2854f7cac124e00d5a6e5014bfb02eb1ecdeb5f265b9" +dependencies = [ + "anyhow", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.24.0", + "wit-bindgen-rust 0.24.0", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d14f3a9bfa3804bb0e9ab7f66da047f210eded6a1297ae3ba5805b384d64797f" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.53.1", + "wit-bindgen-rust 0.53.1", +] + +[[package]] +name = "wit-component" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c836b1fd9932de0431c1758d8be08212071b6bba0151f7bac826dbc4312a2a9" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.202.0", + "wasm-metadata 0.202.0", + "wasmparser 0.202.0", + "wit-parser 0.202.0", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] + +[[package]] +name = "wit-component" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4894f10d2d5cbc17c77e91f86a1e48e191a788da4425293b55c98b44ba3fcac9" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.245.1", + "wasm-metadata 0.245.1", + "wasmparser 0.245.1", + "wit-parser 0.245.1", +] + +[[package]] +name = "wit-parser" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744237b488352f4f27bca05a10acb79474415951c450e52ebd0da784c1df2bcc" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.202.0", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + +[[package]] +name = "wit-parser" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929" +dependencies = [ + "anyhow", + "hashbrown 0.16.1", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.245.1", +] + +[[package]] +name = "wstd" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f743611ee524c2416bc1513157eb3235ca24f4270d1b3ab19f93676fcff21398" +dependencies = [ + "anyhow", + "async-task", + "bytes", + "futures-lite", + "http", + "http-body", + "http-body-util", + "itoa", + "pin-project-lite", + "serde", + "serde_json", + "slab", + "wasip2", + "wstd-macro", +] + +[[package]] +name = "wstd-macro" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5db5d13d6e3f2b180b04be8ff8d5c35b37d5621d3e2d0aa85ab99adf817a780" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test-components/scalability/scalability-large-dynamic-memory/Cargo.toml b/test-components/scalability/scalability-large-dynamic-memory/Cargo.toml new file mode 100644 index 0000000000..2625591bfd --- /dev/null +++ b/test-components/scalability/scalability-large-dynamic-memory/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "scalability_large_dynamic_memory" +version = "0.0.1" +edition = "2021" + +[profile.release] +opt-level = "s" +lto = true + +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" + +[dependencies] +# To use common shared agent definitions, place them in common_lib and uncomment the line below +# common-lib = { path = "../../common-rust/common-lib" } + +log = { version = "0.4.29", features = ["kv"] } +golem-rust = { path = "../../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/scalability/components-rust/scalability-large-dynamic-memory/src/lib.rs b/test-components/scalability/scalability-large-dynamic-memory/src/lib.rs similarity index 100% rename from test-components/scalability/components-rust/scalability-large-dynamic-memory/src/lib.rs rename to test-components/scalability/scalability-large-dynamic-memory/src/lib.rs diff --git a/test-components/scalability/scalability-large-initial-memory/Cargo.lock b/test-components/scalability/scalability-large-initial-memory/Cargo.lock new file mode 100644 index 0000000000..be70ef5947 --- /dev/null +++ b/test-components/scalability/scalability-large-initial-memory/Cargo.lock @@ -0,0 +1,1234 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "async-task" +version = "4.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "autocfg" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" + +[[package]] +name = "bitflags" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" + +[[package]] +name = "bumpalo" +version = "3.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" + +[[package]] +name = "cc" +version = "1.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e" +dependencies = [ + "shlex", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "ctor" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec09e802f5081de6157da9a75701d6c713d8dc3ba52571fd4bd25f412644e8a6" +dependencies = [ + "ctor-proc-macro", + "dtor", +] + +[[package]] +name = "ctor-proc-macro" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2931af7e13dc045d8e9d26afccc6fa115d64e115c9c84b1166288b46f6782c2" + +[[package]] +name = "dtor" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cbdf2ad6846025e8e25df05171abfb30e3ababa12ee0a0e44b9bbe570633a8" +dependencies = [ + "dtor-proc-macro", +] + +[[package]] +name = "dtor-proc-macro" +version = "0.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7454e41ff9012c00d53cf7f475c5e3afa3b91b7c90568495495e8d9bf47a1055" + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "futures-core" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi", + "wasip2", + "wasip3", +] + +[[package]] +name = "golem-rust" +version = "0.0.0" +dependencies = [ + "async-trait", + "ctor", + "golem-rust-macro", + "golem-wasm", + "http", + "log", + "serde", + "serde_json", + "uuid", + "wasi-logger", + "wasip2", + "wit-bindgen 0.53.1", + "wstd", +] + +[[package]] +name = "golem-rust-macro" +version = "0.0.0" +dependencies = [ + "heck 0.5.0", + "humantime", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "golem-wasm" +version = "0.0.0" +dependencies = [ + "chrono", + "itertools", + "uuid", + "wasip2", + "wit-bindgen-rt 0.44.0", + "wstd", +] + +[[package]] +name = "hashbrown" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289" +dependencies = [ + "foldhash 0.1.5", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "foldhash 0.2.0", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "humantime" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "indexmap" +version = "2.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +dependencies = [ + "equivalent", + "hashbrown 0.16.1", + "serde", + "serde_core", +] + +[[package]] +name = "instant" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d75a2a4b1b190afb6f5425f10f6a8f959d2ea0b9c2b1d79553551850539e4674" + +[[package]] +name = "js-sys" +version = "0.3.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +dependencies = [ + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libc" +version = "0.2.169" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5aba8db14291edd000dfcc4d620c7ebfb122c613afb886ca8803fa4e128a20a" + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "memchr" +version = "2.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", +] + +[[package]] +name = "once_cell" +version = "1.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" + +[[package]] +name = "parking" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" + +[[package]] +name = "pin-project-lite" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff" + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit", +] + +[[package]] +name = "proc-macro2" +version = "1.0.92" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37d3544b3f2748c54e147655edb5025752e2303145b5aefb3c3ea2c78b973bb0" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "scalability_large_initial_memory" +version = "0.0.1" +dependencies = [ + "golem-rust", + "log", + "serde", + "serde_json", + "wstd", +] + +[[package]] +name = "semver" +version = "1.0.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "sha1_smol" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbfa15b3dddfee50a0fff136974b3e1bde555604ba463834a7eb7deb6417705d" + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" + +[[package]] +name = "spdx" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e17e880bafaeb362a7b751ec46bdc5b61445a188f80e0606e68167cd540fa3" +dependencies = [ + "smallvec", +] + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "toml_datetime" +version = "1.0.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.25.5+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca1a40644a28bce036923f6a431df0b34236949d111cc07cb6dca830c9ef2e1" +dependencies = [ + "indexmap", + "toml_datetime", + "toml_parser", + "winnow", +] + +[[package]] +name = "toml_parser" +version = "1.0.10+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" +dependencies = [ + "winnow", +] + +[[package]] +name = "unicode-ident" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83" + +[[package]] +name = "unicode-segmentation" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "uuid" +version = "1.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a68d3c8f01c0cfa54a75291d83601161799e4a89a39e0929f4b0354d88757a37" +dependencies = [ + "getrandom", + "js-sys", + "serde_core", + "sha1_smol", + "wasm-bindgen", +] + +[[package]] +name = "waker-fn" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7" + +[[package]] +name = "wasi-logger" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58aa5201b7f5d96ef2e747a1f60a6dbc38bdd1287ce5e046d1498bd7a793f74b" +dependencies = [ + "log", + "wit-bindgen 0.24.0", +] + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen 0.51.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.114" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd106365a7f5f7aa3c1916a98cbb3ad477f5ff96ddb130285a91c6e7429e67a" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + +[[package]] +name = "wasm-encoder" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9dca005e69bf015e45577e415b9af8c67e8ee3c0e38b5b0add5aa92581ed5c" +dependencies = [ + "leb128fmt", + "wasmparser 0.245.1", +] + +[[package]] +name = "wasm-metadata" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "094aea3cb90e09f16ee25a4c0e324b3e8c934e7fd838bfa039aef5352f44a917" +dependencies = [ + "anyhow", + "indexmap", + "serde", + "serde_derive", + "serde_json", + "spdx", + "wasm-encoder 0.202.0", + "wasmparser 0.202.0", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.244.0", + "wasmparser 0.244.0", +] + +[[package]] +name = "wasm-metadata" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da55e60097e8b37b475a0fa35c3420dd71d9eb7bd66109978ab55faf56a57efb" +dependencies = [ + "anyhow", + "indexmap", + "wasm-encoder 0.245.1", + "wasmparser 0.245.1", +] + +[[package]] +name = "wasmparser" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6998515d3cf3f8b980ef7c11b29a9b1017d4cf86b99ae93b546992df9931413" +dependencies = [ + "bitflags", + "indexmap", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags", + "hashbrown 0.15.2", + "indexmap", + "semver", +] + +[[package]] +name = "wasmparser" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f08c9adee0428b7bddf3890fc27e015ac4b761cc608c822667102b8bfd6995e" +dependencies = [ + "bitflags", + "hashbrown 0.16.1", + "indexmap", + "semver", +] + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "winnow" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a90e88e4667264a994d34e6d1ab2d26d398dcdca8b7f52bec8668957517fc7d8" +dependencies = [ + "memchr", +] + +[[package]] +name = "wit-bindgen" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb4e7653763780be47e38f479e9aa83c768aa6a3b2ed086dc2826fdbbb7e7f5" +dependencies = [ + "wit-bindgen-rt 0.24.0", + "wit-bindgen-rust-macro 0.24.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "bitflags", + "wit-bindgen-rust-macro 0.51.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e915216dde3e818093168df8380a64fba25df468d626c80dd5d6a184c87e7c7" +dependencies = [ + "bitflags", + "wit-bindgen-rust-macro 0.53.1", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b67e11c950041849a10828c7600ea62a4077c01e8af72e8593253575428f91b" +dependencies = [ + "anyhow", + "wit-parser 0.202.0", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.244.0", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deda4b7e9f522d994906f6e6e0fc67965ea8660306940a776b76732be8f3933" +dependencies = [ + "anyhow", + "heck 0.5.0", + "wit-parser 0.245.1", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0780cf7046630ed70f689a098cd8d56c5c3b22f2a7379bbdb088879963ff96" +dependencies = [ + "bitflags", +] + +[[package]] +name = "wit-bindgen-rt" +version = "0.44.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "653c85dd7aee6fe6f4bded0d242406deadae9819029ce6f7d258c920c384358a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30acbe8fb708c3a830a33c4cb705df82659bf831b492ec6ca1a17a369cfeeafb" +dependencies = [ + "anyhow", + "heck 0.4.1", + "indexmap", + "wasm-metadata 0.202.0", + "wit-bindgen-core 0.24.0", + "wit-component 0.202.0", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.244.0", + "wit-bindgen-core 0.51.0", + "wit-component 0.244.0", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "863a7ab3c4dfee58db196811caeb0718b88412a0aef3d1c2b02fcbae1e37c688" +dependencies = [ + "anyhow", + "heck 0.5.0", + "indexmap", + "prettyplease", + "syn", + "wasm-metadata 0.245.1", + "wit-bindgen-core 0.53.1", + "wit-component 0.245.1", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b1b06eae85feaecdf9f2854f7cac124e00d5a6e5014bfb02eb1ecdeb5f265b9" +dependencies = [ + "anyhow", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.24.0", + "wit-bindgen-rust 0.24.0", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.51.0", + "wit-bindgen-rust 0.51.0", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d14f3a9bfa3804bb0e9ab7f66da047f210eded6a1297ae3ba5805b384d64797f" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn", + "wit-bindgen-core 0.53.1", + "wit-bindgen-rust 0.53.1", +] + +[[package]] +name = "wit-component" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c836b1fd9932de0431c1758d8be08212071b6bba0151f7bac826dbc4312a2a9" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.202.0", + "wasm-metadata 0.202.0", + "wasmparser 0.202.0", + "wit-parser 0.202.0", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.244.0", + "wasm-metadata 0.244.0", + "wasmparser 0.244.0", + "wit-parser 0.244.0", +] + +[[package]] +name = "wit-component" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4894f10d2d5cbc17c77e91f86a1e48e191a788da4425293b55c98b44ba3fcac9" +dependencies = [ + "anyhow", + "bitflags", + "indexmap", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder 0.245.1", + "wasm-metadata 0.245.1", + "wasmparser 0.245.1", + "wit-parser 0.245.1", +] + +[[package]] +name = "wit-parser" +version = "0.202.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "744237b488352f4f27bca05a10acb79474415951c450e52ebd0da784c1df2bcc" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.202.0", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + +[[package]] +name = "wit-parser" +version = "0.245.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330698718e82983499419494dd1e3d7811a457a9bf9f69734e8c5f07a2547929" +dependencies = [ + "anyhow", + "hashbrown 0.16.1", + "id-arena", + "indexmap", + "log", + "semver", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.245.1", +] + +[[package]] +name = "wstd" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f743611ee524c2416bc1513157eb3235ca24f4270d1b3ab19f93676fcff21398" +dependencies = [ + "anyhow", + "async-task", + "bytes", + "futures-lite", + "http", + "http-body", + "http-body-util", + "itoa", + "pin-project-lite", + "serde", + "serde_json", + "slab", + "wasip2", + "wstd-macro", +] + +[[package]] +name = "wstd-macro" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5db5d13d6e3f2b180b04be8ff8d5c35b37d5621d3e2d0aa85ab99adf817a780" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/test-components/scalability/scalability-large-initial-memory/Cargo.toml b/test-components/scalability/scalability-large-initial-memory/Cargo.toml new file mode 100644 index 0000000000..8a14e6e292 --- /dev/null +++ b/test-components/scalability/scalability-large-initial-memory/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "scalability_large_initial_memory" +version = "0.0.1" +edition = "2021" + +[profile.release] +opt-level = "s" +lto = true + +[lib] +crate-type = ["cdylib"] +path = "src/lib.rs" + +[dependencies] +# To use common shared agent definitions, place them in common_lib and uncomment the line below +# common-lib = { path = "../../common-rust/common-lib" } + +log = { version = "0.4.29", features = ["kv"] } +golem-rust = { path = "../../../sdks/rust/golem-rust", features = ["export_golem_agentic"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1" +wstd = { version = "=0.6.5", features = ["default", "json"] } diff --git a/test-components/scalability/components-rust/scalability-large-initial-memory/src/lib.rs b/test-components/scalability/scalability-large-initial-memory/src/lib.rs similarity index 100% rename from test-components/scalability/components-rust/scalability-large-initial-memory/src/lib.rs rename to test-components/scalability/scalability-large-initial-memory/src/lib.rs diff --git a/test-components/scalability_large_dynamic_memory_release.wasm b/test-components/scalability_large_dynamic_memory_release.wasm index 6769cf7616..726bbefc13 100644 Binary files a/test-components/scalability_large_dynamic_memory_release.wasm and b/test-components/scalability_large_dynamic_memory_release.wasm differ diff --git a/test-components/scalability_large_initial_memory_release.wasm b/test-components/scalability_large_initial_memory_release.wasm index 00681dccba..e07507d8b6 100644 Binary files a/test-components/scalability_large_initial_memory_release.wasm and b/test-components/scalability_large_initial_memory_release.wasm differ