@xemahq/xema 0.14.0 → 0.15.0

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 (418) hide show
  1. package/README.md +23 -2
  2. package/dist/assets/appliance-base/distribution.lock.json +5144 -0
  3. package/dist/assets/appliance-base/images.lock.json +1706 -0
  4. package/dist/assets/appliance-lean/distribution.lock.json +2888 -0
  5. package/dist/assets/appliance-lean/images.lock.json +1229 -0
  6. package/dist/assets/boot-graph.json +339 -29
  7. package/dist/assets/cloud/distribution.lock.json +5278 -0
  8. package/dist/assets/cloud/images.lock.json +1713 -0
  9. package/dist/assets/core/distribution.lock.json +1802 -125
  10. package/dist/assets/core/images.lock.json +1175 -235
  11. package/dist/assets/distribution-assets.manifest.json +147 -0
  12. package/dist/assets/keycloak/realm-xema.json +412 -0
  13. package/dist/assets/minimal/distribution.lock.json +2710 -0
  14. package/dist/assets/minimal/images.lock.json +1149 -0
  15. package/dist/assets/oss/distribution.lock.json +2438 -226
  16. package/dist/assets/oss/images.lock.json +1502 -618
  17. package/dist/assets/starter/distribution.lock.json +3422 -0
  18. package/dist/assets/starter/images.lock.json +1404 -0
  19. package/dist/cli.d.ts.map +1 -1
  20. package/dist/cli.js +4 -0
  21. package/dist/cli.js.map +1 -1
  22. package/dist/commands/apply.js +1 -1
  23. package/dist/commands/apply.js.map +1 -1
  24. package/dist/commands/biome.d.ts.map +1 -1
  25. package/dist/commands/biome.js +84 -7
  26. package/dist/commands/biome.js.map +1 -1
  27. package/dist/commands/canopy.js +1 -1
  28. package/dist/commands/canopy.js.map +1 -1
  29. package/dist/commands/dev.d.ts.map +1 -1
  30. package/dist/commands/dev.js +27 -5
  31. package/dist/commands/dev.js.map +1 -1
  32. package/dist/commands/dist.d.ts +13 -0
  33. package/dist/commands/dist.d.ts.map +1 -1
  34. package/dist/commands/dist.js +50 -10
  35. package/dist/commands/dist.js.map +1 -1
  36. package/dist/commands/doctor.d.ts +25 -0
  37. package/dist/commands/doctor.d.ts.map +1 -1
  38. package/dist/commands/doctor.js +422 -18
  39. package/dist/commands/doctor.js.map +1 -1
  40. package/dist/commands/down.d.ts +10 -0
  41. package/dist/commands/down.d.ts.map +1 -1
  42. package/dist/commands/down.js +81 -41
  43. package/dist/commands/down.js.map +1 -1
  44. package/dist/commands/export.js +1 -1
  45. package/dist/commands/export.js.map +1 -1
  46. package/dist/commands/import.js +1 -1
  47. package/dist/commands/import.js.map +1 -1
  48. package/dist/commands/init.d.ts.map +1 -1
  49. package/dist/commands/init.js +56 -3
  50. package/dist/commands/init.js.map +1 -1
  51. package/dist/commands/installation.d.ts.map +1 -1
  52. package/dist/commands/installation.js +169 -12
  53. package/dist/commands/installation.js.map +1 -1
  54. package/dist/commands/license.d.ts +3 -0
  55. package/dist/commands/license.d.ts.map +1 -0
  56. package/dist/commands/license.js +97 -0
  57. package/dist/commands/license.js.map +1 -0
  58. package/dist/commands/login.d.ts +4 -0
  59. package/dist/commands/login.d.ts.map +1 -0
  60. package/dist/commands/login.js +127 -0
  61. package/dist/commands/login.js.map +1 -0
  62. package/dist/commands/logs.d.ts +21 -0
  63. package/dist/commands/logs.d.ts.map +1 -1
  64. package/dist/commands/logs.js +131 -22
  65. package/dist/commands/logs.js.map +1 -1
  66. package/dist/commands/objects.js +2 -2
  67. package/dist/commands/objects.js.map +1 -1
  68. package/dist/commands/plan.js +1 -1
  69. package/dist/commands/plan.js.map +1 -1
  70. package/dist/commands/run.js +1 -1
  71. package/dist/commands/run.js.map +1 -1
  72. package/dist/commands/serve.d.ts.map +1 -1
  73. package/dist/commands/serve.js +39 -6
  74. package/dist/commands/serve.js.map +1 -1
  75. package/dist/commands/shell.js +1 -1
  76. package/dist/commands/shell.js.map +1 -1
  77. package/dist/commands/up.d.ts.map +1 -1
  78. package/dist/commands/up.js +20 -5
  79. package/dist/commands/up.js.map +1 -1
  80. package/dist/dev/env-defaults.d.ts +1 -0
  81. package/dist/dev/env-defaults.d.ts.map +1 -1
  82. package/dist/dev/env-defaults.js +15 -6
  83. package/dist/dev/env-defaults.js.map +1 -1
  84. package/dist/dev/forked-worker-bootstrap-protocol.d.ts +17 -0
  85. package/dist/dev/forked-worker-bootstrap-protocol.d.ts.map +1 -0
  86. package/dist/dev/forked-worker-bootstrap-protocol.js +35 -0
  87. package/dist/dev/forked-worker-bootstrap-protocol.js.map +1 -0
  88. package/dist/dev/forked-worker-bootstrap.d.ts +18 -0
  89. package/dist/dev/forked-worker-bootstrap.d.ts.map +1 -0
  90. package/dist/dev/forked-worker-bootstrap.js +84 -0
  91. package/dist/dev/forked-worker-bootstrap.js.map +1 -0
  92. package/dist/dev/forked-worker.d.ts +14 -0
  93. package/dist/dev/forked-worker.d.ts.map +1 -1
  94. package/dist/dev/forked-worker.js +200 -33
  95. package/dist/dev/forked-worker.js.map +1 -1
  96. package/dist/lib/control-plane.d.ts +5 -1
  97. package/dist/lib/control-plane.d.ts.map +1 -1
  98. package/dist/lib/control-plane.js +56 -6
  99. package/dist/lib/control-plane.js.map +1 -1
  100. package/dist/runtime/asset-provenance.d.ts +17 -0
  101. package/dist/runtime/asset-provenance.d.ts.map +1 -0
  102. package/dist/runtime/asset-provenance.js +29 -0
  103. package/dist/runtime/asset-provenance.js.map +1 -0
  104. package/dist/runtime/auth/client-bootstrap.d.ts +11 -0
  105. package/dist/runtime/auth/client-bootstrap.d.ts.map +1 -0
  106. package/dist/runtime/auth/client-bootstrap.js +60 -0
  107. package/dist/runtime/auth/client-bootstrap.js.map +1 -0
  108. package/dist/runtime/auth/device-flow.d.ts +43 -0
  109. package/dist/runtime/auth/device-flow.d.ts.map +1 -0
  110. package/dist/runtime/auth/device-flow.js +201 -0
  111. package/dist/runtime/auth/device-flow.js.map +1 -0
  112. package/dist/runtime/auth/session-auth.d.ts +8 -0
  113. package/dist/runtime/auth/session-auth.d.ts.map +1 -0
  114. package/dist/runtime/auth/session-auth.js +43 -0
  115. package/dist/runtime/auth/session-auth.js.map +1 -0
  116. package/dist/runtime/auth/session-store.d.ts +19 -0
  117. package/dist/runtime/auth/session-store.d.ts.map +1 -0
  118. package/dist/runtime/auth/session-store.js +83 -0
  119. package/dist/runtime/auth/session-store.js.map +1 -0
  120. package/dist/runtime/auth/token-claims.d.ts +2 -0
  121. package/dist/runtime/auth/token-claims.d.ts.map +1 -0
  122. package/dist/runtime/auth/token-claims.js +45 -0
  123. package/dist/runtime/auth/token-claims.js.map +1 -0
  124. package/dist/runtime/biome-provenance.d.ts +26 -0
  125. package/dist/runtime/biome-provenance.d.ts.map +1 -0
  126. package/dist/runtime/biome-provenance.js +70 -0
  127. package/dist/runtime/biome-provenance.js.map +1 -0
  128. package/dist/runtime/biome-publish.d.ts +14 -0
  129. package/dist/runtime/biome-publish.d.ts.map +1 -1
  130. package/dist/runtime/biome-publish.js +69 -5
  131. package/dist/runtime/biome-publish.js.map +1 -1
  132. package/dist/runtime/biome-scaffold.d.ts.map +1 -1
  133. package/dist/runtime/biome-scaffold.js +0 -2
  134. package/dist/runtime/biome-scaffold.js.map +1 -1
  135. package/dist/runtime/biome-validate.d.ts.map +1 -1
  136. package/dist/runtime/biome-validate.js +4 -2
  137. package/dist/runtime/biome-validate.js.map +1 -1
  138. package/dist/runtime/cleanup.d.ts +10 -0
  139. package/dist/runtime/cleanup.d.ts.map +1 -0
  140. package/dist/runtime/cleanup.js +35 -0
  141. package/dist/runtime/cleanup.js.map +1 -0
  142. package/dist/runtime/config/init-presets.d.ts.map +1 -1
  143. package/dist/runtime/config/init-presets.js +6 -3
  144. package/dist/runtime/config/init-presets.js.map +1 -1
  145. package/dist/runtime/distribution/available-biome.d.ts.map +1 -1
  146. package/dist/runtime/distribution/available-biome.js +2 -0
  147. package/dist/runtime/distribution/available-biome.js.map +1 -1
  148. package/dist/runtime/distribution/compose.d.ts +2 -1
  149. package/dist/runtime/distribution/compose.d.ts.map +1 -1
  150. package/dist/runtime/distribution/compose.js +1 -0
  151. package/dist/runtime/distribution/compose.js.map +1 -1
  152. package/dist/runtime/env-seeder.d.ts.map +1 -1
  153. package/dist/runtime/env-seeder.js +44 -13
  154. package/dist/runtime/env-seeder.js.map +1 -1
  155. package/dist/runtime/foreground.d.ts +6 -1
  156. package/dist/runtime/foreground.d.ts.map +1 -1
  157. package/dist/runtime/foreground.js +30 -7
  158. package/dist/runtime/foreground.js.map +1 -1
  159. package/dist/runtime/infra/infra-catalog.d.ts +33 -1
  160. package/dist/runtime/infra/infra-catalog.d.ts.map +1 -1
  161. package/dist/runtime/infra/infra-catalog.js +201 -10
  162. package/dist/runtime/infra/infra-catalog.js.map +1 -1
  163. package/dist/runtime/infra/infra-environment.d.ts +10 -0
  164. package/dist/runtime/infra/infra-environment.d.ts.map +1 -0
  165. package/dist/runtime/infra/infra-environment.js +76 -0
  166. package/dist/runtime/infra/infra-environment.js.map +1 -0
  167. package/dist/runtime/infra/infra-plan.d.ts +2 -1
  168. package/dist/runtime/infra/infra-plan.d.ts.map +1 -1
  169. package/dist/runtime/infra/infra-plan.js +10 -0
  170. package/dist/runtime/infra/infra-plan.js.map +1 -1
  171. package/dist/runtime/infra/infra-runner.d.ts +12 -2
  172. package/dist/runtime/infra/infra-runner.d.ts.map +1 -1
  173. package/dist/runtime/infra/infra-runner.js +194 -73
  174. package/dist/runtime/infra/infra-runner.js.map +1 -1
  175. package/dist/runtime/infra/keycloak-realm.d.ts +25 -0
  176. package/dist/runtime/infra/keycloak-realm.d.ts.map +1 -0
  177. package/dist/runtime/infra/keycloak-realm.js +116 -0
  178. package/dist/runtime/infra/keycloak-realm.js.map +1 -0
  179. package/dist/runtime/infra/postgres-endpoint.d.ts +8 -0
  180. package/dist/runtime/infra/postgres-endpoint.d.ts.map +1 -0
  181. package/dist/runtime/infra/postgres-endpoint.js +21 -0
  182. package/dist/runtime/infra/postgres-endpoint.js.map +1 -0
  183. package/dist/runtime/installation/compiler.d.ts +104 -27
  184. package/dist/runtime/installation/compiler.d.ts.map +1 -1
  185. package/dist/runtime/installation/compiler.js +361 -95
  186. package/dist/runtime/installation/compiler.js.map +1 -1
  187. package/dist/runtime/installation/contract.d.ts +234 -63
  188. package/dist/runtime/installation/contract.d.ts.map +1 -1
  189. package/dist/runtime/installation/contract.js +396 -74
  190. package/dist/runtime/installation/contract.js.map +1 -1
  191. package/dist/runtime/installation/current-launcher-renderer.d.ts +12 -0
  192. package/dist/runtime/installation/current-launcher-renderer.d.ts.map +1 -0
  193. package/dist/runtime/installation/current-launcher-renderer.js +123 -0
  194. package/dist/runtime/installation/current-launcher-renderer.js.map +1 -0
  195. package/dist/runtime/installation/diff.d.ts +15 -0
  196. package/dist/runtime/installation/diff.d.ts.map +1 -1
  197. package/dist/runtime/installation/diff.js +66 -29
  198. package/dist/runtime/installation/diff.js.map +1 -1
  199. package/dist/runtime/installation/format.js +4 -4
  200. package/dist/runtime/installation/format.js.map +1 -1
  201. package/dist/runtime/installation/from-current-config.d.ts +3 -2
  202. package/dist/runtime/installation/from-current-config.d.ts.map +1 -1
  203. package/dist/runtime/installation/from-current-config.js +214 -44
  204. package/dist/runtime/installation/from-current-config.js.map +1 -1
  205. package/dist/runtime/installation/helm-release-readiness.d.ts +9 -0
  206. package/dist/runtime/installation/helm-release-readiness.d.ts.map +1 -0
  207. package/dist/runtime/installation/helm-release-readiness.js +97 -0
  208. package/dist/runtime/installation/helm-release-readiness.js.map +1 -0
  209. package/dist/runtime/installation/helm-release.d.ts +24 -0
  210. package/dist/runtime/installation/helm-release.d.ts.map +1 -0
  211. package/dist/runtime/installation/helm-release.js +96 -0
  212. package/dist/runtime/installation/helm-release.js.map +1 -0
  213. package/dist/runtime/installation/index.d.ts +9 -0
  214. package/dist/runtime/installation/index.d.ts.map +1 -1
  215. package/dist/runtime/installation/index.js +9 -0
  216. package/dist/runtime/installation/index.js.map +1 -1
  217. package/dist/runtime/installation/json-schema.d.ts +4 -0
  218. package/dist/runtime/installation/json-schema.d.ts.map +1 -0
  219. package/dist/runtime/installation/json-schema.js +16 -0
  220. package/dist/runtime/installation/json-schema.js.map +1 -0
  221. package/dist/runtime/installation/kubernetes-readiness.d.ts +60 -0
  222. package/dist/runtime/installation/kubernetes-readiness.d.ts.map +1 -0
  223. package/dist/runtime/installation/kubernetes-readiness.js +384 -0
  224. package/dist/runtime/installation/kubernetes-readiness.js.map +1 -0
  225. package/dist/runtime/installation/lifecycle.d.ts +6 -4
  226. package/dist/runtime/installation/lifecycle.d.ts.map +1 -1
  227. package/dist/runtime/installation/lifecycle.js +94 -7
  228. package/dist/runtime/installation/lifecycle.js.map +1 -1
  229. package/dist/runtime/installation/readiness-proof.d.ts +72 -0
  230. package/dist/runtime/installation/readiness-proof.d.ts.map +1 -0
  231. package/dist/runtime/installation/readiness-proof.js +142 -0
  232. package/dist/runtime/installation/readiness-proof.js.map +1 -0
  233. package/dist/runtime/installation/readiness.d.ts +21 -0
  234. package/dist/runtime/installation/readiness.d.ts.map +1 -0
  235. package/dist/runtime/installation/readiness.js +418 -0
  236. package/dist/runtime/installation/readiness.js.map +1 -0
  237. package/dist/runtime/installation/setup-profile.d.ts +8 -0
  238. package/dist/runtime/installation/setup-profile.d.ts.map +1 -0
  239. package/dist/runtime/installation/setup-profile.js +41 -0
  240. package/dist/runtime/installation/setup-profile.js.map +1 -0
  241. package/dist/runtime/installation/setup-renderer.d.ts +31 -0
  242. package/dist/runtime/installation/setup-renderer.d.ts.map +1 -0
  243. package/dist/runtime/installation/setup-renderer.js +238 -0
  244. package/dist/runtime/installation/setup-renderer.js.map +1 -0
  245. package/dist/runtime/installation/state-store.d.ts +11 -3
  246. package/dist/runtime/installation/state-store.d.ts.map +1 -1
  247. package/dist/runtime/installation/state-store.js +157 -37
  248. package/dist/runtime/installation/state-store.js.map +1 -1
  249. package/dist/runtime/installation/status.d.ts +6 -12
  250. package/dist/runtime/installation/status.d.ts.map +1 -1
  251. package/dist/runtime/installation/status.js +28 -114
  252. package/dist/runtime/installation/status.js.map +1 -1
  253. package/dist/runtime/installation/support-bundle.d.ts.map +1 -1
  254. package/dist/runtime/installation/support-bundle.js +18 -3
  255. package/dist/runtime/installation/support-bundle.js.map +1 -1
  256. package/dist/runtime/installation/to-current-config.d.ts +4 -0
  257. package/dist/runtime/installation/to-current-config.d.ts.map +1 -0
  258. package/dist/runtime/installation/to-current-config.js +171 -0
  259. package/dist/runtime/installation/to-current-config.js.map +1 -0
  260. package/dist/runtime/installation/validation.d.ts.map +1 -1
  261. package/dist/runtime/installation/validation.js +78 -0
  262. package/dist/runtime/installation/validation.js.map +1 -1
  263. package/dist/runtime/installation/validators/common.d.ts.map +1 -1
  264. package/dist/runtime/installation/validators/common.js +7 -4
  265. package/dist/runtime/installation/validators/common.js.map +1 -1
  266. package/dist/runtime/installation/validators/infrastructure.d.ts.map +1 -1
  267. package/dist/runtime/installation/validators/infrastructure.js +20 -2
  268. package/dist/runtime/installation/validators/infrastructure.js.map +1 -1
  269. package/dist/runtime/installation/validators/operational.d.ts.map +1 -1
  270. package/dist/runtime/installation/validators/operational.js +44 -102
  271. package/dist/runtime/installation/validators/operational.js.map +1 -1
  272. package/dist/runtime/installation/validators/profile.d.ts.map +1 -1
  273. package/dist/runtime/installation/validators/profile.js +53 -51
  274. package/dist/runtime/installation/validators/profile.js.map +1 -1
  275. package/dist/runtime/installation/validators/secrets.d.ts.map +1 -1
  276. package/dist/runtime/installation/validators/secrets.js +44 -27
  277. package/dist/runtime/installation/validators/secrets.js.map +1 -1
  278. package/dist/runtime/launch.d.ts +10 -0
  279. package/dist/runtime/launch.d.ts.map +1 -1
  280. package/dist/runtime/launch.js +123 -18
  281. package/dist/runtime/launch.js.map +1 -1
  282. package/dist/runtime/license/license-clock.d.ts +12 -0
  283. package/dist/runtime/license/license-clock.d.ts.map +1 -0
  284. package/dist/runtime/license/license-clock.js +57 -0
  285. package/dist/runtime/license/license-clock.js.map +1 -0
  286. package/dist/runtime/license/license-report.d.ts +19 -0
  287. package/dist/runtime/license/license-report.d.ts.map +1 -0
  288. package/dist/runtime/license/license-report.js +105 -0
  289. package/dist/runtime/license/license-report.js.map +1 -0
  290. package/dist/runtime/license/license-store.d.ts +5 -0
  291. package/dist/runtime/license/license-store.d.ts.map +1 -0
  292. package/dist/runtime/license/license-store.js +11 -0
  293. package/dist/runtime/license/license-store.js.map +1 -0
  294. package/dist/runtime/license/registry-credential.d.ts +26 -0
  295. package/dist/runtime/license/registry-credential.d.ts.map +1 -0
  296. package/dist/runtime/license/registry-credential.js +94 -0
  297. package/dist/runtime/license/registry-credential.js.map +1 -0
  298. package/dist/runtime/license/resolve-license.d.ts +30 -0
  299. package/dist/runtime/license/resolve-license.d.ts.map +1 -0
  300. package/dist/runtime/license/resolve-license.js +73 -0
  301. package/dist/runtime/license/resolve-license.js.map +1 -0
  302. package/dist/runtime/license/store-license.d.ts +18 -0
  303. package/dist/runtime/license/store-license.d.ts.map +1 -0
  304. package/dist/runtime/license/store-license.js +26 -0
  305. package/dist/runtime/license/store-license.js.map +1 -0
  306. package/dist/runtime/lock-loader.d.ts +3 -6
  307. package/dist/runtime/lock-loader.d.ts.map +1 -1
  308. package/dist/runtime/lock-loader.js +26 -20
  309. package/dist/runtime/lock-loader.js.map +1 -1
  310. package/dist/runtime/native-process-group.d.ts +46 -0
  311. package/dist/runtime/native-process-group.d.ts.map +1 -0
  312. package/dist/runtime/native-process-group.js +390 -0
  313. package/dist/runtime/native-process-group.js.map +1 -0
  314. package/dist/runtime/paths.d.ts +1 -0
  315. package/dist/runtime/paths.d.ts.map +1 -1
  316. package/dist/runtime/paths.js +1 -0
  317. package/dist/runtime/paths.js.map +1 -1
  318. package/dist/runtime/roster.d.ts +4 -3
  319. package/dist/runtime/roster.d.ts.map +1 -1
  320. package/dist/runtime/roster.js +17 -5
  321. package/dist/runtime/roster.js.map +1 -1
  322. package/dist/runtime/run-manifest.d.ts +34 -5
  323. package/dist/runtime/run-manifest.d.ts.map +1 -1
  324. package/dist/runtime/run-manifest.js +434 -120
  325. package/dist/runtime/run-manifest.js.map +1 -1
  326. package/dist/runtime/runner/container-preflight.d.ts +77 -0
  327. package/dist/runtime/runner/container-preflight.d.ts.map +1 -0
  328. package/dist/runtime/runner/container-preflight.js +360 -0
  329. package/dist/runtime/runner/container-preflight.js.map +1 -0
  330. package/dist/runtime/runner/container-runner.d.ts +8 -0
  331. package/dist/runtime/runner/container-runner.d.ts.map +1 -1
  332. package/dist/runtime/runner/container-runner.js +93 -16
  333. package/dist/runtime/runner/container-runner.js.map +1 -1
  334. package/dist/runtime/runner/docker-cli.d.ts +30 -2
  335. package/dist/runtime/runner/docker-cli.d.ts.map +1 -1
  336. package/dist/runtime/runner/docker-cli.js +275 -11
  337. package/dist/runtime/runner/docker-cli.js.map +1 -1
  338. package/dist/runtime/runner/health-probe.d.ts +1 -0
  339. package/dist/runtime/runner/health-probe.d.ts.map +1 -1
  340. package/dist/runtime/runner/health-probe.js +3 -2
  341. package/dist/runtime/runner/health-probe.js.map +1 -1
  342. package/dist/runtime/runner/helm-cli.d.ts +19 -1
  343. package/dist/runtime/runner/helm-cli.d.ts.map +1 -1
  344. package/dist/runtime/runner/helm-cli.js +76 -8
  345. package/dist/runtime/runner/helm-cli.js.map +1 -1
  346. package/dist/runtime/runner/helm-runner.d.ts +3 -0
  347. package/dist/runtime/runner/helm-runner.d.ts.map +1 -1
  348. package/dist/runtime/runner/helm-runner.js +23 -7
  349. package/dist/runtime/runner/helm-runner.js.map +1 -1
  350. package/dist/runtime/runner/host-platform.d.ts +39 -0
  351. package/dist/runtime/runner/host-platform.d.ts.map +1 -0
  352. package/dist/runtime/runner/host-platform.js +136 -0
  353. package/dist/runtime/runner/host-platform.js.map +1 -0
  354. package/dist/runtime/runner/kube-cli.d.ts +23 -0
  355. package/dist/runtime/runner/kube-cli.d.ts.map +1 -0
  356. package/dist/runtime/runner/kube-cli.js +112 -0
  357. package/dist/runtime/runner/kube-cli.js.map +1 -0
  358. package/dist/runtime/runner/native-runner.d.ts.map +1 -1
  359. package/dist/runtime/runner/native-runner.js +27 -3
  360. package/dist/runtime/runner/native-runner.js.map +1 -1
  361. package/dist/runtime/runner/service-runner.d.ts +5 -0
  362. package/dist/runtime/runner/service-runner.d.ts.map +1 -1
  363. package/dist/runtime/runner/service-runner.js.map +1 -1
  364. package/dist/runtime/runner/stream-outcome.d.ts +7 -0
  365. package/dist/runtime/runner/stream-outcome.d.ts.map +1 -0
  366. package/dist/runtime/runner/stream-outcome.js +13 -0
  367. package/dist/runtime/runner/stream-outcome.js.map +1 -0
  368. package/dist/runtime/secrets/managed-local-cipher.d.ts +18 -0
  369. package/dist/runtime/secrets/managed-local-cipher.d.ts.map +1 -0
  370. package/dist/runtime/secrets/managed-local-cipher.js +110 -0
  371. package/dist/runtime/secrets/managed-local-cipher.js.map +1 -0
  372. package/dist/runtime/secrets/managed-local-files.d.ts +4 -0
  373. package/dist/runtime/secrets/managed-local-files.d.ts.map +1 -0
  374. package/dist/runtime/secrets/managed-local-files.js +132 -0
  375. package/dist/runtime/secrets/managed-local-files.js.map +1 -0
  376. package/dist/runtime/secrets/managed-local-key-provider.d.ts +27 -0
  377. package/dist/runtime/secrets/managed-local-key-provider.d.ts.map +1 -0
  378. package/dist/runtime/secrets/managed-local-key-provider.js +144 -0
  379. package/dist/runtime/secrets/managed-local-key-provider.js.map +1 -0
  380. package/dist/runtime/secrets/managed-local-secret-store.d.ts +18 -0
  381. package/dist/runtime/secrets/managed-local-secret-store.d.ts.map +1 -0
  382. package/dist/runtime/secrets/managed-local-secret-store.js +82 -0
  383. package/dist/runtime/secrets/managed-local-secret-store.js.map +1 -0
  384. package/dist/runtime/secrets/managed-local-store.d.ts +7 -0
  385. package/dist/runtime/secrets/managed-local-store.d.ts.map +1 -1
  386. package/dist/runtime/secrets/managed-local-store.js +46 -127
  387. package/dist/runtime/secrets/managed-local-store.js.map +1 -1
  388. package/dist/runtime/sources/credentials.d.ts +2 -0
  389. package/dist/runtime/sources/credentials.d.ts.map +1 -1
  390. package/dist/runtime/sources/credentials.js +49 -0
  391. package/dist/runtime/sources/credentials.js.map +1 -1
  392. package/dist/runtime/sources/kinds/distribution.js +3 -3
  393. package/dist/runtime/sources/kinds/distribution.js.map +1 -1
  394. package/dist/runtime/sources/manifest-walk.d.ts +1 -0
  395. package/dist/runtime/sources/manifest-walk.d.ts.map +1 -1
  396. package/dist/runtime/sources/manifest-walk.js +16 -11
  397. package/dist/runtime/sources/manifest-walk.js.map +1 -1
  398. package/dist/runtime/sources/schema.d.ts.map +1 -1
  399. package/dist/runtime/sources/schema.js +51 -3
  400. package/dist/runtime/sources/schema.js.map +1 -1
  401. package/dist/runtime/store-client.d.ts +1 -1
  402. package/dist/runtime/store-client.d.ts.map +1 -1
  403. package/dist/runtime/store-client.js +2 -1
  404. package/dist/runtime/store-client.js.map +1 -1
  405. package/dist/runtime/store-submit.d.ts +31 -0
  406. package/dist/runtime/store-submit.d.ts.map +1 -0
  407. package/dist/runtime/store-submit.js +77 -0
  408. package/dist/runtime/store-submit.js.map +1 -0
  409. package/dist/runtime/supervisor.d.ts +12 -0
  410. package/dist/runtime/supervisor.d.ts.map +1 -1
  411. package/dist/runtime/supervisor.js +141 -26
  412. package/dist/runtime/supervisor.js.map +1 -1
  413. package/package.json +20 -29
  414. package/LICENSE +0 -176
  415. package/dist/lib/command-registry.d.ts +0 -5
  416. package/dist/lib/command-registry.d.ts.map +0 -1
  417. package/dist/lib/command-registry.js +0 -17
  418. package/dist/lib/command-registry.js.map +0 -1
@@ -1,11 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContainerRunner = void 0;
3
+ exports.ContainerRunner = exports.DEFAULT_CONTAINER_SERVICE_PORT = void 0;
4
4
  exports.materializeDockerEnvironment = materializeDockerEnvironment;
5
+ exports.containerImageForRosterEntry = containerImageForRosterEntry;
6
+ exports.containerNameForWorkload = containerNameForWorkload;
7
+ exports.reconcileInstallationServiceContainers = reconcileInstallationServiceContainers;
8
+ const node_crypto_1 = require("node:crypto");
9
+ const cleanup_1 = require("../cleanup");
5
10
  const paths_1 = require("../paths");
6
11
  const docker_cli_1 = require("./docker-cli");
7
12
  const health_probe_1 = require("./health-probe");
13
+ const host_platform_1 = require("./host-platform");
8
14
  const service_runner_1 = require("./service-runner");
15
+ exports.DEFAULT_CONTAINER_SERVICE_PORT = 3_000;
9
16
  function materializeDockerEnvironment(env, parentEnv = process.env) {
10
17
  const processEnv = { ...parentEnv };
11
18
  const args = [];
@@ -15,30 +22,83 @@ function materializeDockerEnvironment(env, parentEnv = process.env) {
15
22
  }
16
23
  return { args, processEnv };
17
24
  }
25
+ function containerImageForRosterEntry(entry) {
26
+ if (!entry.imageRef) {
27
+ throw new Error(`${entry.name}: no imageRef in images.lock.json — cannot run in the container substrate. ` +
28
+ `Re-resolve the edition's images.lock or use the native substrate.`);
29
+ }
30
+ return entry.imageTag
31
+ ? `${entry.imageRef}:${entry.imageTag}`
32
+ : entry.imageRef;
33
+ }
34
+ function containerNameForWorkload(installationId, workloadName) {
35
+ const normalizedInstallation = installationId
36
+ .toLowerCase()
37
+ .replace(/[^a-z0-9_.-]+/g, '-')
38
+ .replace(/^-+|-+$/g, '');
39
+ const normalizedWorkload = workloadName
40
+ .toLowerCase()
41
+ .replace(/[^a-z0-9_.-]+/g, '-')
42
+ .replace(/^-+|-+$/g, '');
43
+ if (normalizedInstallation.length === 0 || normalizedWorkload.length === 0) {
44
+ throw new Error('Container installation and workload names must be non-empty.');
45
+ }
46
+ const identityDigest = (0, node_crypto_1.createHash)('sha256')
47
+ .update(installationId)
48
+ .update('\0')
49
+ .update(workloadName)
50
+ .digest('hex')
51
+ .slice(0, 20);
52
+ return `xema-${normalizedInstallation.slice(0, 36)}-${normalizedWorkload.slice(0, 36)}-${identityDigest}`;
53
+ }
54
+ async function reconcileInstallationServiceContainers(installationId, docker = new docker_cli_1.DockerCli()) {
55
+ const existing = await docker.launcherServiceContainersStrict(installationId);
56
+ await (0, cleanup_1.runCleanupOperations)(existing.map((containerName) => ({
57
+ operation: `remove prior installation workload ${containerName}`,
58
+ run: async () => {
59
+ await docker.run(['rm', '-f', containerName]);
60
+ },
61
+ })));
62
+ }
18
63
  class ContainerRunner {
19
64
  opts;
20
65
  kind = service_runner_1.ServiceRunnerKind.Container;
21
66
  docker;
67
+ runtimePlatform;
22
68
  constructor(opts) {
23
69
  this.opts = opts;
24
70
  this.docker = new docker_cli_1.DockerCli(opts.bin ?? 'docker');
25
71
  }
72
+ hostPlatform() {
73
+ this.runtimePlatform ??= this.docker.serverPlatform();
74
+ return this.runtimePlatform;
75
+ }
26
76
  async start(input) {
27
- const { entry, env, port, readinessTimeoutMs } = input;
28
- if (!entry.imageRef) {
29
- throw new Error(`${entry.name}: no imageRef in images.lock.json — cannot run in the container substrate. ` +
30
- `Re-resolve the edition's images.lock or use the native substrate.`);
77
+ const { entry, env, installationId, planHash, executionId, port, readinessTimeoutMs, } = input;
78
+ const containerName = containerNameForWorkload(installationId, entry.name);
79
+ const image = containerImageForRosterEntry(entry);
80
+ const platform = (0, host_platform_1.selectEntryRunPlatform)(entry, await this.hostPlatform());
81
+ if (platform === undefined) {
82
+ throw new Error(`${entry.name}: no runnable image platform resolved for "${image}" — refusing to ` +
83
+ 'start a container whose architecture the launcher cannot pin.');
31
84
  }
32
- const image = entry.imageTag
33
- ? `${entry.imageRef}:${entry.imageTag}`
34
- : entry.imageRef;
35
85
  const args = [
36
86
  'run',
37
87
  '-d',
88
+ '--platform',
89
+ (0, host_platform_1.formatPlatform)(platform),
38
90
  '--name',
39
- entry.name,
91
+ containerName,
40
92
  '--label',
41
93
  `${docker_cli_1.LAUNCHER_LABEL}=service`,
94
+ '--label',
95
+ `${docker_cli_1.INSTALLATION_ID_LABEL}=${installationId}`,
96
+ '--label',
97
+ `${docker_cli_1.PLAN_HASH_LABEL}=${planHash}`,
98
+ '--label',
99
+ `${docker_cli_1.EXECUTION_ID_LABEL}=${executionId}`,
100
+ '--label',
101
+ `${docker_cli_1.WORKLOAD_NAME_LABEL}=${entry.name}`,
42
102
  '--network',
43
103
  this.opts.network,
44
104
  '--restart',
@@ -57,7 +117,12 @@ class ContainerRunner {
57
117
  await (0, health_probe_1.waitForReady)(url, readinessTimeoutMs);
58
118
  }
59
119
  catch (err) {
60
- await this.docker.runQuiet(['rm', '-f', entry.name]);
120
+ try {
121
+ await this.docker.run(['rm', '-f', containerName]);
122
+ }
123
+ catch (cleanupError) {
124
+ throw (0, cleanup_1.combineOperationAndCleanupErrors)(`readiness check for ${entry.name}`, err, cleanupError);
125
+ }
61
126
  throw err;
62
127
  }
63
128
  return {
@@ -65,13 +130,25 @@ class ContainerRunner {
65
130
  url,
66
131
  handle: containerId.slice(0, 12),
67
132
  close: async (graceMs) => {
68
- await this.docker.runQuiet([
69
- 'stop',
70
- '-t',
71
- String(Math.ceil(graceMs / 1000)),
72
- entry.name,
133
+ await (0, cleanup_1.runCleanupOperations)([
134
+ {
135
+ operation: `stop container ${entry.name}`,
136
+ run: async () => {
137
+ await this.docker.run([
138
+ 'stop',
139
+ '-t',
140
+ String(Math.ceil(graceMs / 1000)),
141
+ containerName,
142
+ ]);
143
+ },
144
+ },
145
+ {
146
+ operation: `remove container ${entry.name}`,
147
+ run: async () => {
148
+ await this.docker.run(['rm', '-f', containerName]);
149
+ },
150
+ },
73
151
  ]);
74
- await this.docker.runQuiet(['rm', '-f', entry.name]);
75
152
  },
76
153
  };
77
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"container-runner.js","sourceRoot":"","sources":["../../../src/runtime/runner/container-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container-runner.js","sourceRoot":"","sources":["../../../src/runtime/runner/container-runner.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,44 @@
1
+ import { type ResolvedPlatform } from './host-platform';
2
+ import type { StreamOutcome } from './stream-outcome';
1
3
  export declare const LAUNCHER_LABEL = "xema.launcher";
4
+ export declare const INSTALLATION_ID_LABEL = "xema.installation-id";
5
+ export declare const PLAN_HASH_LABEL = "xema.plan-hash";
6
+ export declare const EXECUTION_ID_LABEL = "xema.execution-id";
7
+ export declare const WORKLOAD_NAME_LABEL = "xema.workload-name";
2
8
  export interface DockerRunOptions {
3
9
  readonly env?: NodeJS.ProcessEnv;
10
+ readonly timeoutMs?: number;
11
+ }
12
+ export interface DockerContainerState {
13
+ readonly name: string;
14
+ readonly containerName: string;
15
+ readonly image: string;
16
+ readonly installationId?: string;
17
+ readonly planHash?: string;
18
+ readonly executionId?: string;
19
+ readonly publishedPorts: Readonly<Record<number, number>>;
20
+ readonly running: boolean;
21
+ readonly health?: string;
4
22
  }
5
23
  export declare class DockerCli {
6
24
  private readonly bin;
7
25
  constructor(bin?: string);
26
+ get binary(): string;
8
27
  run(args: readonly string[], opts?: DockerRunOptions): Promise<string>;
9
- stream(args: readonly string[]): Promise<void>;
10
- runQuiet(args: readonly string[]): Promise<string>;
28
+ stream(args: readonly string[]): Promise<StreamOutcome>;
29
+ runQuiet(args: readonly string[], opts?: DockerRunOptions): Promise<string>;
11
30
  available(): Promise<boolean>;
31
+ serverVersion(): Promise<string>;
32
+ serverPlatform(): Promise<ResolvedPlatform>;
33
+ manifestInspect(imageRef: string): Promise<string>;
34
+ login(host: string, username: string, secret: string): Promise<void>;
35
+ localImageRefs(): Promise<ReadonlySet<string>>;
12
36
  ensureNetwork(name: string): Promise<void>;
13
37
  launcherContainers(): Promise<string[]>;
38
+ launcherContainersStrict(installationId?: string): Promise<string[]>;
39
+ launcherInfraContainersStrict(installationId?: string): Promise<string[]>;
40
+ launcherServiceContainersStrict(installationId?: string): Promise<string[]>;
41
+ inspectContainers(names: readonly string[]): Promise<readonly DockerContainerState[]>;
14
42
  volumeExists(name: string): Promise<boolean>;
15
43
  }
16
44
  //# sourceMappingURL=docker-cli.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker-cli.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/docker-cli.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,GAAE,MAAiB;IAEnD,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAgC1E,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IASxC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IASlD,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAU7B,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1C,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBvC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAcnD"}
1
+ {"version":3,"file":"docker-cli.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/docker-cli.ts"],"names":[],"mappings":"AAEA,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUtD,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,qBAAqB,yBAAyB,CAAC;AAC5D,eAAO,MAAM,eAAe,mBAAmB,CAAC;AAChD,eAAO,MAAM,kBAAkB,sBAAsB,CAAC;AACtD,eAAO,MAAM,mBAAmB,uBAAuB,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IAEnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAwBD,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,GAAG;gBAAH,GAAG,GAAE,MAAiB;IAGnD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,GAAG,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmC1E,MAAM,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAWjD,QAAQ,CACZ,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC;IASZ,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAS7B,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAwBhC,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAiC3C,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiBxD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyC9D,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAc9C,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1C,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBvC,wBAAwB,CAC5B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBd,6BAA6B,CACjC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBd,+BAA+B,CACnC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,MAAM,EAAE,CAAC;IAyBd,iBAAiB,CACrB,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,OAAO,CAAC,SAAS,oBAAoB,EAAE,CAAC;IAerC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAiBnD"}
@@ -1,18 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DockerCli = exports.LAUNCHER_LABEL = void 0;
3
+ exports.DockerCli = exports.WORKLOAD_NAME_LABEL = exports.EXECUTION_ID_LABEL = exports.PLAN_HASH_LABEL = exports.INSTALLATION_ID_LABEL = exports.LAUNCHER_LABEL = void 0;
4
4
  const node_child_process_1 = require("node:child_process");
5
+ const host_platform_1 = require("./host-platform");
5
6
  exports.LAUNCHER_LABEL = 'xema.launcher';
7
+ exports.INSTALLATION_ID_LABEL = 'xema.installation-id';
8
+ exports.PLAN_HASH_LABEL = 'xema.plan-hash';
9
+ exports.EXECUTION_ID_LABEL = 'xema.execution-id';
10
+ exports.WORKLOAD_NAME_LABEL = 'xema.workload-name';
11
+ const DIAGNOSTIC_TIMEOUT_MS = 2_000;
12
+ const TEARDOWN_DISCOVERY_TIMEOUT_MS = 10_000;
13
+ const REGISTRY_PROBE_TIMEOUT_MS = 20_000;
14
+ const SERVER_PLATFORM_TEMPLATES = [
15
+ '{{.Server.Os}}/{{.Server.Arch}}',
16
+ '{{.Server.OsArch}}',
17
+ ];
6
18
  class DockerCli {
7
19
  bin;
8
20
  constructor(bin = 'docker') {
9
21
  this.bin = bin;
10
22
  }
23
+ get binary() {
24
+ return this.bin;
25
+ }
11
26
  run(args, opts = {}) {
12
27
  return new Promise((resolve, reject) => {
13
28
  (0, node_child_process_1.execFile)(this.bin, [...args], {
14
29
  maxBuffer: 32 * 1024 * 1024,
15
30
  ...(opts.env !== undefined ? { env: opts.env } : {}),
31
+ ...(opts.timeoutMs === undefined
32
+ ? {}
33
+ : { timeout: opts.timeoutMs, killSignal: 'SIGKILL' }),
16
34
  }, (err, stdout, stderr) => {
17
35
  if (err) {
18
36
  reject(new Error(`${this.bin} ${args.join(' ')} failed: ${stderr || err.message}`));
@@ -26,25 +44,90 @@ class DockerCli {
26
44
  return new Promise((resolve, reject) => {
27
45
  const child = (0, node_child_process_1.spawn)(this.bin, [...args], { stdio: 'inherit' });
28
46
  child.on('error', reject);
29
- child.on('exit', () => resolve());
47
+ child.on('exit', (code, signal) => {
48
+ resolve({ code, signal });
49
+ });
30
50
  });
31
51
  }
32
- async runQuiet(args) {
52
+ async runQuiet(args, opts = {}) {
33
53
  try {
34
- return await this.run(args);
54
+ return await this.run(args, opts);
35
55
  }
36
56
  catch {
37
57
  return '';
38
58
  }
39
59
  }
40
60
  async available() {
41
- const out = await this.runQuiet([
42
- 'version',
43
- '--format',
44
- '{{.Server.Version}}',
45
- ]);
61
+ const out = await this.runQuiet(['version', '--format', '{{.Server.Version}}'], { timeoutMs: DIAGNOSTIC_TIMEOUT_MS });
46
62
  return out.trim().length > 0;
47
63
  }
64
+ async serverVersion() {
65
+ const out = (await this.run(['version', '--format', '{{.Server.Version}}'], {
66
+ timeoutMs: DIAGNOSTIC_TIMEOUT_MS,
67
+ })).trim();
68
+ if (out.length === 0) {
69
+ throw new Error(`${this.bin} version --format '{{.Server.Version}}' returned no server version — ` +
70
+ 'the runtime daemon is not answering.');
71
+ }
72
+ return out;
73
+ }
74
+ async serverPlatform() {
75
+ const attempts = [];
76
+ for (const template of SERVER_PLATFORM_TEMPLATES) {
77
+ const context = `${this.bin} version --format '${template}'`;
78
+ let raw;
79
+ try {
80
+ raw = await this.run(['version', '--format', template], {
81
+ timeoutMs: DIAGNOSTIC_TIMEOUT_MS,
82
+ });
83
+ }
84
+ catch (err) {
85
+ attempts.push(`${context}: ${err instanceof Error ? err.message : String(err)}`);
86
+ continue;
87
+ }
88
+ try {
89
+ return (0, host_platform_1.parsePlatformString)(raw, context);
90
+ }
91
+ catch (err) {
92
+ attempts.push(`${context}: ${err instanceof Error ? err.message : String(err)}`);
93
+ }
94
+ }
95
+ throw new Error(`Could not determine the native platform of the container runtime ` +
96
+ `\`${this.bin}\`. Attempts:\n${attempts.map((a) => ` - ${a}`).join('\n')}`);
97
+ }
98
+ async manifestInspect(imageRef) {
99
+ return this.run(['manifest', 'inspect', imageRef], {
100
+ timeoutMs: REGISTRY_PROBE_TIMEOUT_MS,
101
+ });
102
+ }
103
+ login(host, username, secret) {
104
+ return new Promise((resolve, reject) => {
105
+ const child = (0, node_child_process_1.spawn)(this.bin, ['login', host, '--username', username, '--password-stdin'], { stdio: ['pipe', 'pipe', 'pipe'] });
106
+ let stderr = '';
107
+ child.stderr.setEncoding('utf8');
108
+ child.stderr.on('data', (chunk) => {
109
+ stderr += chunk;
110
+ });
111
+ child.stdout.resume();
112
+ child.on('error', reject);
113
+ child.on('close', (code) => {
114
+ if (code === 0) {
115
+ resolve();
116
+ return;
117
+ }
118
+ reject(new Error(`${this.bin} login ${host} failed (exit ${String(code)}): ${stderr.trim()}`));
119
+ });
120
+ child.stdin.on('error', reject);
121
+ child.stdin.end(secret);
122
+ });
123
+ }
124
+ async localImageRefs() {
125
+ const out = await this.run(['images', '--format', '{{.Repository}}:{{.Tag}}'], { timeoutMs: TEARDOWN_DISCOVERY_TIMEOUT_MS });
126
+ return new Set(out
127
+ .split('\n')
128
+ .map((line) => line.trim())
129
+ .filter((line) => line.length > 0 && !line.includes('<none>')));
130
+ }
48
131
  async ensureNetwork(name) {
49
132
  const existing = await this.runQuiet([
50
133
  'network',
@@ -75,15 +158,97 @@ class DockerCli {
75
158
  .map((l) => l.trim())
76
159
  .filter((l) => l.length > 0);
77
160
  }
161
+ async launcherContainersStrict(installationId) {
162
+ const args = [
163
+ 'ps',
164
+ '-a',
165
+ '--filter',
166
+ `label=${exports.LAUNCHER_LABEL}`,
167
+ ...(installationId === undefined
168
+ ? []
169
+ : [
170
+ '--filter',
171
+ `label=${exports.INSTALLATION_ID_LABEL}=${installationId}`,
172
+ ]),
173
+ '--format',
174
+ '{{.Names}}',
175
+ ];
176
+ const out = await this.run(args, {
177
+ timeoutMs: TEARDOWN_DISCOVERY_TIMEOUT_MS,
178
+ });
179
+ return out
180
+ .split('\n')
181
+ .map((line) => line.trim())
182
+ .filter((line) => line.length > 0);
183
+ }
184
+ async launcherInfraContainersStrict(installationId) {
185
+ const args = [
186
+ 'ps',
187
+ '-a',
188
+ '--filter',
189
+ `label=${exports.LAUNCHER_LABEL}=infra`,
190
+ ...(installationId === undefined
191
+ ? []
192
+ : [
193
+ '--filter',
194
+ `label=${exports.INSTALLATION_ID_LABEL}=${installationId}`,
195
+ ]),
196
+ '--format',
197
+ '{{.Names}}',
198
+ ];
199
+ const out = await this.run(args, {
200
+ timeoutMs: TEARDOWN_DISCOVERY_TIMEOUT_MS,
201
+ });
202
+ return out
203
+ .split('\n')
204
+ .map((line) => line.trim())
205
+ .filter((line) => line.length > 0);
206
+ }
207
+ async launcherServiceContainersStrict(installationId) {
208
+ const args = [
209
+ 'ps',
210
+ '-a',
211
+ '--filter',
212
+ `label=${exports.LAUNCHER_LABEL}=service`,
213
+ ...(installationId === undefined
214
+ ? []
215
+ : [
216
+ '--filter',
217
+ `label=${exports.INSTALLATION_ID_LABEL}=${installationId}`,
218
+ ]),
219
+ '--format',
220
+ '{{.Names}}',
221
+ ];
222
+ const out = await this.run(args, {
223
+ timeoutMs: DIAGNOSTIC_TIMEOUT_MS,
224
+ });
225
+ return out
226
+ .split('\n')
227
+ .map((line) => line.trim())
228
+ .filter((line) => line.length > 0);
229
+ }
230
+ async inspectContainers(names) {
231
+ if (names.length === 0) {
232
+ return [];
233
+ }
234
+ const raw = await this.run(['inspect', ...names], {
235
+ timeoutMs: DIAGNOSTIC_TIMEOUT_MS,
236
+ });
237
+ const parsed = JSON.parse(raw);
238
+ if (!Array.isArray(parsed)) {
239
+ throw new Error('Container inspect returned a non-array payload.');
240
+ }
241
+ return parsed.map((value) => parseContainerState(value));
242
+ }
78
243
  async volumeExists(name) {
79
- const out = await this.runQuiet([
244
+ const out = await this.run([
80
245
  'volume',
81
246
  'ls',
82
247
  '--filter',
83
248
  `name=^${name}$`,
84
249
  '--format',
85
250
  '{{.Name}}',
86
- ]);
251
+ ], { timeoutMs: TEARDOWN_DISCOVERY_TIMEOUT_MS });
87
252
  return out
88
253
  .split('\n')
89
254
  .map((line) => line.trim())
@@ -91,4 +256,103 @@ class DockerCli {
91
256
  }
92
257
  }
93
258
  exports.DockerCli = DockerCli;
259
+ function parseContainerState(value) {
260
+ if (typeof value !== 'object' || value === null) {
261
+ throw new Error('Container inspect returned an invalid entry.');
262
+ }
263
+ const record = value;
264
+ const rawName = record.Name;
265
+ const config = record.Config;
266
+ const state = record.State;
267
+ if (typeof rawName !== 'string' ||
268
+ rawName.length < 2 ||
269
+ typeof config !== 'object' ||
270
+ config === null ||
271
+ typeof state !== 'object' ||
272
+ state === null) {
273
+ throw new Error('Container inspect entry is missing Name or State.');
274
+ }
275
+ const stateRecord = state;
276
+ const configRecord = config;
277
+ const networkSettings = record.NetworkSettings;
278
+ if (typeof configRecord.Image !== 'string') {
279
+ throw new Error(`Container inspect entry ${rawName} has no image identity.`);
280
+ }
281
+ if (typeof stateRecord.Running !== 'boolean') {
282
+ throw new Error(`Container inspect entry ${rawName} has no Running state.`);
283
+ }
284
+ if (typeof networkSettings !== 'object' || networkSettings === null) {
285
+ throw new Error(`Container inspect entry ${rawName} has no network settings.`);
286
+ }
287
+ const publishedPorts = parsePublishedPorts(networkSettings.Ports, rawName);
288
+ const healthRecord = typeof stateRecord.Health === 'object' && stateRecord.Health !== null
289
+ ? stateRecord.Health
290
+ : undefined;
291
+ const health = healthRecord === undefined
292
+ ? undefined
293
+ : typeof healthRecord.Status === 'string'
294
+ ? healthRecord.Status
295
+ : undefined;
296
+ const labelsRecord = typeof configRecord.Labels === 'object' && configRecord.Labels !== null
297
+ ? configRecord.Labels
298
+ : undefined;
299
+ const installationId = labelsRecord !== undefined &&
300
+ typeof labelsRecord[exports.INSTALLATION_ID_LABEL] === 'string'
301
+ ? labelsRecord[exports.INSTALLATION_ID_LABEL]
302
+ : undefined;
303
+ const planHash = labelsRecord !== undefined &&
304
+ typeof labelsRecord[exports.PLAN_HASH_LABEL] === 'string'
305
+ ? labelsRecord[exports.PLAN_HASH_LABEL]
306
+ : undefined;
307
+ const executionId = labelsRecord !== undefined &&
308
+ typeof labelsRecord[exports.EXECUTION_ID_LABEL] === 'string'
309
+ ? labelsRecord[exports.EXECUTION_ID_LABEL]
310
+ : undefined;
311
+ const workloadName = labelsRecord !== undefined &&
312
+ typeof labelsRecord[exports.WORKLOAD_NAME_LABEL] === 'string'
313
+ ? labelsRecord[exports.WORKLOAD_NAME_LABEL]
314
+ : undefined;
315
+ if (workloadName === undefined || workloadName.length === 0) {
316
+ throw new Error(`Container inspect entry ${rawName} has no logical workload identity.`);
317
+ }
318
+ return {
319
+ name: workloadName,
320
+ containerName: rawName.slice(1),
321
+ image: configRecord.Image,
322
+ running: stateRecord.Running,
323
+ ...(installationId === undefined ? {} : { installationId }),
324
+ ...(planHash === undefined ? {} : { planHash }),
325
+ ...(executionId === undefined ? {} : { executionId }),
326
+ publishedPorts,
327
+ ...(health === undefined ? {} : { health }),
328
+ };
329
+ }
330
+ function parsePublishedPorts(value, rawName) {
331
+ if (typeof value !== 'object' || value === null) {
332
+ throw new Error(`Container inspect entry ${rawName} has no published port bindings.`);
333
+ }
334
+ const result = {};
335
+ for (const [containerPortSpec, bindings] of Object.entries(value)) {
336
+ const match = /^(\d+)\/tcp$/.exec(containerPortSpec);
337
+ if (match === null || !Array.isArray(bindings) || bindings.length !== 1) {
338
+ continue;
339
+ }
340
+ const binding = bindings[0];
341
+ if (typeof binding !== 'object' || binding === null) {
342
+ continue;
343
+ }
344
+ const hostPort = binding.HostPort;
345
+ const containerPort = Number.parseInt(match[1], 10);
346
+ const parsedHostPort = typeof hostPort === 'string'
347
+ ? Number.parseInt(hostPort, 10)
348
+ : Number.NaN;
349
+ if (Number.isInteger(containerPort) &&
350
+ containerPort > 0 &&
351
+ Number.isInteger(parsedHostPort) &&
352
+ parsedHostPort > 0) {
353
+ result[containerPort] = parsedHostPort;
354
+ }
355
+ }
356
+ return result;
357
+ }
94
358
  //# sourceMappingURL=docker-cli.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"docker-cli.js","sourceRoot":"","sources":["../../../src/runtime/runner/docker-cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"docker-cli.js","sourceRoot":"","sources":["../../../src/runtime/runner/docker-cli.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,3 @@
1
1
  export declare function waitForReady(baseUrl: string, timeoutMs: number, intervalMs?: number, isAlive?: () => boolean): Promise<void>;
2
+ export declare function probeReadyOnce(url: string): Promise<boolean>;
2
3
  //# sourceMappingURL=health-probe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"health-probe.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/health-probe.ts"],"names":[],"mappings":"AAMA,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,SAAM,EAChB,OAAO,CAAC,EAAE,MAAM,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC,CAcf"}
1
+ {"version":3,"file":"health-probe.d.ts","sourceRoot":"","sources":["../../../src/runtime/runner/health-probe.ts"],"names":[],"mappings":"AAMA,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,UAAU,SAAM,EAChB,OAAO,CAAC,EAAE,MAAM,OAAO,GACtB,OAAO,CAAC,IAAI,CAAC,CAcf;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAY5D"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.waitForReady = waitForReady;
4
+ exports.probeReadyOnce = probeReadyOnce;
4
5
  const node_http_1 = require("node:http");
5
6
  async function waitForReady(baseUrl, timeoutMs, intervalMs = 300, isAlive) {
6
7
  const deadline = Date.now() + timeoutMs;
@@ -8,7 +9,7 @@ async function waitForReady(baseUrl, timeoutMs, intervalMs = 300, isAlive) {
8
9
  if (isAlive && !isAlive()) {
9
10
  throw new Error(`process exited before becoming ready`);
10
11
  }
11
- if (await probeOnce(`${baseUrl}/health/ready`)) {
12
+ if (await probeReadyOnce(`${baseUrl}/health/ready`)) {
12
13
  return;
13
14
  }
14
15
  if (Date.now() >= deadline) {
@@ -17,7 +18,7 @@ async function waitForReady(baseUrl, timeoutMs, intervalMs = 300, isAlive) {
17
18
  await delay(intervalMs);
18
19
  }
19
20
  }
20
- function probeOnce(url) {
21
+ function probeReadyOnce(url) {
21
22
  return new Promise((resolve) => {
22
23
  const req = (0, node_http_1.get)(url, (res) => {
23
24
  res.resume();
@@ -1 +1 @@
1
- {"version":3,"file":"health-probe.js","sourceRoot":"","sources":["../../../src/runtime/runner/health-probe.ts"],"names":[],"mappings":";;AAMA,oCAmBC;AAzBD,yCAA2C;AAMpC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,SAAiB,EACjB,UAAU,GAAG,GAAG,EAChB,OAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC;QACR,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,SAAS,CAAC,GAAG,OAAO,eAAe,CAAC,EAAE,CAAC;YAC/C,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,SAAS,CAAC,OAAO,OAAO,gBAAgB,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,GAAW;IAC5B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/B,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;YACxB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"health-probe.js","sourceRoot":"","sources":["../../../src/runtime/runner/health-probe.ts"],"names":[],"mappings":";;AAMA,oCAmBC;AAED,wCAYC;AAvCD,yCAA2C;AAMpC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,SAAiB,EACjB,UAAU,GAAG,GAAG,EAChB,OAAuB;IAEvB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IACxC,SAAS,CAAC;QACR,IAAI,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,MAAM,cAAc,CAAC,GAAG,OAAO,eAAe,CAAC,EAAE,CAAC;YACpD,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,CAAC,SAAS,CAAC,OAAO,OAAO,gBAAgB,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAAC,GAAW;IACxC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,GAAG,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE;YAC/B,GAAG,CAAC,MAAM,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE;YACxB,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,KAAK,CAAC,EAAU;IACvB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC"}