{"_id":"@astrale-domains/services","_rev":"18-8b4b2e4cf6c9086b6fe55fe4842f239c","name":"@astrale-domains/services","dist-tags":{"latest":"0.4.5"},"versions":{"0.2.0":{"name":"@astrale-domains/services","version":"0.2.0","_id":"@astrale-domains/services@0.2.0","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"311df67eb6c031c026f6be4f2749f976969cb6f4","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.2.0.tgz","fileCount":31,"integrity":"sha512-d/B9eMo0uyE+IsY5Eb1lWafC1BltsH+YQomxy6mF/ps0I1IDZ1L20Y+whUNzfUmJjWpJL0Kfx9jwe31Jadam8A==","signatures":[{"sig":"MEYCIQC0en0EGZYueSNpQzFae5KwOjc8taOY7ZKWIo+6wFQ0BQIhANTk2noNr+OQgtpVx8MjYxdnOeT9c5HGtsHJgeyE3SNO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76517},"main":"./dist/schema/index.js","type":"module","_from":"file:/private/tmp/services-0.2.0.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit","frontend:dev":"vite","frontend:build":"vite build","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","qualify:cloudflare":"bun scripts/qualification/cloudflare/run.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts"},"_npmUser":{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"},"_resolved":"/private/tmp/services-0.2.0.tgz","_integrity":"sha512-d/B9eMo0uyE+IsY5Eb1lWafC1BltsH+YQomxy6mF/ps0I1IDZ1L20Y+whUNzfUmJjWpJL0Kfx9jwe31Jadam8A==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.16.0","description":"`services.astrale.ai` turns an authored module artifact into an owner-scoped, Cloudflare-backed Service. It keeps provider protocols behind a neutral SDK Integration and stores only admitted deployment evidence in the graph.","directories":{},"_nodeVersion":"24.18.1","dependencies":{"zod":"^4.4.3","@astrale-os/sdk":"0.5.0-beta.45"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.1","react":"^19.2.0","oxlint":">=1.78.0 <2.0.0","vitest":"^4.1.10","react-dom":"^19.2.0","typescript":"7.0.2","@types/node":"^22.0.0","tailwindcss":"^4.0.6","@types/react":"^19.2.0","@astrale-os/ox":">=0.1.3 <1.0.0","@types/react-dom":"^19.2.0","@astrale-os/shell":"0.4.2-beta.3","@tailwindcss/vite":"^4.0.6","@vitejs/plugin-react":"^6.0.5","@tanstack/react-router":"1.170.17","@astrale-os/shell-react":"0.3.2-beta.2","@tanstack/router-plugin":"1.168.19","@astrale-os/adapter-astrale":"0.5.0-beta.41","@astrale-os/adapter-cloudflare":"0.5.0-beta.48"},"trustedDependencies":["esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.2.0_1787749790294_0.007649442948438612","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@astrale-domains/services","version":"0.2.1","_id":"@astrale-domains/services@0.2.1","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"c220a8081433eb6c157b7a0c196794098554e11f","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.2.1.tgz","fileCount":31,"integrity":"sha512-oTzDh8NiGywGJGnOI/V8hTBYvvfNwCB500L9yJMb8BFmJ7rnBKLqufHopP90KoijdsG1UYO/D2fYlSmnGDKbsw==","signatures":[{"sig":"MEUCIDzaC1zttm9oMX5wXMT81Ct8NhJl/15tStNH3ZgpNtjEAiEAkUbKzBX6Rx6ZR0BefQd89gdAPPGCrF6ZCEwDTehtQjM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76689},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.1.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit","frontend:dev":"vite","frontend:build":"vite build","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","qualify:cloudflare":"bun scripts/qualification/cloudflare/run.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.1.tgz","_integrity":"sha512-oTzDh8NiGywGJGnOI/V8hTBYvvfNwCB500L9yJMb8BFmJ7rnBKLqufHopP90KoijdsG1UYO/D2fYlSmnGDKbsw==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` turns an authored module artifact into an owner-scoped, Cloudflare-backed Service. It keeps provider protocols behind a neutral SDK Integration and stores only admitted deployment evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"^4.4.3","@astrale-os/sdk":"0.5.0-beta.51"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.1","react":"^19.2.0","oxlint":">=1.78.0 <2.0.0","vitest":"^4.1.10","react-dom":"^19.2.0","typescript":"7.0.2","@types/node":"^22.0.0","tailwindcss":"^4.0.6","@types/react":"^19.2.0","@astrale-os/ox":">=0.1.3 <1.0.0","@types/react-dom":"^19.2.0","@astrale-os/shell":"0.4.2-beta.6","@tailwindcss/vite":"^4.0.6","@vitejs/plugin-react":"^6.0.5","@tanstack/react-router":"1.170.17","@astrale-os/shell-react":"0.3.2-beta.3","@tanstack/router-plugin":"1.168.19","@astrale-os/adapter-astrale":"0.5.0-beta.47","@astrale-os/adapter-cloudflare":"0.5.0-beta.54"},"trustedDependencies":["esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.2.1_1787750376949_0.526964367828922","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@astrale-domains/services","version":"0.2.2","_id":"@astrale-domains/services@0.2.2","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"c123028cf3d1367f130386c0e4185aef9174910f","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.2.2.tgz","fileCount":57,"integrity":"sha512-Wjh95+tdauN0BRMuek2+knBAjV1tF+BRUUkIVZSJ0IQWP/d4LQTb8KQMGTOV4hWoDhCV0GQSSmARy4dyotjJ3A==","signatures":[{"sig":"MEYCIQDP6GCV41CJaOe0V7J6Nh3+6A73MVelvkeBYhoabdD6FAIhAOtH6Qq1jXwGsKJSMzO+M0eyuDZ9AgbLNK0RDhLUu1uZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1068240},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.2.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:dev":"vite","frontend:build":"vite build","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.2.tgz","_integrity":"sha512-Wjh95+tdauN0BRMuek2+knBAjV1tF+BRUUkIVZSJ0IQWP/d4LQTb8KQMGTOV4hWoDhCV0GQSSmARy4dyotjJ3A==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` turns an authored module artifact into an owner-scoped, Cloudflare-backed Service. It keeps provider protocols behind a neutral SDK Integration and stores only admitted deployment evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"^4.4.3","@astrale-os/sdk":"0.5.0-beta.65"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.1","jsdom":"30.0.1","react":"^19.2.0","oxlint":">=1.78.0 <2.0.0","vitest":"^4.1.10","react-dom":"^19.2.0","typescript":"7.0.2","@types/node":"^22.0.0","tailwindcss":"^4.0.6","@types/react":"^19.2.0","@astrale-os/ox":">=0.1.3 <1.0.0","@astrale-os/ui":"0.3.0-beta.9","@types/react-dom":"^19.2.0","@astrale-os/shell":"0.4.2-beta.7","@tailwindcss/vite":"^4.0.6","@vitejs/plugin-react":"^6.0.5","@tanstack/react-router":"1.170.17","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.3.2-beta.5","@tanstack/router-plugin":"1.168.19","@cloudflare/workers-types":"5.20260819.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.1","@astrale-os/adapter-cloudflare":"0.5.0-beta.68"},"trustedDependencies":["esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.2.2_1787873605759_0.3258183034398183","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@astrale-domains/services","version":"0.2.3","_id":"@astrale-domains/services@0.2.3","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"4b5694da79ba4980084bdc364f9bfad0afd02782","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.2.3.tgz","fileCount":53,"integrity":"sha512-hOE41vOcOFGWkvyalqEyTo4yO1fPlbRK0S+AmK6vcYyDfNqarxtgakT4pN0HFsAclAlSVYTp/DTfGju6KUYsVQ==","signatures":[{"sig":"MEQCIEZYQMq2EjrK2eOx/+yEl00FJDaTKeP37IKZYofpuJMiAiBj2uRzxHLr+thYXB1BwazhJe27aIA9O3z/pXsBCqLqBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1231541},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.3.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:dev":"vite","frontend:build":"vite build","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.3.tgz","_integrity":"sha512-hOE41vOcOFGWkvyalqEyTo4yO1fPlbRK0S+AmK6vcYyDfNqarxtgakT4pN0HFsAclAlSVYTp/DTfGju6KUYsVQ==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` turns an authored module artifact into an owner-scoped, Cloudflare-backed Service. It keeps provider protocols behind a neutral SDK Integration and stores only admitted deployment evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"^4.4.3","@astrale-os/sdk":"0.5.0-beta.75"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.13","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.4.2-beta.8","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.3.2-beta.5","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.78"},"trustedDependencies":["esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.2.3_1788005830234_0.14733536065339248","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@astrale-domains/services","version":"0.2.4","_id":"@astrale-domains/services@0.2.4","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"46edd7a92bf4bdb88a4cb65f2d791cd96ba3d63a","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.2.4.tgz","fileCount":63,"integrity":"sha512-wpO4vtfbJN8ICZ2hF2UoKs9RhGkNP+bAETBKVRzGpBz3ppxdwlILV19Kyfpi8h6l+eYsntkCQ6HMD7EJnS57gA==","signatures":[{"sig":"MEQCIBCNcx+YhOBiu1o960ada/Hv2CE2TFjQKcIigBATSlQEAiBtcgvhQo6dWI5fuNMyx2US/g3P8xkay+tr8GVZNnDe5w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1271091},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.4.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:dev":"vite","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.4.tgz","_integrity":"sha512-wpO4vtfbJN8ICZ2hF2UoKs9RhGkNP+bAETBKVRzGpBz3ppxdwlILV19Kyfpi8h6l+eYsntkCQ6HMD7EJnS57gA==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` turns an authored module artifact into an owner-scoped, Cloudflare-backed Service. It keeps provider protocols behind a neutral SDK Integration and stores only admitted deployment evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"^4.4.3","@astrale-os/sdk":"0.5.0-beta.79"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.13","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.4.2-beta.8","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.3.2-beta.5","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.82"},"trustedDependencies":["esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.2.4_1788031958634_0.3743938654807655","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@astrale-domains/services","version":"0.2.5","_id":"@astrale-domains/services@0.2.5","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"30e8c3cc5149a905cb62adc85ad5fe58797e9c32","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.2.5.tgz","fileCount":59,"integrity":"sha512-kgH3yjp1GWmqHQx2n2s6pfBzFnVzI7LfnuDQUZyUld1OAEODK74PxQNWgos8So1GpzDIJTtSPkVquiA3SiH8xQ==","signatures":[{"sig":"MEUCIByWAaQb+//k/6968HY80tXP02wH+6Y58l6Y2D8AsOCyAiEAgIItMnWzRIR5z3cTEXGegkOYABiWyluBgm+yKqfoNmU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":874322},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.5.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:dev":"vite","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.5.tgz","_integrity":"sha512-kgH3yjp1GWmqHQx2n2s6pfBzFnVzI7LfnuDQUZyUld1OAEODK74PxQNWgos8So1GpzDIJTtSPkVquiA3SiH8xQ==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` turns an authored module artifact into an owner-scoped, Cloudflare-backed Service. It keeps provider protocols behind a neutral SDK Integration and stores only admitted deployment evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"^4.4.3","@astrale-os/sdk":"0.5.0-beta.82"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.13","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.4.2-beta.8","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.3.2-beta.5","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.85"},"trustedDependencies":["esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.2.5_1788064023387_0.5662475371221181","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@astrale-domains/services","version":"0.2.6","_id":"@astrale-domains/services@0.2.6","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"ffeb28fc833713c3d927b21af371461370603a32","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.2.6.tgz","fileCount":63,"integrity":"sha512-llno6uVgyUvULgqWowJmfJ8Pk0anVuHr1eWissF7cLxEBAafs5DIZ1Eldl6Fpl+hu1X1wlxjAstHY+71PQ+Vqw==","signatures":[{"sig":"MEUCIBC6S0Zkoabvztj2k9xsSRNorUl26for4TbE/xP0E+JqAiEAjJ0Po1V9mS33VhbnshNjcwKnQtuXj3wUWV04l5wAq/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":849727},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.6.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:dev":"vite","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.2.6.tgz","_integrity":"sha512-llno6uVgyUvULgqWowJmfJ8Pk0anVuHr1eWissF7cLxEBAafs5DIZ1Eldl6Fpl+hu1X1wlxjAstHY+71PQ+Vqw==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` turns an authored module artifact into an owner-scoped, Cloudflare-backed Service. It keeps provider protocols behind a neutral SDK Integration and stores only admitted deployment evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.95","@astrale-domains/shell":"0.1.0-beta.17"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.13","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.4.2-beta.8","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.3.2-beta.5","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.98"},"trustedDependencies":["esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.2.6_1788121913159_0.09105465293838155","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@astrale-domains/services","version":"0.3.0","_id":"@astrale-domains/services@0.3.0","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"6e648953ee8ed7b675117294988c5e51eb0b23cb","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.3.0.tgz","fileCount":63,"integrity":"sha512-E/K+aR6p2FdBH+5dlNWjsS0DwV9VQe9VxpqncJTwilLNjEeNbcpaRDHtzXY+UzrjlsTZxj9vKIp8EQ+UMQfROA==","signatures":[{"sig":"MEQCIAYsLFE2CqZ/wyz9Yq5aNnXamg49YqHqrDiZ2pgqr6GmAiAMwmg5zGHWRFdBn6bCuSLKGICCxCWGXqQ8+5SuMp6Uvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":857355},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.3.0.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:dev":"vite","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.3.0.tgz","_integrity":"sha512-E/K+aR6p2FdBH+5dlNWjsS0DwV9VQe9VxpqncJTwilLNjEeNbcpaRDHtzXY+UzrjlsTZxj9vKIp8EQ+UMQfROA==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` turns an authored module artifact into an owner-scoped, Cloudflare-backed Service. It keeps provider protocols behind a neutral SDK Integration and stores only admitted deployment evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.99","@astrale-domains/shell":"0.1.0-beta.21"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.25","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.5.0-beta.11","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.4.0-beta.10","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.102"},"trustedDependencies":["esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.3.0_1788281737276_0.235034610820281","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@astrale-domains/services","version":"0.3.1","_id":"@astrale-domains/services@0.3.1","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"aa3aac9c88571727004cdd890af17634f7ee4759","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.3.1.tgz","fileCount":63,"integrity":"sha512-2ogL6AL2ZC2hn0ky9cFJJp51IVdUEb1zXkPXgZA8R1ODaHdi+mRx3iCtZN69X1IgDDw1Hu8I2KLoUV9etZdmpA==","signatures":[{"sig":"MEYCIQDwWMv3lxahYwKAntF/hsCsBrNSETkrFRZbHnhl0VjddgIhANXaVrAP6z7bPPIOkBqzafympUtqjau7aYlqf9S5rjVN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":858297},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.3.1.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:dev":"vite","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.3.1.tgz","_integrity":"sha512-2ogL6AL2ZC2hn0ky9cFJJp51IVdUEb1zXkPXgZA8R1ODaHdi+mRx3iCtZN69X1IgDDw1Hu8I2KLoUV9etZdmpA==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` turns an authored module artifact into an owner-scoped, Cloudflare-backed Service. It keeps provider protocols behind a neutral SDK Integration and stores only admitted deployment evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.106","@astrale-domains/shell":"0.1.0-beta.22"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.25","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.5.0-beta.13","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.4.0-beta.13","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.109"},"trustedDependencies":["esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.3.1_1788423150834_0.8896001643069726","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@astrale-domains/services","version":"0.3.2","_id":"@astrale-domains/services@0.3.2","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"f310af68105102a78a11d0edd16c2e8d7ba155bd","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.3.2.tgz","fileCount":65,"integrity":"sha512-ZUehn4Bov92taXiLbAKw4AVFXI6ZwbDky1gEjhtbZOIQzQMvDC8nVW5TZAgSL/ZX2KEpVnJrLf5yHBhuWuT50g==","signatures":[{"sig":"MEQCIGpjZRMDNRPqn/uZz8tqmGMyyq/e9YmgTtSVehx4o3xcAiBjsH9KLVuIEq5z1m+uuQP0lR2pO8vZ5wNJmQ/odlr7iw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":858775},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.3.2.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:dev":"vite","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.3.2.tgz","_integrity":"sha512-ZUehn4Bov92taXiLbAKw4AVFXI6ZwbDky1gEjhtbZOIQzQMvDC8nVW5TZAgSL/ZX2KEpVnJrLf5yHBhuWuT50g==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` turns an authored module artifact into an owner-scoped, Cloudflare-backed Service. It keeps provider protocols behind a neutral SDK Integration and stores only admitted deployment evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.109","@astrale-domains/shell":"0.1.0-beta.22"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.25","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.5.0-beta.13","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.4.0-beta.13","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.112"},"trustedDependencies":["esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.3.2_1788540739334_0.9354501708497245","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@astrale-domains/services","version":"0.3.3","_id":"@astrale-domains/services@0.3.3","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"513ec8d63b0bce43633ce259d925a9513461034f","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.3.3.tgz","fileCount":63,"integrity":"sha512-NfkmX0a+xpz3WiS5EaQWMP/AibmxDWde8Jk1qb2SCmkUV9WVWLRqGdupCX8mNQrreqRp+tGZzi20DPg5Bxqk7g==","signatures":[{"sig":"MEYCIQDcP4f+TIzcHI9WZcd1+kZCmul5Zg/DFTm/7yZdE7TugQIhAJI2efNid+Ht2T7DTpha26uwZiod/QvCst4HvAYc1ED8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":864493},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.3.3.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"bun scripts/dev/index.ts","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:dev":"vite","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.3.3.tgz","_integrity":"sha512-NfkmX0a+xpz3WiS5EaQWMP/AibmxDWde8Jk1qb2SCmkUV9WVWLRqGdupCX8mNQrreqRp+tGZzi20DPg5Bxqk7g==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` owns provider-backed compute resources. It keeps provider protocols behind neutral SDK Integrations and stores only admitted lifecycle evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.113"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"bun":"1.4.0","vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.25","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.5.0-beta.13","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.4.0-beta.13","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.116"},"trustedDependencies":["bun","esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.3.3_1788627767073_0.27056125031205847","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@astrale-domains/services","version":"0.3.4","_id":"@astrale-domains/services@0.3.4","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"8675613c2433690a055a5cbc14997752c9909eee","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.3.4.tgz","fileCount":63,"integrity":"sha512-+ER6BnZYYJIMLA6W8fvQcbT5bufYKn0K489+YH5xgw+zgiTPhZi+nyBA4MkDpz3Mt8JIkSN4JitO9J2GgQO6mA==","signatures":[{"sig":"MEYCIQCM7PjwfyZwRVnT7tdq6vAhE/NwpFGxs/SCMsVnM7u7IAIhAMNm+wz3x5V8HBdaE6A3hwIz3R+Mz3zRdGHVAMmq/b8V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":865818},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.3.4.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"bun scripts/dev/index.ts","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:dev":"vite","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.3.4.tgz","_integrity":"sha512-+ER6BnZYYJIMLA6W8fvQcbT5bufYKn0K489+YH5xgw+zgiTPhZi+nyBA4MkDpz3Mt8JIkSN4JitO9J2GgQO6mA==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` owns provider-backed compute resources. It keeps provider protocols behind neutral SDK Integrations and stores only admitted lifecycle evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.113"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"bun":"1.4.0","vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.25","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.5.0-beta.13","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.4.0-beta.13","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.116"},"trustedDependencies":["bun","esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.3.4_1788630117812_0.7153356999958729","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@astrale-domains/services","version":"0.4.0","_id":"@astrale-domains/services@0.4.0","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"1ea73272b9555b3c31121fdc2fd1d8d749ff4673","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.4.0.tgz","fileCount":79,"integrity":"sha512-2ipjX3D3yskxo1zIoacLY7IG70HlPUXklw8OdJHgyyNDkSHUiUDE8gAur2/MnSkqj391SbgQDIy19EeszmpVVQ==","signatures":[{"sig":"MEUCIQDW+0Z7b58zFnBcO1FogCP5UzD6kN073ozvLiPLWlMIEwIgeUiNgBKJKy3Th1qpr2eP1/w7+4RUm3hdpFJ1OC3sqsk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":891235},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.0.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.0.tgz","_integrity":"sha512-2ipjX3D3yskxo1zIoacLY7IG70HlPUXklw8OdJHgyyNDkSHUiUDE8gAur2/MnSkqj391SbgQDIy19EeszmpVVQ==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` owns provider-backed compute resources. It keeps provider protocols behind neutral SDK Integrations and stores only admitted lifecycle evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.123"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"bun":"1.4.0","vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.25","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.5.0-beta.16","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.4.0-beta.15","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.126"},"trustedDependencies":["bun","esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.4.0_1788805698964_0.13951976358558205","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@astrale-domains/services","version":"0.4.1","_id":"@astrale-domains/services@0.4.1","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"4f3f26aa17081b84206df67724f83fc0bc22b976","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.4.1.tgz","fileCount":79,"integrity":"sha512-itmo6FKRd9yLJuLRno1Yeo77mv6q/YjQK1zFsguIxGfJEan79Ci2PEPrANV2/XWrGfHTBZ/EAOvQgzfRpF1uIA==","signatures":[{"sig":"MEQCIEJYfVs8iCwI8l5rt5j3iA28DnqyPt/jdHNHk15lks5IAiAcpkVge2DAfjkWC14ecHDUN5UAq4sZiWPKRqa3hOrNZQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230672},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.1.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.1.tgz","_integrity":"sha512-itmo6FKRd9yLJuLRno1Yeo77mv6q/YjQK1zFsguIxGfJEan79Ci2PEPrANV2/XWrGfHTBZ/EAOvQgzfRpF1uIA==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` owns provider-backed compute resources. It keeps provider protocols behind neutral SDK Integrations and stores only admitted lifecycle evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.124"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"bun":"1.4.0","vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.25","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.5.0-beta.16","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.4.0-beta.15","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.127"},"trustedDependencies":["bun","esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.4.1_1788816177048_0.5550063952916375","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@astrale-domains/services","version":"0.4.2","_id":"@astrale-domains/services@0.4.2","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"334265398e3ab4d7d5e34f91e2e90b73b4ac8546","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.4.2.tgz","fileCount":79,"integrity":"sha512-FrlnkoaVtFMNK4VkNkaiuarABz3RxEq3HCebfiy0awTQcmGm3elAuiSPpXpmBQJz8LRtBrDyBsVBHO6wD62MBQ==","signatures":[{"sig":"MEUCIHxpUqHQ43BklyPkxUQnJ/uNDCXhj7yGXsXNkB2ppJWrAiEAnwW3QEEQoUDWGZjh4Ix+YO+KcfQ3LAuhLff4kzFJkeM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231002},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.2.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.2.tgz","_integrity":"sha512-FrlnkoaVtFMNK4VkNkaiuarABz3RxEq3HCebfiy0awTQcmGm3elAuiSPpXpmBQJz8LRtBrDyBsVBHO6wD62MBQ==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` owns provider-backed compute resources. It keeps provider protocols behind neutral SDK Integrations and stores only admitted lifecycle evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.124"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"bun":"1.4.0","vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.25","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.5.0-beta.16","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.4.0-beta.15","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.127"},"trustedDependencies":["bun","esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.4.2_1788819817554_0.7268349967912675","host":"s3://npm-registry-packages-npm-production"}},"0.4.3":{"name":"@astrale-domains/services","version":"0.4.3","_id":"@astrale-domains/services@0.4.3","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"b63a1a3e259d6e95145e3e8741833fda1aa733b8","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.4.3.tgz","fileCount":79,"integrity":"sha512-a9yzcf6XOAJrD4cmYg1Zf/ZbKrVI9WsyIsAsLHVgo5ru7b8T1aV6ynxveV+Epyth9DyWR/Q1S01uOo3ZGU5m5A==","signatures":[{"sig":"MEUCIQCJmIlQOe65Iu0+m83jynHKqFN9muWDcgVtP1cQD/ZU2wIgNpGL3Y3FaZIm1jfsaRt8RB/xNJQ/HpfsW0i/0HgnbRw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114856},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.3.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","test:remote":"node --test tests/remote/*.test.mjs","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.3.tgz","_integrity":"sha512-a9yzcf6XOAJrD4cmYg1Zf/ZbKrVI9WsyIsAsLHVgo5ru7b8T1aV6ynxveV+Epyth9DyWR/Q1S01uOo3ZGU5m5A==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` owns provider-backed compute resources. It keeps provider protocols behind neutral SDK Integrations and stores only admitted lifecycle evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.128"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"bun":"1.4.0","vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.25","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.5.0-beta.16","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.4.0-beta.15","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.131"},"trustedDependencies":["bun","esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.4.3_1788853472740_0.3929017195238145","host":"s3://npm-registry-packages-npm-production"}},"0.4.4":{"name":"@astrale-domains/services","version":"0.4.4","_id":"@astrale-domains/services@0.4.4","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"homepage":"https://github.com/astrale-os/domains#readme","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"dist":{"shasum":"0cad92b56ec652e06a0ec1e83a5805725467eb89","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.4.4.tgz","fileCount":78,"integrity":"sha512-aSdnBjSVCVO2oCA5ntaGkAfUD4FFRRfkhx3AzxfW+rq5+tsoKYfwZOEbVawK3qn8OnHAfbU2wd3+5gAAwgnpUw==","signatures":[{"sig":"MEQCIBP+Le86eZqsDuXh2yZp0ffDmzbpsesagdim1+zA3RK5AiBwtDlvopSbsBPZNNMGZ/t/0GgH5sgbeSHCkt+WtkzGTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":97621},"main":"./dist/schema/index.js","type":"module","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.4.tgz","types":"./dist/schema/index.d.ts","engines":{"node":">=22.13"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"scripts":{"dev":"astrale-domain dev","beta":"astrale-domain deploy beta","lint":"astrale-domain lint","prod":"astrale-domain deploy prod","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","build":"astrale-domain build","deploy":"astrale-domain deploy","package":"astrale-domain package","lint:fix":"astrale-domain lint --fix","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","test:remote":"node --test tests/remote/*.test.mjs","frontend:build":"vite build","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.4.tgz","_integrity":"sha512-aSdnBjSVCVO2oCA5ntaGkAfUD4FFRRfkhx3AzxfW+rq5+tsoKYfwZOEbVawK3qn8OnHAfbU2wd3+5gAAwgnpUw==","repository":{"url":"git+https://github.com/astrale-os/domains.git","type":"git","directory":"services"},"_npmVersion":"11.19.0","description":"`services.astrale.ai` owns provider-backed compute resources. It keeps provider protocols behind neutral SDK Integrations and stores only admitted lifecycle evidence in the graph.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"zod":"4.4.3","@astrale-os/sdk":"0.5.0-beta.131"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"bun":"1.4.0","vite":"^8.2.2","jsdom":"30.0.1","react":"^19.2.8","oxlint":">=1.79.0 <2.0.0","vitest":"^4.1.11","react-dom":"^19.2.8","typescript":"7.0.2","@types/node":"^26.2.0","tailwindcss":"^4.3.3","@types/react":"^19.2.18","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/ui":"0.3.0-beta.25","@types/react-dom":"^19.2.4","@astrale-os/shell":"0.5.0-beta.18","@tailwindcss/vite":"^4.3.3","@vitejs/plugin-react":"^6.1.0","@tanstack/react-router":"1.170.18","@testing-library/react":"16.3.2","@astrale-os/shell-react":"0.4.0-beta.17","@tanstack/router-plugin":"1.168.23","@cloudflare/workers-types":"5.20260821.1","@testing-library/jest-dom":"7.0.1","@testing-library/user-event":"14.6.5","@astrale-os/adapter-cloudflare":"0.5.0-beta.134"},"trustedDependencies":["bun","esbuild","sharp","workerd"],"_npmOperationalInternal":{"tmp":"tmp/services_0.4.4_1788874001351_0.6621692501137595","host":"s3://npm-registry-packages-npm-production"}},"0.4.5":{"name":"@astrale-domains/services","version":"0.4.5","repository":{"type":"git","url":"git+https://github.com/astrale-os/domains.git","directory":"services"},"bin":{"create-astrale-service":"dist/scaffold/create-service.mjs"},"type":"module","main":"./dist/schema/index.js","types":"./dist/schema/index.d.ts","imports":{"#schema":"./dist/schema/index.js","#schema/*":"./dist/schema/*/index.js"},"exports":{".":{"types":"./dist/schema/index.d.ts","import":"./dist/schema/index.js"},"./package.json":"./package.json"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"dependencies":{"@astrale-os/sdk":"0.5.0-beta.144","zod":"4.4.3"},"devDependencies":{"@astrale-os/adapter-cloudflare":"0.5.0-beta.147","@astrale-os/ox":">=0.1.4 <1.0.0","@astrale-os/shell":"0.5.0-beta.18","@astrale-os/shell-react":"0.4.0-beta.17","@astrale-os/ui":"0.3.0-beta.25","@cloudflare/workers-types":"5.20260821.1","@tailwindcss/vite":"^4.3.3","@tanstack/react-router":"1.170.18","@tanstack/router-plugin":"1.168.23","@testing-library/jest-dom":"7.0.1","@testing-library/react":"16.3.2","@testing-library/user-event":"14.6.5","@types/node":"^26.2.0","@types/react":"^19.2.18","@types/react-dom":"^19.2.4","@vitejs/plugin-react":"^6.1.0","bun":"1.4.0","jsdom":"30.0.1","oxlint":">=1.79.0 <2.0.0","react":"^19.2.8","react-dom":"^19.2.8","tailwindcss":"^4.3.3","typescript":"7.0.2","vite":"^8.2.2","vitest":"^4.1.11"},"engines":{"node":">=22.13"},"trustedDependencies":["bun","esbuild","sharp","workerd"],"scripts":{"dev":"astrale-domain dev","prod":"astrale-domain deploy prod","beta":"astrale-domain deploy beta","deploy":"astrale-domain deploy","build":"astrale-domain build","lint":"astrale-domain lint","lint:fix":"astrale-domain lint --fix","package":"astrale-domain package && node tooling/package-scaffolder.mjs","provider:bootstrap":"bun providers/cloudflare/operator/provision/bootstrap.ts","provider:doctor":"bun providers/cloudflare/operator/maintenance/doctor.ts","provider:orphan-audit":"bun providers/cloudflare/operator/maintenance/orphan-audit.ts","provider:reclaim-service":"bun providers/cloudflare/operator/maintenance/reclaim-service.ts","provider:route-wildcard":"bun providers/cloudflare/operator/routing/wildcard.ts","provider:route-tenant":"bun providers/cloudflare/operator/routing/tenant.ts","typecheck":"tsc --noEmit && tsc --project providers/cloudflare/operator/dispatch/tsconfig.json","test":"vitest run --config vitest.config.ts && pnpm run accessibility:check","accessibility:check":"oxlint ui views frontend/src --jsx-a11y-plugin --react-plugin --deny-warnings","frontend:build":"vite build","test:remote":"node --test tests/remote/*.test.mjs"},"_id":"@astrale-domains/services@0.4.5","description":"`services.astrale.ai` owns provider-backed compute resources. It keeps provider protocols behind neutral SDK Integrations and stores only admitted lifecycle evidence in the graph.","bugs":{"url":"https://github.com/astrale-os/domains/issues"},"homepage":"https://github.com/astrale-os/domains#readme","_integrity":"sha512-PM+mBS8VOHjjoraoPgn3Ff4omejunZaZqjXDUVIDlCs76/PpWnOIGcs3Ef8pk5uIADGUlZytIt3DDHkk9FtA9g==","_resolved":"/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.5.tgz","_from":"file:/home/runner/work/_temp/domains/packs/services/astrale-domains-services-0.4.5.tgz","_nodeVersion":"26.7.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-PM+mBS8VOHjjoraoPgn3Ff4omejunZaZqjXDUVIDlCs76/PpWnOIGcs3Ef8pk5uIADGUlZytIt3DDHkk9FtA9g==","shasum":"acd4f6996451a5b56396ed2174df70ff8f31c7a8","tarball":"https://registry.npmjs.org/@astrale-domains/services/-/services-0.4.5.tgz","fileCount":89,"unpackedSize":117947,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCAkd//yNZKRkvQVy6d6WmFuSQ6az4DUMUnYW+AB9eZ+gIhAOgxjVi3fTlCPSqcomvvesnqB1t5Rp6+8E7VthsDLhVt"}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:ab63f766-dbb1-489b-adaf-7d499350dd7a"}},"directories":{},"maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/services_0.4.5_1789458918753_0.4027604338882076"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-26T13:09:50.181Z","modified":"2026-09-15T07:55:19.056Z","0.2.0":"2026-08-26T13:09:50.445Z","0.2.1":"2026-08-26T13:19:37.091Z","0.2.2":"2026-08-27T23:33:25.918Z","0.2.3":"2026-08-29T12:17:10.394Z","0.2.4":"2026-08-29T19:32:38.766Z","0.2.5":"2026-08-30T04:27:03.531Z","0.2.6":"2026-08-30T20:31:53.304Z","0.3.0":"2026-09-01T16:55:37.420Z","0.3.1":"2026-09-03T08:12:30.979Z","0.3.2":"2026-09-04T16:52:19.448Z","0.3.3":"2026-09-05T17:02:47.222Z","0.3.4":"2026-09-05T17:41:57.970Z","0.4.0":"2026-09-07T18:28:19.111Z","0.4.1":"2026-09-07T21:22:57.177Z","0.4.2":"2026-09-07T22:23:37.724Z","0.4.3":"2026-09-08T07:44:32.840Z","0.4.4":"2026-09-08T13:26:41.502Z","0.4.5":"2026-09-15T07:55:18.875Z"},"bugs":{"url":"https://github.com/astrale-os/domains/issues"},"homepage":"https://github.com/astrale-os/domains#readme","repository":{"type":"git","url":"git+https://github.com/astrale-os/domains.git","directory":"services"},"description":"`services.astrale.ai` owns provider-backed compute resources. It keeps provider protocols behind neutral SDK Integrations and stores only admitted lifecycle evidence in the graph.","maintainers":[{"name":"madavic","email":"marc.davoust@astrale.ai"},{"name":"astlbdjafer","email":"bryan.djafer@astrale.ai"}],"readme":"# Services\n\n`services.astrale.ai` owns provider-backed compute resources. It keeps provider\nprotocols behind neutral SDK Integrations and stores only admitted lifecycle evidence in the graph.\n\n## Model\n\n- `Service` records one opaque provider name, its owner-scoped stable `serviceKey`, deployment mode,\n  URL, lifecycle, provider digest, operation receipt, and exact cleanup locators.\n- `service_owned_by` connects each Service to its owning Identity and governs graph visibility.\n- Owners may be Shell users, local Kernel roots, or application/CI identities. Services requires only\n  the Kernel Schema; a Shell installation is not required to deploy. Ownership\n  remains exact-subject scoped, and existing Shell-user ownership edges remain valid.\n- secret values stay write-only at Cloudflare and never enter Astrale mutations or graph state.\n- schedules remain provider state; only the owner may read or replace them.\n- logs are remote evidence admitted by the Cloudflare Provider before a Workflow returns them.\n- the only admitted Worker service binding is the logical platform router; the provider resolves\n  it to the selected environment and callers cannot name arbitrary same-account Workers.\n- tenant Workers do not receive namespace dispatch authority. Inter-Service requests use public\n  ingress, including its retirement and private-route checks. Only the platform dispatcher and\n  candidate-readiness operator retain their respective native dispatch bindings.\n- the provider supplies `WORKER_URL` as the Service's canonical HTTPS URL to both candidate and\n  public Workers. It is reserved provider metadata, not a caller variable or secret. Applications\n  therefore keep one issuer even when requests arrive over HTTP or through a dispatcher alias.\n\nThe View, CLI, and agent consumers read the named Service Queries directly; there is intentionally\nno list Function wrapping `listServicesQuery`. Deployment, secrets, schedules, logs, and deletion\nare Workflows because they coordinate admitted caller intent with external effects. Receiver Methods\nare authorized by the ownership Policy before their Workflows begin. `service-hosting`\nis the provider-neutral compute Integration contract. Cloudflare is its first Provider.\n\n`Service` declares seven abstract management contracts. `CloudflareWorker` owns their executable\nMethods (`setSecret`, `deleteSecret`, `secrets`, `setSchedule`, `schedules`, `logs`, `migrateIngress`, `delete`) and\napplies `OwnService` to each one. Workflow addresses are `CloudflareWorker.*`; abstract `Service.*`\nkeys are not executable. A future provider Class must supply its own concrete declarations and\nimplementations. Properties and ownership relationships retain their inherited meaning.\n\n## Shared public ingress\n\nNew Services use the environment's proxied wildcard DNS, wildcard Worker route and wildcard\ncertificate. Services observes the expected dispatcher route and probes a never-registered hostname\nbefore uploading a Worker without an existing Custom Domain. It never creates a per-Service Custom\nDomain or certificate. Missing shared ingress is an operator provisioning issue; it is not repaired\nby consuming another certificate during a Service deployment.\n\nAfter activating routing, deployment waits for public dispatcher visibility with a bounded budget.\nThis is separate from optional candidate application health checks. An uncertain activation retains\nthe Service record and can be retried with the same owner-scoped service key.\n\nExisting exact Custom Domains and their immutable certificate locators are retained on ordinary\nupdates. Detaching old hostnames is a separate migration, coordinated with Service operations;\nupgrading this Runtime does not perform that migration. A Service without an exact domain persists\n`tenantDomainState: 'absent'`.\nDeletion handles both placements and never removes shared ingress infrastructure.\n\nCloudflare callers that must traverse same-zone public Worker routes need\n`global_fetch_strictly_public`. Audit existing callers before migrating their exact hostnames;\nexplicit runtime flags retain their authored meaning. A rollback after creating wildcard Services\nmust use a Runtime that understands explicit absent placement, not an older certificate-required\nimplementation.\n\n### Migrating existing Services\n\nThe owner calls `CloudflareWorker.migrateIngress` with an `action` (`detach`, `complete`, or\n`restore`) and a deterministic public health `probe`: a local GET `path`, expected successful\n`status`, and the exact response body's SHA-256 in `bodySha256`. The Workflow acquires the existing\nService operation lease and verifies provider ownership, active dispatch, wildcard TLS and health\nbefore detaching the exact Custom Domain. It does not redeploy the Worker or alter its routing KV,\nsecrets or schedules.\n\nAfter `detach`, observe real traffic for at least 30 minutes before calling `complete`. Until\ncompletion, the graph retains the previous domain and certificate locators with\n`tenantDomainDetachedAt`; completion clears them after provider cleanup and another successful\nhealth check. Cloudflare can automatically delete the generated certificate as soon as its Custom\nDomain is detached. `restore` recreates the exact domain, waits for active TLS and records the actual\nreplacement certificate locator. A `pending` result requires a later retry; it is not completion.\n\nThe beta replacement serves at `https://services-v2.beta.astrale.ai` with the retained\n`https://services.beta.astrale.ai` issuer and signing key. Keep the original runtime and identity\ndiscovery available for existing installations. Adopt the replacement's public URL per instance\nbefore invoking its additive migration API; do not uninstall Services or replace the shared R1\nruntime underneath installations that still use its Schema. An instance rollback must restore any\ndetached domain before reinstalling the original endpoint, and must first be qualified with real\nretained Service data.\n\n## Plain background Service starter\n\nThe package also ships an isolated scaffolding binary (the root import remains Schema-only):\n\n```sh\nnpm exec --package @astrale-domains/services -- create-astrale-service my-worker\ncd my-worker\nnpm install\n# Edit service.json and src/job.js for the existing business Domain.\nnpm run deploy -- --instance development --as developer\n```\n\nThe generator creates local source only and refuses an existing destination. It does not install\ndependencies, create/register accounts, grant permissions, set secrets, enable schedules or deploy.\nThe generated project owns a plain HTTP/cron entry, an ES256 account session, a job implementation\nand build/deploy scripts. No Application, Schema, Publication, Domain signer or frontend is generated.\nDeployment calls the public Services API through the installed Astrale CLI and requires an explicit\ninstance or URL. The project README explains account setup, secret custody, private cron and cleanup.\nNo tooling dependency is added to the Schema runtime or imported from the package root.\n\n## Domain development\n\nCopy `.env.example` to `.env.dev` and fill the Cloudflare values.\n\n`pnpm dev` watches and deploys the development Environment remotely. `pnpm dev beta`\nselects beta; `pnpm beta` and `pnpm prod` deploy once. These bootstrap Environments\nare deliberately deploy-only: install the resulting URL on the intended Kernel explicitly.\nStopping development leaves the remote Worker available. No local Worker or tunnel is started.\n\nTo validate without deploying:\n\n```sh\npnpm typecheck\npnpm test\npnpm lint\npnpm frontend:build\npnpm build\npnpm package\n```\n\nThe deployed module named by `entry` must be present in `modules`. Module contents use one Base64\nstring or bounded Base64 chunks when one string cannot cross the portable Value boundary; names are\nunique and secrets use environment-variable identifiers. Plain and revisioned artifacts are\ndistinct modes and cannot replace each other at one Service record. Five-field cron expressions are\nsupported when `CLOUDFLARE_SCHEDULE_KV_ID` is configured.\n\nPlain deployments that omit `compatibilityFlags` use `nodejs_compat`,\n`nodejs_compat_populate_process_env`, and `global_fetch_strictly_public`. Public `fetch()` calls\ntherefore traverse Cloudflare's public routes, including same-zone Astrale endpoints, instead of\nbypassing those routes for the zone's origin. This changes routing, not Kernel authorization.\nAn explicitly supplied flags array replaces these defaults, including `[]`; low-level callers\nown that complete runtime configuration. Existing Workers change only on redeployment.\n\nRevisioned deployments require explicit runtime configuration and upload it unchanged to both the\ncandidate and the serving Worker. Those exact flags participate in the deployment identity;\nServices must not inject defaults after its computation. The Cloudflare adapter already includes\npublic-fetch routing in the generated configuration before building the artifact and its digest.\n\nSDK-authored Applications should deploy through `@astrale-os/adapter-astrale`, which projects the\nadmitted Cloudflare artifact into the revisioned Services request and verifies the live Publication.\nProject tooling installs the exact Release only when that environment declares installation.\nServices never interprets or\ncaches Application, Publication, Schema revision, issuer, or callable inventory. Manual callers may\ndeploy provider compute first and then use the ordinary Domain installation command themselves.\n\nRevisioned deployments may request `readiness: { paths: ['/health'] }`. Services executes these\nbounded local GET paths through its private candidate dispatch binding and requires HTTP 200 before\npublic promotion. It never follows redirects or reads the response body as Application metadata.\nFor an existing Service, required checks need every retained secret supplied in the candidate\nconfiguration. Missing values fail before staging or promotion. A caller may explicitly request\n`readiness: { paths: ['/health'], required: false }` to preserve updates with Worker-only secrets:\nServices then retains those secrets on the serving Worker and returns\n`candidateReadiness: 'unavailable-retained-secrets'` without invoking the incomplete candidate.\nAn executed, successful check returns `candidateReadiness: 'passed'`. Failed checks still refuse\npromotion even when `required` is false; this is not a fallback for broken candidates.\nChecks share a 30-second budget, shortened by invocation cancellation/deadline. A failed check leaves\nthe public Worker unchanged and removes the newly owned candidate. Unchecked provider-only requests\nretain their existing contract.\n\nThe updated Astrale adapter requests optional `/health` preflight automatically: SDK Workers\ninitialize their Runtime before serving it. No Project option is needed. The adapter reports\nunavailable preflight explicitly and always verifies the public Publication, Bundle, and identity\nafter deployment. Private preflight alone never proves complete product correctness.\nProvision and deploy the updated Services Runtime before using this adapter cohort. Older strict\nServices schemas reject the new field; the adapter must not retry without the safety check.\n\nAn uncertain provider promotion is adopted only after observing its exact, non-secret attempt\nreceipt alongside the artifact tag. Matching code alone is insufficient: Cloudflare's script ETag\ncan remain unchanged when only secrets change. Services-owned operation leases serialize callers;\noperators making direct provider changes must coordinate with those operations. The code ETag is\nnot a lock for concurrent configuration changes.\n\nIf a Kernel interruption prevents recording a deployment outcome, the Service can remain busy\nuntil its retained operation lease expires (currently 30 minutes from acquisition or renewal).\nRetry the same deployment after the expiry reported in the rejection; it reuses the Service and\nprovider identity. Do not clear the lease or create another Service to bypass an uncertain outcome.\nAn operation without a recorded expiry needs operator inspection, not a guessed retry deadline.\n\nA definitively rejected update restores a previously ready Service only when the Provider observes\nthe same serving script digest and tenant routing coordinates. The restoration is atomic and fenced\nby the current operation receipt; it restores the previous name and description and clears the\nrejected attempt. The deployment still returns a rejection, but the retained Service remains\nmanageable. Failed creations, uncertain outcomes, mismatched observations, and unresolved previous\nattempts remain failed rather than claiming that the old deployment is ready. This verification adds\nno provider request to a successful deployment.\n\nFor the complete live owner-management and non-owner-denial journey, see\n[remote acceptance](tests/remote/README.md). Run it against an isolated instance;\nordinary unit tests do not prove callable admission or real provider telemetry.\n","readmeFilename":"README.md"}