{"_id":"@airo-js/cartridge-kit","_rev":"27-1516cb8a335e8995f5eb9820cbd9c5ba","name":"@airo-js/cartridge-kit","dist-tags":{"rc":"0.7.3","latest":"0.11.0"},"versions":{"0.2.0-rc.4":{"name":"@airo-js/cartridge-kit","version":"0.2.0-rc.4","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.2.0-rc.4","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"0e4877bf81c9a7b2a02f4f9a126471ab047c1dc2","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.2.0-rc.4.tgz","fileCount":73,"integrity":"sha512-z90uEjMH7kJxD1TvBvqYoLO5b07ynrjEzhwDpevPJwNmkRutC6F2ptEIIXE8zYdlsLFUo6r3lye3HtMXOBbldQ==","signatures":[{"sig":"MEUCIQC/R4oN2a3K/V0bshTkEAfToPeWCt+gGp0Yl0fA+5NTiAIgAiQmURbBncf559qwJtzsMg9490pZFw4uTDAEZHV/YV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144977},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.2.0-rc.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/fb22f29e3e2a5923daf6e3b7121015d3/airo-js-cartridge-kit-0.2.0-rc.4.tgz","_integrity":"sha512-z90uEjMH7kJxD1TvBvqYoLO5b07ynrjEzhwDpevPJwNmkRutC6F2ptEIIXE8zYdlsLFUo6r3lye3HtMXOBbldQ==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@airo-js/core":"0.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.2.0-rc.4_1778161692134_0.5550881118352258","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.5":{"name":"@airo-js/cartridge-kit","version":"0.2.0-rc.5","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.2.0-rc.5","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"9108a06abe6417959867582380fd726c6433d550","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.2.0-rc.5.tgz","fileCount":73,"integrity":"sha512-tLQKDfmGN2TQr/9vVeQvjpRiiuQUoDHWMAfiXq19HcXMtwoxxXFVGce9pDPfsR8eDwecKQkz6dIMBXROeNhFzw==","signatures":[{"sig":"MEUCIEzSK9q1gN2nrAx0k4gBu6qCxKkkgq8opm568MUbRMhdAiEAwhqYPJWu7EjWqZQGkwSIFEWKn4ZAAiq/DcMt0jbZfI0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152965},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.2.0-rc.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/5b11026835389969ed98e307c4b8b69c/airo-js-cartridge-kit-0.2.0-rc.5.tgz","_integrity":"sha512-tLQKDfmGN2TQr/9vVeQvjpRiiuQUoDHWMAfiXq19HcXMtwoxxXFVGce9pDPfsR8eDwecKQkz6dIMBXROeNhFzw==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@airo-js/core":"0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.2.0-rc.5_1778334840739_0.4540070146219797","host":"s3://npm-registry-packages-npm-production"}},"0.2.0-rc.6":{"name":"@airo-js/cartridge-kit","version":"0.2.0-rc.6","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.2.0-rc.6","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"53585a2a60b13d7269a05aeb28a9e75b12c59965","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.2.0-rc.6.tgz","fileCount":73,"integrity":"sha512-z1pw/sxx/OlccUvoQWU/8mZbfr1dmBiCyt9Ol/g6RklsvZJbSmG7qg8k7feQcSppdgU/XbdnXZh0GC+9/WHrxQ==","signatures":[{"sig":"MEYCIQDsXFYGD6SxIwVgbPQtGAUb0dagjFC08Yv0n+1No0i9cQIhANl6aiKMemU5FFqWcD93eXc6ytkfmxvp99Vah5tpKscf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152966},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.2.0-rc.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/122722c564480d8272e512a75442345e/airo-js-cartridge-kit-0.2.0-rc.6.tgz","_integrity":"sha512-z1pw/sxx/OlccUvoQWU/8mZbfr1dmBiCyt9Ol/g6RklsvZJbSmG7qg8k7feQcSppdgU/XbdnXZh0GC+9/WHrxQ==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","dependencies":{"@airo-js/core":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.2.0-rc.6_1778335614901_0.12683519747032856","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-rc.0":{"name":"@airo-js/cartridge-kit","version":"0.3.0-rc.0","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.3.0-rc.0","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"d0530e38fec2a21a73e6cee35adcbe4345cd664d","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.3.0-rc.0.tgz","fileCount":73,"integrity":"sha512-aQ0omcWZtrsdqB+zHxrU82QhO3yvQyqfj88cBrfheJK6t6N6UatUtu3TrJy86zFcHEk4bxuxkRbzL+Xlx0Hs2A==","signatures":[{"sig":"MEQCIE0/TIZIk8CTyZTV2YFlxgWSSU3UdQM7dw0Co3mdQZNpAiBBGd9MTmgNRsGYDF5vPO1BQkNrVsNQMoAPMeX0jaTK4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152970},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.3.0-rc.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/981cac23abf0bebdf0848d33fa433dab/airo-js-cartridge-kit-0.3.0-rc.0.tgz","_integrity":"sha512-aQ0omcWZtrsdqB+zHxrU82QhO3yvQyqfj88cBrfheJK6t6N6UatUtu3TrJy86zFcHEk4bxuxkRbzL+Xlx0Hs2A==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.3.0-rc.0_1778336204034_0.37652998731773946","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.0":{"name":"@airo-js/cartridge-kit","version":"0.4.0-rc.0","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.4.0-rc.0","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"f8b672721bae63449e1837a7724a6e19700f47fc","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.4.0-rc.0.tgz","fileCount":88,"integrity":"sha512-cDUB6xTQ1bqwvOjP3iCGNW+C2ZebZeAzeJm0FqRvf5jeK5aDOFzSJsqx9kYXqTCHQgZgDYf9yOnk/pSe4KFYRA==","signatures":[{"sig":"MEQCIEuJZPPBBN92v8xyQKaq5qixxIBSu7wOupTyM3pSEFMnAiAkky//+EZoMMa6021lB6Kt7rr3eXQ+PyPSYjnB2KtPXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198224},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.4.0-rc.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/262ee4d316e9150ca68f47ccf0a32e6a/airo-js-cartridge-kit-0.4.0-rc.0.tgz","_integrity":"sha512-cDUB6xTQ1bqwvOjP3iCGNW+C2ZebZeAzeJm0FqRvf5jeK5aDOFzSJsqx9kYXqTCHQgZgDYf9yOnk/pSe4KFYRA==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.4.0-rc.0_1778342587965_0.1344774700275302","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@airo-js/cartridge-kit","version":"0.4.0","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.4.0","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"2287d3215cb85db0d73fe554aefbedc32f0c098f","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.4.0.tgz","fileCount":88,"integrity":"sha512-D2jxNoSZ62o0WnrVhQHybLVv2OlZUQx/I+Rimv78G6+9R6RBgPsgwHFG3BtcXhWhr1yhHGTeURM2lVDqDCgO+A==","signatures":[{"sig":"MEUCIBxe3ICCrhUbYFGrOjQGzAGVqrrHH0r/E8da0XzsASWCAiEApJLh664rVlieBnxwgRk28ThCHEEIJwnIyu9K5p//hZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198219},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/0e1e26817b8d1f43c5be3b9ae739adb7/airo-js-cartridge-kit-0.4.0.tgz","_integrity":"sha512-D2jxNoSZ62o0WnrVhQHybLVv2OlZUQx/I+Rimv78G6+9R6RBgPsgwHFG3BtcXhWhr1yhHGTeURM2lVDqDCgO+A==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.4.0_1778516235128_0.13710042875558992","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@airo-js/cartridge-kit","version":"0.4.1","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.4.1","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"bf98a6fe13eec2490717882245de05b159947438","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.4.1.tgz","fileCount":93,"integrity":"sha512-iZWHp6zZFCzc2ucqE/uPQ1qKx2AzOyNKOexdM8SUceRS7pr88xs7FTPfmxsZULA6kWKAPBUVPXEincoiuaUhOw==","signatures":[{"sig":"MEYCIQCxW+qOC6PD3dbDtSZSnu7Vx3jTlpGAMCcrcXEOW74ZaQIhALttKXa9Hz4yhAhvm946FdqKJeuWHDDHReyNa+7Z01K2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214530},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.4.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/1661e96856c1d9d9a7efbbd010715f92/airo-js-cartridge-kit-0.4.1.tgz","_integrity":"sha512-iZWHp6zZFCzc2ucqE/uPQ1qKx2AzOyNKOexdM8SUceRS7pr88xs7FTPfmxsZULA6kWKAPBUVPXEincoiuaUhOw==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.4.2"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.4.1_1778578161902_0.7734798053989627","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@airo-js/cartridge-kit","version":"0.4.2","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.4.2","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"61a26d2b7c7493e48991182d3728aad5fbc2e2f2","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.4.2.tgz","fileCount":98,"integrity":"sha512-gyFjrzwlTKGFfzvJ+9XZs3+SSuFJiEKWVBvjnilLKb7g9krUfj4Mv3vGTJp11RNIUk1+7N4D0CeeGRlDRy3ggw==","signatures":[{"sig":"MEUCIQD6wlbc4QSdB1tjtmQbBPXfq4DNQRl0DxkCiasu24EYNwIgS7fMFO8BpJ6YuZ0Wc9ZWfPd3+2AmHKhn70a270tDg+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222041},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.4.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/ff23124c131d779e065fbd8743e56c4a/airo-js-cartridge-kit-0.4.2.tgz","_integrity":"sha512-gyFjrzwlTKGFfzvJ+9XZs3+SSuFJiEKWVBvjnilLKb7g9krUfj4Mv3vGTJp11RNIUk1+7N4D0CeeGRlDRy3ggw==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.4.2"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.4.2_1778591685685_0.9380722205140988","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@airo-js/cartridge-kit","version":"0.5.0","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.5.0","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"c83d66266f6c884ce82db6bc4693cc46de54b798","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.5.0.tgz","fileCount":98,"integrity":"sha512-jiV/q1D1pMFZJrsUOPvfMERTOpJZ+gzFXtmaYNBcDyf+1Xv7S/MZ7oWb7v4EWOfPhnj69xkglb2bAEuXRkk+jQ==","signatures":[{"sig":"MEUCIE2U4RirYwc3OgPB8qL71TngF3j6UFuw6TIB4fZjru6VAiEAtVjOF1lnbghQL6XEGdQVP9yHYjaSPbAC/maR/c90kcY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222041},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/55d7e2725f02d51aab4ee28520e48ed6/airo-js-cartridge-kit-0.5.0.tgz","_integrity":"sha512-jiV/q1D1pMFZJrsUOPvfMERTOpJZ+gzFXtmaYNBcDyf+1Xv7S/MZ7oWb7v4EWOfPhnj69xkglb2bAEuXRkk+jQ==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.5.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.5.0_1778609930425_0.44113233239510397","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@airo-js/cartridge-kit","version":"0.6.0","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.6.0","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"f662e22be6b3fdfc128130eacebc8a64c2c184a7","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.6.0.tgz","fileCount":98,"integrity":"sha512-LAxU8ZDWeiXnEVXE6MRu2veszkiio0y3a+9lsKglPvbQSxqDCYLaX6dQ9VSl/JcAoeqPYOsCRFFMlq3VvHP2HQ==","signatures":[{"sig":"MEUCIHpDTp8tl2wF1pVS5rINtaRh+p2q1ZfzrKKApZU7KtUIAiEAjlRkarI0HZ5CwJPPSN68DBeXPqUXwt6+GfHQbeqX5GE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222041},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.6.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/200932bcb2825ab3812ebf1d646ea12c/airo-js-cartridge-kit-0.6.0.tgz","_integrity":"sha512-LAxU8ZDWeiXnEVXE6MRu2veszkiio0y3a+9lsKglPvbQSxqDCYLaX6dQ9VSl/JcAoeqPYOsCRFFMlq3VvHP2HQ==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.6.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.6.0_1778679789039_0.6960183506133846","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@airo-js/cartridge-kit","version":"0.7.0","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.7.0","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"c28a6aefbcd19a2f9f721064d7222c641941d82e","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.7.0.tgz","fileCount":98,"integrity":"sha512-a4j9sGKRWj+JbP1G5B5Bea30JtuQ+nr5tbbuYyVPJvLluMKU3bQvfGGXLqCdp4E4hqZPJm56zv2dBLmeFTUskQ==","signatures":[{"sig":"MEQCIGJOtWTRSJOsaL7+UjbKDL+t47g4fZDrgdGlQ/MZ3jFvAiAHRqWwZosiNHSrOSgYfiaBy2Ofp6EnnOpuTw13qEm/xQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":227822},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/4679d937fe27154522657307ad518931/airo-js-cartridge-kit-0.7.0.tgz","_integrity":"sha512-a4j9sGKRWj+JbP1G5B5Bea30JtuQ+nr5tbbuYyVPJvLluMKU3bQvfGGXLqCdp4E4hqZPJm56zv2dBLmeFTUskQ==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.7.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.7.0_1778701987898_0.06158863649155455","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@airo-js/cartridge-kit","version":"0.7.1","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.7.1","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"446e56043e822ac02aa9f1980c93b95178e7edc1","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.7.1.tgz","fileCount":108,"integrity":"sha512-/LfwXXDVbE6pKJXopPW34BMBcgI0478VOGXeYRW4zPiFEJuGClHlBxSPlPLfdYLI/n61jgFhdajbzY9UGLtHQg==","signatures":[{"sig":"MEUCIQCXia54a6PUPyCUo1VOtPKw4cdfEiuIs/aklvyckAv1uAIgT9L5b3/py1gUk1ouG/XZhY9s9eDnGsKnE4ttGQp+Dco=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238468},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.7.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/b0205d4dbc90883b25615667c74b22db/airo-js-cartridge-kit-0.7.1.tgz","_integrity":"sha512-/LfwXXDVbE6pKJXopPW34BMBcgI0478VOGXeYRW4zPiFEJuGClHlBxSPlPLfdYLI/n61jgFhdajbzY9UGLtHQg==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.7.1"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.7.1_1778751161643_0.24677890784345302","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@airo-js/cartridge-kit","version":"0.7.2","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.7.2","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"3527c7b78658d75138b3d1367479eaec3b7e6d47","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.7.2.tgz","fileCount":108,"integrity":"sha512-FVH+HvEnX4pxDsk5WpkQzKlQXtus5SQsGTm1trGAvqb3rRVt7OwrhrhmWPV0yucyXSwKV5MNKTG68e/C1OtOyw==","signatures":[{"sig":"MEYCIQCYx43l08EcWzGzPTkbK17n+vjTvHf5lL/nbiPCztaD1AIhAIzljwQpCn3OANoNjiQmlxB+HNV41iEp4Lsn99J38pu2","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":238468},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.7.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/8dd1f8dbfa681b5982ff4c0576be6eba/airo-js-cartridge-kit-0.7.2.tgz","_integrity":"sha512-FVH+HvEnX4pxDsk5WpkQzKlQXtus5SQsGTm1trGAvqb3rRVt7OwrhrhmWPV0yucyXSwKV5MNKTG68e/C1OtOyw==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.7.2"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.7.2_1779126257463_0.3416204654577235","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@airo-js/cartridge-kit","version":"0.7.3","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.7.3","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"5399fc2338a070eccfa7e9cc5a457af88ad5f84e","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.7.3.tgz","fileCount":113,"integrity":"sha512-C+j042L3AAaNN+98lVSowWx6Wi+ZVMXbR2TR8+JVVR0Jr0S86lGJpmD+UAed7+QVYcMlVRXQQcNObPVV5xiZjA==","signatures":[{"sig":"MEUCIEslAlJhT+9Dkfl9kPL2R2lSuHrKis+cQ2YPqJT82B5pAiEA+Pf3Mq1Elwy6+QEIAIUudD8QIyKwhSsp73e7hFNR78s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259948},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.7.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/8d54983f814fd942cab57f86b6b9855e/airo-js-cartridge-kit-0.7.3.tgz","_integrity":"sha512-C+j042L3AAaNN+98lVSowWx6Wi+ZVMXbR2TR8+JVVR0Jr0S86lGJpmD+UAed7+QVYcMlVRXQQcNObPVV5xiZjA==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.7.3"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.7.3_1779129629587_0.35294893154638607","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@airo-js/cartridge-kit","version":"0.8.0","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.8.0","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"630c069aabf45dbd7b5e7a10080db1a6a2cf62d6","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.8.0.tgz","fileCount":113,"integrity":"sha512-HQW6G6gqhB5BXktkNaLXoKrByfxxegaA4pohwE9jQGX0opTxjp3W+NwbGps+N+thWSD5NDPkGLdyxuUNTyRHYA==","signatures":[{"sig":"MEYCIQCcQPKqBhg1n1r+eTeykkHSOkFBEeX870cToWzYacuAxAIhAMAMrFlHj2FhxgirK94b4VVxH7dlPHR3Ru5e1q9rgJgm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272555},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/d403e6ba77ea35cd7e4d96818ff95531/airo-js-cartridge-kit-0.8.0.tgz","_integrity":"sha512-HQW6G6gqhB5BXktkNaLXoKrByfxxegaA4pohwE9jQGX0opTxjp3W+NwbGps+N+thWSD5NDPkGLdyxuUNTyRHYA==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.8.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.8.0_1779189637037_0.5056974870035216","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@airo-js/cartridge-kit","version":"0.8.1","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.8.1","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"a6c2eacdaff7792e5ed268610364c68496a3498d","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.8.1.tgz","fileCount":113,"integrity":"sha512-w4+ZBhYyNeNTJQnXZkSNWUd2TToS3MeUJtW9h72JtERi8Ex6qORyoAUEUMEnXCjyRyjLtngjTHIfYqAe8IW94g==","signatures":[{"sig":"MEQCIHzgBlWBbNILB+WlZpSCjOj6z5WaObJEtRFZFGae1gBkAiADjveKulS30EgOsLl2ZkOGRKusrCsqDGUd4HaGdAb8sg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":278329},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.8.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/906aaa65a25714d08bd7f8e218b1095b/airo-js-cartridge-kit-0.8.1.tgz","_integrity":"sha512-w4+ZBhYyNeNTJQnXZkSNWUd2TToS3MeUJtW9h72JtERi8Ex6qORyoAUEUMEnXCjyRyjLtngjTHIfYqAe8IW94g==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.8.1"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.8.1_1779285007154_0.8802154027211491","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@airo-js/cartridge-kit","version":"0.8.2","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.8.2","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"99b3a8f32ac11d87f3e89f86509cb8331fd3d44d","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.8.2.tgz","fileCount":113,"integrity":"sha512-Je90OckU+OuAO66JebOgg+8hTw0qTS0mQybHuTVCCgZlaRARKLCMegiFTNZ5qUqdH6t9oya82xS1U5Bvw9rwOA==","signatures":[{"sig":"MEUCIHZnajb3nzHJgXnVI6FrSwo/XHXxuVq6GKJOeEFKI31KAiEA9lMDG0F0lg4jSc0v8ref9SgkLLiGWOxiQv1JevmeS8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279424},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.8.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/d996b06010f7c15143e4531d2e582d32/airo-js-cartridge-kit-0.8.2.tgz","_integrity":"sha512-Je90OckU+OuAO66JebOgg+8hTw0qTS0mQybHuTVCCgZlaRARKLCMegiFTNZ5qUqdH6t9oya82xS1U5Bvw9rwOA==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.8.2"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.8.2_1779290431310_0.7945643339485797","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@airo-js/cartridge-kit","version":"0.8.3","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.8.3","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"2cf5f6e3068449801b4847fdae86390f3642ee35","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.8.3.tgz","fileCount":113,"integrity":"sha512-tL5eekK7AW3LbFvH5pdxmIweSVyYLiteFQmAMB4xVSZz2xibw7PyE1nVAu3sVF7fQT7IyxATP1gNdhf/AZshbw==","signatures":[{"sig":"MEUCIQDFhq8GoS1txrFWoeg5au2CnmFWbM96bDz0xV2mnmP1hQIgAaJ1DYlabvLKBLY0jdKO50R4ZmtcUv/O60v4IoHr2ow=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279806},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.8.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/c80803608fc94d7acc418d164db3ab68/airo-js-cartridge-kit-0.8.3.tgz","_integrity":"sha512-tL5eekK7AW3LbFvH5pdxmIweSVyYLiteFQmAMB4xVSZz2xibw7PyE1nVAu3sVF7fQT7IyxATP1gNdhf/AZshbw==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.8.3"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.8.3_1779724179308_0.19666731345181043","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"@airo-js/cartridge-kit","version":"0.8.4","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.8.4","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"b6a359ba8808ff9244077ea77f85d94b77d926e1","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.8.4.tgz","fileCount":113,"integrity":"sha512-r6j3uZFsUmKS9H83LeUJ35QCKVtOhCDAC27s/txxPNo1SM9khJ1XP0mE195pxgLjJ7tnsfBO5FK2AkGmgbxDZQ==","signatures":[{"sig":"MEQCIFZ+Eiz54x+t4QzTb1UTL9/ROBziLgBRZEomM5DiAIGaAiAk+uWlMH8ORmFp7onp1+y8KG9mgAnGuDyCM3ryJr1yhA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279806},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.8.4.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/3cbfc44f3473c5df1b926f0bd596b934/airo-js-cartridge-kit-0.8.4.tgz","_integrity":"sha512-r6j3uZFsUmKS9H83LeUJ35QCKVtOhCDAC27s/txxPNo1SM9khJ1XP0mE195pxgLjJ7tnsfBO5FK2AkGmgbxDZQ==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"10.9.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"23.6.1","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.8.4"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.8.4_1779901958335_0.9530329456547231","host":"s3://npm-registry-packages-npm-production"}},"0.8.5":{"name":"@airo-js/cartridge-kit","version":"0.8.5","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.8.5","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"cd2ba3041310301861ea92b0359523d10e602e95","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.8.5.tgz","fileCount":113,"integrity":"sha512-kxiaMs8x7l/kMvWlc+/oG8J6KsCWjibJENXu5egfKCoAxtuUE+MB+JMPi4lFk0IFD0ssJ+uX4A6UajCm/OS2ZQ==","signatures":[{"sig":"MEYCIQDamS3co+2MQ5ZrtxIPQwqLS0xfIpWshrdtLJTJYwKxUAIhAIi58ur06wvbKc6QKNKJqUYVWKDIbgZ/cOTxu2TaFZ2l","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279806},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.8.5.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/0cf6b3da389c9e3874658620ce1c73cc/airo-js-cartridge-kit-0.8.5.tgz","_integrity":"sha512-kxiaMs8x7l/kMvWlc+/oG8J6KsCWjibJENXu5egfKCoAxtuUE+MB+JMPi4lFk0IFD0ssJ+uX4A6UajCm/OS2ZQ==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.8.5"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.8.5_1781099275521_0.4664080666948829","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"@airo-js/cartridge-kit","version":"0.8.6","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.8.6","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"3237f32582363daebd91e421cd915ec85986b8a6","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.8.6.tgz","fileCount":128,"integrity":"sha512-7FCO/jbhsXqcwDOzagYfwRjL404gc+kxqTM/WNbtewLD3rwg+Z4ZU2UAu+Jda2wHYGkVcUWciNasFEe9jmr6ng==","signatures":[{"sig":"MEUCIQDhEvH4yAngD1QyFgVvvzf3dw0tXQXFhV3T0xNOeDkYdwIgX/JuyLApq/Z7+ph/mR82Zz2T05wtrpSXW/el5Re2eH8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323143},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.8.6.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/97c131d7edf1b6ca8d3b175adbfdbe85/airo-js-cartridge-kit-0.8.6.tgz","_integrity":"sha512-7FCO/jbhsXqcwDOzagYfwRjL404gc+kxqTM/WNbtewLD3rwg+Z4ZU2UAu+Jda2wHYGkVcUWciNasFEe9jmr6ng==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.8.6"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.8.6_1781195145397_0.7012894592456076","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"@airo-js/cartridge-kit","version":"0.8.7","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.8.7","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"81e4bfb5d2c72df0e9ab68fb896d34384af48841","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.8.7.tgz","fileCount":128,"integrity":"sha512-Etp0d+VCK/u5/nYp2QQvWa1+E3pN5ZZzmPxsfoZrzvRT82b5yEUjIWJaD3kXW/LdkhYQ6v+oMhNdcAki7MSg4w==","signatures":[{"sig":"MEYCIQCibFz9LrR68tmRYVmxD/tmKj+3r4DUoqhL0wyEoVptmwIhAKxWSXMt6RntpFmvNfcQXbxflThjVp9gdKxxPJhHpe/1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323021},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.8.7.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/53a5a540df898e08ef4f0e7cb1aeb3cc/airo-js-cartridge-kit-0.8.7.tgz","_integrity":"sha512-Etp0d+VCK/u5/nYp2QQvWa1+E3pN5ZZzmPxsfoZrzvRT82b5yEUjIWJaD3kXW/LdkhYQ6v+oMhNdcAki7MSg4w==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.8.7"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.8.7_1783676366779_0.03744182320637357","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"@airo-js/cartridge-kit","version":"0.8.8","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.8.8","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"7b412c026bf616dec029f7042a85462e91121af4","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.8.8.tgz","fileCount":128,"integrity":"sha512-FEGKsn96CkaJqcMD3/2NOZxj4rxt4zmCusNlfyUnYArQjDXuA34w89Qj9GlFN8zlTILDiTOgaBWDXRNXB9uM4g==","signatures":[{"sig":"MEUCIQDG5lue1pt9V9bQBySdgqGUs28mRytHqRO52u8OY0nzYgIgavo6nRZ2cJ8V2JcCJpOhpSNvfNApGI0L664ouyy1aOI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":323463},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.8.8.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/37fe9b9fc7639ac9ce0cf6d3f40f9598/airo-js-cartridge-kit-0.8.8.tgz","_integrity":"sha512-FEGKsn96CkaJqcMD3/2NOZxj4rxt4zmCusNlfyUnYArQjDXuA34w89Qj9GlFN8zlTILDiTOgaBWDXRNXB9uM4g==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.8.8"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.8.8_1784907816984_0.9058335239543702","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@airo-js/cartridge-kit","version":"0.9.0","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.9.0","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"1a0c4af922bd5c7cd95836c24c322843878bb544","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.9.0.tgz","fileCount":133,"integrity":"sha512-fG0BpwrOXr/7mW6pG2i1DjPUUZDX/iWxuolLE1mqDOAzClY3q21AzMix6o3lXwqxabYuoWHyQ85+0/QiByCLbA==","signatures":[{"sig":"MEUCIQDYmtEzllEIlN1oz6Zfe3MtyDnNEUWOWE3Em8PrOjOCuAIgfd6uIA6HgFsVxyaXP39nlNshSehwuZhc/RuzcHK6YBY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":379622},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.9.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/061757c12aeed8e7480f39f9204031f8/airo-js-cartridge-kit-0.9.0.tgz","_integrity":"sha512-fG0BpwrOXr/7mW6pG2i1DjPUUZDX/iWxuolLE1mqDOAzClY3q21AzMix6o3lXwqxabYuoWHyQ85+0/QiByCLbA==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.9.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.9.0_1788594114086_0.8562387124925781","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@airo-js/cartridge-kit","version":"0.10.0","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.10.0","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"92fdeafb28b7f99b1500c978ec0b676420fe2190","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.10.0.tgz","fileCount":138,"integrity":"sha512-sWV9jWWdgzZKlNpKNDupvxhaOSQH+nJHDOgObCsiI5lfrZBLtTV36UG9KB2IXCgtVytt6eT6+ItuYB8MAKPnUw==","signatures":[{"sig":"MEUCIEfh8tiiKETJMBHio25VvK9QTKgTF/CzoFYGk6j2X+0QAiEA7yRUhbChNEYLS4iw4GuTEBpt7MGaEW3OJF/kc479Fuo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":392932},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.10.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/de5dec09f532fef89e4e3ec4c5f2bd0d/airo-js-cartridge-kit-0.10.0.tgz","_integrity":"sha512-sWV9jWWdgzZKlNpKNDupvxhaOSQH+nJHDOgObCsiI5lfrZBLtTV36UG9KB2IXCgtVytt6eT6+ItuYB8MAKPnUw==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.10.0_1788612214092_0.21718179266939175","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@airo-js/cartridge-kit","version":"0.10.1","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","_id":"@airo-js/cartridge-kit@0.10.1","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"dist":{"shasum":"85b6485bd525b2940ff081ce99516dfa35bbfa89","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.10.1.tgz","fileCount":143,"integrity":"sha512-HC2pe7wjykR0K93eXWexgaD2yghTurkLLi3Xayu685S3NCNqzc8AMja23axo6j18rWAbDQAEOW4/bhsMk3pvVw==","signatures":[{"sig":"MEQCIAdGPJsaj7HjPSsJ10C55M0JptZY9YgmSn5m6REb9BDNAiB8V754ca/6I0EQ2Q7VEkdwwNCSpV+Ye0W5XwOITdeD8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":417030},"main":"./dist/index.js","type":"module","_from":"file:airo-js-cartridge-kit-0.10.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"test":"vitest run","build":"tsc -p tsconfig.json","clean":"rm -rf dist *.tsbuildinfo","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/071e4a9dca89952c3b388f6c53f3f8ec/airo-js-cartridge-kit-0.10.1.tgz","_integrity":"sha512-HC2pe7wjykR0K93eXWexgaD2yghTurkLLi3Xayu685S3NCNqzc8AMja23axo6j18rWAbDQAEOW4/bhsMk3pvVw==","repository":{"url":"git+https://github.com/airo-studio/airo-js.git","type":"git","directory":"packages/cartridge-kit"},"_npmVersion":"11.4.2","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","directories":{},"sideEffects":false,"_nodeVersion":"24.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^2.1.0"},"peerDependencies":{"@airo-js/core":"^0.10.1"},"_npmOperationalInternal":{"tmp":"tmp/cartridge-kit_0.10.1_1788884727678_0.14881669765460193","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@airo-js/cartridge-kit","version":"0.11.0","description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/airo-studio/airo-js.git","directory":"packages/cartridge-kit"},"homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"type":"module","sideEffects":false,"main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"peerDependencies":{"@airo-js/core":"^0.11.0"},"devDependencies":{"vitest":"^2.1.0"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.json","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run","test:watch":"vitest","clean":"rm -rf dist *.tsbuildinfo"},"_id":"@airo-js/cartridge-kit@0.11.0","_integrity":"sha512-LqEO/OCt3UzUUQ1/zUdOEuQ0PlK8yuWf+ZpeaWvyCt8iz1uQKqW8bUMuU7LPTzgxYzze0q9ojf+5N5/huSrCCw==","_resolved":"/private/var/folders/c5/n9tshghx1rn9q47jkjlw9q4m0000gp/T/27cbde8e410ad107c79dadc4f2699a82/airo-js-cartridge-kit-0.11.0.tgz","_from":"file:airo-js-cartridge-kit-0.11.0.tgz","_nodeVersion":"24.3.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-LqEO/OCt3UzUUQ1/zUdOEuQ0PlK8yuWf+ZpeaWvyCt8iz1uQKqW8bUMuU7LPTzgxYzze0q9ojf+5N5/huSrCCw==","shasum":"558bdc785a88a762122b151ff51739d096c003a7","tarball":"https://registry.npmjs.org/@airo-js/cartridge-kit/-/cartridge-kit-0.11.0.tgz","fileCount":148,"unpackedSize":455784,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCID0JUFMl10iLUwQRqhJlC+mWZI13/Ft9CMa0T36mTMCmAiAaEpB7wQApXKh6jMOQhQqbAJ1zlsD5+4Nxk02Y20E69g=="}]},"_npmUser":{"name":"ben.smith","email":"ben.smith@dotter.me"},"directories":{},"maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cartridge-kit_0.11.0_1789137529708_0.16624293742401575"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-07T13:48:12.001Z","modified":"2026-09-11T14:38:50.030Z","0.2.0-rc.4":"2026-05-07T13:48:12.297Z","0.2.0-rc.5":"2026-05-09T13:54:00.878Z","0.2.0-rc.6":"2026-05-09T14:06:55.060Z","0.3.0-rc.0":"2026-05-09T14:16:44.181Z","0.4.0-rc.0":"2026-05-09T16:03:08.149Z","0.4.0":"2026-05-11T16:17:15.287Z","0.4.1":"2026-05-12T09:29:22.054Z","0.4.2":"2026-05-12T13:14:45.879Z","0.5.0":"2026-05-12T18:18:50.559Z","0.6.0":"2026-05-13T13:43:09.236Z","0.7.0":"2026-05-13T19:53:08.044Z","0.7.1":"2026-05-14T09:32:41.821Z","0.7.2":"2026-05-18T17:44:17.651Z","0.7.3":"2026-05-18T18:40:29.740Z","0.8.0":"2026-05-19T11:20:37.222Z","0.8.1":"2026-05-20T13:50:07.313Z","0.8.2":"2026-05-20T15:20:31.463Z","0.8.3":"2026-05-25T15:49:39.462Z","0.8.4":"2026-05-27T17:12:38.465Z","0.8.5":"2026-06-10T13:47:55.669Z","0.8.6":"2026-06-11T16:25:45.556Z","0.8.7":"2026-07-10T09:39:26.956Z","0.8.8":"2026-07-24T15:43:37.145Z","0.9.0":"2026-09-05T07:41:54.234Z","0.10.0":"2026-09-05T12:43:34.251Z","0.10.1":"2026-09-08T16:25:27.824Z","0.11.0":"2026-09-11T14:38:49.861Z"},"bugs":{"url":"https://github.com/airo-studio/airo-js/issues"},"author":{"name":"AI/RO contributors"},"license":"Apache-2.0","homepage":"https://github.com/airo-studio/airo-js/tree/main/packages/cartridge-kit#readme","keywords":["airo","cartridge","plugin","framework","rendering","ssr","mcp","schema-org","publication-adapter"],"repository":{"type":"git","url":"git+https://github.com/airo-studio/airo-js.git","directory":"packages/cartridge-kit"},"description":"Airo cartridge contract — Cartridge<TData, TConfig> + DataSource / View / MCP tool / Template / PublicationAdapter / Gate primitives. The API surface every cartridge implements.","maintainers":[{"name":"ben.smith","email":"ben.smith@dotter.me"}],"readme":"# `@airo-js/cartridge-kit`\n\nThe cartridge contract for the airo framework. Defines the API surface every cartridge implements and every host application consumes.\n\n> Status: **v0.2.0-rc.x**. PublicationAdapter pair skeleton compiles. Surface still subject to refinement; cartridges should target `^0.2` until `1.0` ships.\n\n## What's in here\n\n- `Cartridge<TData, TConfig>` — the envelope every cartridge implements\n- `DataSource` — onboarding affordances + data-loading shape\n- `Transformer` / `PostProcessor` / `RuntimePipeline` — runtime pipeline (re-exported from `@airo-js/core` because pipeline orchestration is rendering, and rendering belongs to the framework)\n- `ViewDefinition` + `CartridgeAppContext` — typed wrapper around the framework's `PageRenderer`\n- `Template<TConfig>` — pre-composed view-set + default config; a `TemplatePage` may be `private: true`\n- `Gate<TConfig>` + `runGatePhase` / `selectGates` / `runGates` — pre-render guards, scoped to the mount's entry page (`appliesTo: 'all' | 'private'`), run by `@airo-js/runtime` before the data fetch\n- `McpToolDefinition` — agent-facing tools (POST-transformer data)\n- `PublicationAdapter` — fan post-pipeline data out to surface-specific outputs (Schema.org JSON-LD, vendor XML feeds, etc.)\n- Supporting: `SchemaDefinition`, `OnboardingStep`, `ValidationResult`, `PublicationContext`, `SchemaFieldRef<TData>`, `SnapshotPath<TData>`, `Duration`, `PersistHint`, `GateLifecycleEvents`, `RunGatePhaseResult<TConfig>`\n\n## Three contract guarantees\n\n1. **Snapshot fidelity.** Views, MCP tools, and publication adapters all consume the SAME post-Transformer snapshot. No drift between what the rendered widget shows, what an agent answers, and what a downstream indexer consumes.\n2. **Coverage gating.** Adapters and MCP tools declare `requires` (schema field paths). `runPublicationAdapters` and `dispatchTool` both skip a declaration whose `required: 'always'` paths hold no value in the snapshot, rather than emit broken output — sharing one predicate, `missingRequiredPaths`, exported from this package so the two surfaces cannot disagree about which snapshots are answerable. `'preferred'` and `'optional'` do not gate; host apps surface \"this adapter needs field X\" to the user via that metadata. Paths are typed against the snapshot (`SchemaFieldRef<TData>`), so a path the snapshot cannot have — `product.name` against `products: Product[]`, or `artists.name` where a segment after an array must be an index — is a compile error at the declaration rather than a skipped adapter at publish time.\n3. **Validation as a hard gate.** `validate(output)` runs before the host app publishes. If `valid: false`, the host app refuses to serve the output. Output trust > publish velocity.\n\n## Authoring conventions\n\n### Transformer is shape-preserving (not for schema pivots)\n\n`Transformer.transform: (data: TData, ctx) => TData` — input and output are the same type. Use Transformer for **filter, sort, group, annotate**.\n\nIf you need to **pivot the schema** (e.g. flat `Product → SKU` becomes nested `Product → Sku → Offer`), reshape **upstream in `DataSource.fetch`**, not in a Transformer. The Transformer chain assumes a stable shape so views, MCP tools, and publication adapters can each project the same snapshot consistently.\n\n```ts\n// ✅ Reshape in DataSource.fetch\nconst myDataSource: DataSource<NestedShape, MyConfig> = {\n  fetch: async (input, ctx) => {\n    const flat = await fetchFlatData(input);\n    return pivotToNested(flat); // Pivot here, not in a Transformer.\n  },\n};\n\n// ❌ Don't try to change shape in a Transformer\nconst reshape: Transformer<UnknownShape, MyConfig> = {\n  transform: (data) => pivotToNested(data), // Won't typecheck — TData → TData.\n};\n```\n\n### Two-envelope pattern for browser/server bundle separation\n\nThe `Cartridge` envelope holds references to everything: transformers, views, MCP tools, publication adapters. Tree-shaking can't help when the envelope itself is the import — bundlers see the references and pull all of them in.\n\nPublicationAdapters and MCP tools are typically server-only (they reference disapproval rules, taxonomy mappings, image validation, model SDKs — anywhere from 10 KB to 50+ KB each). Shipping those bytes to the browser is wasteful and exposes proprietary IP.\n\n**Convention: ship two envelopes per cartridge.**\n\n```\nmy-cartridge/\n├── parts/\n│   ├── schema.ts                 ← Zod, single source of truth\n│   ├── transformers.ts           ← shared (browser + server)\n│   ├── data-sources.ts           ← shared\n│   ├── views/                    ← shared (page chunks)\n│   ├── publication-adapters/     ← server-only\n│   └── mcp-tools.ts              ← server-only\n├── runtime.ts                    ← browser entry: schema, transformers, views, dataSources\n└── full.ts                       ← server entry: everything (re-exports runtime + adds adapters/mcp)\n```\n\n`runtime.ts` exports a `Cartridge` with `publicationAdapters` and `mcpTools` undefined. `full.ts` re-exports the same `Cartridge` but with those slots populated. Browser builds import from `<my-cartridge>/runtime`; SSR / publication-runner builds import from `<my-cartridge>/full`.\n\nThis is **transparent**: no build-time magic, no conditional exports tooling. Cartridge author writes the split once. Bundlers tree-shake at the package boundary; nothing leaks.\n\n### errorPolicy on Transformers\n\nEach Transformer can declare `errorPolicy: 'fail-render' | 'skip'`. Default is `'fail-render'` — when a transform throws, the render breaks. Pick `'skip'` only for transforms whose absence degrades gracefully (sort, enrichment). **Never** use `'skip'` for filters whose absence widens visibility past a tenant's configured scope.\n\n```ts\nconst enrichWithRatings: Transformer<MyData, MyConfig> = {\n  name: 'enrich-with-ratings',\n  isEnabled: () => true,\n  transform: (data) => attachRatings(data),\n  errorPolicy: 'skip', // Ratings are nice-to-have; don't break render if the rating service is down.\n};\n\nconst filterByTenant: Transformer<MyData, MyConfig> = {\n  name: 'filter-by-tenant',\n  isEnabled: () => true,\n  transform: (data, ctx) => data.filter((item) => item.tenantId === ctx.config.tenantId),\n  // Default errorPolicy: 'fail-render' — never silently widen tenant visibility.\n};\n```\n\n### Default RuntimePipeline implementation\n\n**If you mount through `mountCartridge` you do not need this** — `@airo-js/runtime` builds the pipeline, runs the transformer chain before render, and runs the post-processor chain after every render with teardown wired into its own unmount. The snippet below is for host apps driving `createApp` directly, or implementing their own `RuntimePipeline`.\n\nHost apps that want default semantics use `createPipeline` from `@airo-js/core`:\n\n```ts\nimport { createPipeline } from '@airo-js/core';\n\nconst pipeline = createPipeline(cartridge.transformers ?? [], cartridge.postProcessors ?? []);\n\n// Run on every render:\nconst snapshot = await pipeline.runTransformers(rawData, { config, navState, locale });\n\n// Run post-processors after EVERY render, collecting the LIFO teardown.\n// Fire the previous teardown before the next render and before the DOM it\n// decorated is destroyed — a hook that owns nodes must still see them.\nconst teardown = pipeline.runPostProcessors({ container, config, data: snapshot, events, navState });\n// Before the next render, and on unmount:\nteardown();\n```\n\nHost apps with custom semantics (async support, custom error reporting, OTel tracing) implement their own `RuntimePipeline<TData, TConfig>`.\n\n### Gates: a Gate decides whether to paint; whether to serve is the host's\n\nTwo sentences the framework signs, verbatim in `gate.ts`: **a Gate decides whether to paint; whether to serve is the host's, per request** — the gate is UX, the host's API and SSR handler are the security boundary. And **bots are never gated** — SSR never runs gates; private pages (`TemplatePage.private`) are refused by the SSR runner, not gated.\n\nThe gate phase is `runGatePhase({ gates, entryPage, host, ctx, satisfiedGates? })` — `selectGates` (the one place `Gate.appliesTo` is read: `'private'` gates run only when the resolved entry page is private) plus `runGates`, which returns `{ verdict, blockedBy }` and narrates `gate:precheck / mount / allowed / blocked` on the context bus. `@airo-js/runtime` calls it **before** the data fetch; `createCartridgeApp` runs no gates and is synchronous.\n\n### Gate persistence is documentation with a type, not behaviour\n\n`Gate.persist` is a hint cartridges declare; **the framework never reads it and writes nothing based on it**. Host apps implement the actual storage primitive — cookies, localStorage, server-side session table — with their own compliance posture (sameSite, domain rules, GDPR scope, SSO interaction). One hint or an array with `outcome: 'pass' | 'fail'`.\n\nThis mirrors how `DataSource.cacheTtlMs` works: cartridge declares the hint, host app decides actual cache policy. Same shape, same envelope.\n\n```ts\nconst ageGate: Gate<MyConfig> = {\n  id: 'age-verification',\n  // ... isEnabled, precheck, mount, destroy\n  persist: {\n    key: 'commerce:age-verified',\n    ttl: 30 * 24 * 60 * 60 * 1000, // 30 days\n    scope: 'persistent',\n  },\n};\n```\n\n**Host-app side**, two patterns. Pattern A — read in `precheck`, write before `mount` returns `'allow'`:\n\n```ts\nprecheck: async (ctx) => {\n  const cookie = readMyAppCookie(myGate.persist.key);\n  return cookie && !expired(cookie) ? 'allow' : 'gate-required';\n},\n\nmount: async (host, ctx) => {\n  // ... paint UI, await user verification\n  if (verified) {\n    writeMyAppCookie(myGate.persist.key, { /* ... */ }, myGate.persist.ttl);\n    return 'allow';\n  }\n  return 'block';\n},\n```\n\nPattern B — host apps with their own auth/session stack skip `persist` entirely and use their existing primitives directly (e.g. session tokens from a hosted auth provider, or a self-managed session store). The host app ignores `Gate.persist` and writes through its existing layer.\n\n**Future**: a separate `@airo-js/gate-persist` helper package may ship for greenfield apps that want a default `writeGatePersist({ key, ttl, scope })`. Opt-in. Not in `@airo-js/core` or `@airo-js/cartridge-kit` — those stay rendering-only.\n\n## Boot sequence\n\nA host app mounting a cartridge follows this sequence:\n\n```ts\nimport { createApp } from '@airo-js/core';\nimport {\n  createCartridgeRegistry,\n  createCartridgeApp,\n  createPipeline,\n  runGatePhase,\n} from '@airo-js/cartridge-kit';\n\nimport { commerceCartridge } from '@my-org/commerce-cartridge';\n\n// 1. Build the registry. Multi-cartridge apps pass an array; single-\n//    cartridge apps pass one. Cartridges can also be added later via\n//    registry.register(...).\nconst registry = createCartridgeRegistry([commerceCartridge]);\n\n// 2. The end user picks a template (UI-driven). For headless boot, default\n//    to cartridge.defaultTemplateId.\nconst cartridge = registry.get('commerce')!;\nconst template = cartridge.templates.find(\n  (t) => t.id === cartridge.defaultTemplateId,\n)!;\n\n// 3. Build the AppConfig the framework consumes. Pages come from the\n//    template; layout/styles default to whatever the cartridge ships\n//    in its component metadata. Host apps with their own page editor\n//    rewrite the page tree here.\nconst appConfig = {\n  appId: 'my-widget-id',\n  pages: template.pages.map((p) => ({\n    ...p,\n    layout: { regionOrder: [], regions: {} },\n  })),\n};\n\n// 4. Run the gate phase BEFORE any data — a blocked mount costs no network.\n//    `entryPage` is the page this mount starts on (core's `resolveMountEntry`\n//    gives you the URL > initialNavState > default answer); a gate declared\n//    `appliesTo: 'private'` runs only when that page is `private: true`.\n//    (`mountCartridge` in @airo-js/runtime does all of this for you.)\nconst gate = await runGatePhase({\n  gates: cartridge.gates,\n  entryPage,\n  host: containerEl,\n  ctx: { config, events },\n});\nif (gate.verdict === 'block') return; // the gate's UI stays; blockedBy names it\n\n// 5. Load data via the cartridge's DataSource and run the pipeline.\n//    Snapshot is what views, MCP tools, and publication adapters all read.\nconst dataSource = cartridge.dataSources[0];\nconst rawData = await dataSource.fetch(input, { config });\nconst pipeline = createPipeline(\n  cartridge.transformers ?? [],\n  cartridge.postProcessors ?? [],\n);\nconst snapshot = await pipeline.runTransformers(rawData, { config, navState: { page: '' } });\n\n// 6. Mount. createCartridgeApp builds CartridgeAppContext, derives the\n//    resolveRenderer from the cartridge's views[], and delegates to\n//    createApp. Synchronous; it runs no gates (step 4 did).\nconst app = createCartridgeApp(cartridge, appConfig, snapshot, config, {\n  host: containerEl,\n  enableRouter: true,\n  // resolveRenderer auto-derived; pass registry.resolverFor('commerce') to use\n  // the multi-cartridge / chunk-mailbox resolution path instead.\n});\n```\n\n### Multi-cartridge resolution\n\nWhen a host app runs more than one cartridge, pass `registry.resolverFor(cartridgeId)` instead of letting `createCartridgeApp` walk a single cartridge's `views[]`:\n\n```ts\nconst app = createCartridgeApp(cartridge, appConfig, snapshot, config, {\n  host: containerEl,\n  resolveRenderer: registry.resolverFor('commerce'),\n});\n```\n\nThe registry's resolver checks the cartridge's static `views[]` first, then falls back to the per-cartridge chunk mailbox (named by `cartridge.mailboxName`). Cartridges shipping views as separate chunks register them via `pushToMailbox(cartridge.mailboxName, { key: pageType, factory })` from each chunk's IIFE — a stub-queue pattern that lets late-loading chunks register themselves whenever they finish loading.\n\n## Validation skeletons\n\nCompile-only skeletons live in `examples/` of the airo-js repo and prove the contract holds:\n\n- `examples/publication-adapter-skeleton/` — two adapters (JSON-LD inline + XML signed-feed) sharing one snapshot type. Stresses fan-out.\n\nRun `pnpm typecheck` from the workspace root to verify they still compile.\n\n## Contract feedback loop\n\nCartridge authors finding gaps in the contract: open an issue with a minimal repro. The contract's verification bar is \"a real cartridge compiles with at least one PublicationAdapter, with no `any`.\" If your cartridge needs `any` to fit the contract, that's a gap worth surfacing.\n\n## License\n\nApache 2.0.\n","readmeFilename":"README.md"}