Skip to content

docs: where extensions run — local machine, VM, Cloudflare Worker - #325

Merged
yuanhao merged 1 commit into
mainfrom
docs/where-extensions-run
Oct 16, 2026
Merged

yuanhao merged 1 commit into
mainfrom
docs/where-extensions-run

Conversation

@yuanhao

@yuanhao yuanhao commented Oct 16, 2026

Copy link
Copy Markdown
Collaborator

Why

The docs explained the Extension contract and, separately, what builds for wasm32. They never said which extensions survive the move to a Cloudflare Worker. A reader could not tell that Rust extensions and decision models work there while yoagent-rutis plugins do not.

What

  • docs/concepts/extensions.md gains a section, "Where extensions run". It compares a local machine or VM with a Cloudflare Worker for:

    • Extensions written in Rust (your own, Budget): both;
    • decision models (ToolGate, InputGuard, the advisor): both, over HTTP or the yoagent-workers binding;
    • built-in tools: local only;
    • MCP: stdio and HTTP locally, HTTP only in a Worker;
    • yoagent-rutis plugins: local only, because each plugin runtime is a process and a Worker cannot start one.

    It says a VM is a local machine as far as yoagent is concerned, and how to build an agent meant for a Worker.

  • docs/guides/wasm-workers.md's "What is available" table gains the same row, extensions in the left column and yoagent-rutis plugins in the right, and links to the new section.

Evidence for "extensions work in a Worker": tests/wasm32.rs runs an extension that gates and observes a whole run, in the wasm32 CI job.

Not included, on purpose: the capability and registry design for apps (which extension provides a capability per target, with a run kept all local or all cloud). That design is in the private yo repo and is not built; these docs describe what exists.

🤖 Generated with Claude Code

https://claude.ai/code/session_01T7iq5hpndSiHQcnAsywKuG

The extensions page gains a "Where extensions run" section: Rust
extensions (yours, Budget) and decision models run everywhere the loop
does, Workers included (tests/wasm32.rs runs an extension over a whole
run); built-in tools, stdio MCP and yoagent-rutis plugins need an
operating system (a plugin runtime is a process a Worker cannot start).
A VM is a local machine as far as yoagent is concerned. The Workers
guide's availability table gains the same row and links to it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01T7iq5hpndSiHQcnAsywKuG
@yuanhao
yuanhao merged commit 75763f7 into main Oct 16, 2026
16 checks passed
@yuanhao
yuanhao deleted the docs/where-extensions-run branch October 16, 2026 22:25
yuanhao added a commit that referenced this pull request Oct 16, 2026
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.


Claude-Session: https://claude.ai/code/session_01T7iq5hpndSiHQcnAsywKuG

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant