{"_id":"@asciidev/eve-box","_rev":"7-ad958f44d3ed1cd400050a37467e18de","name":"@asciidev/eve-box","dist-tags":{"latest":"0.1.6"},"versions":{"0.1.0":{"name":"@asciidev/eve-box","version":"0.1.0","keywords":["eve","sandbox","ascii","box","agent"],"license":"MIT","_id":"@asciidev/eve-box@0.1.0","maintainers":[{"name":"anicetngrt","email":"an.nougaret@gmail.com"}],"homepage":"https://github.com/ariana-dot-dev/eve-box#readme","bugs":{"url":"https://github.com/ariana-dot-dev/eve-box/issues"},"dist":{"shasum":"db5a94d2edd32f4501ec6b4ad7004da4ea1a8ba7","tarball":"https://registry.npmjs.org/@asciidev/eve-box/-/eve-box-0.1.0.tgz","fileCount":20,"integrity":"sha512-bDdfnc2ECmZQLJGhMBnwhwZ66aMT+RIN7/yNzNreFqdmb4031XS+EmHLzq2ZL3nONyAzjXPrAXjN6sKE4bb5Dg==","signatures":[{"sig":"MEQCIGt4OU3EWqcvj7k7vZBJf4STSi5hFcwoxz919szL0rrJAiBdPUgtPUp0bDJW+Ig/cAOzUxMGAYI7aktNThKiMjtroQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72504},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"cd1fe3e2a5c8c6f76f1313ba43c7b3f9f14406d5","scripts":{"test":"npm run test:eve-box","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:eve-box":"npm run build && node --env-file-if-exists=.env --test dist/test/eve-box-backend.test.js"},"_npmUser":{"name":"anicetngrt","email":"an.nougaret@gmail.com"},"repository":{"url":"git+https://github.com/ariana-dot-dev/eve-box.git","type":"git"},"_npmVersion":"11.16.0","description":"Eve sandbox backend for Ascii Box.","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eve":"^0.11.2","typescript":"^5.8.3","@types/node":"^22.15.30"},"peerDependencies":{"eve":"^0.11.2"},"_npmOperationalInternal":{"tmp":"tmp/eve-box_0.1.0_1781741822489_0.7982032341632459","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@asciidev/eve-box","version":"0.1.1","keywords":["eve","sandbox","ascii","box","agent"],"license":"MIT","_id":"@asciidev/eve-box@0.1.1","maintainers":[{"name":"anicetngrt","email":"an.nougaret@gmail.com"}],"homepage":"https://github.com/ariana-dot-dev/eve-box#readme","bugs":{"url":"https://github.com/ariana-dot-dev/eve-box/issues"},"dist":{"shasum":"d6729ed8feac7ed8b681ea0eb5bd1c13838c14a7","tarball":"https://registry.npmjs.org/@asciidev/eve-box/-/eve-box-0.1.1.tgz","fileCount":20,"integrity":"sha512-fqQ2nXSN1/nHMTHTw6Bk86xY/cNNPL+pr/wb8ht305YnFhY29hYqV8nRZF0XlUAUhooubNg/L+5yU5zim8AxAA==","signatures":[{"sig":"MEUCICGpEbtNzrhTfh+TKoS3fhbHe7MhDVFtXm7+d+NbdCBzAiEArugbIggtFvpFxWznIzOz80cUaSYSDXdovyAol2wjZKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":70834},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"fdff23bb88cd64e5c12e710d97e1effcb72f1b24","scripts":{"test":"npm run test:eve-box","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:eve-box":"npm run build && node --env-file-if-exists=.env --test dist/test/eve-box-backend.test.js"},"_npmUser":{"name":"anicetngrt","email":"an.nougaret@gmail.com"},"repository":{"url":"git+https://github.com/ariana-dot-dev/eve-box.git","type":"git"},"_npmVersion":"11.16.0","description":"Eve sandbox backend for Ascii Box.","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eve":"^0.11.2","typescript":"^5.8.3","@types/node":"^22.15.30"},"peerDependencies":{"eve":"^0.11.2"},"_npmOperationalInternal":{"tmp":"tmp/eve-box_0.1.1_1781742603424_0.5891655223203467","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@asciidev/eve-box","version":"0.1.2","keywords":["eve","sandbox","ascii","box","agent"],"license":"MIT","_id":"@asciidev/eve-box@0.1.2","maintainers":[{"name":"anicetngrt","email":"an.nougaret@gmail.com"}],"homepage":"https://github.com/ariana-dot-dev/eve-box#readme","bugs":{"url":"https://github.com/ariana-dot-dev/eve-box/issues"},"dist":{"shasum":"5d4f7e5f8090f801270b507cd2a28dfc8dc45d3e","tarball":"https://registry.npmjs.org/@asciidev/eve-box/-/eve-box-0.1.2.tgz","fileCount":20,"integrity":"sha512-a3WAcTcJbTXn/xsYKt0gdOlrBbNNZNKdrRf7M4Vun5Lj9cPIJGC0oRBQZVtA6iIlH1BkOXtl7n7/p3zJ66TS9g==","signatures":[{"sig":"MEUCIQCC9/EyQ0N0VXuwyw0TlcaodjbMrOznO82Lujj/nMyVHAIgAnIK9GKJ5rf5GnEXOrASKTXaTYIU7KTrY66bVqREsp0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67279},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"b14d2d969be2192b48920429abfda8fc4b38f1bb","scripts":{"test":"npm run test:eve-box","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:eve-box":"npm run build && node --env-file-if-exists=.env --test dist/test/eve-box-backend.test.js"},"_npmUser":{"name":"anicetngrt","email":"an.nougaret@gmail.com"},"repository":{"url":"git+https://github.com/ariana-dot-dev/eve-box.git","type":"git"},"_npmVersion":"11.16.0","description":"Eve sandbox backend for Ascii Box.","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eve":"^0.11.2","typescript":"^5.8.3","@types/node":"^22.15.30"},"peerDependencies":{"eve":"^0.11.2"},"_npmOperationalInternal":{"tmp":"tmp/eve-box_0.1.2_1781743163118_0.42178193108391837","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@asciidev/eve-box","version":"0.1.3","keywords":["eve","sandbox","ascii","box","agent"],"license":"MIT","_id":"@asciidev/eve-box@0.1.3","maintainers":[{"name":"anicetngrt","email":"an.nougaret@gmail.com"}],"homepage":"https://github.com/ariana-dot-dev/eve-box#readme","bugs":{"url":"https://github.com/ariana-dot-dev/eve-box/issues"},"dist":{"shasum":"538f66e4d988288fca2c1d69b6d3302c9eb5f468","tarball":"https://registry.npmjs.org/@asciidev/eve-box/-/eve-box-0.1.3.tgz","fileCount":20,"integrity":"sha512-ilt3IW42ploMcPZ9wJyt671S29PNdEVjC8nGi7J2XC/evjjDsnIdeNeBC2oNpQl9qvgaDuldRbN21DQF+t6yFw==","signatures":[{"sig":"MEYCIQCo2bAWUn1wZYzVoGIhR9xyyXreyrqAWuPoCc7lca3tawIhANfaRI2nUd+3Qwyi131FAQIxSfOcP93FENr7F2JX7dpf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67531},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"c931ac47315f570ff3c48b18b306af33e22c4c06","scripts":{"test":"npm run test:eve-box","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:eve-box":"npm run build && node --env-file-if-exists=.env --test dist/test/eve-box-backend.test.js"},"_npmUser":{"name":"anicetngrt","email":"an.nougaret@gmail.com"},"repository":{"url":"git+https://github.com/ariana-dot-dev/eve-box.git","type":"git"},"_npmVersion":"11.16.0","description":"Eve sandbox backend for Ascii Box.","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eve":"^0.11.2","typescript":"^5.8.3","@types/node":"^22.15.30"},"peerDependencies":{"eve":"^0.11.2"},"_npmOperationalInternal":{"tmp":"tmp/eve-box_0.1.3_1781743683570_0.2623137138625382","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@asciidev/eve-box","version":"0.1.4","keywords":["eve","sandbox","ascii","box","agent"],"license":"MIT","_id":"@asciidev/eve-box@0.1.4","maintainers":[{"name":"anicetngrt","email":"an.nougaret@gmail.com"}],"homepage":"https://github.com/ariana-dot-dev/eve-box#readme","bugs":{"url":"https://github.com/ariana-dot-dev/eve-box/issues"},"dist":{"shasum":"a7d28ddfd9931e46ce08f9eb7f8cb1430beec48a","tarball":"https://registry.npmjs.org/@asciidev/eve-box/-/eve-box-0.1.4.tgz","fileCount":20,"integrity":"sha512-t90Jt6W/9wD4yjRpZjt00Pm2/XlVCUOq/KmJjCERfDdjyK84DhDDpnXJWB6NiDV9Yp5prVeKolaCzJ++0drbgw==","signatures":[{"sig":"MEQCIFcU6DQDU9py+DfJasvHv5i1k5GzDCDp2Plra+nb/KTKAiBhHQ5egZAz1cO2UT2T0Hf2vF/RHnTv4gk80jC1OyjgBA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67453},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"581347bb54e64599907080d9b300b8cdba2fb39b","scripts":{"test":"npm run test:eve-box","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:eve-box":"npm run build && node --env-file-if-exists=.env --test dist/test/eve-box-backend.test.js"},"_npmUser":{"name":"anicetngrt","email":"an.nougaret@gmail.com"},"repository":{"url":"git+https://github.com/ariana-dot-dev/eve-box.git","type":"git"},"_npmVersion":"11.16.0","description":"Eve sandbox backend for Ascii Box.","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eve":"^0.11.2","typescript":"^5.8.3","@types/node":"^22.15.30"},"peerDependencies":{"eve":"^0.11.2"},"_npmOperationalInternal":{"tmp":"tmp/eve-box_0.1.4_1781745777128_0.7546401277841879","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@asciidev/eve-box","version":"0.1.5","keywords":["eve","sandbox","ascii","box","agent"],"license":"MIT","_id":"@asciidev/eve-box@0.1.5","maintainers":[{"name":"anicetngrt","email":"an.nougaret@gmail.com"}],"homepage":"https://github.com/ariana-dot-dev/eve-box#readme","bugs":{"url":"https://github.com/ariana-dot-dev/eve-box/issues"},"dist":{"shasum":"70fb30aff3f45c72e6a8a3f827051bc7db1dc327","tarball":"https://registry.npmjs.org/@asciidev/eve-box/-/eve-box-0.1.5.tgz","fileCount":20,"integrity":"sha512-ezqT1p4fswqDVCdnGO2FHAPWoMCtlRa4GcUKr1GcRDRA++rBqHmQokGgOWHvPVXNgAUsm6ls8ILytuvXOrOfig==","signatures":[{"sig":"MEUCIDOaqczfA5RddgEXuAIP8FZum7LrXwm/rempOfx2mXoBAiEAsH1ZHufG829i3tZHcLbaM2wuhSVRmclLnZD8ZuJeXGg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72043},"main":"./dist/src/index.js","type":"module","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"gitHead":"ece6131bf985d3b4f240da9bfe3ae7bacc410b58","scripts":{"test":"npm run test:eve-box","build":"npm run clean && tsc -p tsconfig.json","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","test:eve-box":"npm run build && node --env-file-if-exists=.env --test dist/test/eve-box-backend.test.js"},"_npmUser":{"name":"anicetngrt","email":"an.nougaret@gmail.com"},"repository":{"url":"git+https://github.com/ariana-dot-dev/eve-box.git","type":"git"},"_npmVersion":"11.16.0","description":"Eve sandbox backend for Ascii Box.","directories":{},"_nodeVersion":"22.13.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"eve":"^0.11.2","typescript":"^5.8.3","@types/node":"^22.15.30"},"peerDependencies":{"eve":"^0.11.2"},"_npmOperationalInternal":{"tmp":"tmp/eve-box_0.1.5_1781746343948_0.25144352898300726","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@asciidev/eve-box","version":"0.1.6","description":"Eve sandbox backend for Ascii Box.","type":"module","main":"./dist/src/index.js","types":"./dist/src/index.d.ts","exports":{".":{"types":"./dist/src/index.d.ts","import":"./dist/src/index.js"}},"scripts":{"clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","build":"npm run clean && tsc -p tsconfig.json","test:eve-box":"npm run build && node --env-file-if-exists=.env --test dist/test/eve-box-backend.test.js","test":"npm run test:eve-box"},"repository":{"type":"git","url":"git+https://github.com/ariana-dot-dev/eve-box.git"},"homepage":"https://github.com/ariana-dot-dev/eve-box#readme","bugs":{"url":"https://github.com/ariana-dot-dev/eve-box/issues"},"keywords":["eve","sandbox","ascii","box","agent"],"devDependencies":{"@types/node":"^22.15.30","eve":"^0.11.2","typescript":"^5.8.3"},"peerDependencies":{"eve":"^0.11.2"},"publishConfig":{"access":"public"},"license":"MIT","gitHead":"e1458af9622421728fccf85dae78b462ace85bde","_id":"@asciidev/eve-box@0.1.6","_nodeVersion":"22.13.1","_npmVersion":"11.16.0","dist":{"integrity":"sha512-de1MjcuIUlO9KbRypmxp9z1Pl/fQbx0Dr+zstLNwsSM4+l8Ihy3ZSxmlpUnanvA6GWdpRSzUOSyAY627s90Ggw==","shasum":"e24726dc6a419f27584846d0af23bb7a94de876a","tarball":"https://registry.npmjs.org/@asciidev/eve-box/-/eve-box-0.1.6.tgz","fileCount":20,"unpackedSize":73885,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIG/RlHa3ee/B2B/ojoXuIRDB82GRtbqKQ9/vF+anHmtfAiAbNkXOGviCyTz09uDqhjaPzi860jOEQiMv1M2h/NKGuA=="}]},"_npmUser":{"name":"anicetngrt","email":"an.nougaret@gmail.com"},"directories":{},"maintainers":[{"name":"anicetngrt","email":"an.nougaret@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/eve-box_0.1.6_1781748662962_0.39259325204489914"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-18T00:17:02.135Z","modified":"2026-06-18T02:11:03.269Z","0.1.0":"2026-06-18T00:17:02.639Z","0.1.1":"2026-06-18T00:30:03.561Z","0.1.2":"2026-06-18T00:39:23.385Z","0.1.3":"2026-06-18T00:48:03.715Z","0.1.4":"2026-06-18T01:22:57.354Z","0.1.5":"2026-06-18T01:32:24.089Z","0.1.6":"2026-06-18T02:11:03.114Z"},"bugs":{"url":"https://github.com/ariana-dot-dev/eve-box/issues"},"license":"MIT","homepage":"https://github.com/ariana-dot-dev/eve-box#readme","keywords":["eve","sandbox","ascii","box","agent"],"repository":{"type":"git","url":"git+https://github.com/ariana-dot-dev/eve-box.git"},"description":"Eve sandbox backend for Ascii Box.","maintainers":[{"name":"anicetngrt","email":"an.nougaret@gmail.com"}],"readme":"# @asciidev/eve-box\n\nEve sandbox backend for [Ascii Box](https://box.ascii.dev). Run your Eve sandboxes on Box — the backend maps Eve's filesystem and process operations onto the Box API.\n\nNew to Eve or Box? The **[zero-to-one guide](https://docs.ascii.dev/box/integrations/eve)** walks through the whole setup from scratch.\n\n## Install\n\n```bash\nnpm install @asciidev/eve-box eve\n```\n\n## Usage\n\n```ts\nimport { defineSandbox } from \"eve/sandbox\";\nimport { asciiBox } from \"@asciidev/eve-box\";\n\nexport default defineSandbox({\n  backend: asciiBox({ apiKey: process.env.BOX_API_KEY! }),\n});\n```\n\n### Options\n\n`asciiBox(options)` accepts:\n\n- `apiKey` — Box API key. Defaults to `process.env.BOX_API_KEY`.\n- `baseUrl` — Box API base URL. Defaults to the public Box API.\n- `name` — name (or `(input) => string`) for boxes Eve creates.\n- `ttlSeconds` — auto-archive TTL for boxes. Defaults to `3600`.\n- `noEnv` — withhold your Box account's secrets and credentials from every box (see below). Defaults to `false`.\n- `env` — per-box environment variables for every box Eve creates (see below).\n- `pollMs` — poll cadence for `spawn()` streams and `wait()`.\n- `commandTimeoutMs` — timeout for blocking `run()` commands.\n- `networkPolicy` — see below.\n\n### Running agents for other people\n\nBy default a box inherits **your** Box account (your secrets, secret files, GitHub-credentialed repos, and SSH identity) — fine for your own agents, unsafe for ones other people drive. For any multi-tenant or public agent, set `noEnv: true` so boxes get none of that and are confined to themselves.\n\nA no-env box starts empty, so you give it exactly what it needs — secrets through `env`, files and setup through Eve's `onSession` hook:\n\n```ts\nimport { defineSandbox } from \"eve/sandbox\";\nimport { asciiBox } from \"@asciidev/eve-box\";\n\nexport default defineSandbox({\n  backend: asciiBox({\n    apiKey: process.env.BOX_API_KEY!,\n    noEnv: true,\n    // Scoped secrets — the only env this box gets:\n    env: { MY_APP_TOKEN: process.env.MY_APP_TOKEN! },\n  }),\n  async onSession({ use }) {\n    const sandbox = await use();\n    // Seed files and run setup with the session API. These wrap Box's\n    // file and command APIs, so you don't need `box scp` or `box ssh`.\n    await sandbox.writeTextFile({ path: \"config/app.json\", content: JSON.stringify({ mode: \"prod\" }) });\n    await sandbox.run({ command: \"git clone https://github.com/acme/public-repo . && npm ci\" });\n  },\n});\n```\n\n`env` keys merge over account variables (per-box wins; ≤100 vars, 64KB total; reserved Box-internal names rejected). `writeFile`/`readFile` move bytes in and out and `run`/`spawn` execute commands — the Eve-native equivalents of `box scp` and `box ssh <id> <cmd>`. A no-env box can't reach your private repos, so clone public ones or have the user authenticate inside the box.\n\n### Network policies\n\nBox does not yet support Eve's fine-grained network policies. The backend accepts `\"allow-all\"` and throws `EveBoxUnsupportedError` for stricter policies, so you don't get a false sense of isolation. Use Eve's Vercel or microsandbox backends if you need firewall-backed policies.\n\n## Documentation\n\n- **[Eve on Box guide](https://docs.ascii.dev/box/integrations/eve)** — a self-contained, zero-to-one walkthrough.\n- [`docs/eve-box-backend.md`](./docs/eve-box-backend.md) — full capability mapping and current limitations.\n\n## Development\n\n```bash\nnpm install\ncp .env.example .env   # add your BOX_API_KEY\nnpm test\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}