@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.
- package/README.md +296 -6
- package/bin/{pnpmfile-sdk.mjs → pnpmfile-sdk.js} +19 -1
- package/bin/sdk.d.ts +19 -0
- package/bin/sdk.js +932 -0
- package/dist/BUILD.json +2 -2
- package/dist/cli/omnitron.js +68 -20
- package/dist/cli/omnitron.js.map +1 -1
- package/dist/commands/infra.d.ts +8 -2
- package/dist/commands/infra.d.ts.map +1 -1
- package/dist/commands/infra.js +52 -59
- package/dist/commands/infra.js.map +1 -1
- package/dist/commands/node.d.ts.map +1 -1
- package/dist/commands/node.js +8 -1
- package/dist/commands/node.js.map +1 -1
- package/dist/commands/release-store.d.ts.map +1 -1
- package/dist/commands/release-store.js +6 -9
- package/dist/commands/release-store.js.map +1 -1
- package/dist/commands/release.d.ts +4 -1
- package/dist/commands/release.d.ts.map +1 -1
- package/dist/commands/release.js +125 -5
- package/dist/commands/release.js.map +1 -1
- package/dist/commands/stack.d.ts +3 -6
- package/dist/commands/stack.d.ts.map +1 -1
- package/dist/commands/stack.js +51 -9
- package/dist/commands/stack.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +1 -0
- package/dist/commands/status.js.map +1 -1
- package/dist/config/saved.d.ts +3 -0
- package/dist/config/saved.d.ts.map +1 -1
- package/dist/config/saved.js +1 -0
- package/dist/config/saved.js.map +1 -1
- package/dist/config/types.d.ts +4 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/daemon/daemon-client.d.ts +3 -15
- package/dist/daemon/daemon-client.d.ts.map +1 -1
- package/dist/daemon/daemon-client.js +4 -0
- package/dist/daemon/daemon-client.js.map +1 -1
- package/dist/daemon/daemon.d.ts +5 -11
- package/dist/daemon/daemon.d.ts.map +1 -1
- package/dist/daemon/daemon.js +58 -48
- package/dist/daemon/daemon.js.map +1 -1
- package/dist/daemon/daemon.rpc-service.d.ts +3 -41
- package/dist/daemon/daemon.rpc-service.d.ts.map +1 -1
- package/dist/daemon/daemon.rpc-service.js +50 -117
- package/dist/daemon/daemon.rpc-service.js.map +1 -1
- package/dist/daemon/darwin-owner-evidence.js +1 -1
- package/dist/daemon/darwin-owner-evidence.js.map +1 -1
- package/dist/daemon/execution-capabilities.d.ts +1 -1
- package/dist/daemon/execution-capabilities.d.ts.map +1 -1
- package/dist/daemon/execution-capabilities.js +3 -3
- package/dist/daemon/execution-capabilities.js.map +1 -1
- package/dist/daemon/execution-client.d.ts +5 -1
- package/dist/daemon/execution-client.d.ts.map +1 -1
- package/dist/daemon/execution-client.js +45 -19
- package/dist/daemon/execution-client.js.map +1 -1
- package/dist/daemon/execution-host.d.ts +4 -11
- package/dist/daemon/execution-host.d.ts.map +1 -1
- package/dist/daemon/execution-host.js +3 -9
- package/dist/daemon/execution-host.js.map +1 -1
- package/dist/daemon/execution-owner.d.ts.map +1 -1
- package/dist/daemon/execution-owner.js +2 -16
- package/dist/daemon/execution-owner.js.map +1 -1
- package/dist/daemon/execution-shutdown.d.ts +1 -1
- package/dist/daemon/execution-shutdown.d.ts.map +1 -1
- package/dist/daemon/managed-owner-build.d.ts +4 -0
- package/dist/daemon/managed-owner-build.d.ts.map +1 -1
- package/dist/daemon/managed-owner-build.js +14 -2
- package/dist/daemon/managed-owner-build.js.map +1 -1
- package/dist/daemon/managed-runtime.js +1 -1
- package/dist/daemon/managed-runtime.js.map +1 -1
- package/dist/daemon/owner-reconciliation.d.ts.map +1 -1
- package/dist/daemon/owner-reconciliation.js +1 -2
- package/dist/daemon/owner-reconciliation.js.map +1 -1
- package/dist/daemon/startup-config.d.ts +1 -0
- package/dist/daemon/startup-config.d.ts.map +1 -1
- package/dist/daemon/system-guardian-cgroup.js +1 -1
- package/dist/daemon/system-guardian-cgroup.js.map +1 -1
- package/dist/infrastructure/container-runtime.d.ts +8 -0
- package/dist/infrastructure/container-runtime.d.ts.map +1 -1
- package/dist/infrastructure/container-runtime.js +5 -0
- package/dist/infrastructure/container-runtime.js.map +1 -1
- package/dist/infrastructure/existing-containers.d.ts +25 -0
- package/dist/infrastructure/existing-containers.d.ts.map +1 -0
- package/dist/infrastructure/existing-containers.js +183 -0
- package/dist/infrastructure/existing-containers.js.map +1 -0
- package/dist/infrastructure/infrastructure.service.d.ts +19 -1
- package/dist/infrastructure/infrastructure.service.d.ts.map +1 -1
- package/dist/infrastructure/infrastructure.service.js +136 -17
- package/dist/infrastructure/infrastructure.service.js.map +1 -1
- package/dist/infrastructure/presets/postgres.js +1 -1
- package/dist/infrastructure/presets/postgres.js.map +1 -1
- package/dist/infrastructure/presets/registry.d.ts.map +1 -1
- package/dist/infrastructure/presets/registry.js +11 -19
- package/dist/infrastructure/presets/registry.js.map +1 -1
- package/dist/infrastructure/stack-infra-manager.d.ts +11 -1
- package/dist/infrastructure/stack-infra-manager.d.ts.map +1 -1
- package/dist/infrastructure/stack-infra-manager.js +79 -8
- package/dist/infrastructure/stack-infra-manager.js.map +1 -1
- package/dist/mcp/tool-groups/infra.tools.d.ts.map +1 -1
- package/dist/mcp/tool-groups/infra.tools.js +4 -1
- package/dist/mcp/tool-groups/infra.tools.js.map +1 -1
- package/dist/monitoring/log-journal.d.ts.map +1 -1
- package/dist/monitoring/log-journal.js +1 -2
- package/dist/monitoring/log-journal.js.map +1 -1
- package/dist/operations.d.ts +1 -0
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +1 -0
- package/dist/operations.js.map +1 -1
- package/dist/orchestrator/app-name.d.ts +33 -0
- package/dist/orchestrator/app-name.d.ts.map +1 -0
- package/dist/orchestrator/app-name.js +68 -0
- package/dist/orchestrator/app-name.js.map +1 -0
- package/dist/orchestrator/bootstrap-loader.d.ts +2 -0
- package/dist/orchestrator/bootstrap-loader.d.ts.map +1 -1
- package/dist/orchestrator/bootstrap-loader.js +2 -1
- package/dist/orchestrator/bootstrap-loader.js.map +1 -1
- package/dist/orchestrator/classic-launcher.d.ts.map +1 -1
- package/dist/orchestrator/classic-launcher.js +2 -1
- package/dist/orchestrator/classic-launcher.js.map +1 -1
- package/dist/orchestrator/execution-contract.d.ts +2 -3
- package/dist/orchestrator/execution-contract.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.d.ts +11 -23
- package/dist/orchestrator/file-watcher.d.ts.map +1 -1
- package/dist/orchestrator/file-watcher.js +57 -42
- package/dist/orchestrator/file-watcher.js.map +1 -1
- package/dist/orchestrator/orchestrator.service.d.ts +11 -31
- package/dist/orchestrator/orchestrator.service.d.ts.map +1 -1
- package/dist/orchestrator/orchestrator.service.js +127 -109
- package/dist/orchestrator/orchestrator.service.js.map +1 -1
- package/dist/project/bootstrap-metadata.d.ts +1 -1
- package/dist/project/bootstrap-metadata.d.ts.map +1 -1
- package/dist/project/bootstrap-metadata.js +3 -2
- package/dist/project/bootstrap-metadata.js.map +1 -1
- package/dist/project/node-stack-stop.d.ts +2 -1
- package/dist/project/node-stack-stop.d.ts.map +1 -1
- package/dist/project/node-stack-stop.js +5 -1
- package/dist/project/node-stack-stop.js.map +1 -1
- package/dist/project/stack-diagnosis.d.ts.map +1 -1
- package/dist/project/stack-diagnosis.js +2 -3
- package/dist/project/stack-diagnosis.js.map +1 -1
- package/dist/release/artifact-store.d.ts +42 -7
- package/dist/release/artifact-store.d.ts.map +1 -1
- package/dist/release/artifact-store.js +176 -62
- package/dist/release/artifact-store.js.map +1 -1
- package/dist/release/closure-library-path.d.ts +8 -2
- package/dist/release/closure-library-path.d.ts.map +1 -1
- package/dist/release/closure-library-path.js +72 -28
- package/dist/release/closure-library-path.js.map +1 -1
- package/dist/release/configured-store.d.ts +6 -0
- package/dist/release/configured-store.d.ts.map +1 -0
- package/dist/release/configured-store.js +54 -0
- package/dist/release/configured-store.js.map +1 -0
- package/dist/release/load.d.ts +3 -0
- package/dist/release/load.d.ts.map +1 -1
- package/dist/release/load.js +8 -2
- package/dist/release/load.js.map +1 -1
- package/dist/release/local-installation.d.ts +2 -0
- package/dist/release/local-installation.d.ts.map +1 -1
- package/dist/release/local-installation.js +1 -1
- package/dist/release/local-installation.js.map +1 -1
- package/dist/release/portable-archive.d.ts +3 -0
- package/dist/release/portable-archive.d.ts.map +1 -1
- package/dist/release/portable-archive.js +13 -7
- package/dist/release/portable-archive.js.map +1 -1
- package/dist/release/registry-framework.d.ts +25 -0
- package/dist/release/registry-framework.d.ts.map +1 -1
- package/dist/release/registry-framework.js +51 -3
- package/dist/release/registry-framework.js.map +1 -1
- package/dist/release/target-runtime.d.ts +4 -0
- package/dist/release/target-runtime.d.ts.map +1 -1
- package/dist/release/target-runtime.js +9 -0
- package/dist/release/target-runtime.js.map +1 -1
- package/dist/services/host-upgrade.d.ts +2 -0
- package/dist/services/host-upgrade.d.ts.map +1 -1
- package/dist/services/host-upgrade.js +6 -2
- package/dist/services/host-upgrade.js.map +1 -1
- package/dist/services/infrastructure.rpc-service.d.ts +14 -2
- package/dist/services/infrastructure.rpc-service.d.ts.map +1 -1
- package/dist/services/infrastructure.rpc-service.js +128 -17
- package/dist/services/infrastructure.rpc-service.js.map +1 -1
- package/dist/services/kernel-rollout.service.d.ts.map +1 -1
- package/dist/services/kernel-rollout.service.js +1 -2
- package/dist/services/kernel-rollout.service.js.map +1 -1
- package/dist/services/migration-process.d.ts +1 -0
- package/dist/services/migration-process.d.ts.map +1 -1
- package/dist/services/migration-process.js +4 -2
- package/dist/services/migration-process.js.map +1 -1
- package/dist/services/node-deploy-lease.d.ts +4 -1
- package/dist/services/node-deploy-lease.d.ts.map +1 -1
- package/dist/services/node-deploy-lease.js +29 -4
- package/dist/services/node-deploy-lease.js.map +1 -1
- package/dist/services/node-manager.service.d.ts +5 -25
- package/dist/services/node-manager.service.d.ts.map +1 -1
- package/dist/services/node-manager.service.js +150 -139
- package/dist/services/node-manager.service.js.map +1 -1
- package/dist/services/pipeline-definition.d.ts.map +1 -1
- package/dist/services/pipeline-definition.js +32 -6
- package/dist/services/pipeline-definition.js.map +1 -1
- package/dist/services/pipeline.service.d.ts +7 -1
- package/dist/services/pipeline.service.d.ts.map +1 -1
- package/dist/services/pipeline.service.js +106 -13
- package/dist/services/pipeline.service.js.map +1 -1
- package/dist/services/project.rpc-service.d.ts +6 -5
- package/dist/services/project.rpc-service.d.ts.map +1 -1
- package/dist/services/project.rpc-service.js +13 -0
- package/dist/services/project.rpc-service.js.map +1 -1
- package/dist/services/project.service.d.ts +30 -6
- package/dist/services/project.service.d.ts.map +1 -1
- package/dist/services/project.service.js +414 -66
- package/dist/services/project.service.js.map +1 -1
- package/dist/services/release.rpc-service.d.ts +2 -1
- package/dist/services/release.rpc-service.d.ts.map +1 -1
- package/dist/services/release.rpc-service.js +19 -3
- package/dist/services/release.rpc-service.js.map +1 -1
- package/dist/services/release.service.d.ts +24 -11
- package/dist/services/release.service.d.ts.map +1 -1
- package/dist/services/release.service.js +162 -39
- package/dist/services/release.service.js.map +1 -1
- package/dist/services/remote-deployer.service.d.ts +1 -1
- package/dist/services/remote-deployer.service.d.ts.map +1 -1
- package/dist/services/remote-deployer.service.js +3 -0
- package/dist/services/remote-deployer.service.js.map +1 -1
- package/dist/services/secrets.service.d.ts +6 -0
- package/dist/services/secrets.service.d.ts.map +1 -1
- package/dist/services/secrets.service.js +95 -51
- package/dist/services/secrets.service.js.map +1 -1
- package/dist/shared/dto/backend.d.ts +3 -0
- package/dist/shared/dto/backend.d.ts.map +1 -1
- package/dist/shared/dto/backend.js.map +1 -1
- package/dist/shared/dto/nodes.d.ts +2 -0
- package/dist/shared/dto/nodes.d.ts.map +1 -1
- package/dist/shared/dto/pipelines.d.ts +54 -5
- package/dist/shared/dto/pipelines.d.ts.map +1 -1
- package/dist/shared/dto/pipelines.js +0 -7
- package/dist/shared/dto/pipelines.js.map +1 -1
- package/dist/shared/dto/project.d.ts +61 -1
- package/dist/shared/dto/project.d.ts.map +1 -1
- package/dist/shared/dto/releases.d.ts +8 -1
- package/dist/shared/dto/releases.d.ts.map +1 -1
- package/dist/shared/dto/services.d.ts +44 -18
- package/dist/shared/dto/services.d.ts.map +1 -1
- package/dist/shared/dto/services.js.map +1 -1
- package/dist/shared/release-reading.d.ts +6 -0
- package/dist/shared/release-reading.d.ts.map +1 -1
- package/dist/shared/release-reading.js +42 -0
- package/dist/shared/release-reading.js.map +1 -1
- package/dist/workers/system-worker-manager.d.ts +1 -2
- package/dist/workers/system-worker-manager.d.ts.map +1 -1
- package/dist/workers/system-worker-manager.js +5 -3
- package/dist/workers/system-worker-manager.js.map +1 -1
- package/package.json +20 -19
- package/webapp/dist/BUILD.json +2 -2
- package/webapp/dist/assets/{access-jWkHxGc7.js → access-B2gXuoMG.js} +1 -1
- package/webapp/dist/assets/{access-48hkC2-P.js → access-I0f72P9m.js} +1 -1
- package/webapp/dist/assets/{admin-data-table-BKSDI8sU.js → admin-data-table-CAEL2f-m.js} +1 -1
- package/webapp/dist/assets/{alert-uBG6r9NW.js → alert-BdJ2uaY0.js} +1 -1
- package/webapp/dist/assets/{alerts-CuPQ9YQJ.js → alerts-DeVkMXWo.js} +1 -1
- package/webapp/dist/assets/{apps-Drio028B.js → apps-9SuDvyGQ.js} +1 -1
- package/webapp/dist/assets/{audit-npSFJECe.js → audit-DT8cY7Ys.js} +1 -1
- package/webapp/dist/assets/backend-status.store-BbBE9cn8.js +4 -0
- package/webapp/dist/assets/{card-DkH32gMY.js → card-DaUEmUI5.js} +1 -1
- package/webapp/dist/assets/{chart-BpGXlCJc.js → chart-BKXP2ter.js} +1 -1
- package/webapp/dist/assets/{client-DFnuv2z3.js → client-CgyTwq9g.js} +1 -1
- package/webapp/dist/assets/{code-editor-DK6Tmmxv.js → code-editor-JVuQ4m-z.js} +1 -1
- package/webapp/dist/assets/{comparison-bars-BtC0dHjF.js → comparison-bars-Ds5Dt1oj.js} +1 -1
- package/webapp/dist/assets/{confirm-dialog-BbGsAz7_.js → confirm-dialog-BayExVbF.js} +1 -1
- package/webapp/dist/assets/{console-keyboard-D3YCA0yU.js → console-keyboard-uSLt92dB.js} +1 -1
- package/webapp/dist/assets/{containers-Bl8gAyZX.js → containers-DkXTgcrY.js} +1 -1
- package/webapp/dist/assets/{controls-C5W8gHU4.js → controls-CqeGPnaF.js} +1 -1
- package/webapp/dist/assets/{dashboard-UHlet3H9.js → dashboard-By5yPuOf.js} +1 -1
- package/webapp/dist/assets/{dashboard-builder-67PZFqhE.js → dashboard-builder-C0hvBwkd.js} +1 -1
- package/webapp/dist/assets/deploy-progress-B39cvvCE.js +1 -0
- package/webapp/dist/assets/deploy-release-dialog-CnzaO_xL.js +1 -0
- package/webapp/dist/assets/deployments-BXP943hA.js +1 -0
- package/webapp/dist/assets/{detail-B4TiBfxU.js → detail-B84RgiOb.js} +1 -1
- package/webapp/dist/assets/{detail-CYS81K6Y.js → detail-CVXDks9-.js} +1 -1
- package/webapp/dist/assets/detail-D9DixtaK.js +2 -0
- package/webapp/dist/assets/{empty-content-7jOFhG4C.js → empty-content-eyDOuOVp.js} +1 -1
- package/webapp/dist/assets/{error-boundary-CLLI8PWw.js → error-boundary-CQmDr_HS.js} +1 -1
- package/webapp/dist/assets/{event-fields-CiyqrRO8.js → event-fields-C7p2a2HY.js} +1 -1
- package/webapp/dist/assets/{files-DigwXndm.js → files-BsfGT3t6.js} +2 -2
- package/webapp/dist/assets/{icons-OboZgWSt.js → icons-B9Ct8PJ9.js} +1 -1
- package/webapp/dist/assets/index-BEfv96EF.js +1 -0
- package/webapp/dist/assets/{label-B1SF0RTL.js → label-avMhe08g.js} +1 -1
- package/webapp/dist/assets/{log-level-filter-Bcn31D1F.js → log-level-filter-oaUGdbpk.js} +1 -1
- package/webapp/dist/assets/{logs-BqHOufk8.js → logs-iC1OEDv3.js} +1 -1
- package/webapp/dist/assets/{metric-chart-M-kI-XOt.js → metric-chart-CSa_qv4F.js} +1 -1
- package/webapp/dist/assets/{metrics-QIQaF7iS.js → metrics-CKCmcGKw.js} +1 -1
- package/webapp/dist/assets/{mui-Cd711nOk.js → mui-B3fJdIMc.js} +1 -1
- package/webapp/dist/assets/{mui-CdB_p2lt.js → mui-Bdr6Ks5j.js} +1 -1
- package/webapp/dist/assets/{mui-BIz4LSVs.js → mui-CADnFGCx.js} +1 -1
- package/webapp/dist/assets/{mui-AnEgAVjz.js → mui-CMWGTMXv.js} +1 -1
- package/webapp/dist/assets/{mui-DyT2n1lx.js → mui-CN3dT7bb.js} +1 -1
- package/webapp/dist/assets/{mui-BwsIrivo.js → mui-CPEkFAPo.js} +1 -1
- package/webapp/dist/assets/{mui-B1jrje6Z.js → mui-D3qAWvfZ.js} +1 -1
- package/webapp/dist/assets/{mui-C_hromOc.js → mui-D7tBU80e.js} +1 -1
- package/webapp/dist/assets/{mui-y44PQOfG.js → mui-DaJavAoc.js} +1 -1
- package/webapp/dist/assets/{mui-BXSXx9c9.js → mui-SNRRJ_vi.js} +1 -1
- package/webapp/dist/assets/{nodes-BJPk02vv.js → nodes-DtLyXH0V.js} +1 -1
- package/webapp/dist/assets/{operation-status-Bm1x1wTz.js → operation-status-DHyYOT7G.js} +1 -1
- package/webapp/dist/assets/{page-breadcrumbs-fR7Jmpp4.js → page-breadcrumbs-3R8RZ3nA.js} +1 -1
- package/webapp/dist/assets/pipelines-Do2NAAqK.js +3 -0
- package/webapp/dist/assets/project.store-D5IR3fo9.js +1 -0
- package/webapp/dist/assets/{projects-YoBzcQ24.js → projects-BqlGbzeG.js} +1 -1
- package/webapp/dist/assets/{realtime.store-CBDO4Abj.js → realtime.store-C8D235-B.js} +1 -1
- package/webapp/dist/assets/release-bits-IehuBssK.js +1 -0
- package/webapp/dist/assets/release-build-panel-C48hP_9w.js +1 -0
- package/webapp/dist/assets/release-deployment-state-BfmxZP4Y.js +1 -0
- package/webapp/dist/assets/releases-Cm0RV5Xu.js +2 -0
- package/webapp/dist/assets/{search-input-C0MHI8vO.js → search-input-SWD1dXxD.js} +1 -1
- package/webapp/dist/assets/settings-DwuEPQGg.js +1 -0
- package/webapp/dist/assets/sign-in-CQ-WeS5A.js +1 -0
- package/webapp/dist/assets/{skeleton-BmWDJWF9.js → skeleton-BnVxAoeX.js} +1 -1
- package/webapp/dist/assets/{snackbar-DSPmjMyi.js → snackbar-CRX6eqRT.js} +1 -1
- package/webapp/dist/assets/{stack-health-status-BIv2C10x.js → stack-health-status-DfErRNb1.js} +1 -1
- package/webapp/dist/assets/{stack-start-notice-BVnMOwRQ.js → stack-start-notice-NkYDjR-f.js} +1 -1
- package/webapp/dist/assets/{stacks-IZ1mfizi.js → stacks-BOGCfW90.js} +1 -1
- package/webapp/dist/assets/{store-bqUBn2A4.js → store-DtTtbc9H.js} +1 -1
- package/webapp/dist/assets/{system-info-BFKNM-hf.js → system-info-Cw-xywgI.js} +1 -1
- package/webapp/dist/assets/{table-BOWT6Y9d.js → table-D-so_B1p.js} +1 -1
- package/webapp/dist/assets/{table-viewport-Bp4pq-c_.js → table-viewport-DdZ1yAKm.js} +1 -1
- package/webapp/dist/assets/{tabs-k5NPGLnJ.js → tabs-DGqBkXh_.js} +1 -1
- package/webapp/dist/assets/{terminal-QWBau-Us.js → terminal-Bbl0XNeB.js} +1 -1
- package/webapp/dist/assets/{topology-CPey5dP6.js → topology-DmrRy7nN.js} +1 -1
- package/webapp/dist/assets/{topology-metadata-dialog-BivuU2y6.js → topology-metadata-dialog-Dpfp4YF1.js} +1 -1
- package/webapp/dist/assets/{traces-By0rdfDC.js → traces-CKHsOabJ.js} +1 -1
- package/webapp/dist/assets/{use-stack-context-UkBsF-l7.js → use-stack-context-BuraYaeY.js} +1 -1
- package/webapp/dist/assets/webapp-D8h_eabt.js +35 -0
- package/webapp/dist/console-version.json +1 -1
- package/webapp/dist/index.html +34 -34
- package/webapp/dist/logo.svg +1 -80
- package/bin/sdk.d.mts +0 -8
- package/bin/sdk.mjs +0 -576
- package/dist/monitoring/process-lifetime.d.ts +0 -11
- package/dist/monitoring/process-lifetime.d.ts.map +0 -1
- package/dist/monitoring/process-lifetime.js +0 -45
- package/dist/monitoring/process-lifetime.js.map +0 -1
- package/dist/shared/host-boot-identity.d.ts +0 -12
- package/dist/shared/host-boot-identity.d.ts.map +0 -1
- package/dist/shared/host-boot-identity.js +0 -89
- package/dist/shared/host-boot-identity.js.map +0 -1
- package/webapp/dist/assets/deploy-release-dialog-BOXcD5Wo.js +0 -1
- package/webapp/dist/assets/deployments-qV20Ak0P.js +0 -1
- package/webapp/dist/assets/detail-B85-Wees.js +0 -2
- package/webapp/dist/assets/index-uq8Dkk4c.js +0 -1
- package/webapp/dist/assets/omnitron-logo-koMCbsCv.js +0 -1
- package/webapp/dist/assets/pipelines-T6Ch9LTw.js +0 -3
- package/webapp/dist/assets/project.store--G5pIF-J.js +0 -1
- package/webapp/dist/assets/release-bits-B2a_wbft.js +0 -1
- package/webapp/dist/assets/release-build-panel-BQmIdKW9.js +0 -1
- package/webapp/dist/assets/release-deployment-state-DRrEI2pP.js +0 -1
- package/webapp/dist/assets/release-wire-f2VuBoBF.js +0 -1
- package/webapp/dist/assets/releases-Bp3CDgmo.js +0 -2
- package/webapp/dist/assets/settings-B3egRvbI.js +0 -1
- package/webapp/dist/assets/sign-in-9q-Nfy83.js +0 -1
- package/webapp/dist/assets/webapp-D-UhjFhS.js +0 -35
- 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-
|
|
113
|
-
|
|
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
|
|
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-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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>;
|