mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-15 12:03:53 +00:00
Add permission request handling to the Inspector UI so users can Allow, Always Allow, or Reject tool calls that require permissions instead of having them auto-cancelled. Wires up SDK onPermissionRequest/respondPermission through App → ChatPanel → ChatMessages with proper toolCallId-to-pendingId mapping. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| frontend | ||
| src | ||
| .gitignore | ||
| Dockerfile | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
| wrangler.jsonc | ||
Cloudflare Sandbox Agent Example
Deploy sandbox-agent inside a Cloudflare Sandbox.
Prerequisites
- Cloudflare account with Workers Paid plan
- Docker running locally for
wrangler dev ANTHROPIC_API_KEYorOPENAI_API_KEYfor the coding agents
Setup
- Install dependencies:
pnpm install
- Create
.dev.varswith your API keys:
echo "ANTHROPIC_API_KEY=your-api-key" > .dev.vars
Development
Start the development server:
pnpm run dev
Test the endpoint:
curl http://localhost:8787
Test prompt routing through the SDK with a custom sandbox fetch handler:
curl -N -X POST "http://localhost:8787/sandbox/demo/prompt" \
-H "Content-Type: application/json" \
-H "Accept: text/event-stream" \
-d '{"agent":"codex","prompt":"Reply with one short sentence."}'
The response is an SSE stream with events:
session.createdsession.eventprompt.completeddone
Troubleshooting: only two events
If you only see:
- outbound
session/prompt - inbound prompt result with
stopReason: "end_turn"
then ACP session/update notifications are not flowing. In Cloudflare sandbox paths this can happen if you forward AbortSignal from SDK fetch init into containerFetch(...) for long-lived ACP SSE requests.
Use:
const sdk = await SandboxAgent.connect({
fetch: (input, init) =>
sandbox.containerFetch(
input as Request | string | URL,
{
...(init ?? {}),
// Avoid passing AbortSignal through containerFetch; it can drop ACP SSE updates.
signal: undefined,
},
PORT,
),
});
Without session/update events, assistant text/tool deltas will not appear in UI streams.
Deploy
pnpm run deploy
Note: Production preview URLs require a custom domain with wildcard DNS routing. See Cloudflare Production Deployment for details.