{"_id":"@douglas-agent/sandbank-cloudflare","name":"@douglas-agent/sandbank-cloudflare","dist-tags":{"latest":"0.2.0"},"versions":{"0.2.0":{"name":"@douglas-agent/sandbank-cloudflare","version":"0.2.0","description":"Cloudflare Workers sandbox adapter for Sandbank","license":"MIT","type":"module","homepage":"https://sandbank.dev","repository":{"type":"git","url":"git+https://github.com/Xeonice/sandbank-douglas-agent.git","directory":"packages/cloudflare"},"keywords":["sandbox","ai-agent","cloudflare","workers","cloud"],"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc","typecheck":"tsc --noEmit","clean":"rm -rf dist","test:e2e":"vitest run --config vitest.e2e.config.ts"},"dependencies":{"@cloudflare/sandbox":"^0.7.0","@douglas-agent/sandbank-core":"^0.3.6"},"devDependencies":{"@cloudflare/workers-types":"^4.20250214.0","typescript":"^5.7.3","wrangler":"^4.0.0"},"gitHead":"0589f4137bb7d4e3bafb0f4dd1ef45e50253cd45","_id":"@douglas-agent/sandbank-cloudflare@0.2.0","bugs":{"url":"https://github.com/Xeonice/sandbank-douglas-agent/issues"},"_nodeVersion":"24.15.0","_npmVersion":"11.14.1","dist":{"integrity":"sha512-4qQ1Z1TOXqtn6xSL70PG0gKyi9bzgsNPwgXACz0lfl5tH3uW0vZ+8KQjA4VjaSsCyLWgpGLPnInldMSMRwCkeA==","shasum":"2f2caf7391b3dba1996abd5586d80b039a66fd52","tarball":"https://registry.npmjs.org/@douglas-agent/sandbank-cloudflare/-/sandbank-cloudflare-0.2.0.tgz","fileCount":8,"unpackedSize":16188,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@douglas-agent%2fsandbank-cloudflare@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC1e58QT6KVLsp8BaZOh+FfPikgQO41YWD22huf9FxbcgIgfCZEB1905/bAq/TrrlHFBoqRSarDuPkGXwgxFn3IOC8="}]},"_npmUser":{"name":"douglasdong","email":"ad546971975@gmail.com"},"directories":{},"maintainers":[{"name":"douglasdong","email":"ad546971975@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/sandbank-cloudflare_0.2.0_1779268716488_0.7742516131928052"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T09:18:36.300Z","0.2.0":"2026-05-20T09:18:36.629Z","modified":"2026-05-20T09:18:37.018Z"},"maintainers":[{"name":"douglasdong","email":"ad546971975@gmail.com"}],"description":"Cloudflare Workers sandbox adapter for Sandbank","homepage":"https://sandbank.dev","keywords":["sandbox","ai-agent","cloudflare","workers","cloud"],"repository":{"type":"git","url":"git+https://github.com/Xeonice/sandbank-douglas-agent.git","directory":"packages/cloudflare"},"bugs":{"url":"https://github.com/Xeonice/sandbank-douglas-agent/issues"},"license":"MIT","readme":"# @douglas-agent/sandbank-cloudflare\n\n> Cloudflare Workers sandbox adapter for [Sandbank](../../README.md).\n\n## Install\n\n```bash\npnpm add @douglas-agent/sandbank-core @douglas-agent/sandbank-cloudflare\n```\n\n## Usage\n\n```typescript\nimport { createProvider } from '@douglas-agent/sandbank-core'\nimport { CloudflareAdapter } from '@douglas-agent/sandbank-cloudflare'\n\nconst adapter = new CloudflareAdapter({\n  namespace: env.SANDBOX,       // DurableObject binding\n  hostname: 'myapp.dev',\n  sleepAfter: '30m',\n  storage: {                    // enables volumes capability\n    endpoint: 'https://xxx.r2.cloudflarestorage.com',\n    provider: 'r2',\n  },\n})\n\nconst provider = createProvider(adapter)\nconst sandbox = await provider.create({ image: 'node:22' })\nconst { stdout } = await sandbox.exec('echo hello')\nawait provider.destroy(sandbox.id)\n```\n\n## Capabilities\n\n| Capability | Supported |\n|------------|:---------:|\n| `exec.stream` | ✅ |\n| `terminal` | ✅ |\n| `port.expose` | ✅ |\n| `snapshot` | ✅ |\n| `volumes` | ✅ (with `storage` config) |\n\n## Characteristics\n\n- **Runtime:** V8 isolate + container\n- **Cold start:** ~1s\n- **File I/O:** Native SDK\n- **Region:** Global edge\n- **Dependency:** `@cloudflare/sandbox`\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-f05d5818d73af4f85f274d0f6b998da1"}