diff --git a/Cargo.lock b/Cargo.lock index 552b16fcc09..1cab2e1e135 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5473,7 +5473,6 @@ dependencies = [ "tinyinference-providers", "tinyinference-voice", "tinyjuice-bus", - "tinymcp", "tinymcp-bus", "tinymemes-bus", "tinymemory-api", @@ -9453,13 +9452,12 @@ dependencies = [ [[package]] name = "tinymcp" -version = "0.18.5" +version = "0.18.6" dependencies = [ "base64 0.23.1", "dirs 7.0.0", "futures-util", "parking_lot", - "regex", "reqwest 0.12.28", "serde", "serde_json", @@ -9483,8 +9481,9 @@ dependencies = [ [[package]] name = "tinymcp-bus" -version = "0.18.5" +version = "0.18.6" dependencies = [ + "base64 0.23.1", "schemars", "serde", "serde_json", diff --git a/crates/openhuman-app/Cargo.lock b/crates/openhuman-app/Cargo.lock index f4d5b5d1f70..7c4afe35fba 100644 --- a/crates/openhuman-app/Cargo.lock +++ b/crates/openhuman-app/Cargo.lock @@ -1254,15 +1254,6 @@ dependencies = [ "dirs-sys 0.5.0", ] -[[package]] -name = "dirs" -version = "7.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d57d423b3c82e89b9a24ca3091fee61f456a26edbd28d26c65906f4bc1dcd8f" -dependencies = [ - "dirs-sys 0.5.0", -] - [[package]] name = "dirs-sys" version = "0.4.1" @@ -3816,7 +3807,7 @@ dependencies = [ "chrono", "chrono-tz", "directories 6.0.0", - "dirs 6.0.0", + "dirs", "dotenvy", "flate2", "fs2", @@ -3879,7 +3870,6 @@ dependencies = [ "tinyinference-providers", "tinyinference-voice", "tinyjuice-bus", - "tinymcp", "tinymcp-bus", "tinymemes-bus", "tinymemory-api", @@ -3952,7 +3942,7 @@ dependencies = [ "tauri-plugin-single-instance", "tauri-plugin-updater", "tempfile", - "tinymcp", + "tinymcp-bus", "tokio", "tokio-util", "toml 0.8.2", @@ -6100,7 +6090,7 @@ dependencies = [ "bytes", "cookie", "data-url", - "dirs 6.0.0", + "dirs", "dunce", "embed_plist", "getrandom 0.3.4", @@ -6150,7 +6140,7 @@ checksum = "bc9ce40b16101cb6ea63d3e221567affd1c3a9205f95d7bc574941a10636b632" dependencies = [ "anyhow", "cargo_toml", - "dirs 6.0.0", + "dirs", "glob", "heck 0.5.0", "json-patch", @@ -6320,7 +6310,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b28d8cabdeb0564f03ae261963de4bc3d98321cd3d213e76a81b7d344e5df606" dependencies = [ "base64 0.22.1", - "dirs 6.0.0", + "dirs", "flate2", "futures-util", "http", @@ -6607,7 +6597,7 @@ dependencies = [ "base64 0.22.1", "chrono", "chrono-tz", - "dirs 6.0.0", + "dirs", "flate2", "futures", "regex", @@ -7147,36 +7137,11 @@ dependencies = [ "url", ] -[[package]] -name = "tinymcp" -version = "0.18.5" -dependencies = [ - "base64 0.23.1", - "dirs 7.0.0", - "futures-util", - "parking_lot", - "regex", - "reqwest 0.12.28", - "serde", - "serde_json", - "sha2 0.11.0", - "thiserror 2.0.20", - "tinymcp-bus", - "tinystoragedrivers-core", - "tinystoragedrivers-secrets", - "tinytools", - "tinytools-std", - "tokio", - "tracing", - "url", - "urlencoding", - "uuid", -] - [[package]] name = "tinymcp-bus" -version = "0.18.5" +version = "0.18.6" dependencies = [ + "base64 0.23.1", "schemars 1.2.2", "serde", "serde_json", @@ -7838,7 +7803,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "045979e3f037cd18ad1cb2a419dfda133c5c29c9f3453370079f2255d46c257e" dependencies = [ "crossbeam-channel", - "dirs 6.0.0", + "dirs", "libappindicator", "muda", "objc2", @@ -9122,7 +9087,7 @@ dependencies = [ "block2", "cookie", "crossbeam-channel", - "dirs 6.0.0", + "dirs", "dom_query", "dpi", "dunce", diff --git a/crates/openhuman-app/Cargo.toml b/crates/openhuman-app/Cargo.toml index 454334bb9d4..2cdd36c2c13 100644 --- a/crates/openhuman-app/Cargo.toml +++ b/crates/openhuman-app/Cargo.toml @@ -70,7 +70,6 @@ serde_json = "1" # `openhuman-rpc`'s own: `http-client` (the relay client), `server` (the # embedded JSON-RPC server and `host::desktop`) and `jev` (the Jev-backed # `tool_search` ranker the product ships). -tinymcp = { path = "../../vendor/tinymcp/crates/tinymcp", default-features = false, features = ["ui"] } openhuman-rpc = { path = "../openhuman-rpc", default-features = false, features = [ "os-keyring", "http-client", @@ -94,6 +93,9 @@ openhuman-rpc = { path = "../openhuman-rpc", default-features = false, features "tinymemes", "storage-sqlite", ] } +# The widget scheme reduces CSP origins with `tinymcp_bus::ui`'s pure rules. +# The contract, not the module crate: hosts reach modules through `*-bus`. +tinymcp-bus = { path = "../../vendor/tinymcp/crates/tinymcp-bus" } # Tauri core and plugins. Use upstream Tauri's native WebView runtime (Wry), # rather than the removed Chromium/CEF fork. tauri = { version = "2.11", default-features = false, features = [ diff --git a/crates/openhuman-app/src/widget_scheme.rs b/crates/openhuman-app/src/widget_scheme.rs index 26ddb68c76b..fd694f7ec2d 100644 --- a/crates/openhuman-app/src/widget_scheme.rs +++ b/crates/openhuman-app/src/widget_scheme.rs @@ -33,7 +33,7 @@ fn declared_origins(query: &str) -> (Vec, Vec) { _ => {} } } - let reduce = |items: Vec| tinymcp::ui::https_origins(Some(&Value::Array(items))); + let reduce = |items: Vec| tinymcp_bus::ui::https_origins(Some(&Value::Array(items))); (reduce(connect), reduce(resource)) } diff --git a/crates/openhuman-core/Cargo.toml b/crates/openhuman-core/Cargo.toml index d9f5daa961a..7d29cd7c437 100644 --- a/crates/openhuman-core/Cargo.toml +++ b/crates/openhuman-core/Cargo.toml @@ -222,9 +222,8 @@ tinyconnectors-bus = { path = "../../vendor/tinyconnectors/crates/tinyconnectors -# tinymcp: pure tool-UI rules only (`tinymcp::ui`). The MCP runtime itself runs -# as a module behind `tinymcp-bus`. -tinymcp = { path = "../../vendor/tinymcp/crates/tinymcp", default-features = false, features = ["ui"] } +# tinymcp's contract, including the pure tool-UI rules (`tinymcp_bus::ui`). The +# MCP runtime itself runs as a module behind it. tinymcp-bus = { path = "../../vendor/tinymcp/crates/tinymcp-bus", features = ["schemars"] } # The transport-free channel vocabulary: inbound envelopes, outbound intents, # the config schema, controller metadata and relay frames. UNCONDITIONAL — `DomainEvent` embeds diff --git a/crates/openhuman-core/src/mcp/host.rs b/crates/openhuman-core/src/mcp/host.rs index 40fe014c64e..827dfa9dbd9 100644 --- a/crates/openhuman-core/src/mcp/host.rs +++ b/crates/openhuman-core/src/mcp/host.rs @@ -117,7 +117,7 @@ pub fn client_config(config: &Config) -> tinymcp_bus::McpClientConfig { client.client_identity.name = config.mcp_client.client_identity.name.clone(); client.client_identity.title = config.mcp_client.client_identity.title.clone(); client.client_identity.version = config.mcp_client.client_identity.version.clone(); - client.client_identity.capabilities = tinymcp::ui::client_capabilities(); + client.client_identity.capabilities = tinymcp_bus::ui::client_capabilities(); client.registry_auth = config.mcp_client.registry_auth.clone(); // GitBooks uses dedicated deferred tools and is not part of the configured diff --git a/crates/openhuman-core/src/mcp/ui/discovery.rs b/crates/openhuman-core/src/mcp/ui/discovery.rs index ab15a0313cd..73c218fadf8 100644 --- a/crates/openhuman-core/src/mcp/ui/discovery.rs +++ b/crates/openhuman-core/src/mcp/ui/discovery.rs @@ -7,7 +7,7 @@ use serde_json::Value; fn template_uri(meta: &Value) -> Option { - tinymcp::ui::template_from_meta(meta).map(|(uri, _)| uri) + tinymcp_bus::ui::template_from_meta(meta).map(|(uri, _)| uri) } fn meta_keys(meta: &Value) -> Vec { diff --git a/crates/openhuman-core/src/mcp/ui/mod.rs b/crates/openhuman-core/src/mcp/ui/mod.rs index d8e23ecef9a..f570f0a7adc 100644 --- a/crates/openhuman-core/src/mcp/ui/mod.rs +++ b/crates/openhuman-core/src/mcp/ui/mod.rs @@ -1,7 +1,7 @@ //! Tool-provided UI in the chat: MCP Apps widgets, OpenAI Apps SDK widgets, //! skill views, and the links a tool result offers. //! -//! - [`resolve`] applies `tinymcp::ui`'s rules to one call's descriptor +//! - [`resolve`] applies `tinymcp_bus::ui`'s rules to one call's descriptor //! `_meta` and result, giving a [`types::McpUiPresentation`], the metadata //! the chat surface renders, and caches any document the result carried. //! - [`decorate`] applies that to every MCP tool path. diff --git a/crates/openhuman-core/src/mcp/ui/ops.rs b/crates/openhuman-core/src/mcp/ui/ops.rs index 7419790cb2e..f66aa5b58f4 100644 --- a/crates/openhuman-core/src/mcp/ui/ops.rs +++ b/crates/openhuman-core/src/mcp/ui/ops.rs @@ -123,7 +123,7 @@ pub async fn tool_call( .tool_descriptor(&server_id, &tool_name) .await .ok_or_else(|| format!("`{tool_name}` is not offered by this server"))?; - if !tinymcp::ui::visible_to_app(descriptor.meta.as_ref()) { + if !tinymcp_bus::ui::visible_to_app(descriptor.meta.as_ref()) { tracing::debug!( server_id, tool_name, @@ -131,7 +131,7 @@ pub async fn tool_call( ); return Err(format!("`{tool_name}` cannot be called from a widget")); } - let read_only = tinymcp::ui::is_read_only(descriptor.annotations.as_ref()); + let read_only = tinymcp_bus::ui::is_read_only(descriptor.annotations.as_ref()); if !read_only && !confirmed { tracing::debug!( server_id, diff --git a/crates/openhuman-core/src/mcp/ui/resolve.rs b/crates/openhuman-core/src/mcp/ui/resolve.rs index 0b139edc249..727e6511e65 100644 --- a/crates/openhuman-core/src/mcp/ui/resolve.rs +++ b/crates/openhuman-core/src/mcp/ui/resolve.rs @@ -1,9 +1,9 @@ //! Turning one tool call into what the chat surface shows for it. //! -//! The rules are `tinymcp::ui`'s. This host keeps any widget document the +//! The rules are `tinymcp_bus::ui`'s. This host keeps any widget document the //! result carried, so the frame can load it by id. -pub use tinymcp::ui::{ +pub use tinymcp_bus::ui::{ https_origins, is_ui_uri, resource_from_contents, view_from_envelope, view_from_raw_result, MAX_STRUCTURED_BYTES, MAX_WIDGET_BYTES as MAX_RESOURCE_BYTES, }; @@ -15,7 +15,7 @@ use super::types::{McpUiPresentation, UiCallView}; /// nor a link. A document the result embedded is cached for the frame. #[must_use] pub fn presentation_from_view(view: &UiCallView) -> Option { - let resolved = tinymcp::ui::resolve_presentation(view)?; + let resolved = tinymcp_bus::ui::resolve_presentation(view)?; let mut presentation = resolved.presentation; if let Some((uri, document)) = resolved.prefetched { cache::put_read(&view.server_id, &uri, document); diff --git a/crates/openhuman-core/src/mcp/ui/tools.rs b/crates/openhuman-core/src/mcp/ui/tools.rs index cc6ce81575e..ecac08f51ea 100644 --- a/crates/openhuman-core/src/mcp/ui/tools.rs +++ b/crates/openhuman-core/src/mcp/ui/tools.rs @@ -15,7 +15,7 @@ use tinytools::{PermissionLevel, Tool, ToolCallOptions, ToolExposure, ToolResult use super::cache::{self, InlineEntry}; use super::resolve::{MAX_RESOURCE_BYTES, MAX_STRUCTURED_BYTES}; use super::types::{McpUiPresentation, UiCsp, UiFlavor, UiResource, MCP_APP_MIME, MCP_UI_KIND}; -use tinymcp::ui::extract_links; +use tinymcp_bus::ui::extract_links; /// The tool's registered name. pub const SHOW_UI_TOOL: &str = "show_ui"; diff --git a/crates/openhuman-core/src/mcp/ui/types.rs b/crates/openhuman-core/src/mcp/ui/types.rs index a299728ab3c..9c1d5f34f85 100644 --- a/crates/openhuman-core/src/mcp/ui/types.rs +++ b/crates/openhuman-core/src/mcp/ui/types.rs @@ -3,11 +3,11 @@ use serde_json::Value; -pub use tinymcp::ui::{ +pub use tinymcp_bus::ui::{ McpUiPresentation, UiCallView, UiCsp, UiFlavor, UiLink, UiLinkKind, UiResource, MCP_APPS_EXTENSION, MCP_APP_MIME, MCP_UI_KIND, }; -pub use tinymcp::MCP_RESULT_KIND; +pub use tinymcp_bus::MCP_RESULT_KIND; /// What a widget-initiated tool call needs to know about its target tool. #[derive(Debug, Clone, Default, PartialEq)] diff --git a/crates/openhuman-core/src/modules/registry/records_mcp_connectors.rs b/crates/openhuman-core/src/modules/registry/records_mcp_connectors.rs index 5ffe5bcfd5e..20dc215c6b5 100644 --- a/crates/openhuman-core/src/modules/registry/records_mcp_connectors.rs +++ b/crates/openhuman-core/src/modules/registry/records_mcp_connectors.rs @@ -27,93 +27,93 @@ pub(crate) const TINYMCP: ModuleRecord = ModuleRecord { description: "Model Context Protocol client: transports, registry, and the write-audit log", bus_name: tinymcp_bus::names::INTERFACE, object_path: tinymcp_bus::names::OBJECT_PATH, - version: "0.18.5", - release_url: "https://github.com/tinyhumansai/tinymcp/releases/tag/v0.18.5", + version: "0.18.6", + release_url: "https://github.com/tinyhumansai/tinymcp/releases/tag/v0.18.6", assets: &[ PlatformAsset { host_key: "archlinux-rolling-arm64", - archive: "tinymcp-0.18.5-archlinux-arm64.tar.gz", - sha256: "0a3760807e225282677caba6a157e5c6cc16cfe509d22a8acc372a9a4c77f9d1", + archive: "tinymcp-0.18.6-archlinux-arm64.tar.gz", + sha256: "228601b94dab7fa92c386e51fe73e91efa9b5c196deb123a8812d9876b64187a", }, PlatformAsset { host_key: "archlinux-rolling-x86_64", - archive: "tinymcp-0.18.5-archlinux-x86_64.tar.gz", - sha256: "84f3bb050943bc040204b316c3540e31b25457b4f36112f0248f3a2bbd3f85c5", + archive: "tinymcp-0.18.6-archlinux-x86_64.tar.gz", + sha256: "0d9b4ad6aeccda99e5b947a201fa3d378182ac388c83d488acc048fb8224abb4", }, PlatformAsset { host_key: "fedora-43-arm64", - archive: "tinymcp-0.18.5-fedora-43-arm64.tar.gz", - sha256: "fae7790e4df4418eb8fff18818f5df04d69e2c307d3613b0fc177ad0d1810804", + archive: "tinymcp-0.18.6-fedora-43-arm64.tar.gz", + sha256: "30a90ca8abb15958e50eaaf5d7dfb5e68e2bc0baccf546d4cd62901e5dbd9d30", }, PlatformAsset { host_key: "fedora-43-x86_64", - archive: "tinymcp-0.18.5-fedora-43-x86_64.tar.gz", - sha256: "b8fe422717db38f63619bd108b2b63e9a3f3d40e8cb2ab653076d76d55f8bcf8", + archive: "tinymcp-0.18.6-fedora-43-x86_64.tar.gz", + sha256: "d348a868b44fe86bab42709ea66a41b728957f69a3f6f531bea1ee026ee04280", }, PlatformAsset { host_key: "fedora-44-arm64", - archive: "tinymcp-0.18.5-fedora-44-arm64.tar.gz", - sha256: "cc3f6cf33631e28921dd4483dd390988ab9a86806b0ce26274fc92fe0c56c53c", + archive: "tinymcp-0.18.6-fedora-44-arm64.tar.gz", + sha256: "cbc0ec089cd23c8c1fceff15b872f186e1765f03a019096e90810193d8636cae", }, PlatformAsset { host_key: "fedora-44-x86_64", - archive: "tinymcp-0.18.5-fedora-44-x86_64.tar.gz", - sha256: "f92f83766f9f277ad8a8c4c9844cda5b1bcabc6404d8a133153cfeb941454f87", + archive: "tinymcp-0.18.6-fedora-44-x86_64.tar.gz", + sha256: "0a50f51af058ca4880466638ffba48552e2670f1107204a55810330995423b8a", }, PlatformAsset { host_key: "macos-15-arm64", - archive: "tinymcp-0.18.5-macos-15-arm64.tar.gz", - sha256: "c706d86b21edcd0bfd6a9b01ac055f475904ba82a003be4dbdd8c715237901b9", + archive: "tinymcp-0.18.6-macos-15-arm64.tar.gz", + sha256: "9db24e582c1b36e094bea7d293be6d344de82450ffaeb00dbf6436e9ae8c9b51", }, PlatformAsset { host_key: "macos-15-x86_64", - archive: "tinymcp-0.18.5-macos-15-x86_64.tar.gz", - sha256: "b675c9777403c7215ce850ec79cdf3607d244631a0dd20eca7be4967455e548e", + archive: "tinymcp-0.18.6-macos-15-x86_64.tar.gz", + sha256: "95b17758fba9c93ab29b4f65bb25fe1ab6e0447f4991f65ca5720d56c6c50e30", }, PlatformAsset { host_key: "macos-26-arm64", - archive: "tinymcp-0.18.5-macos-26-arm64.tar.gz", - sha256: "1296c0c405553eb30e4682dc304e657ebab2b7856a49f684e5a7aac6a287658b", + archive: "tinymcp-0.18.6-macos-26-arm64.tar.gz", + sha256: "070d048ca55e602024a8bf985c8d340b632af6676dda00638bcd26c58b5a636d", }, PlatformAsset { host_key: "macos-26-x86_64", - archive: "tinymcp-0.18.5-macos-26-x86_64.tar.gz", - sha256: "4c34fb291190b4317ecf895869c38baa14689693e89d9af344642a222d683157", + archive: "tinymcp-0.18.6-macos-26-x86_64.tar.gz", + sha256: "d4f813cfb21ed7d6288cf55b553173cd45100c6c0c55ca30df4fc91afe27c14a", }, PlatformAsset { host_key: "ubuntu-22.04-arm64", - archive: "tinymcp-0.18.5-ubuntu-22.04-arm64.tar.gz", - sha256: "404ec212c3b3143308ac7f892f558fbd1440e863e1f5a7cfeeb19d54c2bfcfad", + archive: "tinymcp-0.18.6-ubuntu-22.04-arm64.tar.gz", + sha256: "c317a9e99ad60c2e4a7fe3b42397d9dd14f24d0aa369a49ab479fb4c6423beff", }, PlatformAsset { host_key: "ubuntu-22.04-x86_64", - archive: "tinymcp-0.18.5-ubuntu-22.04-x86_64.tar.gz", - sha256: "bf569fb43def4f743c420701a4e9e39fc64679e1dceadac9e87894135d1b5013", + archive: "tinymcp-0.18.6-ubuntu-22.04-x86_64.tar.gz", + sha256: "c95e613930c97ab88fd32a5e83b8002373b79c7736faed6b95323ab82dd32a49", }, PlatformAsset { host_key: "ubuntu-24.04-arm64", - archive: "tinymcp-0.18.5-ubuntu-24.04-arm64.tar.gz", - sha256: "b1525e225a1481600624bd317c01cb2c13ccc4034860103fe775ff6ecda40803", + archive: "tinymcp-0.18.6-ubuntu-24.04-arm64.tar.gz", + sha256: "8fbd069465a8246a1049eaf31e10140f354341c7e2cbefd2a3c6b2da110beacf", }, PlatformAsset { host_key: "ubuntu-24.04-x86_64", - archive: "tinymcp-0.18.5-ubuntu-24.04-x86_64.tar.gz", - sha256: "f8c0b9dfc9a3a4b98314f5acf298c61b5ef96b3ce8605bad923a6bd642aefde6", + archive: "tinymcp-0.18.6-ubuntu-24.04-x86_64.tar.gz", + sha256: "94a780a8268f61a056be03429c7a63a8911576157cce17133c9788b8b23276ba", }, PlatformAsset { host_key: "windows-11-arm64", - archive: "tinymcp-0.18.5-windows-11-arm64.zip", - sha256: "305bb0401e92752672c4db1eecedadf2c6bb720a868ab2316f97287048081b49", + archive: "tinymcp-0.18.6-windows-11-arm64.zip", + sha256: "6fd81fbd5ebfafd0d3a32f552e45b4948aca0bf7364336c533aec94538ae4b51", }, PlatformAsset { host_key: "windows-2022-x86_64", - archive: "tinymcp-0.18.5-windows-2022-x86_64.zip", - sha256: "6457801f2919cfe5e47dfe3577f3f163ad3f7567a814f99e51a37dee254f9c86", + archive: "tinymcp-0.18.6-windows-2022-x86_64.zip", + sha256: "0319252c3b10184ee858597a6447f5b50f382ddd7e880e13be98f91bc50ea078", }, PlatformAsset { host_key: "windows-2025-x86_64", - archive: "tinymcp-0.18.5-windows-2025-x86_64.zip", - sha256: "2c2e2487c6b3fff2975df7b5928e688c46e42b9260afef02f72a0a77e1bc118a", + archive: "tinymcp-0.18.6-windows-2025-x86_64.zip", + sha256: "c9ec10631ce1902d065f31e58ce2e4ecfbc2c91d2d8fe236ad1276da26c527a0", }, ], load: LoadPolicy::Lazy, diff --git a/crates/openhuman-core/src/modules/registry_tests.rs b/crates/openhuman-core/src/modules/registry_tests.rs index 9f0f55fb3c3..ae0fd239af6 100644 --- a/crates/openhuman-core/src/modules/registry_tests.rs +++ b/crates/openhuman-core/src/modules/registry_tests.rs @@ -236,13 +236,13 @@ fn tinybox_registry_matches_the_published_v0134_release_manifest() { assert_eq!(actual, published); } #[test] -fn tinymcp_registry_matches_the_published_v0185_release_manifest() { +fn tinymcp_registry_matches_the_published_v0186_release_manifest() { let record = find("tinymcp").expect("compiled TinyMCP module"); - assert_eq!(record.version, "0.18.5"); - assert_eq!(tinymcp_bus::CONTRACT_VERSION, (1, 24)); + assert_eq!(record.version, "0.18.6"); + assert_eq!(tinymcp_bus::CONTRACT_VERSION, (1, 25)); assert_eq!( record.release_url, - "https://github.com/tinyhumansai/tinymcp/releases/tag/v0.18.5" + "https://github.com/tinyhumansai/tinymcp/releases/tag/v0.18.6" ); let actual = record .assets @@ -252,88 +252,88 @@ fn tinymcp_registry_matches_the_published_v0185_release_manifest() { let published = [ ( "archlinux-rolling-arm64", - "tinymcp-0.18.5-archlinux-arm64.tar.gz", - "0a3760807e225282677caba6a157e5c6cc16cfe509d22a8acc372a9a4c77f9d1", + "tinymcp-0.18.6-archlinux-arm64.tar.gz", + "228601b94dab7fa92c386e51fe73e91efa9b5c196deb123a8812d9876b64187a", ), ( "archlinux-rolling-x86_64", - "tinymcp-0.18.5-archlinux-x86_64.tar.gz", - "84f3bb050943bc040204b316c3540e31b25457b4f36112f0248f3a2bbd3f85c5", + "tinymcp-0.18.6-archlinux-x86_64.tar.gz", + "0d9b4ad6aeccda99e5b947a201fa3d378182ac388c83d488acc048fb8224abb4", ), ( "fedora-43-arm64", - "tinymcp-0.18.5-fedora-43-arm64.tar.gz", - "fae7790e4df4418eb8fff18818f5df04d69e2c307d3613b0fc177ad0d1810804", + "tinymcp-0.18.6-fedora-43-arm64.tar.gz", + "30a90ca8abb15958e50eaaf5d7dfb5e68e2bc0baccf546d4cd62901e5dbd9d30", ), ( "fedora-43-x86_64", - "tinymcp-0.18.5-fedora-43-x86_64.tar.gz", - "b8fe422717db38f63619bd108b2b63e9a3f3d40e8cb2ab653076d76d55f8bcf8", + "tinymcp-0.18.6-fedora-43-x86_64.tar.gz", + "d348a868b44fe86bab42709ea66a41b728957f69a3f6f531bea1ee026ee04280", ), ( "fedora-44-arm64", - "tinymcp-0.18.5-fedora-44-arm64.tar.gz", - "cc3f6cf33631e28921dd4483dd390988ab9a86806b0ce26274fc92fe0c56c53c", + "tinymcp-0.18.6-fedora-44-arm64.tar.gz", + "cbc0ec089cd23c8c1fceff15b872f186e1765f03a019096e90810193d8636cae", ), ( "fedora-44-x86_64", - "tinymcp-0.18.5-fedora-44-x86_64.tar.gz", - "f92f83766f9f277ad8a8c4c9844cda5b1bcabc6404d8a133153cfeb941454f87", + "tinymcp-0.18.6-fedora-44-x86_64.tar.gz", + "0a50f51af058ca4880466638ffba48552e2670f1107204a55810330995423b8a", ), ( "macos-15-arm64", - "tinymcp-0.18.5-macos-15-arm64.tar.gz", - "c706d86b21edcd0bfd6a9b01ac055f475904ba82a003be4dbdd8c715237901b9", + "tinymcp-0.18.6-macos-15-arm64.tar.gz", + "9db24e582c1b36e094bea7d293be6d344de82450ffaeb00dbf6436e9ae8c9b51", ), ( "macos-15-x86_64", - "tinymcp-0.18.5-macos-15-x86_64.tar.gz", - "b675c9777403c7215ce850ec79cdf3607d244631a0dd20eca7be4967455e548e", + "tinymcp-0.18.6-macos-15-x86_64.tar.gz", + "95b17758fba9c93ab29b4f65bb25fe1ab6e0447f4991f65ca5720d56c6c50e30", ), ( "macos-26-arm64", - "tinymcp-0.18.5-macos-26-arm64.tar.gz", - "1296c0c405553eb30e4682dc304e657ebab2b7856a49f684e5a7aac6a287658b", + "tinymcp-0.18.6-macos-26-arm64.tar.gz", + "070d048ca55e602024a8bf985c8d340b632af6676dda00638bcd26c58b5a636d", ), ( "macos-26-x86_64", - "tinymcp-0.18.5-macos-26-x86_64.tar.gz", - "4c34fb291190b4317ecf895869c38baa14689693e89d9af344642a222d683157", + "tinymcp-0.18.6-macos-26-x86_64.tar.gz", + "d4f813cfb21ed7d6288cf55b553173cd45100c6c0c55ca30df4fc91afe27c14a", ), ( "ubuntu-22.04-arm64", - "tinymcp-0.18.5-ubuntu-22.04-arm64.tar.gz", - "404ec212c3b3143308ac7f892f558fbd1440e863e1f5a7cfeeb19d54c2bfcfad", + "tinymcp-0.18.6-ubuntu-22.04-arm64.tar.gz", + "c317a9e99ad60c2e4a7fe3b42397d9dd14f24d0aa369a49ab479fb4c6423beff", ), ( "ubuntu-22.04-x86_64", - "tinymcp-0.18.5-ubuntu-22.04-x86_64.tar.gz", - "bf569fb43def4f743c420701a4e9e39fc64679e1dceadac9e87894135d1b5013", + "tinymcp-0.18.6-ubuntu-22.04-x86_64.tar.gz", + "c95e613930c97ab88fd32a5e83b8002373b79c7736faed6b95323ab82dd32a49", ), ( "ubuntu-24.04-arm64", - "tinymcp-0.18.5-ubuntu-24.04-arm64.tar.gz", - "b1525e225a1481600624bd317c01cb2c13ccc4034860103fe775ff6ecda40803", + "tinymcp-0.18.6-ubuntu-24.04-arm64.tar.gz", + "8fbd069465a8246a1049eaf31e10140f354341c7e2cbefd2a3c6b2da110beacf", ), ( "ubuntu-24.04-x86_64", - "tinymcp-0.18.5-ubuntu-24.04-x86_64.tar.gz", - "f8c0b9dfc9a3a4b98314f5acf298c61b5ef96b3ce8605bad923a6bd642aefde6", + "tinymcp-0.18.6-ubuntu-24.04-x86_64.tar.gz", + "94a780a8268f61a056be03429c7a63a8911576157cce17133c9788b8b23276ba", ), ( "windows-11-arm64", - "tinymcp-0.18.5-windows-11-arm64.zip", - "305bb0401e92752672c4db1eecedadf2c6bb720a868ab2316f97287048081b49", + "tinymcp-0.18.6-windows-11-arm64.zip", + "6fd81fbd5ebfafd0d3a32f552e45b4948aca0bf7364336c533aec94538ae4b51", ), ( "windows-2022-x86_64", - "tinymcp-0.18.5-windows-2022-x86_64.zip", - "6457801f2919cfe5e47dfe3577f3f163ad3f7567a814f99e51a37dee254f9c86", + "tinymcp-0.18.6-windows-2022-x86_64.zip", + "0319252c3b10184ee858597a6447f5b50f382ddd7e880e13be98f91bc50ea078", ), ( "windows-2025-x86_64", - "tinymcp-0.18.5-windows-2025-x86_64.zip", - "2c2e2487c6b3fff2975df7b5928e688c46e42b9260afef02f72a0a77e1bc118a", + "tinymcp-0.18.6-windows-2025-x86_64.zip", + "c9ec10631ce1902d065f31e58ce2e4ecfbc2c91d2d8fe236ad1276da26c527a0", ), ]; assert_eq!(actual, published); diff --git a/scripts/ci/module-boundaries.json b/scripts/ci/module-boundaries.json index cac3a1fd04a..4cb2e96e58a 100644 --- a/scripts/ci/module-boundaries.json +++ b/scripts/ci/module-boundaries.json @@ -114,11 +114,6 @@ }, "pendingContracts": [], "exceptions": [ - { - "scope": "hosts", - "package": "tinymcp", - "reason": "#7205 tinymcp::ui pure rules; move to tinymcp-bus tracked under #7868" - }, { "scope": "tinychannels-bus", "package": "anyhow", diff --git a/vendor/tinymcp b/vendor/tinymcp index b3694845891..3c3967fce3a 160000 --- a/vendor/tinymcp +++ b/vendor/tinymcp @@ -1 +1 @@ -Subproject commit b3694845891d68df85995d3b7770bb987d80e6c0 +Subproject commit 3c3967fce3acdddc65dbe63ca07f122254648868