{"_id":"@ai-craft/app-runtime","name":"@ai-craft/app-runtime","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@ai-craft/app-runtime","version":"0.1.0","description":"Extracted K8s payload-dispatch runtime: KubernetesProvider, runtime-shell, runtime-ir, runtime-vite adapters","type":"module","main":"./index.js","module":"./index.js","types":"./index.d.ts","exports":{".":{"types":"./index.d.ts","import":"./index.js"},"./runtime-shell":{"types":"./lib/runtime-shell/index.d.ts","import":"./lib/runtime-shell/index.js"},"./runtime-ir":{"types":"./lib/runtime-ir/index.d.ts","import":"./lib/runtime-ir/index.js"},"./runtime-vite":{"types":"./lib/runtime-vite/index.d.ts","import":"./lib/runtime-vite/index.js"}},"dependencies":{"@kubernetes/client-node":"^1.0.0","better-auth":"^1.2.7"},"devDependencies":{},"peerDependencies":{"vite":">=5.0.0"},"engines":{"node":">=22"},"publishConfig":{"access":"public"},"_id":"@ai-craft/app-runtime@0.1.0","_integrity":"sha512-6SjaufwYozG6K13MAwosYbfmQWR5LkB0l5WK3Qt/aOyYq+oz4DQGJ42DRrSyRKy76vuyPcstC9FFFNMQlTZCYw==","_resolved":"/private/var/folders/_j/tzygz83s12v4rnxgchnxz55m0000gp/T/a4fb6709fe83bd74ebb3a8e3fc20cd6b/ai-craft-app-runtime-0.1.0.tgz","_from":"file:ai-craft-app-runtime-0.1.0.tgz","_nodeVersion":"22.14.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-6SjaufwYozG6K13MAwosYbfmQWR5LkB0l5WK3Qt/aOyYq+oz4DQGJ42DRrSyRKy76vuyPcstC9FFFNMQlTZCYw==","shasum":"011cd71eaee10a20068a1740b62dbc0ee956ecba","tarball":"https://registry.npmjs.org/@ai-craft/app-runtime/-/app-runtime-0.1.0.tgz","fileCount":41,"unpackedSize":200516,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDqCf2p3SNCSedAXhvzk5qvHS1vMAgk6roJ8XXnYk8JgwIgDZpv656qTatAcs3G42V2eW3K7/F4O3DbV3xieDRBens="}]},"_npmUser":{"name":"volkz","email":"delacruzd93@gmail.com"},"directories":{},"maintainers":[{"name":"volkz","email":"delacruzd93@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/app-runtime_0.1.0_1784450388156_0.976545295822109"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T08:39:48.001Z","0.1.0":"2026-07-19T08:39:48.304Z","modified":"2026-07-19T08:39:48.589Z"},"maintainers":[{"name":"volkz","email":"delacruzd93@gmail.com"}],"description":"Extracted K8s payload-dispatch runtime: KubernetesProvider, runtime-shell, runtime-ir, runtime-vite adapters","readme":"# @ai-craft/app-runtime\n\nExtracted K8s payload-dispatch runtime — `KubernetesProvider`, `startShell`, IR and Vite adapters.\n\n## Install\n\n```bash\nnpm install @ai-craft/app-runtime\n```\n\n## Quick Start\n\n```ts\nimport { FakeProvider, createSandbox } from '@ai-craft/app-runtime';\nimport { startShell } from '@ai-craft/app-runtime/runtime-shell';\n\n// 1. Create a provider and a sandbox handle\nconst provider = new FakeProvider();\nawait provider.provision('my-project', 'v1');\n\n// 2. Boot the in-pod HTTP shell (port 0 = OS-assigned)\nconst server = startShell({\n  port: 0,\n  egressToken: process.env.EGRESS_TOKEN ?? 'dev-token',\n  plugins: [\n    {\n      name: 'fake-adapter',\n      async onPayload(payload) {\n        await provider.applyPayload('my-project', payload);\n      },\n    },\n  ],\n});\n// port:0 skips auto-listen in startShell — caller must invoke listen() to get OS-assigned port\nserver.listen(0, '127.0.0.1', () => {\n  console.log('Shell listening on', server.address());\n});\n```\n\n## Providers\n\n| Provider | Description | Requires |\n|---|---|---|\n| `FakeProvider` | In-memory stub for testing | nothing |\n| `KubernetesProvider` | Real K8s pod lifecycle | `@kubernetes/client-node` |\n\n## Subpath Adapters\n\n| Import path | Exports |\n|---|---|\n| `@ai-craft/app-runtime` | `createSandbox`, `KubernetesProvider`, `FakeProvider`, types |\n| `@ai-craft/app-runtime/runtime-shell` | `startShell`, `ShellPlugin`, `ShellServer` |\n| `@ai-craft/app-runtime/runtime-ir` | `createIRAdapter`, `createIRWebAppPlugin`, `createAuth`, `jsonFileAdapter` |\n| `@ai-craft/app-runtime/runtime-vite` | `createViteAdapter` |\n\n## Key Types\n\n| Type | Description |\n|---|---|\n| `SandboxState` | `'creating' \\| 'ready' \\| 'draining' \\| 'terminated'` |\n| `Payload<TKind>` | `{ kind, version, body }` — dispatched through the shell |\n| `SandboxHandle` | Handle returned by `createSandbox(provider, projectId)` |\n| `Health` | `{ status, state, podName? }` |\n\n## Requirements\n\n- Node ≥ 22\n- `vite` ≥ 5.0.0 (peer dep, required when using `runtime-vite`)\n\n## Build\n\n```bash\nnx build app-runtime\n```\n\n## Test\n\n```bash\nnx test app-runtime\n```\n\n## License\n\nMIT. Part of the [@ai-craft](https://github.com/aicraft-sdk) monorepo.\n","readmeFilename":"README.md","_rev":"1-04f40cf8a3b4588e4828d1f170a52183"}