{"_id":"@agentkit-js/mastra-sandbox","_rev":"2-b5cf05343db6247bcbf22c637a798810","name":"@agentkit-js/mastra-sandbox","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@agentkit-js/mastra-sandbox","version":"0.1.0","keywords":["mastra","sandbox","code-execution","wasm","agent","agentkit"],"author":{"name":"agentkit-js contributors"},"license":"Apache-2.0","_id":"@agentkit-js/mastra-sandbox@0.1.0","maintainers":[{"name":"tellerlin","email":"lintao_mailbox@163.com"}],"homepage":"https://github.com/telleroutlook/agentkit-js/tree/main/packages/mastra-sandbox#readme","bugs":{"url":"https://github.com/telleroutlook/agentkit-js/issues"},"dist":{"shasum":"f6acd89aa89600db5794938aecd9106430bfca16","tarball":"https://registry.npmjs.org/@agentkit-js/mastra-sandbox/-/mastra-sandbox-0.1.0.tgz","fileCount":7,"integrity":"sha512-hxnrQPHCaHm6uFNc2nWEZPsMYqxeDkEkPhbrvRYbcgTuY/zPQv6nxiKngb3wuKWp28l8qdn4zAlyES32UcyFWA==","signatures":[{"sig":"MEQCICxqiLfe4z8JVAHBT4IACL36TIYnWSO62ybrZIjH+kDJAiBj3C1tySDpovrAk2pw2R460L/1WBTO2wAOuw0W2js1sA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@agentkit-js%2fmastra-sandbox@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":25575},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c629f75b91a8855e107cb0130c858b10e8ea6e79","scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist .turbo","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"tellerlin","email":"lintao_mailbox@163.com"},"repository":{"url":"git+https://github.com/telleroutlook/agentkit-js.git","type":"git","directory":"packages/mastra-sandbox"},"_npmVersion":"10.9.8","description":"Mastra sandbox provider backed by agentkit-js kernels — WASM isolation with no external infrastructure (alternative to Blaxel/E2B providers)","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@agentkit-js/core":"workspace:*"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mastra-sandbox_0.1.0_1781508320814_0.304853902031484","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-06-15T07:25:20.598Z","modified":"2026-07-04T01:07:21.104Z","0.1.0":"2026-06-15T07:25:21.025Z"},"bugs":{"url":"https://github.com/telleroutlook/agentkit-js/issues"},"author":{"name":"agentkit-js contributors"},"license":"Apache-2.0","homepage":"https://github.com/telleroutlook/agentkit-js/tree/main/packages/mastra-sandbox#readme","keywords":["mastra","sandbox","code-execution","wasm","agent","agentkit"],"repository":{"url":"git+https://github.com/telleroutlook/agentkit-js.git","type":"git","directory":"packages/mastra-sandbox"},"description":"Mastra sandbox provider backed by agentkit-js kernels — WASM isolation with no external infrastructure (alternative to Blaxel/E2B providers)","maintainers":[{"email":"lintao_mailbox@163.com","name":"tellerlin"},{"email":"hyin.sybase@gmail.com","name":"haining-yin"}],"readme":"# @agentkit-js/mastra-sandbox\n\n> A **Mastra** sandbox provider backed by agentkit-js kernels. WASM\n> isolation with no external infrastructure — drop-in alternative to\n> Blaxel / E2B / Daytona providers.\n\n[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/telleroutlook/agentkit-js/tree/main/examples/mastra-quickjs?file=index.mjs)\n\n## Why this exists\n\nMastra (mastra.ai) opened its sandbox-provider contract in 2026-02 so users\ncan plug in a custom code-execution backend. The defaults are\nservice-backed (Blaxel-hosted, E2B-hosted) — fine if you're already paying\nfor one of those, awkward when you're not.\n\nThis package ships a Mastra sandbox provider that delegates to any agentkit\nkernel. WASM kernels (`QuickJSKernel`, `PyodideKernel`, `WasmtimeKernel`) run\nin-process, on every Workers edge, with sub-100ms cold start — no API key,\nno account, no billing.\n\n## Compared to Blaxel / E2B providers\n\n|              | agentkit kernel | Blaxel / E2B sandbox |\n| ------------ | --------------- | -------------------- |\n| Cold start   | ~50 ms          | 200–800 ms           |\n| Cost / call  | $0 (in-process) | per-second billing   |\n| Isolation    | Language-level  | Process / firecracker |\n| Workers safe | ✅               | ❌ (server required)  |\n| Snapshots    | ✅ (Wasmtime)    | ✅ (image-level)      |\n\nUse a WASM kernel when \"model wrote a snippet to do math / parse JSON / try\nsomething\" is the workload. Use Blaxel/E2B when you need full POSIX, native\nbinaries, or untrusted multi-tenant isolation across mutually-distrusting\ncustomers.\n\n## Install\n\n```bash\nnpm install @agentkit-js/mastra-sandbox @agentkit-js/kernel-quickjs \\\n  quickjs-emscripten @jitl/quickjs-wasmfile-release-sync\n```\n\n## Use it\n\n```ts\nimport { Agent } from \"@mastra/core\";\nimport { QuickJSKernel } from \"@agentkit-js/kernel-quickjs\";\nimport { agentkitMastraSandbox } from \"@agentkit-js/mastra-sandbox\";\n\nconst sandbox = agentkitMastraSandbox({\n  kernel: new QuickJSKernel({ timeoutMs: 5_000 }),\n  capabilities: {\n    allowedHosts: [\"api.example.com\"],\n    cpuMs: 5_000,\n    memoryLimitBytes: 64 * 1024 * 1024,\n    env: { OPENAI_API_KEY: process.env.OPENAI_API_KEY ?? \"\" },\n  },\n});\n\nconst agent = new Agent({\n  name: \"my-agent\",\n  // …whichever Mastra config wires sandboxes (e.g. tools.execute_code,\n  // workspace runtime, etc.). The provider implements the\n  // execute(code, options) -> { output, stderr, exitCode } contract Mastra\n  // calls into; consult Mastra's docs for the latest wiring path.\n  tools: { sandbox },\n});\n```\n\n## Capability manifest\n\nEvery kernel honours the same `CapabilityManifest`:\n\n| Field               | What it gates                                |\n| ------------------- | -------------------------------------------- |\n| `allowedHosts`      | Outbound `fetch()` (glob host allow-list)    |\n| `allowedReadPaths`  | `__fs__.readFile(path)`                      |\n| `allowedWritePaths` | `__fs__.writeFile(path, data)`               |\n| `env`               | Frozen `__env__` map exposed inside sandbox  |\n| `cpuMs`             | Per-call timeout (tightens kernel default)   |\n| `memoryLimitBytes`  | Hard runtime memory cap (where supported)    |\n\nThe provider also accepts per-call `timeout` and `env` in\n`execute(code, options)` — these tighten / merge into the provider-level\nmanifest at call time.\n\n## See also\n\n- [`docs/guides/code-mode.md`](https://github.com/telleroutlook/agentkit-js/blob/main/docs/guides/code-mode.md)\n  — the same kernels behind a standalone MCP server.\n- [`@agentkit-js/aisdk`](https://www.npmjs.com/package/@agentkit-js/aisdk)\n  — the same kernels as Vercel AI SDK tools.\n","readmeFilename":"README.md"}