@astrale-os/sdk 0.6.0-beta.4 → 0.6.0-beta.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (516) hide show
  1. package/README.md +191 -58
  2. package/dist/application/action/action.d.ts +6 -0
  3. package/dist/application/action/authoring.d.ts +1 -1
  4. package/dist/application/action/context.d.ts +47 -31
  5. package/dist/application/action/define.d.ts +3 -3
  6. package/dist/application/action/index.d.ts +1 -1
  7. package/dist/application/define.d.ts +8 -6
  8. package/dist/application/define.js +28 -14
  9. package/dist/application/dependency/index.d.ts +1 -1
  10. package/dist/application/dependency/invoker.d.ts +21 -10
  11. package/dist/application/domain.d.ts +30 -0
  12. package/dist/application/index.d.ts +4 -4
  13. package/dist/application/index.js +1 -1
  14. package/dist/application/integration/define.d.ts +8 -1
  15. package/dist/application/integration/index.d.ts +2 -2
  16. package/dist/application/integration/integration.d.ts +13 -1
  17. package/dist/application/integration/operation.d.ts +16 -3
  18. package/dist/application/mutation/authoring/properties.d.ts +5 -3
  19. package/dist/application/mutation/authoring/properties.js +35 -2
  20. package/dist/application/mutation/authoring/transition.js +4 -1
  21. package/dist/application/mutation/execution/execute.js +1 -1
  22. package/dist/application/mutation/failure.d.ts +6 -0
  23. package/dist/application/mutation/failure.js +24 -18
  24. package/dist/application/mutation/index.d.ts +1 -1
  25. package/dist/application/query/collection/union.js +11 -4
  26. package/dist/application/query/composite/plan.d.ts +0 -4
  27. package/dist/application/query/composite/plan.js +0 -2
  28. package/dist/application/query/conformance.d.ts +15 -0
  29. package/dist/application/query/conformance.js +46 -0
  30. package/dist/application/query/define.js +4 -3
  31. package/dist/application/query/execution/execute.d.ts +0 -1
  32. package/dist/application/query/execution/execute.js +7 -1
  33. package/dist/application/query/failure.d.ts +8 -0
  34. package/dist/application/query/failure.js +8 -0
  35. package/dist/application/query/index.d.ts +1 -1
  36. package/dist/application/query/index.js +1 -1
  37. package/dist/application/routes/admission.d.ts +2 -2
  38. package/dist/application/routes/admission.js +1 -1
  39. package/dist/application/routes/route.d.ts +2 -2
  40. package/dist/application/runtime/actions.js +3 -0
  41. package/dist/application/runtime/workflows.d.ts +3 -1
  42. package/dist/application/runtime/workflows.js +3 -4
  43. package/dist/application/view/define.js +4 -6
  44. package/dist/application/view/frontend.d.ts +2 -2
  45. package/dist/application/view/index.d.ts +1 -1
  46. package/dist/application/view/route.d.ts +0 -14
  47. package/dist/application/view/route.js +1 -64
  48. package/dist/application/workflow/authoring.d.ts +3 -2
  49. package/dist/application/workflow/context.d.ts +8 -2
  50. package/dist/application/workflow/define.d.ts +4 -4
  51. package/dist/application/workflow/define.js +14 -9
  52. package/dist/application/workflow/durable.d.ts +197 -0
  53. package/dist/application/workflow/index.d.ts +3 -2
  54. package/dist/application/workflow/runner/inline.js +3 -4
  55. package/dist/application/workflow/runner/runner.d.ts +2 -2
  56. package/dist/application/workflow/step/output.d.ts +2 -0
  57. package/dist/application/workflow/step/output.js +73 -0
  58. package/dist/application/workflow/workflow.d.ts +5 -3
  59. package/dist/deployment/adapter/adapter.d.ts +55 -13
  60. package/dist/deployment/adapter/bundle/bundle.d.ts +36 -0
  61. package/dist/deployment/adapter/bundle/file.d.ts +10 -0
  62. package/dist/deployment/adapter/bundle/index.d.ts +2 -0
  63. package/dist/deployment/adapter/define.d.ts +4 -3
  64. package/dist/deployment/adapter/define.js +107 -23
  65. package/dist/deployment/adapter/index.d.ts +4 -3
  66. package/dist/deployment/adapter/index.js +1 -0
  67. package/dist/deployment/adapter/release/command.d.ts +33 -0
  68. package/dist/deployment/adapter/release/context.d.ts +94 -0
  69. package/dist/deployment/adapter/release/index.d.ts +4 -0
  70. package/dist/deployment/adapter/release/index.js +1 -0
  71. package/dist/deployment/adapter/release/list.d.ts +53 -0
  72. package/dist/deployment/adapter/release/list.js +1 -0
  73. package/dist/deployment/adapter/release/refusal.d.ts +10 -0
  74. package/dist/deployment/adapter/release/refusal.js +14 -0
  75. package/dist/deployment/adapter/release/result.d.ts +56 -0
  76. package/dist/deployment/adapter/release/result.js +1 -0
  77. package/dist/deployment/address/configuration.d.ts +96 -0
  78. package/dist/deployment/address/configuration.js +274 -0
  79. package/dist/deployment/address/fingerprint.d.ts +5 -0
  80. package/dist/deployment/address/fingerprint.js +27 -0
  81. package/dist/deployment/address/index.d.ts +5 -0
  82. package/dist/deployment/address/index.js +4 -0
  83. package/dist/deployment/address/label.d.ts +42 -0
  84. package/dist/deployment/address/label.js +80 -0
  85. package/dist/deployment/address/line.d.ts +29 -0
  86. package/dist/deployment/address/line.js +53 -0
  87. package/dist/deployment/address/record.d.ts +73 -0
  88. package/dist/deployment/address/record.js +138 -0
  89. package/dist/deployment/address/summary.d.ts +30 -0
  90. package/dist/deployment/address/summary.js +1 -0
  91. package/dist/deployment/address/vectors.d.ts +60 -0
  92. package/dist/deployment/address/vectors.js +517 -0
  93. package/dist/deployment/authoring.d.ts +0 -2
  94. package/dist/deployment/authoring.js +0 -1
  95. package/dist/deployment/build/build.d.ts +8 -2
  96. package/dist/deployment/build/compile.d.ts +4 -4
  97. package/dist/deployment/build/compile.js +19 -17
  98. package/dist/deployment/build/frontend/compilation.d.ts +2 -4
  99. package/dist/deployment/build/frontend/compilation.js +0 -5
  100. package/dist/deployment/build/frontend/digest.js +1 -5
  101. package/dist/deployment/build/index.d.ts +1 -0
  102. package/dist/deployment/build/index.js +1 -0
  103. package/dist/deployment/build/manifest.d.ts +59 -0
  104. package/dist/deployment/build/manifest.js +118 -0
  105. package/dist/deployment/build/material.d.ts +2 -2
  106. package/dist/deployment/build/material.js +28 -13
  107. package/dist/deployment/build/schema.d.ts +2 -2
  108. package/dist/deployment/deployment.d.ts +3 -2
  109. package/dist/deployment/environment.d.ts +6 -0
  110. package/dist/deployment/environment.js +6 -0
  111. package/dist/deployment/index.d.ts +4 -6
  112. package/dist/deployment/index.js +1 -2
  113. package/dist/deployment/release/addressing.d.ts +6 -5
  114. package/dist/deployment/release/addressing.js +2 -3
  115. package/dist/deployment/release/assemble.d.ts +6 -3
  116. package/dist/deployment/release/assemble.js +12 -10
  117. package/dist/deployment/release/release.d.ts +16 -5
  118. package/dist/deployment/release/seal.d.ts +14 -0
  119. package/dist/deployment/release/seal.js +22 -0
  120. package/dist/deployment/release/{publication → served}/callables.d.ts +2 -2
  121. package/dist/deployment/release/{publication → served}/callables.js +2 -2
  122. package/dist/deployment/release/served/index.d.ts +11 -0
  123. package/dist/deployment/release/served/index.js +26 -0
  124. package/dist/deployment/release/{publication → served}/views.d.ts +2 -2
  125. package/dist/deployment/release/{publication → served}/views.js +0 -1
  126. package/dist/deployment/runtime/admission.d.ts +2 -2
  127. package/dist/deployment/runtime/admission.js +5 -5
  128. package/dist/deployment/verify/index.d.ts +3 -4
  129. package/dist/deployment/verify/index.js +2 -3
  130. package/dist/deployment/verify/preflight/bundle.d.ts +18 -0
  131. package/dist/deployment/verify/preflight/bundle.js +71 -0
  132. package/dist/deployment/verify/preflight/index.d.ts +1 -12
  133. package/dist/deployment/verify/preflight/index.js +1 -12
  134. package/dist/deployment/verify/readiness/fetch.d.ts +13 -0
  135. package/dist/deployment/verify/readiness/fetch.js +26 -0
  136. package/dist/deployment/verify/readiness/identity.d.ts +3 -6
  137. package/dist/deployment/verify/readiness/identity.js +3 -3
  138. package/dist/deployment/verify/readiness/index.d.ts +15 -8
  139. package/dist/deployment/verify/readiness/index.js +25 -6
  140. package/dist/deployment/verify/readiness/release.d.ts +8 -0
  141. package/dist/deployment/verify/readiness/release.js +22 -0
  142. package/dist/deployment/worker/address.d.ts +26 -0
  143. package/dist/deployment/worker/address.js +43 -0
  144. package/dist/deployment/worker/build.d.ts +60 -0
  145. package/dist/deployment/worker/build.js +172 -0
  146. package/dist/deployment/worker/configuration.d.ts +73 -0
  147. package/dist/deployment/worker/configuration.js +165 -0
  148. package/dist/deployment/worker/content.d.ts +38 -0
  149. package/dist/deployment/worker/content.js +169 -0
  150. package/dist/deployment/worker/index.d.ts +29 -0
  151. package/dist/deployment/worker/index.js +29 -0
  152. package/dist/deployment/worker/limits.d.ts +30 -0
  153. package/dist/deployment/worker/limits.js +30 -0
  154. package/dist/deployment/worker/record.d.ts +29 -0
  155. package/dist/deployment/worker/record.js +69 -0
  156. package/dist/deployment/worker/request.d.ts +118 -0
  157. package/dist/deployment/worker/request.js +280 -0
  158. package/dist/deployment/worker/response.d.ts +101 -0
  159. package/dist/deployment/worker/response.js +207 -0
  160. package/dist/execution/cache/cache.d.ts +17 -0
  161. package/dist/execution/cache/cache.js +11 -0
  162. package/dist/execution/cache/index.d.ts +2 -0
  163. package/dist/execution/cache/index.js +2 -0
  164. package/dist/execution/cache/memory.d.ts +13 -0
  165. package/dist/execution/cache/memory.js +48 -0
  166. package/dist/execution/identity/authentication.d.ts +33 -3
  167. package/dist/execution/identity/authentication.js +90 -36
  168. package/dist/execution/identity/callback.d.ts +20 -20
  169. package/dist/execution/identity/callback.js +34 -26
  170. package/dist/execution/identity/delivery.d.ts +6 -4
  171. package/dist/execution/identity/delivery.js +25 -20
  172. package/dist/execution/identity/identity.d.ts +17 -3
  173. package/dist/execution/identity/identity.js +12 -4
  174. package/dist/execution/identity/jwks.d.ts +5 -0
  175. package/dist/execution/identity/jwks.js +92 -102
  176. package/dist/execution/index.d.ts +6 -4
  177. package/dist/execution/index.js +4 -2
  178. package/dist/execution/invocation/admission/age.d.ts +57 -0
  179. package/dist/execution/invocation/admission/age.js +208 -0
  180. package/dist/execution/invocation/admission/authentication.d.ts +13 -13
  181. package/dist/execution/invocation/admission/authentication.js +52 -44
  182. package/dist/execution/invocation/admission/authority.d.ts +28 -6
  183. package/dist/execution/invocation/admission/authority.js +9 -2
  184. package/dist/execution/invocation/admission/index.d.ts +4 -3
  185. package/dist/execution/invocation/admission/index.js +3 -2
  186. package/dist/execution/invocation/admission/input.d.ts +2 -2
  187. package/dist/execution/invocation/admission/input.js +16 -2
  188. package/dist/execution/invocation/admission/target.d.ts +11 -0
  189. package/dist/execution/invocation/admission/target.js +22 -3
  190. package/dist/execution/invocation/capabilities/bind.d.ts +11 -0
  191. package/dist/execution/invocation/capabilities/bind.js +25 -0
  192. package/dist/execution/invocation/capabilities/index.d.ts +1 -0
  193. package/dist/execution/invocation/capabilities/index.js +1 -0
  194. package/dist/execution/invocation/dependency/bind.d.ts +3 -1
  195. package/dist/execution/invocation/dependency/bind.js +36 -16
  196. package/dist/execution/invocation/dispatch/context.d.ts +7 -6
  197. package/dist/execution/invocation/dispatch/context.js +11 -44
  198. package/dist/execution/invocation/dispatch/workflow.js +0 -4
  199. package/dist/execution/invocation/handler.js +8 -2
  200. package/dist/execution/invocation/index.d.ts +2 -2
  201. package/dist/execution/invocation/index.js +1 -1
  202. package/dist/execution/invocation/integration/authentication.d.ts +3 -3
  203. package/dist/execution/invocation/integration/authentication.js +7 -7
  204. package/dist/execution/invocation/integration/call.d.ts +2 -1
  205. package/dist/execution/invocation/integration/call.js +3 -3
  206. package/dist/execution/invocation/integration/clients.d.ts +1 -1
  207. package/dist/execution/invocation/integration/index.d.ts +1 -0
  208. package/dist/execution/invocation/integration/index.js +1 -0
  209. package/dist/execution/invocation/invocation.d.ts +6 -0
  210. package/dist/execution/invocation/invocation.js +129 -21
  211. package/dist/execution/invocation/lifecycle/active.d.ts +8 -2
  212. package/dist/execution/invocation/lifecycle/active.js +3 -3
  213. package/dist/execution/invocation/lifecycle/index.d.ts +1 -1
  214. package/dist/execution/invocation/result/errors.d.ts +0 -10
  215. package/dist/execution/invocation/result/errors.js +0 -17
  216. package/dist/execution/invocation/result/index.d.ts +2 -2
  217. package/dist/execution/invocation/result/index.js +1 -1
  218. package/dist/execution/invocation/result/project.js +41 -1
  219. package/dist/execution/node/serve.d.ts +2 -2
  220. package/dist/execution/node/serve.js +1 -1
  221. package/dist/execution/runtime/index.d.ts +1 -0
  222. package/dist/execution/runtime/index.js +1 -0
  223. package/dist/execution/runtime/load.d.ts +3 -3
  224. package/dist/execution/runtime/load.js +3 -2
  225. package/dist/execution/runtime/release.d.ts +17 -0
  226. package/dist/execution/runtime/release.js +7 -0
  227. package/dist/execution/serve.d.ts +18 -4
  228. package/dist/execution/serve.js +10 -0
  229. package/dist/execution/service/create.js +43 -7
  230. package/dist/execution/service/initialization.d.ts +4 -4
  231. package/dist/execution/service/initialization.js +23 -14
  232. package/dist/execution/service/release.d.ts +2 -2
  233. package/dist/execution/service/release.js +3 -2
  234. package/dist/execution/service/service.d.ts +20 -5
  235. package/dist/execution/service/serving/delivery.d.ts +5 -0
  236. package/dist/execution/service/{publication → serving}/delivery.js +4 -1
  237. package/dist/execution/service/{publication → serving}/index.d.ts +1 -1
  238. package/dist/execution/service/serving/installation.d.ts +4 -0
  239. package/dist/execution/service/serving/installation.js +9 -0
  240. package/dist/execution/service/serving/source.d.ts +11 -0
  241. package/dist/execution/service/serving/source.js +15 -0
  242. package/dist/execution/workflows/attempts.d.ts +87 -0
  243. package/dist/execution/workflows/attempts.js +205 -0
  244. package/dist/execution/workflows/discovery.d.ts +14 -0
  245. package/dist/execution/workflows/discovery.js +151 -0
  246. package/dist/execution/workflows/engine.d.ts +83 -0
  247. package/dist/execution/workflows/engine.js +1 -0
  248. package/dist/execution/workflows/envelope.d.ts +12 -0
  249. package/dist/execution/workflows/envelope.js +46 -0
  250. package/dist/execution/workflows/failure.d.ts +39 -0
  251. package/dist/execution/workflows/failure.js +143 -0
  252. package/dist/execution/workflows/index.d.ts +4 -0
  253. package/dist/execution/workflows/index.js +3 -0
  254. package/dist/execution/workflows/integrations.d.ts +13 -0
  255. package/dist/execution/workflows/integrations.js +25 -0
  256. package/dist/execution/workflows/options.d.ts +81 -0
  257. package/dist/execution/workflows/options.js +158 -0
  258. package/dist/execution/workflows/receiver.d.ts +24 -0
  259. package/dist/execution/workflows/receiver.js +99 -0
  260. package/dist/execution/workflows/route.d.ts +12 -0
  261. package/dist/execution/workflows/route.js +35 -0
  262. package/dist/execution/workflows/run.d.ts +23 -0
  263. package/dist/execution/workflows/run.js +365 -0
  264. package/dist/execution/workflows/steps.d.ts +48 -0
  265. package/dist/execution/workflows/steps.js +93 -0
  266. package/dist/index.d.ts +4 -4
  267. package/dist/index.js +2 -2
  268. package/dist/platform/graph/alias.d.ts +1 -5
  269. package/dist/platform/graph/alias.js +1 -5
  270. package/dist/platform/graph/document/index.d.ts +1 -1
  271. package/dist/platform/graph/document/index.js +1 -1
  272. package/dist/platform/graph/index.d.ts +1 -1
  273. package/dist/platform/graph/index.js +1 -1
  274. package/dist/platform/release/index.d.ts +2 -0
  275. package/dist/platform/release/index.js +2 -0
  276. package/dist/platform/schema/callable-authoring.d.ts +21 -0
  277. package/dist/platform/schema/callable-authoring.js +27 -0
  278. package/dist/platform/schema/class-authoring.d.ts +61 -11
  279. package/dist/platform/schema/class-authoring.js +37 -4
  280. package/dist/platform/schema/class-icon-svg.d.ts +9 -0
  281. package/dist/platform/schema/class-icon-svg.js +29 -0
  282. package/dist/platform/schema/class-icon.d.ts +3 -8
  283. package/dist/platform/schema/class-icon.js +2 -29
  284. package/dist/platform/schema/index.d.ts +6 -4
  285. package/dist/platform/schema/index.js +2 -1
  286. package/dist/platform/schema/property.d.ts +5 -0
  287. package/dist/platform/schema/schema-authoring.d.ts +14 -7
  288. package/dist/platform/schema/schema-authoring.js +5 -1
  289. package/dist/platform/versioning/dependents.d.ts +18 -0
  290. package/dist/platform/versioning/dependents.js +15 -0
  291. package/dist/platform/versioning/index.d.ts +5 -0
  292. package/dist/platform/versioning/index.js +5 -0
  293. package/dist/platform/versioning/name.d.ts +38 -0
  294. package/dist/platform/versioning/name.js +58 -0
  295. package/dist/platform/versioning/reference.d.ts +48 -0
  296. package/dist/platform/versioning/reference.js +95 -0
  297. package/dist/platform/versioning/version.d.ts +72 -0
  298. package/dist/platform/versioning/version.js +98 -0
  299. package/dist/project/admit.js +1 -5
  300. package/dist/project/define.d.ts +4 -4
  301. package/dist/project/define.js +55 -35
  302. package/dist/project/index.d.ts +1 -1
  303. package/dist/project/install-command.d.ts +6 -0
  304. package/dist/project/install-command.js +9 -0
  305. package/dist/project/project.d.ts +10 -8
  306. package/dist/testing/dataset/define.d.ts +1 -1
  307. package/dist/testing/durable/engine.d.ts +128 -0
  308. package/dist/testing/durable/engine.js +619 -0
  309. package/dist/testing/durable/index.d.ts +3 -0
  310. package/dist/testing/durable/index.js +1 -0
  311. package/dist/testing/durable/steps.d.ts +30 -0
  312. package/dist/testing/durable/steps.js +45 -0
  313. package/dist/testing/index.d.ts +6 -1
  314. package/dist/testing/index.js +5 -1
  315. package/dist/testing/load.js +1 -1
  316. package/dist/tooling/cli/adapter-command.d.ts +35 -0
  317. package/dist/tooling/cli/adapter-command.js +66 -0
  318. package/dist/tooling/cli/arguments.d.ts +17 -6
  319. package/dist/tooling/cli/arguments.js +175 -52
  320. package/dist/tooling/cli/build.d.ts +55 -0
  321. package/dist/tooling/cli/build.js +77 -0
  322. package/dist/tooling/cli/bun.d.ts +0 -1
  323. package/dist/tooling/cli/bun.js +0 -7
  324. package/dist/tooling/cli/commit.d.ts +35 -0
  325. package/dist/tooling/cli/commit.js +235 -0
  326. package/dist/tooling/cli/deploy-mode.d.ts +26 -0
  327. package/dist/tooling/cli/deploy-mode.js +59 -0
  328. package/dist/tooling/cli/deploy-result.d.ts +80 -0
  329. package/dist/tooling/cli/deploy-result.js +64 -0
  330. package/dist/tooling/cli/diff/declared.d.ts +7 -0
  331. package/dist/tooling/cli/diff/declared.js +27 -0
  332. package/dist/tooling/cli/diff/index.d.ts +30 -0
  333. package/dist/tooling/cli/diff/index.js +58 -0
  334. package/dist/tooling/cli/diff/render.d.ts +15 -0
  335. package/dist/tooling/cli/diff/render.js +131 -0
  336. package/dist/tooling/cli/diff/report.d.ts +88 -0
  337. package/dist/tooling/cli/diff/report.js +154 -0
  338. package/dist/tooling/cli/dotenv.d.ts +5 -5
  339. package/dist/tooling/cli/dotenv.js +6 -36
  340. package/dist/tooling/cli/help.js +173 -60
  341. package/dist/tooling/cli/immutable-deployment.d.ts +83 -0
  342. package/dist/tooling/cli/immutable-deployment.js +135 -0
  343. package/dist/tooling/cli/index.d.ts +12 -4
  344. package/dist/tooling/cli/index.js +6 -3
  345. package/dist/tooling/cli/installed-on.d.ts +83 -0
  346. package/dist/tooling/cli/installed-on.js +156 -0
  347. package/dist/tooling/cli/list.d.ts +152 -0
  348. package/dist/tooling/cli/list.js +331 -0
  349. package/dist/tooling/cli/log.d.ts +5 -2
  350. package/dist/tooling/cli/log.js +9 -2
  351. package/dist/tooling/cli/orchestrate.d.ts +0 -6
  352. package/dist/tooling/cli/orchestrate.js +246 -90
  353. package/dist/tooling/cli/project.d.ts +3 -3
  354. package/dist/tooling/cli/publish/index.d.ts +81 -0
  355. package/dist/tooling/cli/publish/index.js +383 -0
  356. package/dist/tooling/cli/publish/report.d.ts +49 -0
  357. package/dist/tooling/cli/publish/report.js +15 -0
  358. package/dist/tooling/cli/registry/client.d.ts +121 -0
  359. package/dist/tooling/cli/registry/client.js +354 -0
  360. package/dist/tooling/cli/registry/error.d.ts +11 -0
  361. package/dist/tooling/cli/registry/error.js +17 -0
  362. package/dist/tooling/cli/registry/executable.d.ts +35 -0
  363. package/dist/tooling/cli/registry/executable.js +96 -0
  364. package/dist/tooling/cli/registry/index.d.ts +9 -0
  365. package/dist/tooling/cli/registry/index.js +8 -0
  366. package/dist/tooling/cli/registry/installations.d.ts +67 -0
  367. package/dist/tooling/cli/registry/installations.js +108 -0
  368. package/dist/tooling/cli/registry/process.d.ts +36 -0
  369. package/dist/tooling/cli/registry/process.js +119 -0
  370. package/dist/tooling/cli/secrets.d.ts +9 -0
  371. package/dist/tooling/cli/secrets.js +19 -0
  372. package/dist/tooling/cli/yank.d.ts +34 -0
  373. package/dist/tooling/cli/yank.js +32 -0
  374. package/dist/tooling/linter/adapters/typescript/imports.d.ts +0 -1
  375. package/dist/tooling/linter/adapters/typescript/imports.js +1 -5
  376. package/dist/tooling/linter/adapters/typescript/index.d.ts +1 -1
  377. package/dist/tooling/linter/adapters/typescript/index.js +1 -1
  378. package/dist/tooling/linter/adapters/typescript/syntax.d.ts +3 -3
  379. package/dist/tooling/linter/adapters/typescript/syntax.js +13 -25
  380. package/dist/tooling/linter/implementations/source/callable-requirements.d.ts +1 -2
  381. package/dist/tooling/linter/implementations/source/callable-requirements.js +11 -16
  382. package/dist/tooling/linter/implementations/source/dependencies.js +13 -72
  383. package/dist/tooling/linter/implementations/source/global.js +1 -2
  384. package/dist/tooling/linter/implementations/source/mutations.js +18 -29
  385. package/dist/tooling/linter/implementations/source/providers.js +5 -5
  386. package/dist/tooling/linter/implementations/source/queries.js +1 -17
  387. package/dist/tooling/linter/implementations/source/shared.d.ts +12 -4
  388. package/dist/tooling/linter/implementations/source/shared.js +101 -46
  389. package/dist/tooling/linter/implementations/source/verifiers.js +0 -2
  390. package/dist/tooling/linter/implementations/source/views.js +2 -2
  391. package/dist/tooling/linter/implementations/source/workflows.js +499 -17
  392. package/dist/tooling/linter/policy/generated.js +14 -63
  393. package/dist/tooling/linter/requirements/registry.js +6 -8
  394. package/dist/tooling/packaging/declarations/ownership.js +1 -1
  395. package/dist/tooling/packaging/finalize.d.ts +1 -1
  396. package/dist/tooling/packaging/finalize.js +1 -1
  397. package/docs/admission-age.md +88 -0
  398. package/docs/auth-api-migration.md +55 -0
  399. package/docs/business-errors.md +42 -0
  400. package/docs/domain-definition-migration.md +44 -0
  401. package/docs/domain-schema-migration.md +36 -0
  402. package/docs/durable-workflows.md +445 -0
  403. package/docs/handler-dependencies.md +213 -0
  404. package/docs/release.md +155 -0
  405. package/docs/schema-cost.md +124 -0
  406. package/package.json +45 -16
  407. package/dist/application/application.d.ts +0 -28
  408. package/dist/application/query/execution/projection.d.ts +0 -3
  409. package/dist/application/query/execution/projection.js +0 -3
  410. package/dist/deployment/adapter/deploy/context.d.ts +0 -15
  411. package/dist/deployment/adapter/deploy/index.d.ts +0 -2
  412. package/dist/deployment/adapter/deploy/result.d.ts +0 -50
  413. package/dist/deployment/adapter/prepare/artifact.d.ts +0 -33
  414. package/dist/deployment/adapter/prepare/context.d.ts +0 -23
  415. package/dist/deployment/adapter/prepare/index.d.ts +0 -2
  416. package/dist/deployment/deploy.d.ts +0 -20
  417. package/dist/deployment/deploy.js +0 -31
  418. package/dist/deployment/release/publication/index.d.ts +0 -6
  419. package/dist/deployment/release/publication/index.js +0 -6
  420. package/dist/deployment/release/publication/manifest.d.ts +0 -3
  421. package/dist/deployment/release/publication/manifest.js +0 -5
  422. package/dist/deployment/release/publication/requirements.d.ts +0 -3
  423. package/dist/deployment/release/publication/requirements.js +0 -3
  424. package/dist/deployment/release/publication/seal.d.ts +0 -10
  425. package/dist/deployment/release/publication/seal.js +0 -39
  426. package/dist/deployment/verify/preflight/artifact.d.ts +0 -6
  427. package/dist/deployment/verify/preflight/artifact.js +0 -122
  428. package/dist/deployment/verify/preflight/publication.d.ts +0 -4
  429. package/dist/deployment/verify/preflight/publication.js +0 -14
  430. package/dist/deployment/verify/readiness/deployment.d.ts +0 -3
  431. package/dist/deployment/verify/readiness/deployment.js +0 -151
  432. package/dist/deployment/verify/readiness/publication.d.ts +0 -11
  433. package/dist/deployment/verify/readiness/publication.js +0 -41
  434. package/dist/execution/service/errors.d.ts +0 -3
  435. package/dist/execution/service/errors.js +0 -3
  436. package/dist/execution/service/publication/delivery.d.ts +0 -2
  437. package/dist/execution/service/publication/installation.d.ts +0 -3
  438. package/dist/execution/service/publication/installation.js +0 -8
  439. package/dist/execution/service/publication/source.d.ts +0 -3
  440. package/dist/execution/service/publication/source.js +0 -11
  441. package/dist/platform/publication/index.d.ts +0 -2
  442. package/dist/platform/publication/index.js +0 -2
  443. package/dist/tooling/cli/astrale/authority.d.ts +0 -5
  444. package/dist/tooling/cli/astrale/authority.js +0 -11
  445. package/dist/tooling/cli/astrale/executable.d.ts +0 -2
  446. package/dist/tooling/cli/astrale/executable.js +0 -47
  447. package/dist/tooling/cli/astrale/failure.d.ts +0 -6
  448. package/dist/tooling/cli/astrale/failure.js +0 -48
  449. package/dist/tooling/cli/astrale/instance.d.ts +0 -11
  450. package/dist/tooling/cli/astrale/instance.js +0 -52
  451. package/dist/tooling/cli/astrale/process.d.ts +0 -13
  452. package/dist/tooling/cli/astrale/process.js +0 -94
  453. package/dist/tooling/cli/astrale/version.d.ts +0 -18
  454. package/dist/tooling/cli/astrale/version.js +0 -55
  455. package/dist/tooling/cli/credential.d.ts +0 -2
  456. package/dist/tooling/cli/credential.js +0 -57
  457. package/dist/tooling/cli/deprecations.d.ts +0 -9
  458. package/dist/tooling/cli/deprecations.js +0 -15
  459. package/dist/tooling/cli/development/candidate.d.ts +0 -25
  460. package/dist/tooling/cli/development/candidate.js +0 -176
  461. package/dist/tooling/cli/development/deployment.d.ts +0 -16
  462. package/dist/tooling/cli/development/deployment.js +0 -39
  463. package/dist/tooling/cli/development/develop.d.ts +0 -11
  464. package/dist/tooling/cli/development/develop.js +0 -243
  465. package/dist/tooling/cli/development/lease.d.ts +0 -18
  466. package/dist/tooling/cli/development/lease.js +0 -163
  467. package/dist/tooling/cli/development/lifecycle.d.ts +0 -9
  468. package/dist/tooling/cli/development/lifecycle.js +0 -43
  469. package/dist/tooling/cli/development/project-imports.d.ts +0 -22
  470. package/dist/tooling/cli/development/project-imports.js +0 -39
  471. package/dist/tooling/cli/development/project-lock.d.ts +0 -16
  472. package/dist/tooling/cli/development/project-lock.js +0 -41
  473. package/dist/tooling/cli/development/rebuild.d.ts +0 -13
  474. package/dist/tooling/cli/development/rebuild.js +0 -58
  475. package/dist/tooling/cli/development/release-evidence.d.ts +0 -4
  476. package/dist/tooling/cli/development/release-evidence.js +0 -10
  477. package/dist/tooling/cli/development/report.d.ts +0 -6
  478. package/dist/tooling/cli/development/report.js +0 -14
  479. package/dist/tooling/cli/development/session-file.d.ts +0 -53
  480. package/dist/tooling/cli/development/session-file.js +0 -337
  481. package/dist/tooling/cli/development/source-watch.d.ts +0 -14
  482. package/dist/tooling/cli/development/source-watch.js +0 -140
  483. package/dist/tooling/cli/development/sources.d.ts +0 -7
  484. package/dist/tooling/cli/development/sources.js +0 -48
  485. package/dist/tooling/cli/development/target-lock.d.ts +0 -16
  486. package/dist/tooling/cli/development/target-lock.js +0 -68
  487. package/dist/tooling/cli/development/view.d.ts +0 -28
  488. package/dist/tooling/cli/development/view.js +0 -151
  489. package/dist/tooling/cli/environment-release.d.ts +0 -21
  490. package/dist/tooling/cli/environment-release.js +0 -46
  491. package/dist/tooling/cli/evidence.d.ts +0 -11
  492. package/dist/tooling/cli/evidence.js +0 -53
  493. package/dist/tooling/cli/installation/index.d.ts +0 -2
  494. package/dist/tooling/cli/installation/index.js +0 -1
  495. package/dist/tooling/cli/installation/observation.d.ts +0 -10
  496. package/dist/tooling/cli/installation/observation.js +0 -44
  497. package/dist/tooling/cli/installation/reconcile.d.ts +0 -32
  498. package/dist/tooling/cli/installation/reconcile.js +0 -122
  499. package/dist/tooling/linter/implementations/source/migrations.d.ts +0 -2
  500. package/dist/tooling/linter/implementations/source/migrations.js +0 -113
  501. package/dist/tooling/linter/qualification/index.d.ts +0 -10
  502. package/dist/tooling/linter/qualification/index.js +0 -2
  503. package/dist/tooling/linter/qualification/query-fixtures.d.ts +0 -2
  504. package/dist/tooling/linter/qualification/query-fixtures.js +0 -68
  505. package/dist/tooling/linter/qualification/runner.d.ts +0 -3
  506. package/dist/tooling/linter/qualification/runner.js +0 -6
  507. /package/dist/application/{application.js → domain.js} +0 -0
  508. /package/dist/{deployment/adapter/deploy/context.js → application/workflow/durable.js} +0 -0
  509. /package/dist/deployment/adapter/{deploy/index.js → bundle/bundle.js} +0 -0
  510. /package/dist/deployment/adapter/{deploy/result.js → bundle/file.js} +0 -0
  511. /package/dist/deployment/adapter/{prepare → bundle}/index.js +0 -0
  512. /package/dist/deployment/adapter/{prepare/artifact.js → release/command.js} +0 -0
  513. /package/dist/deployment/adapter/{prepare → release}/context.js +0 -0
  514. /package/dist/deployment/release/{publication → served}/routes.d.ts +0 -0
  515. /package/dist/deployment/release/{publication → served}/routes.js +0 -0
  516. /package/dist/execution/service/{publication → serving}/index.js +0 -0
@@ -0,0 +1,155 @@
1
+ # SDK release lifecycle
2
+
3
+ Release Please owns the versions and GitHub releases for the SDK package set:
4
+
5
+ - `@astrale-os/sdk`
6
+ - `@astrale-os/adapter-cloudflare`
7
+ - `@astrale-os/adapter-astrale`
8
+ - `create-astrale-domain`
9
+
10
+ The Node workspace plugin follows local dependency edges. Every internal release edge uses
11
+ `workspace:*`, so a changed SDK refreshes the dependent adapter and scaffolder packages in the same
12
+ Release Please pull request and publication rewrites each edge to that dependency's exact version.
13
+ Never use a caret or tilde for an internal release edge: an immutable adapter must not resolve a
14
+ newer SDK or adapter after publication. The shared publisher consumes those versions; it never
15
+ invents a release version.
16
+
17
+ Dependency installation, authoritative publication, and public qualification are npmjs-only. npm
18
+ publication uses OIDC Trusted Publishing. After that proof completes, the workflow mirrors the exact
19
+ SDK and adapter tarballs to private GitHub Packages copies. GitHub Packages is never a consumer,
20
+ build, installation, or qualification source. Never add a PAT, an npm token, an auth file, or a
21
+ repository package token; no credential may enter a tracked file, lockfile, package archive, or build
22
+ log.
23
+
24
+ ## Normal beta release
25
+
26
+ Prerequisite: every exact Kernel dependency in the SDK manifest is already published on npm and the
27
+ SDK passes typecheck, test, build, pack, and fresh-consumer gates against those artifacts. Never use
28
+ a local checkout, tarball, or override to make the release build pass.
29
+
30
+ 1. Merge conventional feature and fix pull requests into `main`.
31
+ The squash-merge title is Release Please input: use `feat` for a public capability or API change
32
+ and `fix` for a behavioral defect. Never classify a publication-bearing change as `refactor`,
33
+ `docs`, `chore`, or `test`; those types do not advance the beta
34
+ package cohort.
35
+ 2. The `Release` workflow creates or refreshes the single Release Please pull request.
36
+ 3. Select **Approve workflows to run** for that bot-authored pull request and wait for every required
37
+ check. GitHub can mark these workflows `action_required`; this is an approval gate, not a passed
38
+ run.
39
+ 4. Review every changed package version, exact internal dependency, changelog, and
40
+ `.release-please-manifest.json` entry.
41
+ 5. Merge the Release Please pull request.
42
+ 6. Release Please creates an immutable GitHub prerelease for every released component. Only then does
43
+ `Release` dispatch the standalone `Publish` workflow with the exact released commit SHA, preserving
44
+ its npm Trusted Publishing identity. Publish rejects a non-SHA or a checkout mismatch before npm I/O.
45
+ 7. The shared package publisher builds the workspace and publishes every public package to npm. A
46
+ `-beta.N` version advances npm `beta`; npm `latest` remains on the last stable version.
47
+ 8. The same workflow then runs `pnpm run qualify:publications` without a token. This creates isolated
48
+ temporary stores, installs the four exact manifest versions from npmjs, generates a Domain with
49
+ `linkWorkspacePackages: false`, pins that generated project to the exact SDK and adapter versions,
50
+ and runs its typecheck, tests, build, and package command. Any missing publication, transitive
51
+ dependency, wrong version, non-exact internal cohort edge, local source, override, or GitHub
52
+ registry reference fails the workflow.
53
+ 9. A separate least-privilege job downloads the exact SDK and adapter tarballs from npm, verifies
54
+ their npm SHA-512 integrity, mirrors them with `GITHUB_TOKEN`, and then requires byte-identical
55
+ GitHub downloads, matching release-channel tags, private visibility, and an exact link to
56
+ `astrale-os/sdk`. The scaffolder remains npm-only.
57
+
58
+ The publisher receives package directories in strict producer order: SDK, Cloudflare adapter,
59
+ Astrale adapter, then scaffolder. The shared action validates this dependency order and completes npm
60
+ plus the exact release-channel dist-tag for one package before it starts the next. A linked workspace
61
+ build is therefore never treated as publication proof.
62
+
63
+ npm publication has no token fallback. All four npm packages must configure GitHub Actions Trusted
64
+ Publishing for this repository and the `publish.yml` workflow. A missing Trusted Publisher or a wrong
65
+ dist-tag is an explicit, fail-closed publication error; do not work around it with a PAT or npm token.
66
+
67
+ The mirror job starts only after the anonymous npm qualification succeeds. It has `packages: write`
68
+ but no npm OIDC permission, performs no build or workspace install, and cannot publish to npm. A
69
+ mirror failure makes `Publish` red without undoing the already-complete npm release. Rerunning the
70
+ failed job is safe: existing versions must be byte-identical, no version is overwritten or deleted,
71
+ and tags are reconciled only when npm still points them at that exact version. Do not backfill older
72
+ version gaps during initial rollout; the next ordinary beta release is the admission proof.
73
+
74
+ Ordinary source pushes do not publish. Do not manually edit package versions, manually dispatch
75
+ `Publish`, or push release tags during the normal flow.
76
+
77
+ ## Start the new Auth beta series
78
+
79
+ The session-owned Auth API starts a new SDK beta series at `0.6.0-beta.0`. Its feature PR sets
80
+ only the SDK's package-local `release-as` to that version. Release Please owns the actual manifest
81
+ and cohort bumps. Remove that one-shot override from the generated release PR before merging it.
82
+ This keeps the release on npm `beta`, while existing SDK `0.5.0` prerelease ranges retain the old API.
83
+
84
+ ## Promote the package set to stable
85
+
86
+ Create one promotion pull request that removes only these beta settings from
87
+ `.release-please-config.json`:
88
+
89
+ ```json
90
+ "versioning": "prerelease",
91
+ "prerelease": true,
92
+ "prerelease-type": "beta"
93
+ ```
94
+
95
+ Keep the Node workspace plugin, `always-update`, package map, and workflows unchanged. In the same
96
+ promotion pull request, temporarily add these package-local overrides:
97
+
98
+ ```json
99
+ "packages": {
100
+ ".": { "component": "sdk", "release-as": "0.6.0" },
101
+ "adapter-cloudflare": { "component": "adapter-cloudflare", "release-as": "0.5.0" },
102
+ "adapter-astrale": { "component": "adapter-astrale", "release-as": "0.5.0" },
103
+ "create-astrale-domain": {
104
+ "component": "create-astrale-domain",
105
+ "release-as": "0.3.0"
106
+ }
107
+ }
108
+ ```
109
+
110
+ After that promotion pull request lands, Release Please proposes those stable versions. Remove all
111
+ four `release-as` properties from the generated stable release pull request, rerun its checks, and
112
+ merge it. This publishes npm `latest` and ordinary GitHub releases. The npm `beta` tags intentionally
113
+ remain on the last beta and do not affect bare installs.
114
+
115
+ ## Verification
116
+
117
+ Always name npmjs explicitly when inspecting releases so the verification also proves the public
118
+ registry boundary.
119
+
120
+ ```bash
121
+ gh run list --repo astrale-os/sdk --workflow Release --limit 5
122
+ gh run list --repo astrale-os/sdk --workflow Publish --limit 5
123
+ npm view @astrale-os/sdk dist-tags --json --registry=https://registry.npmjs.org
124
+ npm view @astrale-os/adapter-cloudflare dist-tags --json --registry=https://registry.npmjs.org
125
+ npm view @astrale-os/adapter-astrale dist-tags --json --registry=https://registry.npmjs.org
126
+ npm view create-astrale-domain dist-tags --json --registry=https://registry.npmjs.org
127
+ gh api orgs/astrale-os/packages/npm/sdk --jq '{visibility,repository:.repository.full_name}'
128
+ gh api orgs/astrale-os/packages/npm/adapter-cloudflare --jq '{visibility,repository:.repository.full_name}'
129
+ gh api orgs/astrale-os/packages/npm/adapter-astrale --jq '{visibility,repository:.repository.full_name}'
130
+ ```
131
+
132
+ The SDK, adapters, scaffolder, generated manifest, and every transitive runtime dependency must be
133
+ installable from npmjs without authentication. Prove that boundary from a clean temporary directory:
134
+
135
+ ```ini
136
+ # ./npmrc (in the smoke-test parent directory)
137
+ registry=https://registry.npmjs.org/
138
+ always-auth=false
139
+ ```
140
+
141
+ Then run the complete smoke test:
142
+
143
+ ```bash
144
+ NPM_CONFIG_USERCONFIG="$PWD/npmrc" npm install @astrale-os/sdk@beta
145
+ NPM_CONFIG_USERCONFIG="$PWD/npmrc" npx -y create-astrale-domain@beta beta-smoke --yes
146
+ cd beta-smoke
147
+ NPM_CONFIG_USERCONFIG="../npmrc" pnpm install --no-frozen-lockfile
148
+ pnpm typecheck
149
+ pnpm test
150
+ pnpm build
151
+ ```
152
+
153
+ Inspect the generated lockfile and installed package manifests. They must resolve the released SDK and
154
+ adapter package set and the SDK-owned public Kernel dependencies from npmjs, not `latest`, GitHub
155
+ Packages, workspace links, Git URLs, or an older manually published beta.
@@ -0,0 +1,124 @@
1
+ # What a compiled Schema costs
2
+
3
+ A compiled Domain is large, and its size is not driven by how much the Domain declares. This
4
+ records what the weight is made of, where it is paid, and which levers belong to this repository.
5
+
6
+ Every figure comes from `scripts/bench/`, on synthetic Domains built around `KernelSchema`. Node
7
+ counts and byte weights follow from the compiled format and hold anywhere. **Timings do not.** The
8
+ benches run under Bun, which is JavaScriptCore, and workerd is V8. On the same graph and the same
9
+ walk:
10
+
11
+ | walk | V8 (Node 26) | JavaScriptCore (Bun) |
12
+ | --- | --- | --- |
13
+ | seal, as shipped | 10.4 ms | 73.7 ms |
14
+ | seal, arrays indexed and primitives skipped | 5.9 ms | 48.2 ms |
15
+
16
+ Close to an order of magnitude apart. Read every millisecond below as a JavaScriptCore
17
+ millisecond: useful for ranking two strategies against each other, worthless as a production
18
+ figure. Any claim about cold start has to be re-measured on the real bundle in workerd.
19
+
20
+ ## The cost law
21
+
22
+ Growing a Domain two ways, plain classes against classes carrying one format-constrained
23
+ property (`bun scripts/bench/schema-cost.ts`):
24
+
25
+ | classes | plain | one constrained property each |
26
+ | --- | --- | --- |
27
+ | 0 | 19 522 | 19 522 |
28
+ | 5 | 19 587 | 22 157 |
29
+ | 20 | 19 782 | 30 062 |
30
+ | 50 | 20 172 | 45 872 |
31
+
32
+ Three readings, each counter-intuitive.
33
+
34
+ **An empty Domain is not empty.** 19 522 nodes and 554 KiB before anything is declared. That is
35
+ the floor the `KernelSchema` dependency sets, and every Astrale Domain pays it.
36
+
37
+ **Classes and properties are nearly free.** Fifty classes and a hundred plain properties add a
38
+ thousand nodes, about twenty per class. The size of the model is not the problem.
39
+
40
+ **One thing is expensive: a string carrying a format.** The same constraint on fifty classes adds
41
+ 26 350 nodes, about **527 nodes per property**, and fifty separate automata for one expression.
42
+ `resolve` and `compile` both roughly double over the same range.
43
+
44
+ ## Where the weight is
45
+
46
+ On the Kernel floor, by region (`bun scripts/bench/compiled-graph.ts`):
47
+
48
+ | region | nodes | share |
49
+ | --- | --- | --- |
50
+ | `values[].patterns` | 15 856 | 81.2 % |
51
+ | `values[].nodes` | 3 031 | 15.5 % |
52
+ | `definitions.*` | 563 | 2.9 % |
53
+ | everything else | 6 | 0.0 % |
54
+
55
+ The weight is compiled regular-expression automata. A bounded quantifier is unrolled into one
56
+ state per repetition, so `{64}` becomes 162 states and `{0,253}` becomes 528. Each state carries
57
+ two arrays, each transition an array of ranges, and each range is itself a two-element array.
58
+ That is also why a compiled graph holds more arrays than objects.
59
+
60
+ Nothing is shared between copies. Sixteen automata stand for seven distinct expressions:
61
+ `sha256:[0-9a-f]{64}`, nineteen characters, weighs 576 nodes and exists five times over. Interning
62
+ by source would remove 7 973 of the 15 794 pattern nodes at identical semantics, since two
63
+ automata for one expression are structurally identical and immutable.
64
+
65
+ ## Where it is paid
66
+
67
+ 1. **At build time**, in `compile`. Once, on a contributor's machine.
68
+ 2. **In the Worker bundle.** The material is emitted as an inline literal, so the automata ship as
69
+ bytes: 44 % of a bare compiled Schema, 65 % once a Domain constrains its strings.
70
+ 3. **At cold start, the material path.** The emitted literal is allocated, sealed, and realized on
71
+ the first request of every isolate.
72
+ 4. **At cold start, the authoring path**, when application code builds the Schema from source at
73
+ runtime. `resolve` is memoised per Schema value, so it is a once-per-isolate cost like the
74
+ material path, not a per-request one.
75
+ 5. **In any client** that builds the Schema, a browser included.
76
+
77
+ ## Sealing the material
78
+
79
+ `schema.compiled` is almost the whole material graph, so sealing cost is a question of how many
80
+ times that graph is walked (`bun scripts/bench/freeze-strategies.ts`):
81
+
82
+ | strategy | cost |
83
+ | --- | --- |
84
+ | before: two SDK passes and one DSL pass | 131.6 ms |
85
+ | current: one SDK pass and one DSL pass | 74.7 ms |
86
+ | candidate: the DSL owns `schema.compiled` | 62.0 ms |
87
+
88
+ Two results matter more than the ranking.
89
+
90
+ **Most of the remaining cost is not the Schema.** Sealing `schema.compiled` alone is 17.2 ms.
91
+ Sealing `schema.bundle.bytes` alone is 43.9 ms, because it is one array of tens of thousands of
92
+ numbers and the walker calls `Object.values` on it. A walker that indexes arrays in place and
93
+ never recurses into a primitive takes one pass from 61.2 ms to 43.5 ms. `Object.freeze` on an
94
+ array of numbers already seals its elements, so that recursion changes nothing: it is cost
95
+ without a guarantee behind it.
96
+
97
+ **The emitter throws away sharing the compiler produced.** The compiled graph holds 19 522 nodes
98
+ as built and 32 882 after a JSON round trip, because JSON has no references. 13 360 nodes, two
99
+ thirds again, exist only because the material is emitted as a flat literal. Hoisting identical
100
+ subtrees into shared bindings at emission would restore sharing rather than invent it, and would
101
+ cut bundle bytes at the same time.
102
+
103
+ Sealing is a guarantee, not decoration: `realize()` retains live references into the graph, and
104
+ the material is one singleton shared by every concurrent request in the isolate. None of the
105
+ changes above give that up. They stop walking what is already sealed, or what sealing a container
106
+ already covers.
107
+
108
+ ## Which levers are here
109
+
110
+ Owned by this repository: how many times the material is walked, how the walker treats a flat
111
+ array, whether the emitter shares identical subtrees, and whether the SDK hands out the Domain
112
+ that a restored Build already carries instead of leaving an application to rebuild it.
113
+
114
+ Owned by `kernel-dsl`: the cost of `resolve`, the pattern table in the compiled format, and the
115
+ unrolling of bounded quantifiers. The last of these pays at all five sites at once and is where
116
+ most of the weight is. None of it can be reached from here.
117
+
118
+ ## Verifying a change
119
+
120
+ `scripts/bench/freeze-equivalence.ts` compares the frozen state of every reachable node between
121
+ two sealing implementations and exits non-zero on a divergence or a vacuous walk. Spine assertions
122
+ cannot tell a deep seal from a shallow one: `material()` returns a shallow-frozen envelope, so a
123
+ walker treating a frozen container as proof of a sealed interior would seal nothing and still
124
+ satisfy them. `src/deployment/build/__tests__/realization.test.ts` carries the standing audit.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astrale-os/sdk",
3
- "version": "0.6.0-beta.4",
3
+ "version": "0.6.0-beta.41",
4
4
  "description": "Schema-first SDK for defining, composing, and deploying Astrale domains",
5
5
  "keywords": [
6
6
  "astrale",
@@ -20,7 +20,8 @@
20
20
  },
21
21
  "files": [
22
22
  "dist",
23
- "!dist/**/*.map"
23
+ "!dist/**/*.map",
24
+ "docs"
24
25
  ],
25
26
  "type": "module",
26
27
  "sideEffects": false,
@@ -63,9 +64,13 @@
63
64
  "types": "./dist/platform/result/index.d.ts",
64
65
  "import": "./dist/platform/result/index.js"
65
66
  },
66
- "./publication": {
67
- "types": "./dist/platform/publication/index.d.ts",
68
- "import": "./dist/platform/publication/index.js"
67
+ "./release": {
68
+ "types": "./dist/platform/release/index.d.ts",
69
+ "import": "./dist/platform/release/index.js"
70
+ },
71
+ "./versioning": {
72
+ "types": "./dist/platform/versioning/index.d.ts",
73
+ "import": "./dist/platform/versioning/index.js"
69
74
  },
70
75
  "./invocation": {
71
76
  "types": "./dist/platform/invocation/index.d.ts",
@@ -127,7 +132,7 @@
127
132
  "types": "./dist/application/runtime/authoring.d.ts",
128
133
  "import": "./dist/application/runtime/authoring.js"
129
134
  },
130
- "./application": {
135
+ "./domain": {
131
136
  "types": "./dist/application/index.d.ts",
132
137
  "import": "./dist/application/index.js"
133
138
  },
@@ -151,6 +156,22 @@
151
156
  "types": "./dist/deployment/build/material.d.ts",
152
157
  "import": "./dist/deployment/build/material.js"
153
158
  },
159
+ "./deployment/build/manifest": {
160
+ "types": "./dist/deployment/build/manifest.d.ts",
161
+ "import": "./dist/deployment/build/manifest.js"
162
+ },
163
+ "./deployment/address": {
164
+ "types": "./dist/deployment/address/index.d.ts",
165
+ "import": "./dist/deployment/address/index.js"
166
+ },
167
+ "./deployment/address/vectors": {
168
+ "types": "./dist/deployment/address/vectors.d.ts",
169
+ "import": "./dist/deployment/address/vectors.js"
170
+ },
171
+ "./deployment/worker": {
172
+ "types": "./dist/deployment/worker/index.d.ts",
173
+ "import": "./dist/deployment/worker/index.js"
174
+ },
154
175
  "./deployment/release": {
155
176
  "types": "./dist/deployment/release/index.d.ts",
156
177
  "import": "./dist/deployment/release/index.js"
@@ -237,16 +258,17 @@
237
258
  "registry": "https://registry.npmjs.org/"
238
259
  },
239
260
  "dependencies": {
240
- "@astrale-os/kernel-client": "0.6.0-beta.78",
241
- "@astrale-os/kernel-core": "0.9.0-beta.58",
242
- "@astrale-os/kernel-dsl": "0.2.0-beta.42",
243
- "@astrale-os/kernel-protocol": "0.5.0-beta.64",
244
- "@astrale-os/kernel-server": "0.5.0-beta.66",
261
+ "@astrale-os/kernel-client": "1.0.0-beta.19",
262
+ "@astrale-os/kernel-core": "1.0.0-beta.16",
263
+ "@astrale-os/kernel-dsl": "1.0.0-beta.9",
264
+ "@astrale-os/kernel-protocol": "1.0.0-beta.16",
265
+ "@astrale-os/kernel-server": "1.0.0-beta.16",
245
266
  "@lucide/icons": "1.34.0",
246
267
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
247
268
  "cross-spawn": "7.0.6",
248
269
  "hono": "^4.13.2",
249
270
  "jose": "^6.2.9",
271
+ "semver": "7.8.5",
250
272
  "typescript": "~6.0.3"
251
273
  },
252
274
  "devDependencies": {
@@ -258,11 +280,15 @@
258
280
  "@commitlint/config-conventional": "~21.2.2",
259
281
  "@hono/node-server": "^2.1.1",
260
282
  "@hono/node-server-v1": "npm:@hono/node-server@1.19.0",
283
+ "@restatedev/restate-sdk": "1.17.0",
284
+ "@restatedev/restate-sdk-cloudflare-workers": "1.17.0",
261
285
  "@types/cross-spawn": "6.0.6",
262
- "@types/node": "^22.20.1",
286
+ "@types/node": "^24.19.1",
287
+ "@types/semver": "7.8.0",
263
288
  "husky": "~9.1.7",
264
289
  "lint-staged": "~17.3.0",
265
290
  "mermaid": "^11.16.1",
291
+ "miniflare": "5.20260811.1-alpha",
266
292
  "oxfmt": "0.63.0",
267
293
  "oxlint": "1.78.0",
268
294
  "preact": "^10.29.8",
@@ -292,10 +318,10 @@
292
318
  "lint-staged": {
293
319
  "*.{js,cjs,mjs,ts,tsx}": [
294
320
  "oxlint --disable-nested-config --fix",
295
- "oxfmt --write"
321
+ "oxfmt --no-error-on-unmatched-pattern --write"
296
322
  ],
297
323
  "*.{json,yml,yaml}": [
298
- "oxfmt --write"
324
+ "oxfmt --no-error-on-unmatched-pattern --write"
299
325
  ]
300
326
  },
301
327
  "devEngines": {
@@ -306,7 +332,7 @@
306
332
  }
307
333
  },
308
334
  "engines": {
309
- "node": ">=22"
335
+ "node": ">=24"
310
336
  },
311
337
  "scripts": {
312
338
  "build": "node scripts/clean-dist.mjs && tsgo && node scripts/verify-no-source-maps.mjs dist && pnpm run verify:package",
@@ -318,9 +344,12 @@
318
344
  "typecheck:tests": "tsgo --noEmit -p tsconfig.test.json",
319
345
  "typecheck:e2e": "tsgo --noEmit -p __e2e__/flagship/fixtures/tsconfig.v1.json && tsgo --noEmit -p __e2e__/flagship/fixtures/tsconfig.json",
320
346
  "typecheck:knowledge": "tsgo --noEmit -p knowledge/cli/tsconfig.json",
321
- "test": "pnpm run check:knowledge && pnpm run check:linter-policy && pnpm run check:issues && vitest run --config __tests__/vitest.config.ts && pnpm run test:node-server-v1 && node --test scripts/*.test.mjs",
347
+ "test": "pnpm run test:checks && pnpm run test:file && pnpm run test:scripts",
348
+ "test:checks": "pnpm run check:knowledge && pnpm run check:linter-policy && pnpm run check:issues && pnpm run test:node-server-v1",
322
349
  "test:file": "vitest run --config __tests__/vitest.config.ts",
350
+ "test:scripts": "node --test scripts/*.test.mjs actions/domain/*.test.mjs",
323
351
  "test:node-server-v1": "vitest run --config __tests__/vitest.node-server-v1.config.ts",
352
+ "test:durable": "vitest run --config __tests__/durable/vitest.config.ts",
324
353
  "verify:package": "node ./verify-package.mjs",
325
354
  "test:watch": "vitest --config __tests__/vitest.config.ts",
326
355
  "lint": "oxlint --disable-nested-config .",
@@ -1,28 +0,0 @@
1
- import type { schema } from '../platform/schema/index.js';
2
- import type { Requirements } from './requirements/index.js';
3
- import type { Routes } from './routes/index.js';
4
- import type { Runtime, SchemaOfRuntime as RuntimeSchemaOf } from './runtime/index.js';
5
- import type { Frontend } from './view/index.js';
6
- declare const APPLICATION_IDENTITY: unique symbol;
7
- declare const APPLICATION_SCHEMA: unique symbol;
8
- /** Schema-independent type witness shared by every admitted Application declaration. */
9
- export interface ApplicationIdentity {
10
- readonly [APPLICATION_IDENTITY]: true;
11
- }
12
- /** Inert source/build composition for one exact Schema and authored Runtime. */
13
- export interface Application<Schema extends schema.DomainSchema = schema.DomainSchema, RuntimeValue extends Runtime<Schema> = Runtime<Schema>, FrontendValue extends Frontend<Schema> | undefined = undefined, RoutesValue extends Routes | undefined = undefined, RequirementsValue extends Requirements | undefined = undefined> extends ApplicationIdentity {
14
- readonly schema: Schema;
15
- readonly runtime: RuntimeValue;
16
- readonly frontend?: FrontendValue;
17
- readonly routes?: RoutesValue;
18
- readonly requirements?: RequirementsValue;
19
- readonly [APPLICATION_SCHEMA]: (schema: Schema) => Schema;
20
- }
21
- export type SchemaOfApplication<Value> = Value extends {
22
- readonly schema: infer Schema;
23
- } ? Extract<Schema, schema.DomainSchema> : never;
24
- export type RuntimeOfApplication<Value> = Value extends {
25
- readonly runtime: infer RuntimeValue;
26
- } ? Extract<RuntimeValue, Runtime> : never;
27
- export type SchemaOfRuntime<Value> = RuntimeSchemaOf<Value>;
28
- export {};
@@ -1,3 +0,0 @@
1
- import type { QueryAST, QueryResultFor } from '@astrale-os/kernel-core/graph/query';
2
- import type { ProjectedQuery, QueryProjectionContext } from '../single/index.js';
3
- export declare function projectQuery<Input, Output, Ast extends QueryAST>(definition: ProjectedQuery<Input, Output, Ast>, result: QueryResultFor<Ast>, input: Input, context: QueryProjectionContext<Ast>): Output;
@@ -1,3 +0,0 @@
1
- export function projectQuery(definition, result, input, context) {
2
- return definition.project(result, input, context);
3
- }
@@ -1,15 +0,0 @@
1
- import type { InstallationTarget } from '../adapter.js';
2
- import type { PreparedArtifact } from '../prepare/index.js';
3
- export interface DeployContext {
4
- readonly projectDir: string;
5
- readonly environment: string;
6
- readonly installation?: InstallationTarget;
7
- /** Optional command-scoped identity override (`--as`). */
8
- readonly identity?: string;
9
- /** Optional command-scoped credential; trusted adapters must neither retain nor disclose it. */
10
- readonly credential?: string;
11
- readonly secrets: Readonly<Record<string, string>>;
12
- readonly artifact: PreparedArtifact;
13
- /** Parent-owned lifecycle cancellation shared by every provider process/effect. */
14
- readonly signal: AbortSignal;
15
- }
@@ -1,2 +0,0 @@
1
- export type { DeployContext } from './context.js';
2
- export type { AppliedProviderDeployment, DeploymentPhase, DeploymentProgress, DeployResult, FailedDeployResult, MutationKnowledge, ProviderDeploymentEvidence, ReadyDeployResult, } from './result.js';
@@ -1,50 +0,0 @@
1
- import type { Digest } from '@astrale-os/kernel-protocol/artifact';
2
- import type { Addressing, Release } from '../../release/index.js';
3
- export type DeploymentPhase = 'prerequisite' | 'provider' | 'addressing' | 'release' | 'configuration' | 'installation' | 'readiness';
4
- export type MutationKnowledge<Evidence = unknown> = {
5
- readonly kind: 'none';
6
- } | {
7
- readonly kind: 'partial';
8
- readonly evidence?: Evidence;
9
- } | {
10
- readonly kind: 'applied';
11
- readonly evidence: Evidence;
12
- } | {
13
- readonly kind: 'unknown';
14
- };
15
- export interface ProviderDeploymentEvidence {
16
- readonly provider: string;
17
- readonly deployment: string;
18
- readonly artifact: Digest;
19
- readonly issuer?: Addressing['issuer'];
20
- /** Optional provider-side check before promotion; distinct from public readiness. */
21
- readonly preflight?: 'passed' | 'unavailable';
22
- }
23
- export type AppliedProviderDeployment = {
24
- readonly kind: 'applied';
25
- readonly evidence: ProviderDeploymentEvidence & {
26
- readonly issuer: Addressing['issuer'];
27
- };
28
- };
29
- export interface DeploymentProgress {
30
- readonly prerequisite: MutationKnowledge;
31
- readonly provider: MutationKnowledge<ProviderDeploymentEvidence>;
32
- readonly configuration: MutationKnowledge;
33
- readonly installation: MutationKnowledge;
34
- }
35
- export interface ReadyDeployResult {
36
- readonly status: 'ready';
37
- readonly phase: 'complete';
38
- readonly progress: DeploymentProgress & {
39
- readonly provider: AppliedProviderDeployment;
40
- };
41
- readonly release: Release;
42
- }
43
- export interface FailedDeployResult {
44
- readonly status: 'failed';
45
- readonly phase: DeploymentPhase;
46
- readonly progress: DeploymentProgress;
47
- readonly error: Error;
48
- readonly release?: Release;
49
- }
50
- export type DeployResult = ReadyDeployResult | FailedDeployResult;
@@ -1,33 +0,0 @@
1
- import type { Digest } from '@astrale-os/kernel-protocol/artifact';
2
- import type { Build } from '../../build/index.js';
3
- import type { Addressing } from '../../release/index.js';
4
- export interface ArtifactFile {
5
- readonly path: string;
6
- readonly content: Uint8Array;
7
- }
8
- export interface PreparedArtifactFile {
9
- readonly path: string;
10
- bytes(): Uint8Array;
11
- }
12
- export type AddressingPlan = {
13
- readonly kind: 'configured';
14
- readonly addressing: Addressing;
15
- } | {
16
- readonly kind: 'provider-assigned';
17
- readonly claim: string;
18
- };
19
- /** Untrusted provider-specific preparation output admitted by verify/preflight. */
20
- export interface ArtifactSource {
21
- readonly entrypoint: string;
22
- readonly files: readonly ArtifactFile[];
23
- readonly addressing: AddressingPlan;
24
- }
25
- /** Exact detached input supplied to every provider deployment effect. */
26
- export interface PreparedArtifact<BuildValue extends Build = Build> {
27
- readonly kind: 'prepared-artifact';
28
- readonly build: BuildValue;
29
- readonly digest: Digest;
30
- readonly entrypoint: string;
31
- readonly files: readonly PreparedArtifactFile[];
32
- readonly addressing: AddressingPlan;
33
- }
@@ -1,23 +0,0 @@
1
- import type { Build } from '../../build/index.js';
2
- import type { ResolvedRuntimeReference } from '../../runtime/index.js';
3
- import type { InstallationTarget } from '../adapter.js';
4
- export interface PrepareContext<BuildValue extends Build = Build> {
5
- readonly projectDir: string;
6
- readonly environment: string;
7
- readonly installation?: InstallationTarget;
8
- /**
9
- * Preparation purpose. Remote development and one-shot deployment both
10
- * prepare complete release artifacts. Omitted by older custom callers means
11
- * release for compatibility during the beta migration.
12
- */
13
- readonly mode?: 'release';
14
- /**
15
- * Optional preparation-input observer used by tooling that must rebuild when
16
- * an adapter reads authored paths outside the Application/Runtime module graph.
17
- */
18
- readonly recordSource?: (path: string) => void;
19
- /** Parent-owned lifecycle cancellation shared by every preparation process/effect. */
20
- readonly signal: AbortSignal;
21
- readonly build: BuildValue;
22
- readonly runtime: ResolvedRuntimeReference;
23
- }
@@ -1,2 +0,0 @@
1
- export type { PrepareContext } from './context.js';
2
- export type { AddressingPlan, ArtifactFile, ArtifactSource, PreparedArtifact, PreparedArtifactFile, } from './artifact.js';
@@ -1,20 +0,0 @@
1
- import type { ApplicationIdentity } from '../application/index.js';
2
- import type { Adapter } from './adapter/index.js';
3
- import type { RuntimeReference } from './runtime/index.js';
4
- type CanonicalAdapter<Value> = Value extends Adapter<infer _Parameters> ? Value : never;
5
- /** @deprecated Declare Application and Environments directly in defineProject(). */
6
- export interface DeploymentInput<ApplicationValue extends ApplicationIdentity, AdapterValue extends object> {
7
- readonly application: ApplicationValue;
8
- readonly entrypoint: RuntimeReference;
9
- readonly adapter: CanonicalAdapter<AdapterValue>;
10
- }
11
- /** @deprecated Legacy aggregate retained only so tooling can issue an exact migration diagnostic. */
12
- export interface LegacyDeployment<ApplicationValue extends ApplicationIdentity = ApplicationIdentity, AdapterValue extends object = object> {
13
- readonly application: ApplicationValue;
14
- readonly entrypoint: RuntimeReference;
15
- readonly adapter: AdapterValue;
16
- }
17
- /** @deprecated Declare Application and Environments directly in defineProject(). */
18
- export declare function deploy<const ApplicationValue extends ApplicationIdentity, const AdapterValue extends object>(input: DeploymentInput<ApplicationValue, AdapterValue>): LegacyDeployment<ApplicationValue, AdapterValue>;
19
- export declare function isLegacyDeployment(input: unknown): input is LegacyDeployment;
20
- export {};
@@ -1,31 +0,0 @@
1
- import { isApplication } from '../application/index.js';
2
- import { isAdapter } from './adapter/index.js';
3
- import { isRuntimeReference } from './runtime/index.js';
4
- const legacyDeployments = new WeakSet();
5
- /** @deprecated Declare Application and Environments directly in defineProject(). */
6
- export function deploy(input) {
7
- if (input === null || typeof input !== 'object' || Array.isArray(input))
8
- invalid();
9
- const keys = Reflect.ownKeys(input);
10
- if (keys.length !== 3 ||
11
- keys.some((key) => key !== 'application' && key !== 'entrypoint' && key !== 'adapter')) {
12
- invalid();
13
- }
14
- if (!isApplication(input.application)) {
15
- throw new TypeError('Deployment Application is not admitted.');
16
- }
17
- if (!isRuntimeReference(input.entrypoint)) {
18
- throw new TypeError('Deployment entrypoint must be created by runtime(path).');
19
- }
20
- if (!isAdapter(input.adapter))
21
- throw new TypeError('Deployment Adapter is not admitted.');
22
- const deployment = Object.freeze({ ...input });
23
- legacyDeployments.add(deployment);
24
- return deployment;
25
- }
26
- export function isLegacyDeployment(input) {
27
- return input !== null && typeof input === 'object' && legacyDeployments.has(input);
28
- }
29
- function invalid() {
30
- throw new TypeError('Deployment must contain exactly application, entrypoint, and adapter.');
31
- }
@@ -1,6 +0,0 @@
1
- export { callables } from './callables.js';
2
- export { manifest } from './manifest.js';
3
- export { requirements } from './requirements.js';
4
- export { routes } from './routes.js';
5
- export { seal, type SealedPublication } from './seal.js';
6
- export { views } from './views.js';