{"_id":"@douglas-agent/sandbank-core","_rev":"2-bcf60351574788f0e58692814e35695a","name":"@douglas-agent/sandbank-core","dist-tags":{"latest":"0.4.0"},"versions":{"0.3.6":{"name":"@douglas-agent/sandbank-core","version":"0.3.6","keywords":["sandbox","ai-agent","cloud","provider","sdk"],"license":"MIT","_id":"@douglas-agent/sandbank-core@0.3.6","maintainers":[{"name":"douglasdong","email":"ad546971975@gmail.com"}],"homepage":"https://sandbank.dev","bugs":{"url":"https://github.com/Xeonice/sandbank-douglas-agent/issues"},"dist":{"shasum":"2d6ddfaa174baae478f95d6a3bb444d96db51f0d","tarball":"https://registry.npmjs.org/@douglas-agent/sandbank-core/-/sandbank-core-0.3.6.tgz","fileCount":41,"integrity":"sha512-3Zvi5tDfai0g5DTNPrwI5bYPwYEtbEX/mqGRq/6beWEukWM3cvKhfv0mytu+vfdC97Jwdjp9ZER2LKTPw6CGWg==","signatures":[{"sig":"MEQCIFVx133RxzdAL6nWT/UdyxGGMFJAHOVRAdHL0y6JL4nlAiBwOKw19ighJRm4LsXfpFQDIDwYmtk3WClGTisLn9aIFw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@douglas-agent%2fsandbank-core@0.3.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":95493},"type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"0589f4137bb7d4e3bafb0f4dd1ef45e50253cd45","scripts":{"build":"tsc","clean":"rm -rf dist","typecheck":"tsc --noEmit"},"_npmUser":{"name":"douglasdong","email":"ad546971975@gmail.com"},"repository":{"url":"git+https://github.com/Xeonice/sandbank-douglas-agent.git","type":"git","directory":"packages/core"},"_npmVersion":"11.14.1","description":"Unified sandbox SDK for AI agents — provider abstraction, capability system, and error types","directories":{},"_nodeVersion":"24.15.0","_hasShrinkwrap":false,"devDependencies":{"ws":"^8.18.0","@types/ws":"^8.18.0","typescript":"^5.7.3","@types/node":"^22.15.0","@douglas-agent/sandbank-relay":"^0.2.1"},"peerDependencies":{"@douglas-agent/sandbank-relay":"^0.2.1"},"peerDependenciesMeta":{"@douglas-agent/sandbank-relay":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/sandbank-core_0.3.6_1779268685877_0.5966207742683087","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@douglas-agent/sandbank-core","version":"0.4.0","description":"Unified sandbox SDK for AI agents — provider abstraction, capability system, and error types","license":"MIT","type":"module","homepage":"https://sandbank.dev","repository":{"type":"git","url":"git+https://github.com/Xeonice/sandbank-douglas-agent.git","directory":"packages/core"},"keywords":["sandbox","ai-agent","cloud","provider","sdk"],"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc","typecheck":"tsc --noEmit","clean":"rm -rf dist"},"peerDependencies":{"@douglas-agent/sandbank-relay":"^0.2.1"},"peerDependenciesMeta":{"@douglas-agent/sandbank-relay":{"optional":true}},"devDependencies":{"@douglas-agent/sandbank-relay":"^0.2.1","@types/node":"^22.15.0","typescript":"^5.7.3","ws":"^8.18.0","@types/ws":"^8.18.0"},"gitHead":"8537e16e9c5aabee434f54aaf7bb0b813333c260","_id":"@douglas-agent/sandbank-core@0.4.0","bugs":{"url":"https://github.com/Xeonice/sandbank-douglas-agent/issues"},"_nodeVersion":"24.15.0","_npmVersion":"11.15.0","dist":{"integrity":"sha512-09rvnpJJhVmmHKawyg0n8udLshKskj7/FVmF/iEPS/aMMjHGdT4d2FvYSJ6/Vko9oBtsMtUTpHm7rXweB2xaVw==","shasum":"5a86b4110844d23f231190b114b742f36bfc5e5d","tarball":"https://registry.npmjs.org/@douglas-agent/sandbank-core/-/sandbank-core-0.4.0.tgz","fileCount":41,"unpackedSize":97137,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@douglas-agent%2fsandbank-core@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEbK8rqRH6YS8dze2B9oLHL2GNMwKepjHMeDlVEVte4QAiB3HjWZyax8UbYXtMtrHiXusArAmC5iHDPLG03tesl43g=="}]},"_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-core_0.4.0_1779389421558_0.4478411170346204"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-20T09:18:05.667Z","modified":"2026-05-21T18:50:22.045Z","0.3.6":"2026-05-20T09:18:06.098Z","0.4.0":"2026-05-21T18:50:21.732Z"},"bugs":{"url":"https://github.com/Xeonice/sandbank-douglas-agent/issues"},"license":"MIT","homepage":"https://sandbank.dev","keywords":["sandbox","ai-agent","cloud","provider","sdk"],"repository":{"type":"git","url":"git+https://github.com/Xeonice/sandbank-douglas-agent.git","directory":"packages/core"},"description":"Unified sandbox SDK for AI agents — provider abstraction, capability system, and error types","maintainers":[{"name":"douglasdong","email":"ad546971975@gmail.com"}],"readme":"# @douglas-agent/sandbank-core\n\n> Unified sandbox SDK for AI agents — provider abstraction, capability system, and error types.\n\n## Install\n\n```bash\npnpm add @douglas-agent/sandbank-core\n```\n\n## Usage\n\n```typescript\nimport { createProvider, withTerminal, connectTerminal } from '@douglas-agent/sandbank-core'\nimport { DaytonaAdapter } from '@douglas-agent/sandbank-daytona'\n\nconst provider = createProvider(\n  new DaytonaAdapter({ apiKey: process.env.DAYTONA_API_KEY! })\n)\n\n// Create a sandbox with a non-root user\nconst sandbox = await provider.create({\n  image: 'node:22',\n  user: 'sandbank',            // creates non-root user with sudo\n})\nconst { stdout } = await sandbox.exec('node --version')\nawait sandbox.writeFile('/app/index.js', 'console.log(\"hi\")')\n\n// Run privileged commands with asRoot\nawait sandbox.exec('apt-get update', { asRoot: true })\n\n// Capability detection\nconst terminal = withTerminal(sandbox)\nif (terminal) {\n  const info = await terminal.startTerminal()\n  const session = connectTerminal(info)\n  await session.ready\n  session.onData((data) => process.stdout.write(data))\n  session.write('ls\\n')\n}\n\nawait provider.destroy(sandbox.id)\n```\n\n## Capabilities\n\nUse `hasCapability(provider, name)` to check provider support, and `withTerminal(sandbox)` / `withStreaming(sandbox)` / etc. for type-safe downcasting.\n\n| Capability | Description |\n|------------|-------------|\n| `exec.stream` | Real-time stdout/stderr streaming |\n| `terminal` | Interactive web terminal (ttyd) |\n| `sleep` | Hibernate and wake sandboxes |\n| `volumes` | Persistent volume management |\n| `snapshot` | Snapshot and restore sandbox state |\n| `port.expose` | Expose sandbox ports to the internet |\n\n## Multi-Agent Sessions\n\n```typescript\nimport { createSession } from '@douglas-agent/sandbank-core'\n\nconst session = await createSession({ provider, relay: { type: 'memory' } })\nconst agent = await session.spawn('worker', { image: 'node:22' })\nawait session.waitForAll()\nawait session.close()\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}