Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: 71023aec1546d6d677a65669c5665c0927ce0dd0
1.0 KiB
1.0 KiB
pi-codemode on Cloudflare
This example has two Workers:
sandbox/deploysCodemodeSandboxDurableObjectas its own Worker,pi-codemode-sandbox. Scripts run there, in a separate isolate.agent/has aSessionDurable Object that owns the tools. It runs scripts throughRemoteCodemodeSandbox, which keeps the tools and results inSessionwhile the sandbox Worker runs the VM.
The README of the package explains why the sandbox must be a separate Worker, and which limits apply.
Try it locally
Install @earendil-works/pi-codemode and wrangler in each directory, then start both Workers in
one process:
npx wrangler dev -c agent/wrangler.jsonc -c sandbox/wrangler.jsonc
curl -X POST http://localhost:8787 --data 'const n = await tools.count({ add: 2 }); text("n=" + n); return n'
Deploy
Deploy the sandbox first, because the agent's binding refers to it by name:
(cd sandbox && npx wrangler deploy)
(cd agent && npx wrangler deploy)