{"_id":"@odla-ai/apps","_rev":"29-7dafefc3f19659472299a8a7d6fa635d","name":"@odla-ai/apps","dist-tags":{"latest":"0.15.2"},"versions":{"0.1.0":{"name":"@odla-ai/apps","version":"0.1.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.1.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"dist":{"shasum":"e91e672e16a6aacadb4b56be697322ef3672ac09","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.1.0.tgz","fileCount":9,"integrity":"sha512-AHqPABWXH4slULpWovaw8xbvgR+Y4GWdJ3xQ1Bp/XhStFayqcgC1ZYGrlBmMjtvylJdMxS7tlDWFI8gtQxh4tw==","signatures":[{"sig":"MEYCIQCDgra3mrLHX6q9KDs1BbDTwY9zx70l3IdR7uo6DyOizwIhAISFY3loAILVLBx2PMAEfULEBVgMXhWaDWJ0D/F4VjFy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":34982},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f2e778de86b91afa142d23e9a63c947529687bba","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","gen:llms":"node ../../scripts/gen-llms.mjs","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build && npm run gen:llms"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"_npmVersion":"11.6.2","description":"Client for the odla platform app registry — resolve apps, check ownership, and query per-service enablement (db, o11y, ai). For Workers over a service binding or any fetch-capable runtime.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.1.0_1783123926970_0.37160102308946197","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@odla-ai/apps","version":"0.2.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.2.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"dist":{"shasum":"f4beb772f0dd1f9615aac05a96d3818ea05d6165","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.2.0.tgz","fileCount":9,"integrity":"sha512-ka36bx9493xChRmtveY5mArTtjIKaTcLqbMlaDGFoZ874ZBj9IEP4YYhU7gQ/Fqg2fj/yJBv7nxyFpVYF/jsXw==","signatures":[{"sig":"MEQCIEoZXr5Hqx8Deb/zQNRy4s6mA7XKS0c0g1R0r8DpxBWmAiAZeVswG8i8qb67NQeT6x0xGLnHw9Rp86McUSwY3t03bQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38259},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"1282148ba7af4612fa8c6b7ec15a78a950c7735e","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","gen:llms":"node ../../scripts/gen-llms.mjs","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build && npm run gen:llms"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.2.0_1783133791403_0.709313025797647","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@odla-ai/apps","version":"0.4.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.4.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"dist":{"shasum":"fc96753e2c1bc3f003b7bb3d7d7743d5345885b2","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.4.0.tgz","fileCount":9,"integrity":"sha512-VO29SNi0IU8NJI3eWHHSGsuuqM/6ci3JyR35tAhPI3HXy3RP4n2IOMKqnXoOktytA7/GzfSQ/RWEg15++ZkTXQ==","signatures":[{"sig":"MEYCIQDfuyHkciVNsSmCMKmzaNzo204sOvVbla/kT/phQEGmZQIhAK3xIpFd8DOQREYGSrBiSQpIigJLIFytOlDWNPKiHqFX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":47817},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"524f4ff7b77f05c1735d285ab52a3eeb8fe9f8ad","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","gen:llms":"node ../../scripts/gen-llms.mjs","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build && npm run gen:llms"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.4.0_1783176861867_0.398461711862915","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@odla-ai/apps","version":"0.5.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.5.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"dist":{"shasum":"647146d91ae12d133f95a9f2fecd7774eb23cc29","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.5.0.tgz","fileCount":9,"integrity":"sha512-lWXu9Z+A4JDRdTGXC9nc60pbSj/T0BBk2lqrQYLK6lvLpRuM/kSCb2MRWw0g2jGyXWNUHcKsIAsvgQP5bdW2HQ==","signatures":[{"sig":"MEUCIAMLOXBvtD4GlqdHMf8+wHY80uYOkBpAqHrpB7mGSY5fAiEA8HHrtpfVV/LsVx9n7lRHvAiz/nqgWzN2Dsm9aqxUdqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":51449},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f4f681396f215971cc867fc4b908f3240fa123ad","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","gen:llms":"node ../../scripts/gen-llms.mjs","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build && npm run gen:llms"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.5.0_1783192324424_0.11955315630816199","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@odla-ai/apps","version":"0.6.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.6.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"dist":{"shasum":"af1ce8dc2890937643fa26a2d34da2a46ce99ec6","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.6.0.tgz","fileCount":9,"integrity":"sha512-RFczln0L5Sz7YptGqJRxuigx704nDrj/vtlHI3U8L0HpPWM5SnyPeJ2SMh0gHRmaPEdGqwgzRxpjsU4e+rSUjw==","signatures":[{"sig":"MEUCIQCudB/EQXyUxxA+RAPKFHubyvT+XTeoivrPnnVHYIGxMQIga+LjOVMxMARYOnY/b9gAXe6CRmTCnCem4vEI3fwDHRo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55778},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"bcedf1ae2ce229efa07823d9313cc49a8cc29b0a","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","gen:llms":"node ../../scripts/gen-llms.mjs","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build && npm run gen:llms"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.6.0_1783200618492_0.22272424249923972","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@odla-ai/apps","version":"0.7.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.7.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"dist":{"shasum":"64a4a99d781d5725e30686a93a86afcdb0bb4f21","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.7.0.tgz","fileCount":9,"integrity":"sha512-hr9oNfZQvMGcclarQ6fYdbhJP7/zBuXPW5zUwXh9YmOh7uPxMywhS1ai4+e1uk71z/QXzIFIDwihb31Srl2fTQ==","signatures":[{"sig":"MEUCIEcqIKFkTQZ4YnpZZC/zciDVhk7kFtuUwPXNy9bKJWD6AiEAr/oGVGEXj1kt/W2/D20Lfr1y+Qhri00TCuI+UiZ4W0I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":60224},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"0c46f57f9ad7d5de8b902d192c842b872b0ea17b","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","gen:llms":"node ../../scripts/gen-llms.mjs","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build && npm run gen:llms"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.7.0_1783203308148_0.2206141181984025","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@odla-ai/apps","version":"0.7.1","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.7.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"dist":{"shasum":"d62834f3b602ede670c68e64ee7252cb5219d222","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.7.1.tgz","fileCount":9,"integrity":"sha512-dXJBkXsyqdGXTk1Z0Gk+qYjrC0re+8DYaXMEaIuNUk3TOlf/VnsmEW1/gCNuX7pGoRA/TEPmxfzGoCuLw/IyAg==","signatures":[{"sig":"MEYCIQC62IZAYoHG3fcRztOOwStozTLPsb9Fn06tk1k6+CZ7FQIhANN+SR7zsQDvg+YlnoGRd4O+HNTaDIYEOW5AT2Rqbz+W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61781},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ce234d2eca38f749e89d1b5bfaff4afcefd2d598","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","gen:llms":"node ../../scripts/gen-llms.mjs","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build && npm run gen:llms"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.7.1_1783204581635_0.676330521973201","host":"s3://npm-registry-packages-npm-production"}},"0.7.2":{"name":"@odla-ai/apps","version":"0.7.2","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.7.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"dist":{"shasum":"132b7b4e6b195a4128da925163aeb3f011f469cc","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.7.2.tgz","fileCount":10,"integrity":"sha512-InVdJWsBFPjCsSFIrKjv1pgWs+aHfc/Ctv9imsgvEcESwXgRQ8Z+tBLzmap5t4nKjpHh2NYA4gA9rV+54TTQ1Q==","signatures":[{"sig":"MEUCIQC3zx6AEG+455foV8kWKZ5pjzVuPLZe17a0uNMtQvkjkwIgMiA/AYCN3pUYe2Us8EcaMq6LFsj6B7vfXUQqry3B1JQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":63369},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"d28d64caafa145e5b47377ab60aca233d2dd9d3d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","gen:llms":"node ../../scripts/gen-llms.mjs","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build && npm run gen:llms"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.7.2_1783221828929_0.20831543071195302","host":"s3://npm-registry-packages-npm-production"}},"0.7.3":{"name":"@odla-ai/apps","version":"0.7.3","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.7.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"17ddf382858b8be2b341d20ea538b85bea616fb6","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.7.3.tgz","fileCount":10,"integrity":"sha512-IG3txx3tW122JDqVn06YzEfncXuL0kbcpHj4u7itM4JisVFKEbqWgnMCOqC3J5ckKRgHCjsSgJ5FueJ884TOpg==","signatures":[{"sig":"MEQCIG9jJElpJ2wOeCiCs2SP64IGCqa4UQUnoD2TDH0kmQqoAiB8mRAMuKtKVgny9Wson9NXN50ligPheBcZaZisGCcOqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81761},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"25655934e6ca0ab7220dd6cca06faa92fc524b63","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","gen:llms":"node ../../scripts/gen-llms.mjs","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build && npm run gen:llms"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.16.0","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.7.3_1783704750347_0.5138019214165968","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@odla-ai/apps","version":"0.8.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.8.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"2d3159ae8b7ded112393bbaf5e838aae409eed99","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.8.0.tgz","fileCount":10,"integrity":"sha512-9Faf/U1ieu8aGzM+SBjuvADgB4mtZ+YFGRThTqRNijlWXlQ0BVejGaD2dI+3iAYoGJ8B1+5vAz+2eUGBBqyO0w==","signatures":[{"sig":"MEQCIBHKX7Mfup/EXFDLA5hhlTn+p/1lhzQmHLu877bL4tDhAiAQyPGx4JcC4tgfxZx6H83Mzvm8n3aaoZwmwq0lwhQfqQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":141548},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"2c30ce2bbb9a017762c36da34727e0ca4a354ad0","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","gen:llms":"node ../../scripts/gen-llms.mjs","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build && npm run gen:llms"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.8.0_1783813020398_0.013867650565117629","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@odla-ai/apps","version":"0.8.1","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.8.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"6440c04af2877a420da10b1dff783fc4854d9699","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.8.1.tgz","fileCount":9,"integrity":"sha512-VfSsjC/rcyXqhGy/Syai6DV5c5Tu8O3rWG+GK1hiqDsw1Gi78EOuYJaIu6trsqedAJckKqInoROQ+4HxEu14CA==","signatures":[{"sig":"MEYCIQDZcVnUMawqfGEAWErbb8BNazU39z8bVrnYUlF5+XQ8JgIhAOY9oFLXrzlmQU747i4dY6pEpQxYGLchqhR4QjIEVcvu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124199},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"1bca268f65a091cbfa7d04fd9f8e3393a8aa47a3","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.8.1_1783872464206_0.535435050340733","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@odla-ai/apps","version":"0.8.2","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.8.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"b669fc11d6289bf672ee7ff8b86432470ca37b9b","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.8.2.tgz","fileCount":9,"integrity":"sha512-5FkEtZM0gG9I2SVzsSjXlzAuLbPJrU/PuOce54j+9DYPPfIejj7FS720DKkfOR7ZtUsk6ktpVPBYIdhkq+u6QA==","signatures":[{"sig":"MEQCIEAXGgiN4K8IWuPRYhoih3BBWXaBs1qsJ3o1EYDZOUiiAiBgsypRzQR6gTIFjXpAAtkDv1zDQw05pDW5J1SxKeOP8Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":127395},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"0a06ac9dbc8552ef13de25c1369824d7f996ea0f","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.16.0","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.8.2_1784428611736_0.40370386907075884","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@odla-ai/apps","version":"0.8.3","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.8.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"50d3d871a1b13ed25fd5ba5762a761eb7f330966","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.8.3.tgz","fileCount":9,"integrity":"sha512-kyvXYgKU3Qz3ZYh+PABsJ7L5mCMiH63nmdtzqFibEirftMO/tZX/Btx5XRs7p8tyvLOIR6RABCrYXYioGCZeaQ==","signatures":[{"sig":"MEYCIQDHhQVVLkYCW4bdZDOBXz2RiVPAc7DP8sFjmLga2t1VnwIhAJXaxQJ5hVYiyV+QPyc1Omr5/RfOoDF7w7k1a4Eysrkv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":179003},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"f7b778efa9e2c884bf2ac81807322b5dad34e467","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.8.3_1785288712913_0.6675062708252901","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@odla-ai/apps","version":"0.9.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.9.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"7cfd0f5a5551267aa87bbb4d3c9b8d3d8a61b65d","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.9.0.tgz","fileCount":9,"integrity":"sha512-EmZlCwT+DMNpsRJI1BzCO4kbUaa05kvZBdC6Ci3InDlv3BGSVjRmSFNOOtBETB33zuIeKbbcQzmDnJ9CSrL5Tg==","signatures":[{"sig":"MEUCIDIxkN2GQSk3gTPVyvcr8/ShUnWjW9bZPzD+pIDZNYm3AiEA7l5TZQJ8ldAliB4LKd5KSkkjaeUIrkKhV5SBAqbIGrQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":191765},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"2201d69ca6e035fea8eadc4cebbcee17e770cfa7","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.9.0_1785307882662_0.7017950874832672","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@odla-ai/apps","version":"0.10.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.10.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"70be51569341b23aa0db91a5929decdad608279d","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.10.0.tgz","fileCount":9,"integrity":"sha512-L4ZgE3v0bdwWHYPtag8ggltQMlBh6+8B+SkQRFABGczEK3mP+VuDlLdh9NCugeJFgLDLKHhZL1qJ2I9vGbzHwg==","signatures":[{"sig":"MEYCIQCno4Koch1ogbvWf7tM7uIuH098AubNteFKaW1ijHDMeQIhAL5imP0+BbBQLBiiVm2eaHbhBGBzDolgJj3mg+4sa+dL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239904},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"81b462a7822d7654b5971b1a8e56a5014cf240f0","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.10.0_1785351867436_0.5504633563080932","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@odla-ai/apps","version":"0.10.1","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.10.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"7a5384a12c6522fad8f452d681a7ac707d3da9bf","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.10.1.tgz","fileCount":9,"integrity":"sha512-0mBSIG2XkH0f94VYxG3faaICLStg24P1e+i/rvuUXFZr2YsGGLtXIaJz/gp0s1Fs9wWegaQcnp10EpTr0QCEeA==","signatures":[{"sig":"MEYCIQC5biTpYFgezrjENgOp6ubTEqsPwjgZzkv5qez+Xu4wkAIhAJI4L1ty8W0gfgQQymqQprwzjKDvqTWsXHFbEw3nVefQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":239904},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"cfc460628d984b20f826bf652f29ef81fd55d962","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.10.1_1785365759665_0.7152326459094807","host":"s3://npm-registry-packages-npm-production"}},"0.10.2":{"name":"@odla-ai/apps","version":"0.10.2","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.10.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"68857fd1ed1759bb303c910faad95eb9a6c21aa1","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.10.2.tgz","fileCount":9,"integrity":"sha512-VD6KFE1/Lmrwze1DZENlH+NtLRMaobeXHjYWTw5eEZ5YBT1ZUZElA1cXGFLCF96NBLh98zxRGOOIK8ZXx2pAWg==","signatures":[{"sig":"MEQCIEuqYYFLL7cyY2b/LIZzj+2S9YX5h8XmaDdzDgA5MknNAiBwkyB99xPnargU/FFGdklxos/JPZaWHW6SMPlx8mtdGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240881},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"9349eb48b0fed47829f2ba41c42881f63163f1b3","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.10.2_1785599043096_0.9408570189493162","host":"s3://npm-registry-packages-npm-production"}},"0.10.3":{"name":"@odla-ai/apps","version":"0.10.3","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.10.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"a12d7804efcb556deed8454829df95b83ef66105","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.10.3.tgz","fileCount":9,"integrity":"sha512-Qv8gZKgTOWilr83G7cxjLBkjY9v4QKGdBI62bIonnM2s9UTQ2dGQf1SRMeL9gUT35qWUQkNvYz1d/o+unVcHfA==","signatures":[{"sig":"MEUCIC9bXRJKJKsgrhAg/mF3uSYZrgBpjyFlPDRvPBru1sdbAiEA8z8naXwcbjAhYVUS8COvvARVy1KuQ2o2UhGzQoSdNHg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241187},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"076ef9559fd47590ee7da5f7d039f1cf65af04c5","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.10.3_1785612596542_0.5249997616570863","host":"s3://npm-registry-packages-npm-production"}},"0.10.4":{"name":"@odla-ai/apps","version":"0.10.4","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.10.4","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"e0c76d09240f2332d3a55be83009963f9418db48","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.10.4.tgz","fileCount":9,"integrity":"sha512-DClS3PehVoYSDRY3IUWfH7/GDkoCbCnpQyY9XEBml0nuwn8sNXXLWreVt/uxtw2tSzclKrCloTLNm8lQZoH6Zg==","signatures":[{"sig":"MEUCIGIbSNRa1A0VkpkjSpgdefiOcEyCz0y1SIejjsZJ+fvKAiEAkpIHowFdC87Ug//DuXGMspmMYW/fFfekRj4OvO9h/pw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241042},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"35a365469672a488be0b9f1e511824f411a2a6e4","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.10.4_1785632016116_0.4501752669721484","host":"s3://npm-registry-packages-npm-production"}},"0.10.5":{"name":"@odla-ai/apps","version":"0.10.5","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.10.5","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"58c1457c4f8bf9d8b4370554fb0be22bfa4eaefc","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.10.5.tgz","fileCount":9,"integrity":"sha512-6RRaGqYK7uC5MZr5DuxuAj76iXR5P2Hyo2259WSwY/BKf5JnJks6zg76Ndt0XDrDDP63G+Gt9hYN4I+J1QMFjw==","signatures":[{"sig":"MEUCIGITnw1x2Wfmv3HQ57wjwdfuMvH77dqywQGAp2WRXBTaAiEA1+ustAMMWmJw3zStJpyVSJZRKD5n0YAapYSUPZwBj1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":241488},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b520c4dc0cabfa00cb72110b2d4b2da48a1c664e","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.10.5_1785654643024_0.8479908707500763","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@odla-ai/apps","version":"0.11.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.11.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"fbbeb4d14b80437b2d8cdc8f468db318ae64b1a2","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.11.0.tgz","fileCount":9,"integrity":"sha512-SZ0i2FejQGeMT1A4/07VCAG9Ip7eJUwDzF5hCNIkJIntaoJyOOcHQUKuWO0TqMXbLrkzeUMy5m5O1zk4/+X+iw==","signatures":[{"sig":"MEUCIQCrLRVa2VNJDRmzNwzHL1CO7yioVfIoC0ikUlEhLaDyGQIgHYUKQFF9FDaCroRM+aOFAvFD5UbEJ1tAUAbCFpfYliU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242854},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"451382c4f46364fd1a7f48a07b7fef76b8997c8d","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.11.0_1786144897771_0.2387019390275047","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"@odla-ai/apps","version":"0.12.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.12.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"1b00333ed0f538773846e410befe7a274c8477ff","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.12.0.tgz","fileCount":9,"integrity":"sha512-PbU/XEypZ9kxe87dYnMNEdNqdGPXOEZqr92z6qIG5OYhm5btt2vKfNz5Tu2R88AG/1gEh8mTxZW988Dn9KEyIg==","signatures":[{"sig":"MEUCICO9AO9wDLvzWv8CBujFiBWN/CT9kqG5sxuveVECSfd4AiEAyrhAe0S5fgr9TtZr+C26RNYsk/aklzjrmHMqKw9Li/w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":266797},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"43c9607fe85abad5c8acc4747eb820d7d17fc533","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.12.0_1786379499999_0.7932312762530795","host":"s3://npm-registry-packages-npm-production"}},"0.12.1":{"name":"@odla-ai/apps","version":"0.12.1","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.12.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"f8994488828ecbcc14a3c86f5c0a9bc9d621f909","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.12.1.tgz","fileCount":9,"integrity":"sha512-mIZEwsCRZsc5YQ0xJIHiliqXhM6nQIHIePy1/iliYqfa2dUjLZm0XpqADLWVSKJlfRle6FRBJkvdvyICng0XQA==","signatures":[{"sig":"MEYCIQC4/xQTEBHuFgjikavou5sJpv/cu5GWEIbHJfeUU4FCmAIhAMEKrPcWdAID4t/DYlWYl/dpZ0AAX5nDvmU+lkHVJOV3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":267029},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"ad9207842be392e16f79a11ccc14b25e079884d7","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.12.1_1786902383760_0.3720930256234589","host":"s3://npm-registry-packages-npm-production"}},"0.12.2":{"name":"@odla-ai/apps","version":"0.12.2","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.12.2","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"12de2d2f097ee73f1bdbbd17d6729c9f8eeaa277","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.12.2.tgz","fileCount":9,"integrity":"sha512-LfS5lOFtBcYA1jHp/KsMZKr5N6TQwFZw6wkMw7Lzem5d4GwyOvOKP5UlMGUK5WntsFF88fbNh/UzmPISMsweJw==","signatures":[{"sig":"MEYCIQDGw94JDIIfiMH0NOFPZ+vPK75UqTZXHDtwMRppC1Xk4wIhAIpCX583iOlOyO98GTSsk30xrxFGwsl4mH/oUEInV3RJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274552},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"d15ccbe1352ee0e42d5247050eca744a55d4aef6","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.12.2_1786927954496_0.910589156840474","host":"s3://npm-registry-packages-npm-production"}},"0.12.3":{"name":"@odla-ai/apps","version":"0.12.3","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.12.3","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"daf42e79006a0f14bd8ce7a57bdde6740b29878b","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.12.3.tgz","fileCount":9,"integrity":"sha512-3RCPGteQn5+fWS4nr4MPbMKwseO8Hsw/FfprE3GDas3ZjOxjf19w9pgnOhUM2Rd4DeAB7sdgqguFDNP01TxyOw==","signatures":[{"sig":"MEQCIHkfCqME41s7trAtiZb0lvM1wH5qQBD+SqAt2tYOXtpoAiBOotDgEF45ldHkdUAZ2QR/O/OCfffBpAZccMFqHPcAUg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":290117},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"d55ea87752092b7f65063452ded0cc983cc3403f","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.12.3_1786972040211_0.02230194941995789","host":"s3://npm-registry-packages-npm-production"}},"0.14.0":{"name":"@odla-ai/apps","version":"0.14.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.14.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"4cd736c8cde8cc520a28ff08488aecfab457cffc","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.14.0.tgz","fileCount":9,"integrity":"sha512-dSv7SjzCWw3902qS3fhpgo9MEyF5wLvoD+oVxUDf3sfZ3rP8hb5FwpWZtbMtw4QxLhZRApFNotb3GNdC2L/bIA==","signatures":[{"sig":"MEUCIQCRn1BWiSrVDBClfjYetKDhahhloPJprPuLPQ0iszR4YQIgCFdrl4GYLHd6A973BzKKSL4kVjEpzYeqCwl9I9ANNv8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":338428},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"44cdeb2d04ea93153297a0b661556095a956257a","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.14.0_1787699872242_0.9378379902122678","host":"s3://npm-registry-packages-npm-production"}},"0.15.0":{"name":"@odla-ai/apps","version":"0.15.0","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.15.0","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"94dbf9d883e576a888e058a731466cf3ea99e2f6","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.15.0.tgz","fileCount":9,"integrity":"sha512-oBd3JKIbua/4SnTlMZfzwqEncfOjBmpn1MdPkHgsLvRKQF8bUB8BhGLJ14aM8c2G66byUWj6xaf6tZGDdBiWMg==","signatures":[{"sig":"MEUCIDTpK2pAa6ik/hpkWWoxYGnOhxPV56uHzC9H1ZoCwXcRAiEAjuddMGs0NvdEQ2uPoKqLo7DmBhN5HMNUeZg5lmJ0jes=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":335281},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"eaaf32001e6a832994b669141b3555de2d6b312b","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.15.0_1787704631290_0.6272906476084985","host":"s3://npm-registry-packages-npm-production"}},"0.15.1":{"name":"@odla-ai/apps","version":"0.15.1","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"license":"MIT","_id":"@odla-ai/apps@0.15.1","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"homepage":"https://odla.ai/docs/packages/apps","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"dist":{"shasum":"175735715d93d1a63fe29168260afa1b60888bb4","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.15.1.tgz","fileCount":9,"integrity":"sha512-+0kI6frCk2lXFT9R6fSA9TK9SM+Do1PfggOWhf62OjZeuBH5yBRtxEQ1DGNLx88Sg+1nsj//OJSqV3Zm7Xa5pg==","signatures":[{"sig":"MEUCIEYbCdhTPvLnvG0T2IZCi/BJ9O3G8Lb+BbTlpY/R6bl+AiEAwfN2HIatgNthTfjAAeBH3D4KMwloyHnky/4XXMuAa/Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":336445},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"b17d9331f8ea0d2a44789be8c63e79712862c896","scripts":{"test":"vitest run","build":"tsup","clean":"rm -rf dist","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"repository":{"url":"git+https://github.com/cory/odla-ai.git","type":"git","directory":"packages/apps"},"_npmVersion":"11.6.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","directories":{},"sideEffects":false,"_nodeVersion":"24.13.0","dependencies":{"@odla-ai/promotion":"0.1.0"},"publishConfig":{"access":"public","provenance":false},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"_npmOperationalInternal":{"tmp":"tmp/apps_0.15.1_1787710241046_0.7150267395472913","host":"s3://npm-registry-packages-npm-production"}},"0.15.2":{"name":"@odla-ai/apps","version":"0.15.2","description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","license":"MIT","homepage":"https://odla.ai/docs/packages/apps","repository":{"type":"git","url":"git+https://github.com/cory/odla-ai.git","directory":"packages/apps"},"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"sideEffects":false,"publishConfig":{"access":"public","provenance":false},"keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"scripts":{"build":"tsup","clean":"rm -rf dist","test":"vitest run","typecheck":"tsc --noEmit -p tsconfig.typecheck.json","prepublishOnly":"npm run build"},"dependencies":{"@odla-ai/promotion":"0.1.0"},"devDependencies":{"tsup":"^8.5.1","typescript":"^6.0.3"},"gitHead":"a893f0ab0714ece37ab2c7736c60979aba547bc2","_id":"@odla-ai/apps@0.15.2","bugs":{"url":"https://github.com/cory/odla-ai/issues"},"_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-Ar8BsLWXEzfigXIfe7I+LnPblAqBW0GRc+xLA1qDVKIWQYlcWMMnlz5i5n5dgCCbQp9/j+quSJmRZ1iplgJflg==","shasum":"e0f51290d092f22a11dd6d430d06b5b0b273fe72","tarball":"https://registry.npmjs.org/@odla-ai/apps/-/apps-0.15.2.tgz","fileCount":9,"unpackedSize":339741,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCiz19lAZ7lOHmcFu7FRFLblYS31gSYccheNvSJ0K1wDAIgfEr9hEVOozxX21y9dBU1GMMom8IFLVuOwISZMRa98Qk="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:7646c96e-a361-426a-9868-bb1f49c21058"}},"directories":{},"maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/apps_0.15.2_1788057794916_0.15079223246821027"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-04T00:12:06.763Z","modified":"2026-08-30T02:43:15.222Z","0.1.0":"2026-07-04T00:12:07.118Z","0.2.0":"2026-07-04T02:56:31.543Z","0.4.0":"2026-07-04T14:54:22.003Z","0.5.0":"2026-07-04T19:12:04.577Z","0.6.0":"2026-07-04T21:30:18.625Z","0.7.0":"2026-07-04T22:15:08.303Z","0.7.1":"2026-07-04T22:36:21.784Z","0.7.2":"2026-07-05T03:23:49.066Z","0.7.3":"2026-07-10T17:32:30.462Z","0.8.0":"2026-07-11T23:37:00.535Z","0.8.1":"2026-07-12T16:07:44.355Z","0.8.2":"2026-07-19T02:36:51.864Z","0.8.3":"2026-07-29T01:31:53.062Z","0.9.0":"2026-07-29T06:51:22.821Z","0.10.0":"2026-07-29T19:04:27.615Z","0.10.1":"2026-07-29T22:55:59.808Z","0.10.2":"2026-08-01T15:44:03.234Z","0.10.3":"2026-08-01T19:29:56.681Z","0.10.4":"2026-08-02T00:53:36.286Z","0.10.5":"2026-08-02T07:10:43.166Z","0.11.0":"2026-08-07T23:21:37.927Z","0.12.0":"2026-08-10T16:31:40.151Z","0.12.1":"2026-08-16T17:46:23.901Z","0.12.2":"2026-08-17T00:52:34.647Z","0.12.3":"2026-08-17T13:07:20.410Z","0.14.0":"2026-08-25T23:17:52.403Z","0.15.0":"2026-08-26T00:37:11.451Z","0.15.1":"2026-08-26T02:10:41.189Z","0.15.2":"2026-08-30T02:43:15.054Z"},"bugs":{"url":"https://github.com/cory/odla-ai/issues"},"license":"MIT","homepage":"https://odla.ai/docs/packages/apps","keywords":["odla","odla-apps","registry","control-plane","multi-tenant","cloudflare","workers"],"repository":{"type":"git","url":"git+https://github.com/cory/odla-ai.git","directory":"packages/apps"},"description":"The odla platform management SDK — create apps, toggle services (db, o11y, blog, ai, calendar), and delete apps via the registry. Control plane only; data-plane SDKs like @odla-ai/db are what running apps link.","maintainers":[{"name":"coryondrejka","email":"cory.ondrejka@gmail.com"}],"readme":"# @odla-ai/apps\n\n> ⚠️ **Early access — pre-1.0.** Agents work from bounded runbooks; humans\n> approve credentials, production changes, releases, and merges. APIs and exact\n> package availability can change. Review the documented guarantees and\n> limitations; this software is MIT-licensed and provided without warranty.\n\nThe odla platform **management SDK** — the control-plane client for the app\nregistry, the way `gcloud` is to GCP. Use it from agents, CLIs, and CI to\ncreate apps, toggle services (`db`, `o11y`, `blog`, `ai`, `calendar`, …), and archive apps.\nIt is *not* a data-plane SDK: apps talk to their database with `@odla-ai/db`,\nemit telemetry with `@odla-ai/o11y`, and so on — those SDKs are what a running\napp links; this one is what *manages* apps.\n\nAn **app** is the platform's project primitive. Services keep their own\ncredentials and data planes; the registry owns app identity, ownership,\nservice enablement, monotonic configuration revisions, and the operation\njournal. Registration is platform-level and à la carte — an app can enable\n`blog` without ever enabling `db`.\n\nEvery app view includes a random `incarnation`. The `appId` is the reusable\nproject address; the incarnation is the exact lifetime at that address.\nPurging and recreating the same id rotates it. Exact project grants, delegated\nauthority, immutable consumption receipts, and service lifecycle requests bind\nthat value, so delayed work from the old project cannot act on the replacement.\nWildcard project policy remains intentionally dynamic over projects the\nmanager owns now.\n\n> **Ask the runbooks first.** odla's operational procedures live in a database,\n> not in this file: `npx @odla-ai/cli runbook ask \"<question>\"` returns the current\n> steps, and unlike anything written here it cannot be out of date. Use it before\n> searching the web or working from memory. This README and the JSDoc in the\n> shipped `.d.ts` are the version-matched **API** reference; a runbook is the\n> **procedure**. Most tasks need an answer from both.\n\n## Install\n\n```sh\nnpm i @odla-ai/apps\n```\n\n## Use from a Worker (service binding)\n\n```ts\nimport { createAppsClient } from \"@odla-ai/apps\";\n\nconst apps = createAppsClient({ fetcher: env.APPS, token: env.APPS_TOKEN });\nconst app = await apps.resolveApp(\"my-app\");\nif (!(await apps.isEnabled(\"my-app\", \"o11y\", { env: \"dev\" }))) {\n  return new Response(\"o11y not enabled for this app\", { status: 403 });\n}\n```\n\n## Use over HTTP\n\n```ts\nconst apps = createAppsClient({ endpoint: \"https://odla-apps.example.workers.dev\", token: MACHINE_TOKEN });\nconst created = await apps.createApp({ name: \"My App\", appId: \"my-app\" });\nawait apps.setService(created.appId, \"o11y\", true, { env: \"dev\" });\n\n// Record where each environment's deployment RUNS — shown on the app in\n// Studio and readable via the public-config endpoint. Null clears it.\nawait apps.setLink(\"my-app\", \"prod\", \"https://my-app.example.com\");\nconst app = await apps.resolveApp(\"my-app\");\napp?.links.prod; // \"https://my-app.example.com/\"\n\n// Enable + configure the ai service (non-secret half: provider + default\n// model, surfaced on public-config). The provider API KEY goes in the\n// platform vault — odla-db tenant secrets — never in the registry.\nawait apps.setAi(\"my-app\", \"prod\", { provider: \"anthropic\", model: \"claude-sonnet-5\" });\n\n// Configure live Google booking. This call stores non-secret intent only; a\n// human opens the returned consentUrl. Event data remains in Google.\nawait apps.setCalendar(\"my-app\", \"dev\", {\n  provider: \"google\",\n  access: \"book\",\n  bookingCalendarId: \"primary\",\n  availabilityCalendars: [\"primary\"],\n  bookingPageUrl: null,\n});\nconst attempt = await apps.beginGoogleCalendarConnect(\"my-app\", \"dev\");\nconsole.log(attempt.consentUrl);\nconst status = await apps.getCalendar(\"my-app\", \"dev\");\n```\n\n## Selective-release review and approval\n\n`@odla-ai/apps` carries the Registry contract shared by Studio and the CLI.\nCreating a promotion release plan stores an immutable review document; it does\nnot call a provider or mutate a source or target. Each target includes its\nvalidated `@odla-ai/promotion` bundle, exact before values and digests, explicit\nidentifier mappings, exclusions, precondition observations, and non-secret\nprovider-readiness evidence.\n\n```ts\nconst plan = await apps.createPromotionReleasePlan(\"built-not-found\", input);\nconst status = await apps.getPromotionReleaseStatus(\"built-not-found\", plan.planId);\n```\n\nA directly signed-in human may call `approvePromotionRelease` for either\n`apply` or `rollback`. The approval is short-lived and binds the action, plan\ndigest, and complete target set. `requestPromotionReleaseOperation` accepts that\napproval only from an enrolled-device session; an ordinary agent token, a human\nsession, a changed digest, a changed app lifetime, a blocked plan, or an expired\napproval fails closed. A repeated device idempotency key returns the same\ndurable operation. The operation is a dependency-ordered journal: an enrolled\ndevice leases one exact target step with `claimPromotionReleaseWork`, performs\nonly that bounded payload, and commits evidence with\n`recordPromotionReleaseWork`. An expired lease is safely reclaimed after a\nfollower exits; a retry or target rejection remains visible per app.\n`activate_revision` is always last and accepts only a receipt proving the\nplanned higher revision. Cancellation is allowed before activation; after any\ntarget activates, recovery requires a separately approved rollback operation,\nwhich also publishes a higher revision instead of rewriting history.\n\nEvery plan resolves target-local tenant, route, worker, service bindings,\nStripe mode and target Price IDs, and calendar mode before approval. Dev targets\nrequire test Stripe and sandbox calendar identities. Source provider IDs and\nunknown resolution fields fail closed instead of being copied across modes.\n\n## App-service catalog\n\n`APP_SERVICE_CATALOG` is the versioned, content-free vocabulary shared by the\nRegistry, Studio, and CLI. Each entry separates its product kind, same-env\ndependencies, lifecycle controller, and Studio management behavior from the\napp's mutable `enabled` value. Services that own a first-class app workspace\nalso declare its canonical id, label, icon, and ordering here:\n\n```ts\nimport {\n  APP_SERVICE_CATALOG_SCHEMA_VERSION,\n  appServiceDefinition,\n} from \"@odla-ai/apps\";\n\nconsole.log(APP_SERVICE_CATALOG_SCHEMA_VERSION); // odla.app-services/v2\nconsole.log(appServiceDefinition(\"chat\")?.requires); // [\"db\"]\nconsole.log(appServiceDefinition(\"code\")?.workspace?.id); // code\n```\n\nUnknown ids fail closed in Registry and project-config validation. Add a new\nenableable service here first; consumers derive their inventories and\ndependency checks from this catalog instead of carrying local lists.\n\n## Studio handoff URLs\n\nUse `studioAppSettingsPath` when an SDK, CLI, readiness check, or operation\nreceipt needs to send an operator to the setting that owns an action:\n\n```ts\nimport { studioAppSettingsPath } from \"@odla-ai/apps\";\n\nstudioAppSettingsPath(\"my-app\", \"dev\"); // /studio/apps/my-app/dev/settings/environment\nstudioAppSettingsPath(\"my-app\", \"prod\", \"app\"); // /studio/apps/my-app/prod/settings/app\nstudioAppSettingsPath(\"my-app\", \"prod\", \"backups\"); // /studio/apps/my-app/prod/settings/backups\n```\n\nThe explicit final segment is intentional. Environment settings own services,\nCode defaults, end-user auth, AI configuration, and the deployment link. App\nsettings own repository binding, name, owners, category, lifecycle, and the\ndanger zone. The selected environment remains in an app-settings URL as return\ncontext; it does not make those controls environment-scoped. Backups settings\nown the selected environment's restore points and portable database snapshots,\nplus app-wide repository archive limits when Harness is enabled.\n\nFor an interactive chooser, call `beginGoogleCalendarConnect(appId, env)` and\npoll the returned attempt. A healthy result has `connected === true`,\n`writable === true`, and `state === \"healthy\"`. Use `listGoogleCalendars` to\nchoose the booking calendar and one through ten availability calendars, then\npersist that non-secret intent with `setCalendar`.\n\nCalendar OAuth is a separate human checkpoint. The management SDK receives\nonly an opaque attempt and authorization URL; Google codes, access tokens, and\nrefresh tokens stay inside the platform connector. Use\n`listGoogleCalendars` and `disconnectCalendar` for the owner-safe lifecycle.\nThe optional public booking-page URL is a legacy fallback, not a credential.\n\nThis management surface owns connection and non-secret configuration, not\nevent data. Trusted app backends use `@odla-ai/calendar` for live FreeBusy,\nupcoming-event reads, and idempotent create/reschedule/cancel operations.\nGoogle is the single source of truth; there is no sync, resync, retention\nworkflow, or event mirror. Passing `{ purge: true }` to `disconnectCalendar`\nis rejected; public config exposes only aggregate connection/bookability state.\n\n`disconnectCalendar` stops watches and deletes only that app/environment\nconnection's encrypted platform token, cursors, and connector state. It does\nnot revoke the shared user-to-Google-OAuth-project grant, because a project-wide\nrevoke could invalidate the user's other odla connections. A future explicitly\nglobal revoke operation would need cross-connection accounting and warning.\n\nNew automation should always name the environment. For backward compatibility,\npassing `services` to `createApp` enables them in both default environments,\nand omitting `env` from `setService`/`isEnabled` targets the legacy prod alias.\nThose shortcuts are intentionally not the dev-first golden path.\n\n## Conditional configuration operations\n\n`App.configRevision` is the Registry compare-and-set revision\n(`registry:<positive integer>`). Every managed name, service, auth, link,\ncategory, and lifecycle write advances it. A reconciler freezes that revision,\ndesired/observed content digests, and ordered actions into a plan before\ncalling `applyConfigOperation`:\n\n```ts\nconst app = await apps.resolveApp(\"my-app\");\nif (!app?.configRevision) throw new Error(\"Registry does not support conditional config\");\n\nconst receipt = await apps.applyConfigOperation(\"my-app\", {\n  schemaVersion: \"odla.config-operation-request/v1\",\n  expectedRevision: app.configRevision,\n  desiredRevision: plan.desiredRevision,\n  observedRevision: plan.observedRevision,\n  planDigest: plan.planDigest,\n  idempotencyKey: \"deploy-2026-07-29-my-app\",\n  source: { kind: \"api\", version: \"reconciler-1\" },\n  actions: plan.actions,\n});\n```\n\nDo not hand-author `actions`: consume a frozen `odla.config-plan/v2` document.\nThe server verifies that the plan digest binds both content revisions, the\nRegistry revision, and every ordered action. Reservation happens before any\neffect. A stale revision, another running app operation, or reuse of an\nidempotency key for different bytes fails with a stable conflict.\n\n`getConfigOperation(appId, operationId)` reads the same journal without\nreplaying effects. Retrying `applyConfigOperation` with the same app,\nidempotency key, and plan resumes the first incomplete step; a step whose\neffect committed before its progress update is recovered from Registry state.\nA terminal operation returns the same digest-authenticated receipt on every\nretry.\n\nThis release conditionally applies app display-name changes, non-destructive\nservice enable/configure actions, and deployment links when their frozen plan\ndoes not require a human checkpoint. Production actions, app creation, auth\npropagation, service disablement, archive/purge, and every secret or credential\nremain outside this endpoint. Approval-marked, high-risk, and Studio actions\nare rejected before an operation is reserved.\n\n## Credential caveats (agents provisioning with a dev token)\n\n- A developer token authenticates one named agent principal. It does not inherit\n  its manager's projects: ordinary Studio approval grants project metadata\n  access, PM execution/Backlog proposals, discussion participation, and\n  brand-candidate editing on selected exact projects only. PM planning/Ready\n  approval, app administration, brand approval, and ambient owner access are\n  excluded. CRM reference reads are also excluded by default; the approving\n  owner may explicitly select the unchecked read-only `crm.read` option for\n  those exact projects.\n- The provisioning CLI deliberately requests optional `app.manage` for its one\n  exact app. Once the owner approves that immutable request, the agent may\n  create a reserved missing app, configure its services, auth, and link, and\n  administer that app's sibling-service tenants. Ownership, rename/category,\n  and lifecycle mutations remain direct-human operations.\n- Reusing the same agent-requested, human-approved handle reconnects a fresh\n  ordinary handshake to the existing agent principal. The handle is covered by\n  the immutable request digest; approval cannot rewrite it. Approval leaves the\n  current credential live;\n  it also leaves the current grant set unchanged. Successful replacement\n  collection atomically retires older collected ordinary-handshake credentials\n  and replaces the principal's manager-issued grants with the reviewed exact\n  project set. Newly selected projects are unavailable before collection and\n  omitted projects are revoked during the switch. Manually minted and\n  separately scoped credentials remain explicit inventory items.\n- Baseline agents cannot create arbitrary projects, administer tenants, or mint\n  durable app credentials. A provision handshake is the narrow exception: its\n  owner-reviewed `app.manage` grant and exact-id bootstrap reservation authorize\n  only the selected app lifetime. Other authority-expanding effects still need\n  a signed-in human or a consumed one-action approval receipt.\n- Pre-principal developer tokens are migrated without project grants and fail\n  closed (`legacy_reenrollment_required`). Re-enroll each automation as a named\n  agent and select its exact projects; the migration never guesses ambient\n  authority from historical ownership.\n- `resolveApp()` returns only projects visible to the authenticated principal;\n  `null` means absent or unauthorized and deliberately does not reveal which.\n- Minting a db key (`POST /admin/apps/:tenant/keys`) is **additive**: existing\n  keys keep working, so provisioning reruns never break deployed Workers.\n- `setAuth(appId, env, { publishableKey })` needs only the Clerk publishable\n  key; the issuer is derived and applied to that env's db tenant. Workers\n  should fetch the resulting public-config at runtime (short cache) instead of\n  baking auth into env vars — key rotation then needs no redeploy.\n\n## Principals and project authority\n\nThe registry resolves the actor from the bearer credential. Its exported\n`Operator` keeps two identities separate:\n\n- `developerId` is the accountable human account used for app ownership.\n- `principalId`, `principalKind`, `displayName`, and `handle` identify the\n  human, agent, or service that actually used the credential.\n- `credentialId` / `credentialKind` identify that credential.\n- `managerPrincipalId` is organizational metadata only. It never grants an\n  agent access to a manager's projects.\n- `delegatedByPrincipalId`, `grantId`, and `grantVersion` preserve the\n  revocable authority used for the action.\n\nProject grants are resolved server-side from the live registry immediately\nbefore an action. Clients supply a bearer credential, not a principal, manager,\nor grant claim. A revoked grant therefore denies the next action, and changing\nan agent's display label cannot change either its identity or its authority.\nAn exact grant also binds the app incarnation; a same-id recreation does not\nrevive it. Historical receipts remain audit evidence but cannot replay as\ncurrent authority in a later incarnation.\nHere, immutable means append-only through the Registry contract and read-only\nthrough its public SQL view. Registry code and operators holding the underlying\nD1 binding remain trusted; receipts are not cryptographic tamper evidence\nagainst a compromised control-plane writer.\n\nThis remains true for a shared project run by three humans: each person can\nmanage a friendly named agent, but every agent keeps its own credential and\nonly the exact project grants that a human approved. Neither co-ownership nor\nmanager attribution permits impersonation. An authority-expanding effect must\nconsume a one-action approval receipt bound to the resource, actor, credential,\nlive grant revision, expiry, and idempotency key.\n\nSigned-in human owners approve one exact change through\n`consumeHumanExactAuthority(appId, input)`. The SDK sends only the capability,\nproject capability, effect, exact resource, action digest, and retry key. The\nregistry derives the Clerk-bound human identity, short-lived self-grant, and\nimmutable receipt; callers cannot submit an actor, grant, expiry, or evidence.\nAn identical retry returns the original receipt, while reusing the retry key\nfor a different action fails. This is the approval boundary for changes such as\naccepting an agent's brand proposal—not a switch that disables unused features.\n\nA provisioned app normally has a different Clerk issuer and subject namespace\nfrom odla Studio. It must not send that local bearer to `verifyOperator` or\npersist or exchange either Clerk session. A machine-authenticated\nservice-binding client calls\n`verifyAppHuman(appId, env, appToken)` for the owner projection and\n`consumeAppHumanExactAuthority(appId, env, appToken, input)` for an exact\napproval receipt. The service credential is transport authority only: every\ncall verifies the local JWT against the exact configured issuer and audience,\nnormalizes its signed canonical email, requires exactly one active platform\nhuman with that email, and rechecks the app/auth lifetime and current ownership.\nMissing, invalid, unmatched, or ambiguous emails, backend keys, agents,\ndevices, removed owners, and stale app/auth configuration remain denied. Never\nlog or persist the Clerk bearer.\n\n## Provisioning contract\n\nService Workers implement `POST /svc/enablement` (`PROVISION_PATH`); the\nregistry calls it when an operator toggles the service for an app, and stores\nthe returned service-owned `config` (e.g. an o11y `serviceId`). Hosted services\nare enabled only after their controller acknowledges the operation. Missing\nbindings/credentials and unknown services fail closed; `ai` and `blog` are\nregistry-owned capabilities, as declared by `APP_SERVICE_CATALOG`. Deletion calls `destroy` for every\nprovisioned environment, including disabled services whose data was retained.\nPartial failures leave the app record in place and return structured operation\nstatus so an idempotent retry can finish cleanup. Every controller request\ncarries `app.incarnation`; service controllers keep their physical tenant or\nDurable Object incarnation separate and compare the Registry lifetime before\nsuspend, resume, destroy, backup-policy, or delayed sink work. `calendar` is a\nregistry-owned connector: enablement stores non-secret intent, disable\nsuspends booking access while retaining connector state, and destroy deletes\nthat app/environment's encrypted token and state without revoking the shared\nGoogle project grant. There are no odla-db event-mirror rows to purge. The SDK\npreserves structured failures on `AppsError.details`.\n","readmeFilename":"README.md"}