{"_id":"@atomic-content-protocol/core","_rev":"6-4b4ffecc0a2be896234ac60bf6e0faac","name":"@atomic-content-protocol/core","dist-tags":{"latest":"0.2.1"},"versions":{"0.1.0":{"name":"@atomic-content-protocol/core","version":"0.1.0","keywords":["acp","atomic-content-protocol","knowledge-graph","ai","llm","schema"],"author":{"url":"https://www.stacks.inc/","name":"Stacks, Inc"},"license":"Apache-2.0","_id":"@atomic-content-protocol/core@0.1.0","maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"homepage":"https://atomiccontentprotocol.org","bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"dist":{"shasum":"bdfe9e73784076ea9b43e9b05f26da415f3bd108","tarball":"https://registry.npmjs.org/@atomic-content-protocol/core/-/core-0.1.0.tgz","fileCount":95,"integrity":"sha512-/Z3T21qKNh7TaVBcbioUjc3MZK3/noR2Ez7DskASD6Dvj/tuIBl/8P1RSPF6fFgSxOkgsrI8n/iijRkbDa4Bbg==","signatures":[{"sig":"MEQCIHAoxAbCNoUrEX2u8bjSvuYnzzMM3IB50XwHR812VGzEAiAGNPb+fQA4mhBWXkMoLswLgeT6s5LTofCxmTZ+A7HZ9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276976},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"b374e870c9830e3f660264b1a61dbc4417ebb552","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"acp-sdk","email":"martina@stacklist.com"},"repository":{"url":"git+https://github.com/atomic-content-protocol/sdk.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.2","description":"Core schema, validation, and file I/O for the Atomic Content Protocol","directories":{},"_nodeVersion":"23.6.1","dependencies":{"zod":"^3.24.0","uuid":"^11.1.0","js-yaml":"^4.1.0","gray-matter":"^4.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^25.6.0","@types/uuid":"^10.0.0","@types/js-yaml":"^4.0.9"},"optionalDependencies":{"tiktoken":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.0_1776630854046_0.2267360126772655","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@atomic-content-protocol/core","version":"0.1.1","keywords":["acp","atomic-content-protocol","knowledge-graph","ai","llm","schema"],"author":{"url":"https://www.stacks.inc/","name":"Stacks, Inc"},"license":"Apache-2.0","_id":"@atomic-content-protocol/core@0.1.1","maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"homepage":"https://atomiccontentprotocol.org","bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"dist":{"shasum":"d51888a4024c6b4a6434d075a07a1218ce47d389","tarball":"https://registry.npmjs.org/@atomic-content-protocol/core/-/core-0.1.1.tgz","fileCount":95,"integrity":"sha512-9usqLxuDVHq34Y7zYbxp1MTKwXdSzDMNmvxCJQUIoE47IJbFTqrdvG4KxTRBAiwXY5OzKGXgv0mpYThApll3yg==","signatures":[{"sig":"MEQCIHPphUmHQmFrtcelHwlKVw4+c8OThuaqDhZo5FL7FtdlAiAw7D+QBu590PBr4w7bRUgpoopkN108cZkGbFDqOEJ2wg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":293467},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"67b3fa9da7f871f738a008859dbfdd3252811aa7","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"acp-sdk","email":"martina@stacklist.com"},"repository":{"url":"git+https://github.com/atomic-content-protocol/sdk.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.2","description":"Core schema, validation, and file I/O for the Atomic Content Protocol","directories":{},"_nodeVersion":"23.6.1","dependencies":{"zod":"^3.24.0","uuid":"^11.1.0","js-yaml":"^4.1.0","gray-matter":"^4.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^25.6.0","@types/uuid":"^10.0.0","@types/js-yaml":"^4.0.9"},"optionalDependencies":{"tiktoken":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.1_1776715338786_0.9274852734707142","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@atomic-content-protocol/core","version":"0.1.2","keywords":["acp","atomic-content-protocol","knowledge-graph","ai","llm","schema"],"author":{"url":"https://www.stacks.inc/","name":"Stacks, Inc"},"license":"Apache-2.0","_id":"@atomic-content-protocol/core@0.1.2","maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"homepage":"https://atomiccontentprotocol.org","bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"dist":{"shasum":"ade82f3c362b5ecda99ddd5eb75b3153471a273e","tarball":"https://registry.npmjs.org/@atomic-content-protocol/core/-/core-0.1.2.tgz","fileCount":99,"integrity":"sha512-qKLberzOOAhnFeNkfgjCK4zaL26x2N9B7ooYtRY3J4Cgtk5F9wxmyGBouTNTwzxbrGEkZ77d4N59FZQ8SXbA2A==","signatures":[{"sig":"MEQCIAkb0om83x9P8/iEU20v17/2jeN5go2VMGP/tJP0nA8UAiBjsJyFyA5srEParR23TXlXdMujofkJ0Uj+dO3dIcWAvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314840},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"3bc4972be46883a77e49360637cc0acd0ba09804","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"acp-sdk","email":"martina@stacklist.com"},"repository":{"url":"git+https://github.com/atomic-content-protocol/sdk.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.2","description":"Core schema, validation, and file I/O for the Atomic Content Protocol","directories":{},"_nodeVersion":"23.6.1","dependencies":{"zod":"^3.24.0","uuid":"^11.1.0","js-yaml":"^4.1.0","gray-matter":"^4.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^25.6.0","@types/uuid":"^10.0.0","@types/js-yaml":"^4.0.9"},"optionalDependencies":{"tiktoken":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.2_1777677974453_0.8762121654192909","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@atomic-content-protocol/core","version":"0.1.3","keywords":["acp","atomic-content-protocol","knowledge-graph","ai","llm","schema"],"author":{"url":"https://www.stacks.inc/","name":"Stacks, Inc"},"license":"Apache-2.0","_id":"@atomic-content-protocol/core@0.1.3","maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"homepage":"https://atomiccontentprotocol.org","bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"dist":{"shasum":"58507231f153b98d967aabdb81d912169de9abc1","tarball":"https://registry.npmjs.org/@atomic-content-protocol/core/-/core-0.1.3.tgz","fileCount":103,"integrity":"sha512-EKkLwS7Zu2tzW5jtmcnBgTL/7RPGHL6smzuP/9nUVP05iKDKq3i2S6k0Dy78wmJ5AKbQzZGOxEiUvbGoLpQzeA==","signatures":[{"sig":"MEUCIQC/LWCURb3tPHBJDzj/ra9qKBcSaWpI456bmqYbOPFiJAIgWnCBdigTzjq/LuXUhu6NO+Xz8MGpLgXri90PiBtMUV0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":404622},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"42ccd7275847a86a16859c85858c29aea6921e9d","scripts":{"lint":"tsc --noEmit","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"acp-sdk","email":"martina@stacklist.com"},"repository":{"url":"git+https://github.com/atomic-content-protocol/sdk.git","type":"git","directory":"packages/core"},"_npmVersion":"10.9.2","description":"Core schema, validation, and file I/O for the Atomic Content Protocol","directories":{},"_nodeVersion":"23.6.1","dependencies":{"zod":"^3.24.0","uuid":"^11.1.0","js-yaml":"^4.1.0","gray-matter":"^4.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^3.1.0","typescript":"^5.8.0","@types/node":"^25.6.0","@types/uuid":"^10.0.0","@types/js-yaml":"^4.0.9"},"optionalDependencies":{"tiktoken":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/core_0.1.3_1777759578679_0.07396610386140168","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@atomic-content-protocol/core","version":"0.2.0","keywords":["acp","atomic-content-protocol","knowledge-graph","ai","llm","schema"],"author":{"url":"https://www.stacks.inc/","name":"Stacks, Inc"},"license":"Apache-2.0","_id":"@atomic-content-protocol/core@0.2.0","maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"homepage":"https://atomiccontentprotocol.org","bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"dist":{"shasum":"659e7de36214aafd0628a7fb49ef383ee9909d04","tarball":"https://registry.npmjs.org/@atomic-content-protocol/core/-/core-0.2.0.tgz","fileCount":111,"integrity":"sha512-sA1M9Kd07wtYjxL83HKrlyjiSaZ5e5Nhay+I7/ikHpEET6+3uLmsIE8RJZ8O5e3axS2xfUdP/AFfsLdtlkEtGw==","signatures":[{"sig":"MEYCIQCHxcmeDw8zeqWipyFwkZQE2hs4lH2PRZ+adM6wIes0CgIhAOxOlo6/Xjey5VcFSk7cOErHEfPsCy7jlvRZRLqTb5tQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-content-protocol%2fcore@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":440741},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"gitHead":"36e5541054e17d16a94c3152556dbfb16b7f177d","scripts":{"lint":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json","test":"vitest run","build":"tsc","clean":"rm -rf dist","test:watch":"vitest"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99ef2837-2c95-44f8-8f1f-1d856678ced5"}},"repository":{"url":"git+https://github.com/atomic-content-protocol/sdk.git","type":"git","directory":"packages/core"},"_npmVersion":"12.0.2","description":"Core schema, validation, and file I/O for the Atomic Content Protocol","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"zod":"^3.24.0","uuid":"^11.1.0","js-yaml":"^4.1.0","gray-matter":"^4.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^5.0.0","typescript":"^5.8.0","@types/node":"^22.0.0","@types/js-yaml":"^4.0.9"},"optionalDependencies":{"tiktoken":"^1.0.21"},"_npmOperationalInternal":{"tmp":"tmp/core_0.2.0_1789375560835_0.581844005308227","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@atomic-content-protocol/core","version":"0.2.1","description":"Core schema, validation, and file I/O for the Atomic Content Protocol","author":{"name":"Stacks, Inc","url":"https://www.stacks.inc/"},"type":"module","sideEffects":false,"main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","default":"./dist/index.js"}},"scripts":{"build":"tsc","test":"vitest run","test:watch":"vitest","clean":"rm -rf dist","lint":"tsc --noEmit && tsc --noEmit -p tsconfig.test.json"},"dependencies":{"gray-matter":"^4.0.3","js-yaml":"^4.1.0","uuid":"^11.1.0","zod":"^3.24.0"},"optionalDependencies":{"tiktoken":"^1.0.21"},"devDependencies":{"@types/js-yaml":"^4.0.9","@types/node":"^22.0.0","typescript":"^5.8.0","vitest":"^5.0.0"},"license":"Apache-2.0","engines":{"node":">=20.0.0"},"publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/atomic-content-protocol/sdk.git","directory":"packages/core"},"homepage":"https://atomiccontentprotocol.org","bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"keywords":["acp","atomic-content-protocol","knowledge-graph","ai","llm","schema"],"gitHead":"5d1371c8fa4d990983eb12de2b3f9660ca244b88","_id":"@atomic-content-protocol/core@0.2.1","_nodeVersion":"22.23.2","_npmVersion":"12.0.2","dist":{"integrity":"sha512-+Fbl9mceccTODX+CumXUTPZvYETOlHjn6N0JFMbKx/y6H0FunEAHkVC9vu/9ZzzYn+04RrVvjlIlhhamvg9miA==","shasum":"e3c049e23b66388275c85c44500dd0f36f6a3eda","tarball":"https://registry.npmjs.org/@atomic-content-protocol/core/-/core-0.2.1.tgz","fileCount":111,"unpackedSize":456973,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@atomic-content-protocol%2fcore@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGrMffOOxzI+5xuqlsd11TK+qM+yEVBGpcKNRJsVgxeUAiEAwhbY/ZSYhnpYCK+0IyJ69TmPDFlIFP4b425Sbs77EPY="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:99ef2837-2c95-44f8-8f1f-1d856678ced5"}},"directories":{},"maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.2.1_1789387248122_0.3183406941974338"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-19T20:34:13.960Z","modified":"2026-09-14T12:00:48.615Z","0.1.0":"2026-04-19T20:34:14.215Z","0.1.1":"2026-04-20T20:02:19.003Z","0.1.2":"2026-05-01T23:26:14.635Z","0.1.3":"2026-05-02T22:06:18.836Z","0.2.0":"2026-09-14T08:46:00.972Z","0.2.1":"2026-09-14T12:00:48.242Z"},"bugs":{"url":"https://github.com/atomic-content-protocol/sdk/issues"},"author":{"name":"Stacks, Inc","url":"https://www.stacks.inc/"},"license":"Apache-2.0","homepage":"https://atomiccontentprotocol.org","keywords":["acp","atomic-content-protocol","knowledge-graph","ai","llm","schema"],"repository":{"type":"git","url":"git+https://github.com/atomic-content-protocol/sdk.git","directory":"packages/core"},"description":"Core schema, validation, and file I/O for the Atomic Content Protocol","maintainers":[{"name":"stacklist","email":"kyle@stacklist.com"},{"name":"acp-sdk","email":"martina@stacklist.com"}],"readme":"# @atomic-content-protocol/core\n\nCore schema, validation, and file I/O for the [Atomic Content Protocol](https://atomiccontentprotocol.org).\n\nAn **Atomic Content Object (ACO)** is a Markdown file with structured YAML frontmatter — a format that's both human-readable and machine-addressable.\n\n## Install\n\n```bash\nnpm install @atomic-content-protocol/core\n```\n\n## Quick start\n\n```typescript\nimport { createACO, validateACO, parseACO, serializeACO, FilesystemAdapter } from \"@atomic-content-protocol/core\";\n\nconst aco = await createACO({\n  title: \"My First ACO\",\n  author: { id: \"you@example.com\", name: \"Your Name\" },\n  body: \"# Hello, world\\n\\nThe smallest valid ACO.\",\n});\n\nconst { valid, errors } = validateACO(aco.frontmatter);\n\nconst markdown = serializeACO(aco.frontmatter, aco.body); // \"---\\n…\\n---\\n# Hello, world…\\n\"\nconst parsed = parseACO(markdown);                          // { frontmatter, body, raw }\n\nconst vault = new FilesystemAdapter(\"./vault\");\nawait vault.putACO(aco);\n```\n\n## Runtime support\n\nNode.js ≥ 20. The package entry point uses `node:fs`, `node:crypto` and `node:dns` (filesystem vault, content hashing, SSRF-safe URL fetching), so it is not browser-bundleable as a whole. The Zod schemas in `schema/` have no Node dependencies and can be deep-imported by browser code once subpath exports land (planned for 0.3).\n\n## What's in the package\n\n- `schema/` — Zod validators for ACO, Container, Collection, edges, provenance\n- `types/` — Runtime TypeScript interfaces\n- `io/` — `parseACO`, `parseAndValidateACO`, `serializeACO`\n- `storage/` — `IStorageAdapter`, `FilesystemAdapter`\n- `graph/` — `getRelatedACOs` for relationship traversal\n- `utils/` — `generateId`, `computeContentHash`, `computeTokenCounts`, error classes\n- `migrate` — version migration helpers\n\n## Links\n\n- Protocol spec: [atomiccontentprotocol.org](https://atomiccontentprotocol.org)\n- Repository: [github.com/atomic-content-protocol/sdk](https://github.com/atomic-content-protocol/sdk)\n- Issues: [github.com/atomic-content-protocol/sdk/issues](https://github.com/atomic-content-protocol/sdk/issues)\n\n## Stewardship\n\nThe Atomic Content Protocol is an open standard stewarded by [Stacks, Inc](https://www.stacks.inc/) — the company behind [Stacklist](https://stacklist.com).\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}