{"_id":"@a0n/aeon-container","_rev":"2-d6d9995049b7f0f13674b83c048ef84d","name":"@a0n/aeon-container","dist-tags":{"latest":"5.0.0"},"versions":{"5.0.0":{"name":"@a0n/aeon-container","version":"5.0.0","author":{"url":"https://buley.fyi","name":"Taylor William Buley"},"license":"MIT","_id":"@a0n/aeon-container@5.0.0","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"dist":{"shasum":"a7c3c944c178e560901c2711138ea6699353a59f","tarball":"https://registry.npmjs.org/@a0n/aeon-container/-/aeon-container-5.0.0.tgz","fileCount":21,"integrity":"sha512-yLb+BKYxd6YAcSyuQrfZ0sGqvg4705iugH9DnFsp2gUb7sCXeBLFlUc/kT4M5iFqZFDwmf1q4Mz5hKLXldU2dg==","signatures":[{"sig":"MEUCIBG3KMXDDWAikFCuZ5ELs3EIPZSmExqWsyB9dLuouOdZAiEA6Er5IKjICVSM4PAHvg+i7k4kdgyBNUr8h3l9vhXPclc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":133198},"type":"module","_from":"file:a0n-aeon-container-5.0.0.tgz","exports":{".":"./src/index.ts","./services/*":"./src/services/*.ts"},"scripts":{"test":"bun ../../scripts/bun-isolated-runner.ts . --preload ../../bun.preload.ts"},"_npmUser":{"name":"buley","email":"buley@outlook.com"},"_resolved":"/private/var/folders/kf/tkq8cmd54fl9c1wh414dj3240000gn/T/3909fb14fa05fb777c24a5a105a87f3b/a0n-aeon-container-5.0.0.tgz","_integrity":"sha512-yLb+BKYxd6YAcSyuQrfZ0sGqvg4705iugH9DnFsp2gUb7sCXeBLFlUc/kT4M5iFqZFDwmf1q4Mz5hKLXldU2dg==","_npmVersion":"11.11.0","description":"Aeon Container — browser sandbox, persistent filesystem, linting, and agent collaboration runtime","directories":{},"_nodeVersion":"25.8.0","dependencies":{"@swc/wasm-web":"^1.12.0","@a0n/aeon-logic":"0.1.0","@a0n/gnosis-viz":"5.0.0","quickjs-emscripten":"^0.32.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3"},"_npmOperationalInternal":{"tmp":"tmp/aeon-container_5.0.0_1773802076128_0.2400423771438942","host":"s3://npm-registry-packages-npm-production"},"deprecated":"This package is deprecated and no longer supported. Do not use."}},"time":{"created":"2026-03-18T02:47:56.019Z","modified":"2026-03-27T20:49:11.210Z","5.0.0":"2026-03-18T02:47:56.277Z"},"author":{"url":"https://buley.fyi","name":"Taylor William Buley"},"license":"MIT","description":"Aeon Container — browser sandbox, persistent filesystem, linting, and agent collaboration runtime","maintainers":[{"name":"buley","email":"buley@outlook.com"}],"readme":"# @a0n/aeon-container\n\nParent: [Open Source Catalog](../README.md)\n\n`@a0n/aeon-container` is the browser-side runtime layer for running code, keeping files in sync, streaming lint feedback, and coordinating collaborative agent sessions.\n\nThe fair brag is that this package gathers several things people normally have to wire together across different libraries: sandboxed execution, persistent file handling, streamed diagnostics, writeback helpers, and room-style collaboration transport.\n\n## Why People May Like It\n\n- `BrowserSandbox` gives you a browser execution surface with an edge fallback when local execution is not enough, including local Vitest-style snippet execution for TypeScript companion tests.\n- `PersistentFS` keeps a local-first file view and can sync it back to container APIs.\n- `StreamedLintClient` is built for live diagnostics instead of batch-only lint runs.\n- `AgentRoomClient` gives you room snapshots, presence, and task transport in the same package.\n- API route helpers and writeback helpers keep the surrounding plumbing close to the runtime instead of scattering it through app code.\n\n## Install\n\n```bash\nbun add @a0n/aeon-container\n```\n\n## Quick Start\n\n```ts\nimport { BrowserSandbox } from '@a0n/aeon-container';\n\nconst sandbox = BrowserSandbox.getInstance();\nsandbox.setEdgeFallbackUrl('https://example.com/v1/aeon-container/execute');\n\nconst result = await sandbox.execute({\n  language: 'javascript',\n  code: 'const x = 40 + 2; x;',\n  timeout_ms: 2000,\n});\n\nconsole.log(result.outcome, result.output);\n```\n\n## More Things You Get\n\n### Persistent Files\n\n```ts\nimport { PersistentFS } from '@a0n/aeon-container';\n\nconst fs = new PersistentFS('container-123', { apiUrl: 'https://halo.place' });\nawait fs.writeFile('/src/index.ts', 'export const ok = true;');\nawait fs.syncToBackend();\n```\n\n### Streamed Lint Feedback\n\n```ts\nimport { StreamedLintClient } from '@a0n/aeon-container';\n\nconst lint = new StreamedLintClient();\nconst handle = lint.lint({\n  version: 1,\n  path: 'src/example.ts',\n  language: 'typescript',\n  content: 'const x: any = 1;',\n  onChunk: (diagnostics) => console.log(diagnostics),\n});\n\n// handle.cancel() if needed\n```\n\n## Core Surface\n\n- `BrowserSandbox`\n- `PersistentFS`\n- `AgentRoomClient`\n- `DevWritebackManager`\n- `StreamedLintClient`\n- `createApiRoutes`\n- shared execution and filesystem types from `services/types.ts`\n\nThat surface is one of the package's strongest points. It is small enough to understand, but broad enough to support a real browser container experience.\n\n## Repo Guide\n\n- [src/README.md](./src/README.md): source entrypoints and directory map\n- [src/services/README.md](./src/services/README.md): service-by-service map\n\n## Development\n\n```bash\ncd open-source/aeon-container\nbun test\n```\n\n## Why This README Is Grounded\n\nAeon Container does not need big claims. The strongest fair brag is that it already gives you a practical browser runtime package for code execution, file sync, lint streaming, and collaborative session plumbing.\n","readmeFilename":"README.md"}