@omnitron-dev/omnitron 0.3.3 → 0.4.6

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 (358) hide show
  1. package/README.md +296 -6
  2. package/bin/{pnpmfile-sdk.mjs → pnpmfile-sdk.js} +19 -1
  3. package/bin/sdk.d.ts +19 -0
  4. package/bin/sdk.js +932 -0
  5. package/dist/BUILD.json +2 -2
  6. package/dist/cli/omnitron.js +68 -20
  7. package/dist/cli/omnitron.js.map +1 -1
  8. package/dist/commands/infra.d.ts +8 -2
  9. package/dist/commands/infra.d.ts.map +1 -1
  10. package/dist/commands/infra.js +52 -59
  11. package/dist/commands/infra.js.map +1 -1
  12. package/dist/commands/node.d.ts.map +1 -1
  13. package/dist/commands/node.js +8 -1
  14. package/dist/commands/node.js.map +1 -1
  15. package/dist/commands/release-store.d.ts.map +1 -1
  16. package/dist/commands/release-store.js +6 -9
  17. package/dist/commands/release-store.js.map +1 -1
  18. package/dist/commands/release.d.ts +4 -1
  19. package/dist/commands/release.d.ts.map +1 -1
  20. package/dist/commands/release.js +125 -5
  21. package/dist/commands/release.js.map +1 -1
  22. package/dist/commands/stack.d.ts +3 -6
  23. package/dist/commands/stack.d.ts.map +1 -1
  24. package/dist/commands/stack.js +51 -9
  25. package/dist/commands/stack.js.map +1 -1
  26. package/dist/commands/status.d.ts.map +1 -1
  27. package/dist/commands/status.js +1 -0
  28. package/dist/commands/status.js.map +1 -1
  29. package/dist/config/saved.d.ts +3 -0
  30. package/dist/config/saved.d.ts.map +1 -1
  31. package/dist/config/saved.js +1 -0
  32. package/dist/config/saved.js.map +1 -1
  33. package/dist/config/types.d.ts +4 -0
  34. package/dist/config/types.d.ts.map +1 -1
  35. package/dist/daemon/daemon-client.d.ts +3 -15
  36. package/dist/daemon/daemon-client.d.ts.map +1 -1
  37. package/dist/daemon/daemon-client.js +4 -0
  38. package/dist/daemon/daemon-client.js.map +1 -1
  39. package/dist/daemon/daemon.d.ts +5 -11
  40. package/dist/daemon/daemon.d.ts.map +1 -1
  41. package/dist/daemon/daemon.js +58 -48
  42. package/dist/daemon/daemon.js.map +1 -1
  43. package/dist/daemon/daemon.rpc-service.d.ts +3 -41
  44. package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
  45. package/dist/daemon/daemon.rpc-service.js +50 -117
  46. package/dist/daemon/daemon.rpc-service.js.map +1 -1
  47. package/dist/daemon/darwin-owner-evidence.js +1 -1
  48. package/dist/daemon/darwin-owner-evidence.js.map +1 -1
  49. package/dist/daemon/execution-capabilities.d.ts +1 -1
  50. package/dist/daemon/execution-capabilities.d.ts.map +1 -1
  51. package/dist/daemon/execution-capabilities.js +3 -3
  52. package/dist/daemon/execution-capabilities.js.map +1 -1
  53. package/dist/daemon/execution-client.d.ts +5 -1
  54. package/dist/daemon/execution-client.d.ts.map +1 -1
  55. package/dist/daemon/execution-client.js +45 -19
  56. package/dist/daemon/execution-client.js.map +1 -1
  57. package/dist/daemon/execution-host.d.ts +4 -11
  58. package/dist/daemon/execution-host.d.ts.map +1 -1
  59. package/dist/daemon/execution-host.js +3 -9
  60. package/dist/daemon/execution-host.js.map +1 -1
  61. package/dist/daemon/execution-owner.d.ts.map +1 -1
  62. package/dist/daemon/execution-owner.js +2 -16
  63. package/dist/daemon/execution-owner.js.map +1 -1
  64. package/dist/daemon/execution-shutdown.d.ts +1 -1
  65. package/dist/daemon/execution-shutdown.d.ts.map +1 -1
  66. package/dist/daemon/managed-owner-build.d.ts +4 -0
  67. package/dist/daemon/managed-owner-build.d.ts.map +1 -1
  68. package/dist/daemon/managed-owner-build.js +14 -2
  69. package/dist/daemon/managed-owner-build.js.map +1 -1
  70. package/dist/daemon/managed-runtime.js +1 -1
  71. package/dist/daemon/managed-runtime.js.map +1 -1
  72. package/dist/daemon/owner-reconciliation.d.ts.map +1 -1
  73. package/dist/daemon/owner-reconciliation.js +1 -2
  74. package/dist/daemon/owner-reconciliation.js.map +1 -1
  75. package/dist/daemon/startup-config.d.ts +1 -0
  76. package/dist/daemon/startup-config.d.ts.map +1 -1
  77. package/dist/daemon/system-guardian-cgroup.js +1 -1
  78. package/dist/daemon/system-guardian-cgroup.js.map +1 -1
  79. package/dist/infrastructure/container-runtime.d.ts +8 -0
  80. package/dist/infrastructure/container-runtime.d.ts.map +1 -1
  81. package/dist/infrastructure/container-runtime.js +5 -0
  82. package/dist/infrastructure/container-runtime.js.map +1 -1
  83. package/dist/infrastructure/existing-containers.d.ts +25 -0
  84. package/dist/infrastructure/existing-containers.d.ts.map +1 -0
  85. package/dist/infrastructure/existing-containers.js +183 -0
  86. package/dist/infrastructure/existing-containers.js.map +1 -0
  87. package/dist/infrastructure/infrastructure.service.d.ts +19 -1
  88. package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
  89. package/dist/infrastructure/infrastructure.service.js +136 -17
  90. package/dist/infrastructure/infrastructure.service.js.map +1 -1
  91. package/dist/infrastructure/presets/postgres.js +1 -1
  92. package/dist/infrastructure/presets/postgres.js.map +1 -1
  93. package/dist/infrastructure/presets/registry.d.ts.map +1 -1
  94. package/dist/infrastructure/presets/registry.js +11 -19
  95. package/dist/infrastructure/presets/registry.js.map +1 -1
  96. package/dist/infrastructure/stack-infra-manager.d.ts +11 -1
  97. package/dist/infrastructure/stack-infra-manager.d.ts.map +1 -1
  98. package/dist/infrastructure/stack-infra-manager.js +79 -8
  99. package/dist/infrastructure/stack-infra-manager.js.map +1 -1
  100. package/dist/mcp/tool-groups/infra.tools.d.ts.map +1 -1
  101. package/dist/mcp/tool-groups/infra.tools.js +4 -1
  102. package/dist/mcp/tool-groups/infra.tools.js.map +1 -1
  103. package/dist/monitoring/log-journal.d.ts.map +1 -1
  104. package/dist/monitoring/log-journal.js +1 -2
  105. package/dist/monitoring/log-journal.js.map +1 -1
  106. package/dist/operations.d.ts +1 -0
  107. package/dist/operations.d.ts.map +1 -1
  108. package/dist/operations.js +1 -0
  109. package/dist/operations.js.map +1 -1
  110. package/dist/orchestrator/app-name.d.ts +33 -0
  111. package/dist/orchestrator/app-name.d.ts.map +1 -0
  112. package/dist/orchestrator/app-name.js +68 -0
  113. package/dist/orchestrator/app-name.js.map +1 -0
  114. package/dist/orchestrator/bootstrap-loader.d.ts +2 -0
  115. package/dist/orchestrator/bootstrap-loader.d.ts.map +1 -1
  116. package/dist/orchestrator/bootstrap-loader.js +2 -1
  117. package/dist/orchestrator/bootstrap-loader.js.map +1 -1
  118. package/dist/orchestrator/classic-launcher.d.ts.map +1 -1
  119. package/dist/orchestrator/classic-launcher.js +2 -1
  120. package/dist/orchestrator/classic-launcher.js.map +1 -1
  121. package/dist/orchestrator/execution-contract.d.ts +2 -3
  122. package/dist/orchestrator/execution-contract.d.ts.map +1 -1
  123. package/dist/orchestrator/file-watcher.d.ts +11 -23
  124. package/dist/orchestrator/file-watcher.d.ts.map +1 -1
  125. package/dist/orchestrator/file-watcher.js +57 -42
  126. package/dist/orchestrator/file-watcher.js.map +1 -1
  127. package/dist/orchestrator/orchestrator.service.d.ts +11 -31
  128. package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
  129. package/dist/orchestrator/orchestrator.service.js +127 -109
  130. package/dist/orchestrator/orchestrator.service.js.map +1 -1
  131. package/dist/project/bootstrap-metadata.d.ts +1 -1
  132. package/dist/project/bootstrap-metadata.d.ts.map +1 -1
  133. package/dist/project/bootstrap-metadata.js +3 -2
  134. package/dist/project/bootstrap-metadata.js.map +1 -1
  135. package/dist/project/node-stack-stop.d.ts +2 -1
  136. package/dist/project/node-stack-stop.d.ts.map +1 -1
  137. package/dist/project/node-stack-stop.js +5 -1
  138. package/dist/project/node-stack-stop.js.map +1 -1
  139. package/dist/project/stack-diagnosis.d.ts.map +1 -1
  140. package/dist/project/stack-diagnosis.js +2 -3
  141. package/dist/project/stack-diagnosis.js.map +1 -1
  142. package/dist/release/artifact-store.d.ts +42 -7
  143. package/dist/release/artifact-store.d.ts.map +1 -1
  144. package/dist/release/artifact-store.js +176 -62
  145. package/dist/release/artifact-store.js.map +1 -1
  146. package/dist/release/closure-library-path.d.ts +8 -2
  147. package/dist/release/closure-library-path.d.ts.map +1 -1
  148. package/dist/release/closure-library-path.js +72 -28
  149. package/dist/release/closure-library-path.js.map +1 -1
  150. package/dist/release/configured-store.d.ts +6 -0
  151. package/dist/release/configured-store.d.ts.map +1 -0
  152. package/dist/release/configured-store.js +54 -0
  153. package/dist/release/configured-store.js.map +1 -0
  154. package/dist/release/load.d.ts +3 -0
  155. package/dist/release/load.d.ts.map +1 -1
  156. package/dist/release/load.js +8 -2
  157. package/dist/release/load.js.map +1 -1
  158. package/dist/release/local-installation.d.ts +2 -0
  159. package/dist/release/local-installation.d.ts.map +1 -1
  160. package/dist/release/local-installation.js +1 -1
  161. package/dist/release/local-installation.js.map +1 -1
  162. package/dist/release/portable-archive.d.ts +3 -0
  163. package/dist/release/portable-archive.d.ts.map +1 -1
  164. package/dist/release/portable-archive.js +13 -7
  165. package/dist/release/portable-archive.js.map +1 -1
  166. package/dist/release/registry-framework.d.ts +25 -0
  167. package/dist/release/registry-framework.d.ts.map +1 -1
  168. package/dist/release/registry-framework.js +51 -3
  169. package/dist/release/registry-framework.js.map +1 -1
  170. package/dist/release/target-runtime.d.ts +4 -0
  171. package/dist/release/target-runtime.d.ts.map +1 -1
  172. package/dist/release/target-runtime.js +9 -0
  173. package/dist/release/target-runtime.js.map +1 -1
  174. package/dist/services/host-upgrade.d.ts +2 -0
  175. package/dist/services/host-upgrade.d.ts.map +1 -1
  176. package/dist/services/host-upgrade.js +6 -2
  177. package/dist/services/host-upgrade.js.map +1 -1
  178. package/dist/services/infrastructure.rpc-service.d.ts +14 -2
  179. package/dist/services/infrastructure.rpc-service.d.ts.map +1 -1
  180. package/dist/services/infrastructure.rpc-service.js +128 -17
  181. package/dist/services/infrastructure.rpc-service.js.map +1 -1
  182. package/dist/services/kernel-rollout.service.d.ts.map +1 -1
  183. package/dist/services/kernel-rollout.service.js +1 -2
  184. package/dist/services/kernel-rollout.service.js.map +1 -1
  185. package/dist/services/migration-process.d.ts +1 -0
  186. package/dist/services/migration-process.d.ts.map +1 -1
  187. package/dist/services/migration-process.js +4 -2
  188. package/dist/services/migration-process.js.map +1 -1
  189. package/dist/services/node-deploy-lease.d.ts +4 -1
  190. package/dist/services/node-deploy-lease.d.ts.map +1 -1
  191. package/dist/services/node-deploy-lease.js +29 -4
  192. package/dist/services/node-deploy-lease.js.map +1 -1
  193. package/dist/services/node-manager.service.d.ts +5 -25
  194. package/dist/services/node-manager.service.d.ts.map +1 -1
  195. package/dist/services/node-manager.service.js +150 -139
  196. package/dist/services/node-manager.service.js.map +1 -1
  197. package/dist/services/pipeline-definition.d.ts.map +1 -1
  198. package/dist/services/pipeline-definition.js +32 -6
  199. package/dist/services/pipeline-definition.js.map +1 -1
  200. package/dist/services/pipeline.service.d.ts +7 -1
  201. package/dist/services/pipeline.service.d.ts.map +1 -1
  202. package/dist/services/pipeline.service.js +106 -13
  203. package/dist/services/pipeline.service.js.map +1 -1
  204. package/dist/services/project.rpc-service.d.ts +6 -5
  205. package/dist/services/project.rpc-service.d.ts.map +1 -1
  206. package/dist/services/project.rpc-service.js +13 -0
  207. package/dist/services/project.rpc-service.js.map +1 -1
  208. package/dist/services/project.service.d.ts +30 -6
  209. package/dist/services/project.service.d.ts.map +1 -1
  210. package/dist/services/project.service.js +414 -66
  211. package/dist/services/project.service.js.map +1 -1
  212. package/dist/services/release.rpc-service.d.ts +2 -1
  213. package/dist/services/release.rpc-service.d.ts.map +1 -1
  214. package/dist/services/release.rpc-service.js +19 -3
  215. package/dist/services/release.rpc-service.js.map +1 -1
  216. package/dist/services/release.service.d.ts +24 -11
  217. package/dist/services/release.service.d.ts.map +1 -1
  218. package/dist/services/release.service.js +162 -39
  219. package/dist/services/release.service.js.map +1 -1
  220. package/dist/services/remote-deployer.service.d.ts +1 -1
  221. package/dist/services/remote-deployer.service.d.ts.map +1 -1
  222. package/dist/services/remote-deployer.service.js +3 -0
  223. package/dist/services/remote-deployer.service.js.map +1 -1
  224. package/dist/services/secrets.service.d.ts +6 -0
  225. package/dist/services/secrets.service.d.ts.map +1 -1
  226. package/dist/services/secrets.service.js +95 -51
  227. package/dist/services/secrets.service.js.map +1 -1
  228. package/dist/shared/dto/backend.d.ts +3 -0
  229. package/dist/shared/dto/backend.d.ts.map +1 -1
  230. package/dist/shared/dto/backend.js.map +1 -1
  231. package/dist/shared/dto/nodes.d.ts +2 -0
  232. package/dist/shared/dto/nodes.d.ts.map +1 -1
  233. package/dist/shared/dto/pipelines.d.ts +54 -5
  234. package/dist/shared/dto/pipelines.d.ts.map +1 -1
  235. package/dist/shared/dto/pipelines.js +0 -7
  236. package/dist/shared/dto/pipelines.js.map +1 -1
  237. package/dist/shared/dto/project.d.ts +61 -1
  238. package/dist/shared/dto/project.d.ts.map +1 -1
  239. package/dist/shared/dto/releases.d.ts +8 -1
  240. package/dist/shared/dto/releases.d.ts.map +1 -1
  241. package/dist/shared/dto/services.d.ts +44 -18
  242. package/dist/shared/dto/services.d.ts.map +1 -1
  243. package/dist/shared/dto/services.js.map +1 -1
  244. package/dist/shared/release-reading.d.ts +6 -0
  245. package/dist/shared/release-reading.d.ts.map +1 -1
  246. package/dist/shared/release-reading.js +42 -0
  247. package/dist/shared/release-reading.js.map +1 -1
  248. package/dist/workers/system-worker-manager.d.ts +1 -2
  249. package/dist/workers/system-worker-manager.d.ts.map +1 -1
  250. package/dist/workers/system-worker-manager.js +5 -3
  251. package/dist/workers/system-worker-manager.js.map +1 -1
  252. package/package.json +20 -19
  253. package/webapp/dist/BUILD.json +2 -2
  254. package/webapp/dist/assets/{access-jWkHxGc7.js → access-B2gXuoMG.js} +1 -1
  255. package/webapp/dist/assets/{access-48hkC2-P.js → access-I0f72P9m.js} +1 -1
  256. package/webapp/dist/assets/{admin-data-table-BKSDI8sU.js → admin-data-table-CAEL2f-m.js} +1 -1
  257. package/webapp/dist/assets/{alert-uBG6r9NW.js → alert-BdJ2uaY0.js} +1 -1
  258. package/webapp/dist/assets/{alerts-CuPQ9YQJ.js → alerts-DeVkMXWo.js} +1 -1
  259. package/webapp/dist/assets/{apps-Drio028B.js → apps-9SuDvyGQ.js} +1 -1
  260. package/webapp/dist/assets/{audit-npSFJECe.js → audit-DT8cY7Ys.js} +1 -1
  261. package/webapp/dist/assets/backend-status.store-BbBE9cn8.js +4 -0
  262. package/webapp/dist/assets/{card-DkH32gMY.js → card-DaUEmUI5.js} +1 -1
  263. package/webapp/dist/assets/{chart-BpGXlCJc.js → chart-BKXP2ter.js} +1 -1
  264. package/webapp/dist/assets/{client-DFnuv2z3.js → client-CgyTwq9g.js} +1 -1
  265. package/webapp/dist/assets/{code-editor-DK6Tmmxv.js → code-editor-JVuQ4m-z.js} +1 -1
  266. package/webapp/dist/assets/{comparison-bars-BtC0dHjF.js → comparison-bars-Ds5Dt1oj.js} +1 -1
  267. package/webapp/dist/assets/{confirm-dialog-BbGsAz7_.js → confirm-dialog-BayExVbF.js} +1 -1
  268. package/webapp/dist/assets/{console-keyboard-D3YCA0yU.js → console-keyboard-uSLt92dB.js} +1 -1
  269. package/webapp/dist/assets/{containers-Bl8gAyZX.js → containers-DkXTgcrY.js} +1 -1
  270. package/webapp/dist/assets/{controls-C5W8gHU4.js → controls-CqeGPnaF.js} +1 -1
  271. package/webapp/dist/assets/{dashboard-UHlet3H9.js → dashboard-By5yPuOf.js} +1 -1
  272. package/webapp/dist/assets/{dashboard-builder-67PZFqhE.js → dashboard-builder-C0hvBwkd.js} +1 -1
  273. package/webapp/dist/assets/deploy-progress-B39cvvCE.js +1 -0
  274. package/webapp/dist/assets/deploy-release-dialog-CnzaO_xL.js +1 -0
  275. package/webapp/dist/assets/deployments-BXP943hA.js +1 -0
  276. package/webapp/dist/assets/{detail-B4TiBfxU.js → detail-B84RgiOb.js} +1 -1
  277. package/webapp/dist/assets/{detail-CYS81K6Y.js → detail-CVXDks9-.js} +1 -1
  278. package/webapp/dist/assets/detail-D9DixtaK.js +2 -0
  279. package/webapp/dist/assets/{empty-content-7jOFhG4C.js → empty-content-eyDOuOVp.js} +1 -1
  280. package/webapp/dist/assets/{error-boundary-CLLI8PWw.js → error-boundary-CQmDr_HS.js} +1 -1
  281. package/webapp/dist/assets/{event-fields-CiyqrRO8.js → event-fields-C7p2a2HY.js} +1 -1
  282. package/webapp/dist/assets/{files-DigwXndm.js → files-BsfGT3t6.js} +2 -2
  283. package/webapp/dist/assets/{icons-OboZgWSt.js → icons-B9Ct8PJ9.js} +1 -1
  284. package/webapp/dist/assets/index-BEfv96EF.js +1 -0
  285. package/webapp/dist/assets/{label-B1SF0RTL.js → label-avMhe08g.js} +1 -1
  286. package/webapp/dist/assets/{log-level-filter-Bcn31D1F.js → log-level-filter-oaUGdbpk.js} +1 -1
  287. package/webapp/dist/assets/{logs-BqHOufk8.js → logs-iC1OEDv3.js} +1 -1
  288. package/webapp/dist/assets/{metric-chart-M-kI-XOt.js → metric-chart-CSa_qv4F.js} +1 -1
  289. package/webapp/dist/assets/{metrics-QIQaF7iS.js → metrics-CKCmcGKw.js} +1 -1
  290. package/webapp/dist/assets/{mui-Cd711nOk.js → mui-B3fJdIMc.js} +1 -1
  291. package/webapp/dist/assets/{mui-CdB_p2lt.js → mui-Bdr6Ks5j.js} +1 -1
  292. package/webapp/dist/assets/{mui-BIz4LSVs.js → mui-CADnFGCx.js} +1 -1
  293. package/webapp/dist/assets/{mui-AnEgAVjz.js → mui-CMWGTMXv.js} +1 -1
  294. package/webapp/dist/assets/{mui-DyT2n1lx.js → mui-CN3dT7bb.js} +1 -1
  295. package/webapp/dist/assets/{mui-BwsIrivo.js → mui-CPEkFAPo.js} +1 -1
  296. package/webapp/dist/assets/{mui-B1jrje6Z.js → mui-D3qAWvfZ.js} +1 -1
  297. package/webapp/dist/assets/{mui-C_hromOc.js → mui-D7tBU80e.js} +1 -1
  298. package/webapp/dist/assets/{mui-y44PQOfG.js → mui-DaJavAoc.js} +1 -1
  299. package/webapp/dist/assets/{mui-BXSXx9c9.js → mui-SNRRJ_vi.js} +1 -1
  300. package/webapp/dist/assets/{nodes-BJPk02vv.js → nodes-DtLyXH0V.js} +1 -1
  301. package/webapp/dist/assets/{operation-status-Bm1x1wTz.js → operation-status-DHyYOT7G.js} +1 -1
  302. package/webapp/dist/assets/{page-breadcrumbs-fR7Jmpp4.js → page-breadcrumbs-3R8RZ3nA.js} +1 -1
  303. package/webapp/dist/assets/pipelines-Do2NAAqK.js +3 -0
  304. package/webapp/dist/assets/project.store-D5IR3fo9.js +1 -0
  305. package/webapp/dist/assets/{projects-YoBzcQ24.js → projects-BqlGbzeG.js} +1 -1
  306. package/webapp/dist/assets/{realtime.store-CBDO4Abj.js → realtime.store-C8D235-B.js} +1 -1
  307. package/webapp/dist/assets/release-bits-IehuBssK.js +1 -0
  308. package/webapp/dist/assets/release-build-panel-C48hP_9w.js +1 -0
  309. package/webapp/dist/assets/release-deployment-state-BfmxZP4Y.js +1 -0
  310. package/webapp/dist/assets/releases-Cm0RV5Xu.js +2 -0
  311. package/webapp/dist/assets/{search-input-C0MHI8vO.js → search-input-SWD1dXxD.js} +1 -1
  312. package/webapp/dist/assets/settings-DwuEPQGg.js +1 -0
  313. package/webapp/dist/assets/sign-in-CQ-WeS5A.js +1 -0
  314. package/webapp/dist/assets/{skeleton-BmWDJWF9.js → skeleton-BnVxAoeX.js} +1 -1
  315. package/webapp/dist/assets/{snackbar-DSPmjMyi.js → snackbar-CRX6eqRT.js} +1 -1
  316. package/webapp/dist/assets/{stack-health-status-BIv2C10x.js → stack-health-status-DfErRNb1.js} +1 -1
  317. package/webapp/dist/assets/{stack-start-notice-BVnMOwRQ.js → stack-start-notice-NkYDjR-f.js} +1 -1
  318. package/webapp/dist/assets/{stacks-IZ1mfizi.js → stacks-BOGCfW90.js} +1 -1
  319. package/webapp/dist/assets/{store-bqUBn2A4.js → store-DtTtbc9H.js} +1 -1
  320. package/webapp/dist/assets/{system-info-BFKNM-hf.js → system-info-Cw-xywgI.js} +1 -1
  321. package/webapp/dist/assets/{table-BOWT6Y9d.js → table-D-so_B1p.js} +1 -1
  322. package/webapp/dist/assets/{table-viewport-Bp4pq-c_.js → table-viewport-DdZ1yAKm.js} +1 -1
  323. package/webapp/dist/assets/{tabs-k5NPGLnJ.js → tabs-DGqBkXh_.js} +1 -1
  324. package/webapp/dist/assets/{terminal-QWBau-Us.js → terminal-Bbl0XNeB.js} +1 -1
  325. package/webapp/dist/assets/{topology-CPey5dP6.js → topology-DmrRy7nN.js} +1 -1
  326. package/webapp/dist/assets/{topology-metadata-dialog-BivuU2y6.js → topology-metadata-dialog-Dpfp4YF1.js} +1 -1
  327. package/webapp/dist/assets/{traces-By0rdfDC.js → traces-CKHsOabJ.js} +1 -1
  328. package/webapp/dist/assets/{use-stack-context-UkBsF-l7.js → use-stack-context-BuraYaeY.js} +1 -1
  329. package/webapp/dist/assets/webapp-D8h_eabt.js +35 -0
  330. package/webapp/dist/console-version.json +1 -1
  331. package/webapp/dist/index.html +34 -34
  332. package/webapp/dist/logo.svg +1 -80
  333. package/bin/sdk.d.mts +0 -8
  334. package/bin/sdk.mjs +0 -576
  335. package/dist/monitoring/process-lifetime.d.ts +0 -11
  336. package/dist/monitoring/process-lifetime.d.ts.map +0 -1
  337. package/dist/monitoring/process-lifetime.js +0 -45
  338. package/dist/monitoring/process-lifetime.js.map +0 -1
  339. package/dist/shared/host-boot-identity.d.ts +0 -12
  340. package/dist/shared/host-boot-identity.d.ts.map +0 -1
  341. package/dist/shared/host-boot-identity.js +0 -89
  342. package/dist/shared/host-boot-identity.js.map +0 -1
  343. package/webapp/dist/assets/deploy-release-dialog-BOXcD5Wo.js +0 -1
  344. package/webapp/dist/assets/deployments-qV20Ak0P.js +0 -1
  345. package/webapp/dist/assets/detail-B85-Wees.js +0 -2
  346. package/webapp/dist/assets/index-uq8Dkk4c.js +0 -1
  347. package/webapp/dist/assets/omnitron-logo-koMCbsCv.js +0 -1
  348. package/webapp/dist/assets/pipelines-T6Ch9LTw.js +0 -3
  349. package/webapp/dist/assets/project.store--G5pIF-J.js +0 -1
  350. package/webapp/dist/assets/release-bits-B2a_wbft.js +0 -1
  351. package/webapp/dist/assets/release-build-panel-BQmIdKW9.js +0 -1
  352. package/webapp/dist/assets/release-deployment-state-DRrEI2pP.js +0 -1
  353. package/webapp/dist/assets/release-wire-f2VuBoBF.js +0 -1
  354. package/webapp/dist/assets/releases-Bp3CDgmo.js +0 -2
  355. package/webapp/dist/assets/settings-B3egRvbI.js +0 -1
  356. package/webapp/dist/assets/sign-in-9q-Nfy83.js +0 -1
  357. package/webapp/dist/assets/webapp-D-UhjFhS.js +0 -35
  358. package/webapp/dist/favicon.png +0 -0
package/README.md CHANGED
@@ -57,6 +57,101 @@ omnitron logs --status
57
57
 
58
58
  Ranked levels in the CLI are minimum severities. Use `--level unknown` for records without a recognized level, or specify the exact stored spelling of a custom level. In Console, the level chips and the custom-level selector match exact values in both live and historical logs. Share the main log view with one `level` URL parameter per selected level.
59
59
 
60
+ ## Pipelines pinned to installed releases
61
+
62
+ A `kind: 'release'` step identifies a registered project, stack, application and
63
+ immutable producer artifact. It executes a package-relative compiled JavaScript
64
+ member using the verified resident owner's Node. It does not store a physical
65
+ installation path, Node path or generated `PATH` in the pipeline definition.
66
+ Changing the owner package can therefore create a different, correctly bound
67
+ installation without changing the pipeline's ID, revision or run history.
68
+
69
+ For a new caller running at the registered compiled launch entry, the existing
70
+ runtime-origin API supplies the producer identity:
71
+
72
+ ```ts
73
+ import { verifyInstalledRuntime } from '@omnitron-dev/omnitron/runtime';
74
+ import type { PipelineDef } from '@omnitron-dev/omnitron/dto/services';
75
+
76
+ const runtime = await verifyInstalledRuntime(new URL(import.meta.url));
77
+ if (runtime.state !== 'verified') throw Error(runtime.reason);
78
+ const definition: PipelineDef = {
79
+ name: 'publish-results',
80
+ steps: [{
81
+ name: 'publish',
82
+ kind: 'release',
83
+ target: {
84
+ project: 'research', stack: 'publication', app: 'publisher',
85
+ artifact: runtime.producer,
86
+ entry: 'dist/publish.mjs',
87
+ },
88
+ cwd: '/srv/research-operator',
89
+ env: { OPERATOR_ROOT: '/srv/research-operator' },
90
+ args: ['--checked'],
91
+ timeout: 180000,
92
+ retries: 0,
93
+ }],
94
+ triggers: [{ type: 'manual', config: {} }],
95
+ };
96
+ ```
97
+
98
+ `artifact` contains `releaseId`, `manifestSha256`, `artifactSha256`, `producerApp`,
99
+ `projectCommit` and `frameworkCommit`. Imported artifacts retain their producer
100
+ identity; the run records the selected consumer release separately. The entry may
101
+ be another compiled member of that same verified closure. This does not change
102
+ `verifyInstalledRuntime`'s stricter contract for the registered launch entry.
103
+ Arguments are literal array elements, and parameters remain JSON in
104
+ `OMNITRON_PARAMS`; no shell interpolation occurs.
105
+
106
+ Use the existing administrator-only `OmnitronPipelines` API, or save the definition
107
+ as JSON and use the ordinary CLI:
108
+
109
+ ```sh
110
+ omnitron pipeline save publication.json
111
+ omnitron pipeline run <pipeline-id>
112
+ omnitron pipeline status <run-id> --output
113
+ # An intentional definition change requires the reviewed current revision:
114
+ omnitron pipeline save publication.json --id <pipeline-id> --expected-revision <sha256>
115
+ ```
116
+
117
+ Console's Advanced JSON editor accepts the same definition. Opening and saving a
118
+ release step preserves its target and arguments. Run details show each attempt's
119
+ artifact, installed tree, actual executable/target, native owner lifetime, process
120
+ ID and environment fingerprint; environment values are not copied into evidence.
121
+
122
+ Prepare and select the immutable release through the ordinary stack release
123
+ lifecycle first. Pipeline admission never installs dependencies, prepares a missing
124
+ installation, changes selection, starts applications, or provisions infrastructure.
125
+ Only independently owned local stacks are supported; remote targets explicitly
126
+ refuse execution. Registration lifetime, release selection, declaration, environment,
127
+ full frozen payload and native owner binding are checked again before every Xec
128
+ attempt. This repeats full verification and may be expensive for large closures.
129
+ The current operation keeps the admitted owner; it never retargets mid-run.
130
+
131
+ `PATH`, `NODE_OPTIONS` and `NODE_PATH` cannot be set by the release step. The app's
132
+ recorded resource-only Node options apply, while Node search paths are empty.
133
+ Nonempty inherited or declared `LD_*` and `DYLD_*` loader controls are refused;
134
+ Linux shared-library paths may only be derived from the verified closure. The
135
+ working directory must be an absolute physical directory. Application output must
136
+ be written outside the immutable installation.
137
+
138
+ Xec owns output limits, retries, timeouts and cancellation. Backend handoff refuses
139
+ active pipeline work. The owner proof is an observation, not an OS process lease:
140
+ if execution starts and its binding cannot subsequently be confirmed, the attempt
141
+ is marked `unconfirmed` and automatic retries are refused. Inspect effects before
142
+ explicitly running again. Failed durable completion also makes an executed attempt
143
+ unconfirmed. A daemon restart marks unfinished runs interrupted and their prepared
144
+ or started attempts unconfirmed; missing spawn acknowledgement does not prove that
145
+ effects never began. Completed attempts remain completed. Recovery never replays
146
+ these runs or promises exactly-once execution.
147
+
148
+ Existing frozen callers that compare absolute shell commands or generated `PATH`
149
+ values do not acquire this contract automatically. A publication watcher using
150
+ such comparisons requires a separately reviewed publication artifact and an
151
+ explicit conditional update of its existing pipeline definition.
152
+ This framework change neither rewrites that caller nor re-registers scientific
153
+ experiments or results.
154
+
60
155
  ## Scoped backups
61
156
 
62
157
  `omnitron backup artifact storage-objects --project acme --stack prod --bucket uploads`
@@ -109,12 +204,16 @@ declaration. Preserve and qualify that declaration instead of relaxing its diges
109
204
  check or temporarily substituting files to obtain an admission receipt.
110
205
 
111
206
  The native `test/runtime/managed-backend.mjs` owner roundtrip accepts
112
- `--application-sdk /absolute/path/to/installed/@omnitron-dev/omnitron`.
113
- The independent consumer must also contain its matching Titan and Titan Storage.
207
+ `--application-project /absolute/path/to/installed-consumer`
208
+ and `--application-sdk-commit <full-sha>`.
209
+ The consumer must directly resolve its matching Omnitron, Titan and Titan Storage.
210
+ The full production dependency graphs must stay inside that consumer checkout
211
+ (or its pnpm workspace); virtual-store siblings are included, external links are refused.
114
212
  Alongside the baseline → candidate → baseline service transition, this exercises
115
213
  one project's source and pinned-release stacks through the public project API:
116
214
  single and pooled bootstrap workers, source watch without restarting frozen workers,
117
- a second cold candidate start, retained release selection, and explicit refusal of
215
+ a storage write/read from each worker in the application's directory, a second cold
216
+ candidate start, retained release selection, and explicit refusal of
118
217
  a changed declaration. It verifies runtime bytes and entry change times after the
119
218
  applications run. All services, Git inputs and release archives belong to the private
120
219
  fixture; this does not establish cold readiness of real application registrations.
@@ -537,11 +636,78 @@ apply check the saved plan against the current scope immediately. PID ordering a
537
636
  identities and group membership are independently verified twice.
538
637
 
539
638
  For an isolated native owner roundtrip with real application workloads, pass
540
- `--application-sdk <installed-package>` and `--application-sdk-commit <full-sha>`
639
+ `--application-project <installed-consumer>` and `--application-sdk-commit <full-sha>`
541
640
  to `test/runtime/managed-backend.mjs` alongside `--owner-roundtrip`. The fixture
542
- checks the package and its clean build stamp before creating services. Its result
641
+ checks all required dependencies, their containment and the SDK's clean build stamp
642
+ before creating services. Its result
543
643
  records the application's framework commit and the owner's commit and artifact hash.
544
644
 
645
+ ## Starting with existing infrastructure
646
+
647
+ Runtime-only recovery uses the ordinary stack lifecycle with
648
+ `--infrastructure preserve`. It requires existing, running resources whose
649
+ native identities and specification match the resolved declaration. It cannot
650
+ provision, recreate or restart infrastructure, run post-provision setup or
651
+ framework database migrations, install a remote daemon, upload static content,
652
+ or rewrite a node's infrastructure configuration. Application startup still runs
653
+ the application itself; its readiness and application-owned startup hooks remain
654
+ separate checks.
655
+
656
+ Before the maintenance stop, prepare the selected release through
657
+ `stack prepare-release` if necessary, load the intended project configuration,
658
+ and review preservation for both the forward and rollback selections:
659
+
660
+ ```sh
661
+ omnitron stack start acme prod --release <release-id> --infrastructure preserve --dry-run --json
662
+ ```
663
+
664
+ The review reads existing resources and current cached bootstrap declarations;
665
+ it does not import application code or install a release. A non-null `digest`
666
+ requires every target to be verified. Native container IDs, restart generation,
667
+ image identity, ownership, environment, ports, mounts, network, resource limits
668
+ and health-check specification are checked against the desired plan. Extra or
669
+ missing resources and changed presets require a separately approved reconcile.
670
+ A changed historical spec-hash algorithm alone is not native drift. Mounted
671
+ configuration needs a matching creation receipt because mount paths cannot prove
672
+ which configuration bytes a running daemon consumed. Unverifiable configuration
673
+ receipts, host-service identities or recipient capabilities remain explicit
674
+ failures; they are never treated as a successful preservation review.
675
+
676
+ After the separately planned application stop and runtime transition, start with
677
+ the reviewed authority:
678
+
679
+ ```sh
680
+ omnitron stack start acme prod --release <release-id> --infrastructure preserve --review <digest>
681
+ ```
682
+
683
+ The daemon repeats release admission, installed provenance, declaration and
684
+ environment fingerprinting, and native inspection before startup. It checks
685
+ native identity again when adopting the existing resources. The digest binds
686
+ the exact launch context: a changed owner, installation, release, configuration
687
+ or resource requires a new inspection. A review made before a planned owner
688
+ change does not certify that changed owner. Omitting `--review` makes the CLI
689
+ obtain and submit a current review; supplying it additionally pins the previously
690
+ inspected digest. No secret environment values are returned in review evidence.
691
+
692
+ `stack stop --keep-infrastructure` persists the preservation restriction before
693
+ stopping applications and drains infrastructure repair work. Subsequent ordinary
694
+ and automatic starts cannot return to reconciliation. A successful preserve start
695
+ retains read-only health observation; unhealthy or replaced resources are reported
696
+ without repair. Handoff retains this authority. An operator must explicitly select
697
+ `--infrastructure reconcile` to authorize normal provisioning, setup and migrations
698
+ again. A new project registration does not inherit an old registration's authority.
699
+
700
+ The operator RPC contract is `OmnitronProject.reviewStackStart({ project, stack,
701
+ release?, workingTree?, infrastructure: 'preserve' })`, followed by
702
+ `startStack({ project, stack, release?, workingTree?, infrastructure: 'preserve',
703
+ review })`. The existing remote lifecycle forwards the resolved infrastructure
704
+ through `OmnitronInfra.reviewStack` and `provisionStack` with the same preservation
705
+ authority. Recipients must acknowledge protocol 1; an older node refuses recovery
706
+ without a provisioning fallback. Existing project isolation, deployment operations
707
+ and cluster authority checks continue to apply. `check-release` alone checks release
708
+ admission; its historical build/test gates do not certify preservation or classic
709
+ application startup compatibility.
710
+
545
711
  ## Standalone infrastructure
546
712
 
547
713
  `omnitron infra up`, `down` and `reset --yes` operate on containers declared
@@ -567,6 +733,121 @@ the backend cannot replace its capture mechanism without an owner maintenance wi
567
733
 
568
734
  ## Source development and installed releases
569
735
 
736
+ `omnitron sdk dev /path/to/omni --project-dir /path/to/project --stack dev`
737
+ selects a local SDK and watches its source changes. First run
738
+ `omnitron sdk init --project-dir /path/to/project` and commit its canonical pnpm
739
+ hook. Init does not resolve or install registry dependencies. The consumer's
740
+ workspace manifests declare the framework packages it uses with normal version
741
+ dependencies; the SDK command selects their public packages and transitive
742
+ runtime dependencies from a separate SDK checkout, then uses its normal Turbo
743
+ build graph. A standalone Lumen or Prism consumer does not need an Omnitron
744
+ application dependency. Use a complete, normally installed SDK workspace.
745
+ The consumer must own its dependency directory. An external `node_modules`
746
+ symlink is refused before installation; preserve that directory separately
747
+ before migrating an ad hoc dependency setup to an SDK profile.
748
+ The standard pnpm `virtualStoreDir` setting may point to a dedicated physical
749
+ directory on another volume. For a thin local `node_modules` symlink graph with
750
+ the package contents on that volume, use `nodeLinker: isolated`; a hoisted install
751
+ keeps package contents in the consumer's modules directories. For example:
752
+
753
+ ```yaml
754
+ # Consumer pnpm-workspace.yaml; use a separate store directory for each workspace.
755
+ nodeLinker: isolated
756
+ virtualStoreDir: /Volumes/AGI-Dev/work/my-project/virtual-store
757
+ ```
758
+
759
+ The SDK preserves these pnpm settings. Registry verification compares the effective
760
+ configuration with `.modules.yaml`, checks the physical modules/store paths,
761
+ and matches installed lock entries and archive integrity to the distribution lock.
762
+ The existing selection fingerprint includes the effective module settings, so an
763
+ environment-resolved store change triggers the normal dependency switch as well.
764
+ A redirected store, mismatched receipt, or framework import outside the admitted
765
+ installation fails verification. This installation check does not replace the
766
+ release builder's archive provenance checks.
767
+
768
+ A new consumer can use unpublished SDK packages without a distribution lock.
769
+ An existing lock may also predate newly declared packages. Development installation
770
+ first runs pnpm's ordinary package-manager bootstrap. This may add or update the
771
+ manager metadata document in root `pnpm-lock.yaml`; the SDK checks that the
772
+ parsed application dependency document remains unchanged. On success it accepts
773
+ that root lock as its baseline and writes the development dependency graph only
774
+ under `.omnitron/dev-sdk`. A manager-only root lock is not a registry application
775
+ lock. This one-time bootstrap lets subsequent ordinary `pnpm run build` and
776
+ `pnpm exec` use the selected profile through the same hook without extra flags.
777
+ `--no-watch` builds the selected graph once without starting a watcher; omit `--stack` for an
778
+ unregistered build-only consumer.
779
+
780
+ `omnitron sdk registry` explicitly restores a current frozen registry lock.
781
+ It refuses an absent or stale lock before replacing the local selection. Once
782
+ the dependencies are published, create a real distribution lock with
783
+ `pnpm install --lockfile-only --config.ignore-pnpmfile=true`, review and commit
784
+ it, then run `sdk registry`. A failed SDK switch restores the previous accepted
785
+ SDK when possible. A failed first install without a verified registry baseline
786
+ remains visibly incomplete; correct the cause and run `sdk dev` again. No
787
+ registry lock or successful installation is invented for recovery. Releases
788
+ continue to read committed inputs and enforce their existing provenance gates.
789
+ If bootstrap or installation fails, the SDK restores the original root lock
790
+ bytes or absence only while that file still matches the metadata it generated.
791
+ It preserves concurrent edits and reports the conflict instead of overwriting them.
792
+
793
+ The initial dependency switch requires the project's local source stacks to be stopped.
794
+ The owner must advertise `applicationRuntimeResolution@1`: otherwise it can
795
+ retain a previous package identity after pnpm replaces dependencies. Both SDK
796
+ selection and restoration of registry dependencies refuse this owner before
797
+ installing packages. Prepare and qualify an owner transition separately.
798
+ SDK commands also require a fresh owner observation and a matching Node ABI,
799
+ platform and architecture. Use the Node version reported by `omnitron status`;
800
+ the SDK command passes its selected Node to package installation and builds.
801
+ A different shell default must not silently produce incompatible native addons.
802
+
803
+ `sdk status` checks the project's resolved imports, the SDK's transitive framework
804
+ imports and selected package identities; the daemon's `status` reports
805
+ the running backend and owner independently. Online applications or a source
806
+ watcher alone do not establish that the project uses the current SDK. Leave
807
+ `sdk dev` running to rebuild platform packages and refresh their watched
808
+ consumers. Every `sdk dev --no-watch`, including an unchanged checkout path and
809
+ package version, runs the normal Turbo build graph. Turbo decides which tasks
810
+ are cached. After success, the SDK verifies imports and updates the same output
811
+ checkpoint used by the watcher. Its `hashes` record successful SDK output;
812
+ `applications` separately records each stack/application's acknowledged source
813
+ generation, definition revision, directory and dependent build identity. A
814
+ build-only command reports `Development SDK build ready` or `build is current`;
815
+ it does not certify an application's loaded modules.
816
+
817
+ With `--stack`, every pass reconciles the selected stack, including unchanged
818
+ builds. This requires `sourceRefresh@1` on the owner. The CLI
819
+ uses the same automatic restart path as source watching, bound to the observed
820
+ application generation and definition revision. It never substitutes a manual
821
+ restart when watching is disabled, a source is retargeted or a release is pinned.
822
+ Every running application in the selected stack must have an active watcher;
823
+ an excluded or unavailable watcher, starting application or missing owned handle
824
+ is an explicit failure. Stopped applications receive no application receipt;
825
+ their next online generation must be reconciled on the next `--stack` pass.
826
+ Application receipts come from the owner's exact restart response and are reused
827
+ only for the same generation, definition and dependent SDK output. A legacy
828
+ build-only checkpoint or another stack's receipt cannot establish that.
829
+
830
+ A failed build leaves the whole checkpoint unchanged. If a successful build is
831
+ followed by a partial refresh failure, the checkpoint retains its build hashes
832
+ and individually acknowledged applications; a retry refreshes the remaining
833
+ bindings. The CLI reports `Development SDK refresh confirmed for <project>/<stack>`
834
+ only after checking the final stack membership, application generations and
835
+ watch policy. Before recording a receipt, it rechecks output digests under the
836
+ existing short build lock; a concurrent output change is an explicit failure.
837
+ Symlinks and other unsupported output entries are rejected. These checks record
838
+ a build snapshot and process lifecycle acknowledgement, not byte attestation of
839
+ future lazy imports or an application's HTTP readiness. Declared readiness
840
+ probes provide the latter evidence.
841
+
842
+ Build caches must include `.omnitron/dev-sdk/*.json` as inputs. For Turbo, add
843
+ this glob to the project's `globalDependencies`. It binds cached tasks to the
844
+ selected SDK and the successful build checkpoint, including declarations and
845
+ static assets. The distribution lock alone cannot identify locally linked code.
846
+ Application receipt changes also invalidate that consumer cache. The SDK watcher
847
+ observes SDK source/build inputs, so writing these consumer receipts does not
848
+ trigger another SDK build.
849
+ These private files stay outside Git and are absent in clean registry builds.
850
+
570
851
  One owner can supervise development applications and installed releases together.
571
852
  Watch applies only to source entries allowed by the application and global watch
572
853
  policy. An installed entry (`releaseRoot`) never enters the source build pipeline
@@ -574,7 +855,16 @@ or either watcher, even when development mode is enabled. Launch receipts and
574
855
  artifact integrity still determine whether an installed executable is trusted;
575
856
  setting `releaseRoot` does not grant that trust.
576
857
 
577
- Enabling watch reconciles edits made while watch was disabled. Disabling watch
858
+ The owner derives both watcher inventories from its actual application handles,
859
+ including classic applications added by registered projects after daemon startup.
860
+ A classic source subscription survives its internal child replacement, so edits
861
+ received during startup are processed after the current restart. Explicit stop,
862
+ redefinition, retirement and watch-policy changes revoke pending source events.
863
+
864
+ Enabling bootstrap watch rebuilds changes made while it was disabled. Enabling
865
+ classic watch subscribes to subsequent filesystem changes; it does not infer
866
+ past edits. Use `sdk dev --stack` to build and confirm changed SDK output.
867
+ Disabling watch
578
868
  awaits disposal and cancels queued automatic restarts. A restart already stopping an
579
869
  application may finish when only global watching is disabled. Explicitly
580
870
  redefining that application revokes its pending restart, including an identical
@@ -6,6 +6,18 @@ import { fileURLToPath } from 'node:url';
6
6
  const root = fs.realpathSync(path.dirname(fileURLToPath(import.meta.url)));
7
7
  const profileDirectory = path.join(root, '.omnitron', 'dev-sdk');
8
8
 
9
+ // Shared with the SDK selector: a directory must contain the actual public
10
+ // framework package, not an alias, a private workspace or an unversioned stub.
11
+ export function frameworkPackage(name, directory, expectedVersion) {
12
+ const manifest = JSON.parse(fs.readFileSync(path.join(directory, 'package.json'), 'utf8'));
13
+ if (!/^@omnitron-dev\/[a-z0-9-]+$/.test(name) || manifest.name !== name || manifest.private ||
14
+ typeof manifest.version !== 'string' ||
15
+ !/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-[\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*)?(?:\+[\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*)?$/.test(manifest.version) ||
16
+ expectedVersion !== undefined && manifest.version !== expectedVersion)
17
+ throw Error('Invalid Omnitron SDK package identity for ' + name);
18
+ return manifest;
19
+ }
20
+
9
21
  export function developmentPackages() {
10
22
  let profile;
11
23
  try {
@@ -20,6 +32,7 @@ export function developmentPackages() {
20
32
  if (!/^@omnitron-dev\/[a-z0-9-]+$/.test(name) || !path.isAbsolute(directory) ||
21
33
  !directory.startsWith(profile.source + path.sep) || fs.realpathSync(directory) !== directory)
22
34
  throw Error('Invalid Omnitron SDK package location for ' + name);
35
+ frameworkPackage(name, directory, profile.versions?.[name]);
23
36
  }
24
37
  return profile.links;
25
38
  }
@@ -28,7 +41,12 @@ export const hooks = {
28
41
  updateConfig(config) {
29
42
  const links = Object.entries(developmentPackages());
30
43
  if (!links.length) return config;
31
- const overrides = { ...config.overrides };
44
+ // pnpm resolves workspace overrides from lockfileDir. Importers keep their own base.
45
+ const overrides = Object.fromEntries(Object.entries(config.overrides ?? {}).map(([selector, specifier]) => {
46
+ const local = typeof specifier === 'string' && /^(file:|link:)(.+)$/.exec(specifier);
47
+ if (!local || path.isAbsolute(local[2])) return [selector, specifier];
48
+ return [selector, local[1] + path.resolve(root, local[2]).split(path.sep).join('/')];
49
+ }));
32
50
  for (const [name, directory] of links) overrides[name] = 'link:' + directory;
33
51
  return { ...config, lockfileDir: profileDirectory, overrides };
34
52
  },
package/bin/sdk.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ export interface DevelopmentSdkStatus {
2
+ mode: 'development' | 'registry';
3
+ verifiedImports: number;
4
+ source?: string;
5
+ distributionLock?: 'present' | 'absent' | 'manager-only';
6
+ distributionLockChanged?: boolean;
7
+ }
8
+ export interface DevelopmentSdkProfile {
9
+ schema: 1;
10
+ root: string;
11
+ source: string;
12
+ links: Record<string, string>;
13
+ lockSha256?: string | null;
14
+ versions?: Record<string, string>;
15
+ inputSha256?: string;
16
+ }
17
+ export function sdkCommand(args: string[]): Promise<void>;
18
+ export function inspectSdk(projectDirectory?: string): Promise<DevelopmentSdkStatus>;
19
+ export function watchSdk(profile: DevelopmentSdkProfile, stack: string | undefined, signal: AbortSignal): Promise<void>;