Write workflows. Keep the host out of reach.

Run agent-authored TypeScript inside a fresh QuickJS context, then bridge approved tool calls back through Controller.

One program, lazy tools

const { items } = await tools.search({
  query: "open issues for customer"
})

const issues = await tools[items[0].path]({
  customer_id: "cus_123"
})

emit({ type: "progress", count: issues.length })
return issues

Top-level await and return let an agent compose discovery and several upstream calls inside one bounded run.

  • * Lazy tools search, describe, and invocation
  • * Structured emit output
  • * A bridged console
  • * No up-front catalog schema dump

A deliberately small world

Not ambient

No direct fetch, filesystem, process, module, Bun, Deno, WebSocket, or raw secret access. Upstream work can happen only through Controller's bridged invoker.

Default timeout

5 seconds

Hard cap: 60 seconds

Default memory

32 MiB

Hard cap: 128 MiB

No detached work

When execution ends or times out, Controller aborts in-flight bridged calls instead of leaving upstream operations behind.

Pause without replay

Before the pause

The program may already have searched, described, and invoked other tools before a later call requires approval.

After approval

Controller restores the checkpoint and continues from the pending call. Work completed before the pause remains completed.

  • * A resume token addresses the saved execution.
  • * Completed bridged calls are not replayed.
  • * Later governed calls may create another checkpoint.