From 8d5bdfd31a3b6e96acacad0bd870a233957fe95e Mon Sep 17 00:00:00 2001 From: Yuanhao Li Date: Sat, 17 Oct 2026 00:25:47 +0200 Subject: [PATCH] docs: why yoagent-rutis plugins are not available in a Worker MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not because a Worker cannot start a plugin process — yoagent-rutis can reach remote runtimes over wss (its websocket feature) without starting one — but because the crate does not build for wasm32 (rutis's host needs Tokio's networking: mio refuses the target), remote runtimes included. Found by the fact-check of #325. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01T7iq5hpndSiHQcnAsywKuG --- docs/concepts/extensions.md | 2 +- docs/guides/wasm-workers.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/concepts/extensions.md b/docs/concepts/extensions.md index c6a1ea4a..ee92e6f1 100644 --- a/docs/concepts/extensions.md +++ b/docs/concepts/extensions.md @@ -188,7 +188,7 @@ The loop and the `Extension` contract build for every target yoagent supports, s | Decision models: `ToolGate`, `InputGuard`, the advisor (`decision` feature) | yes | yes, over HTTP or the [`yoagent-workers`](https://github.com/yologdev/yoagent/tree/main/integrations/yoagent-workers) binding to Workers AI | | Built-in tools: shell, files, search | yes | no: there is no operating system | | MCP servers | stdio and HTTP | HTTP only | -| Plugins through [`yoagent-rutis`](https://github.com/yologdev/yoagent/tree/main/integrations/yoagent-rutis): TypeScript (Node or Bun), Python, Go, pi extensions, DSH plugins | yes | no: each plugin runtime is a process the host starts, and a Worker cannot start one | +| Plugins through [`yoagent-rutis`](https://github.com/yologdev/yoagent/tree/main/integrations/yoagent-rutis): TypeScript (Node or Bun), Python, Go, pi extensions, DSH plugins | yes | no: the crate does not build for `wasm32` (rutis's host needs Tokio's networking), so not even a runtime on another machine over `wss` (its `websocket` feature) can be reached from a Worker | A VM is a local machine as far as yoagent is concerned: the same build and the same features; only who runs it differs. diff --git a/docs/guides/wasm-workers.md b/docs/guides/wasm-workers.md index 14eab7d4..26c8a321 100644 --- a/docs/guides/wasm-workers.md +++ b/docs/guides/wasm-workers.md @@ -32,7 +32,7 @@ build for wasm32. | `AgentTool`s you write; HTTP MCP (`with_mcp_server_http`) | `FileBackend` for `SharedState` | | `SharedState` (in memory, or your own `SharedStateBackend`), sub-agents | `SkillSet` loading (compiles, but finds no directories: there is no filesystem) | | The `decision` feature | `PriceTable::fetch_cached` (its disk cache) | -| `Extension`s written in Rust (`Budget`, `ToolGate`, `InputGuard`, your own) | Plugins through `yoagent-rutis` (TypeScript, Python, Go, pi, DSH): each runtime is a process, and a Worker cannot start one | +| `Extension`s written in Rust (`Budget`, `ToolGate`, `InputGuard`, your own) | Plugins through `yoagent-rutis` (TypeScript, Python, Go, pi, DSH): the crate does not build for `wasm32`, remote runtimes over `wss` included | | Compaction: `LlmCompaction` runs only its deterministic tiers and never summarises | reqwest's default features (rustls TLS, HTTP/2, system proxy settings, charset decoding); SOCKS proxies | | | The `openapi` and `gasp` features (they need the filesystem and a full Tokio) |