Current boundaries
| Area | Current hosted behavior |
|---|---|
| Module format | Runnable JavaScript entrypoints; documentation uses .mjs |
| Extension SDK | No published TypeScript SDK or import package yet |
| Filesystem | Extension code runs in the sandbox and can use the agent workspace; protected runtime paths remain platform-owned |
| Worker access | No access to trusted worker process memory |
| Context | JSON-safe event projections plus ctx.external |
| Tool progress/cancellation arguments | Reserved; may currently be undefined in the extension tool function |
| Mid-turn steering | Not exposed through the hosted extension contract |
| Dynamic model/tools | Supported from before_agent_start and restored for durable follow-ups |
Discovery is not execution
salambo manifest imports the extension with a discovery-only pi surface. It discovers registerTool() and on() calls. Runtime-only operations such as setModel() and setActiveTools() belong inside handlers.