{"_id":"@arborship/arbor-pak","name":"@arborship/arbor-pak","dist-tags":{"latest":"2.0.1"},"versions":{"2.0.1":{"name":"@arborship/arbor-pak","version":"2.0.1","description":"Levi Arborfile and LeviPak parser, validator, and builder APIs","author":{"name":"MarsMan LLC"},"homepage":"https://github.com/arborship/arborship/tree/main/packages/runtime/arbor-pak#readme","license":"Apache-2.0","main":"dist/index.js","types":"dist/index.d.ts","type":"module","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"},"./bundle-suffix":{"types":"./dist/arbor-pak/bundle-suffix.d.ts","import":"./dist/arbor-pak/bundle-suffix.js","default":"./dist/arbor-pak/bundle-suffix.js"},"./arborfile":{"types":"./dist/arborfile/index.d.ts","import":"./dist/arborfile/index.js","default":"./dist/arborfile/index.js"},"./registry":{"types":"./dist/registry.d.ts","import":"./dist/registry.js","default":"./dist/registry.js"},"./package.json":"./package.json"},"scripts":{"build":"rm -rf dist tsconfig.tsbuildinfo && corepack yarn tsc -p tsconfig.json","lint":"eslint src","typecheck":"tsc --noEmit --incremental --tsBuildInfoFile tsconfig.typecheck.tsbuildinfo","test":"vitest run --passWithNoTests","generate:realizer-wire":"node scripts/write-realizer-wire.mjs","prepack":"corepack yarn build"},"dependencies":{"@arborship/kernel":"^0.5.1","@arborship/value-kernel":"^0.2.0","@arborship/vsock":"^0.3.0","dockerfile-ast":"^0.7.1","node-ssh":"^13.2.1","ws":"^8.19.0","yaml":"^2.8.0","zod":"^4.4.3"},"devDependencies":{"@types/node":"^22.0.0","@types/ssh2":"^1.15.5","@types/ws":"^8.18.1","json-schema-to-typescript":"^15.0.4","typescript":"^5.6.0","vitest":"^4.0.18"},"engines":{"node":">=18.0.0"},"publishConfig":{"registry":"https://registry.npmjs.org/","access":"public"},"repository":{"type":"git","url":"git+https://github.com/arborship/arborship.git","directory":"packages/runtime/arbor-pak"},"peerDependencies":{"@arborship/sdk":"^0.3.1"},"peerDependenciesMeta":{"@arborship/sdk":{"optional":true}},"bugs":{"url":"https://github.com/arborship/arborship/issues"},"_id":"@arborship/arbor-pak@2.0.1","_integrity":"sha512-SDqemyuZ6YrqrU7ymjzA/uCv2rJ7s3FUc0uahXvhC+3Na0oHqLMgGCTnMuX/qXqKAMGCo820zKJ7YmCKLYjwsg==","_resolved":"/var/folders/k9/z86pxdsx27vgd3l0khjg4b080000gn/T/tmp.mvjmaamDhl/_arborship_arbor-pak-2.0.1.tgz","_from":"file:/var/folders/k9/z86pxdsx27vgd3l0khjg4b080000gn/T/tmp.mvjmaamDhl/_arborship_arbor-pak-2.0.1.tgz","_nodeVersion":"22.23.2","_npmVersion":"11.19.0","dist":{"integrity":"sha512-SDqemyuZ6YrqrU7ymjzA/uCv2rJ7s3FUc0uahXvhC+3Na0oHqLMgGCTnMuX/qXqKAMGCo820zKJ7YmCKLYjwsg==","shasum":"a509106659cd3f2bfa19991b9998959e9cfd6ae2","tarball":"https://registry.npmjs.org/@arborship/arbor-pak/-/arbor-pak-2.0.1.tgz","fileCount":67,"unpackedSize":620727,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD5obN23bbzeJo7OOTsPZV44nBXquMYGa4PhlX9YqwCVAIhAME9eeJAelf7fDQ32L0oicxn/weoJsrpdi7KGn5Yf67V"}]},"_npmUser":{"name":"arborship-official","email":"patrickjholloway@gmail.com"},"directories":{},"maintainers":[{"name":"arborship-official","email":"patrickjholloway@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/arbor-pak_2.0.1_1788486829789_0.2457337529996768"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-04T01:53:49.655Z","2.0.1":"2026-09-04T01:53:49.974Z","modified":"2026-09-04T01:53:50.263Z"},"maintainers":[{"name":"arborship-official","email":"patrickjholloway@gmail.com"}],"description":"Levi Arborfile and LeviPak parser, validator, and builder APIs","homepage":"https://github.com/arborship/arborship/tree/main/packages/runtime/arbor-pak#readme","repository":{"type":"git","url":"git+https://github.com/arborship/arborship.git","directory":"packages/runtime/arbor-pak"},"author":{"name":"MarsMan LLC"},"bugs":{"url":"https://github.com/arborship/arborship/issues"},"license":"Apache-2.0","readme":"# @arborship/arbor-pak\n\nParser, validator, and builder APIs for Levi's Arborfile and LeviPak formats —\nthe Dockerfile-like template DSL that describes how a Levi VM template or\npackage is defined and built. It owns the canonical AST, directive\ninvariants, dependency graphs, compilation, lockfiles, provenance,\nsnapshots, and cache-key logic for Arborfile v1, plus package parsing,\nincludes, recipes, and build execution/transport for LeviPak.\n\n## Layer\n\nProduct-semantic kernel (Arborfile/LeviPak format: parsing, validation,\ndependency graphs, and cache-key logic are deterministic and independent of\nlive VM state). Build execution and transport (guest-agent WebSocket client,\nSSH) are operational concerns kept behind explicit interfaces, closer to an\noperational port. Per `docs/architecture/PLATFORM_BOUNDARIES.md` (ADR-0011),\nthis package does not select or construct VM drivers — it only owns the file\nformat and its execution contract.\n\n## Install\n\n```bash\nnpm install @arborship/arbor-pak\n```\n\n## Usage\n\nParse and validate a Arborfile:\n\n```ts\nimport { parseLevifile, validateLevifilePlan } from '@arborship/arbor-pak'\n\nconst result = parseLevifile(source) // { success, plan, errors }\nif (result.success && result.plan) {\n  const validation = validateLevifilePlan(result.plan, 'Arborfile')\n}\n```\n\nParse a Arborfile v1 document (typed spec/AST, from the `./levifile` export):\n\n```ts\nimport { parseLevifile } from '@arborship/arbor-pak/arborfile'\n\nconst result = parseLevifile(source)\n```\n\n## Part of Levi\n\nThis package is part of [Levi](https://github.com/arborship/arborship), an\nisolated personal agent control plane. See the repository's\n[`docs/architecture/`](https://github.com/arborship/arborship/tree/main/docs/architecture)\ndirectory for design docs, including\n[`PLATFORM_BOUNDARIES.md`](https://github.com/arborship/arborship/blob/main/docs/architecture/PLATFORM_BOUNDARIES.md)\nand the Arborfile v1 reference docs.\n\n## License\n\nApache-2.0. See the LICENSE file in this package; the full license set is\ndescribed in the repository's `docs/architecture/LICENSING_AND_TOPOLOGY.md`.\n","readmeFilename":"README.md","_rev":"1-cd807dd3db2dfa782f106513b28f18ff"}