@cleocode/core 2026.9.23 → 2026.9.25
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/dist/admin/import-tasks.d.ts.map +1 -1
- package/dist/admin/import-tasks.js +35 -6
- package/dist/admin/import-tasks.js.map +1 -1
- package/dist/admin/import.d.ts.map +1 -1
- package/dist/admin/import.js +25 -6
- package/dist/admin/import.js.map +1 -1
- package/dist/audit-prune.d.ts +32 -0
- package/dist/audit-prune.d.ts.map +1 -1
- package/dist/audit-prune.js +37 -3
- package/dist/audit-prune.js.map +1 -1
- package/dist/build-provenance.json +2 -2
- package/dist/cloud/crypto.d.ts +1 -2
- package/dist/cloud/crypto.d.ts.map +1 -1
- package/dist/cloud/crypto.js +1 -11
- package/dist/cloud/crypto.js.map +1 -1
- package/dist/cloud/http.d.ts +8 -0
- package/dist/cloud/http.d.ts.map +1 -1
- package/dist/cloud/http.js +8 -1
- package/dist/cloud/http.js.map +1 -1
- package/dist/cloud/index.d.ts +6 -1
- package/dist/cloud/index.d.ts.map +1 -1
- package/dist/cloud/index.js +6 -1
- package/dist/cloud/index.js.map +1 -1
- package/dist/cloud/nexus-auth.d.ts +169 -0
- package/dist/cloud/nexus-auth.d.ts.map +1 -0
- package/dist/cloud/nexus-auth.js +372 -0
- package/dist/cloud/nexus-auth.js.map +1 -0
- package/dist/cloud/nexus-credentials.d.ts +188 -0
- package/dist/cloud/nexus-credentials.d.ts.map +1 -0
- package/dist/cloud/nexus-credentials.js +323 -0
- package/dist/cloud/nexus-credentials.js.map +1 -0
- package/dist/cloud/nexus-link.d.ts +85 -0
- package/dist/cloud/nexus-link.d.ts.map +1 -0
- package/dist/cloud/nexus-link.js +226 -0
- package/dist/cloud/nexus-link.js.map +1 -0
- package/dist/cloud/presence.d.ts +88 -0
- package/dist/cloud/presence.d.ts.map +1 -0
- package/dist/cloud/presence.js +137 -0
- package/dist/cloud/presence.js.map +1 -0
- package/dist/cloud/projects.d.ts +3 -1
- package/dist/cloud/projects.d.ts.map +1 -1
- package/dist/cloud/projects.js +4 -2
- package/dist/cloud/projects.js.map +1 -1
- package/dist/cloud/uuidv7.d.ts +9 -0
- package/dist/cloud/uuidv7.d.ts.map +1 -0
- package/dist/cloud/uuidv7.js +19 -0
- package/dist/cloud/uuidv7.js.map +1 -0
- package/dist/crypto/credentials.d.ts +14 -4
- package/dist/crypto/credentials.d.ts.map +1 -1
- package/dist/crypto/credentials.js +15 -1
- package/dist/crypto/credentials.js.map +1 -1
- package/dist/decide/bench/dataset.d.ts +125 -0
- package/dist/decide/bench/dataset.d.ts.map +1 -0
- package/dist/decide/bench/dataset.js +457 -0
- package/dist/decide/bench/dataset.js.map +1 -0
- package/dist/decide/bench/index.d.ts +23 -0
- package/dist/decide/bench/index.d.ts.map +1 -0
- package/dist/decide/bench/index.js +23 -0
- package/dist/decide/bench/index.js.map +1 -0
- package/dist/decide/bench/metrics.d.ts +55 -0
- package/dist/decide/bench/metrics.d.ts.map +1 -0
- package/dist/decide/bench/metrics.js +100 -0
- package/dist/decide/bench/metrics.js.map +1 -0
- package/dist/decide/bench/operation.d.ts +119 -0
- package/dist/decide/bench/operation.d.ts.map +1 -0
- package/dist/decide/bench/operation.js +171 -0
- package/dist/decide/bench/operation.js.map +1 -0
- package/dist/decide/bench/profiles.d.ts +102 -0
- package/dist/decide/bench/profiles.d.ts.map +1 -0
- package/dist/decide/bench/profiles.js +175 -0
- package/dist/decide/bench/profiles.js.map +1 -0
- package/dist/decide/bench/questions.d.ts +40 -0
- package/dist/decide/bench/questions.d.ts.map +1 -0
- package/dist/decide/bench/questions.js +107 -0
- package/dist/decide/bench/questions.js.map +1 -0
- package/dist/decide/bench/report.d.ts +21 -0
- package/dist/decide/bench/report.d.ts.map +1 -0
- package/dist/decide/bench/report.js +125 -0
- package/dist/decide/bench/report.js.map +1 -0
- package/dist/decide/bench/runner.d.ts +208 -0
- package/dist/decide/bench/runner.d.ts.map +1 -0
- package/dist/decide/bench/runner.js +336 -0
- package/dist/decide/bench/runner.js.map +1 -0
- package/dist/decide/bench/source.d.ts +21 -0
- package/dist/decide/bench/source.d.ts.map +1 -0
- package/dist/decide/bench/source.js +67 -0
- package/dist/decide/bench/source.js.map +1 -0
- package/dist/decide/bench/spot-check.d.ts +117 -0
- package/dist/decide/bench/spot-check.d.ts.map +1 -0
- package/dist/decide/bench/spot-check.js +221 -0
- package/dist/decide/bench/spot-check.js.map +1 -0
- package/dist/decide/bench/stats.d.ts +57 -0
- package/dist/decide/bench/stats.d.ts.map +1 -0
- package/dist/decide/bench/stats.js +82 -0
- package/dist/decide/bench/stats.js.map +1 -0
- package/dist/decide/bench/types.d.ts +216 -0
- package/dist/decide/bench/types.d.ts.map +1 -0
- package/dist/decide/bench/types.js +104 -0
- package/dist/decide/bench/types.js.map +1 -0
- package/dist/decide/client.d.ts +35 -1
- package/dist/decide/client.d.ts.map +1 -1
- package/dist/decide/client.js +135 -35
- package/dist/decide/client.js.map +1 -1
- package/dist/decide/credentials.d.ts +177 -17
- package/dist/decide/credentials.d.ts.map +1 -1
- package/dist/decide/credentials.js +505 -41
- package/dist/decide/credentials.js.map +1 -1
- package/dist/decide/index.d.ts +8 -8
- package/dist/decide/index.d.ts.map +1 -1
- package/dist/decide/index.js +8 -8
- package/dist/decide/index.js.map +1 -1
- package/dist/decide/jev-wire.d.ts +55 -19
- package/dist/decide/jev-wire.d.ts.map +1 -1
- package/dist/decide/jev-wire.js +116 -37
- package/dist/decide/jev-wire.js.map +1 -1
- package/dist/decide/operations.d.ts +63 -12
- package/dist/decide/operations.d.ts.map +1 -1
- package/dist/decide/operations.js +116 -58
- package/dist/decide/operations.js.map +1 -1
- package/dist/decide/provider-state.d.ts +85 -12
- package/dist/decide/provider-state.d.ts.map +1 -1
- package/dist/decide/provider-state.js +154 -21
- package/dist/decide/provider-state.js.map +1 -1
- package/dist/decide/provider.d.ts +5 -0
- package/dist/decide/provider.d.ts.map +1 -1
- package/dist/decide/provider.js.map +1 -1
- package/dist/decide/providers.d.ts +15 -2
- package/dist/decide/providers.d.ts.map +1 -1
- package/dist/decide/providers.js +22 -6
- package/dist/decide/providers.js.map +1 -1
- package/dist/decide/sites/registry.d.ts +22 -0
- package/dist/decide/sites/registry.d.ts.map +1 -1
- package/dist/decide/sites/registry.js +23 -0
- package/dist/decide/sites/registry.js.map +1 -1
- package/dist/decide/wizard.d.ts +12 -4
- package/dist/decide/wizard.d.ts.map +1 -1
- package/dist/decide/wizard.js +79 -26
- package/dist/decide/wizard.js.map +1 -1
- package/dist/dispatch/mvi-projection.d.ts +15 -2
- package/dist/dispatch/mvi-projection.d.ts.map +1 -1
- package/dist/dispatch/mvi-projection.js +73 -12
- package/dist/dispatch/mvi-projection.js.map +1 -1
- package/dist/docs/adr-allocator.d.ts +2 -2
- package/dist/docs/adr-allocator.d.ts.map +1 -1
- package/dist/docs/adr-allocator.js +17 -4
- package/dist/docs/adr-allocator.js.map +1 -1
- package/dist/docs/blob-consolidation.js +1 -1
- package/dist/docs/blob-consolidation.js.map +1 -1
- package/dist/docs/display-alias.d.ts +1 -1
- package/dist/docs/display-alias.d.ts.map +1 -1
- package/dist/docs/display-alias.js +7 -4
- package/dist/docs/display-alias.js.map +1 -1
- package/dist/docs/docs-inconsistency-detector.js +1 -1
- package/dist/docs/docs-inconsistency-detector.js.map +1 -1
- package/dist/docs/docs-update.d.ts.map +1 -1
- package/dist/docs/docs-update.js +6 -1
- package/dist/docs/docs-update.js.map +1 -1
- package/dist/docs/export-document.js +18058 -14538
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/numbering.js +1 -1
- package/dist/docs/numbering.js.map +1 -1
- package/dist/docs/supersede.d.ts.map +1 -1
- package/dist/docs/supersede.js +6 -3
- package/dist/docs/supersede.js.map +1 -1
- package/dist/docs/version-ssot.js +1 -1
- package/dist/docs/version-ssot.js.map +1 -1
- package/dist/doctor/db-substrate.d.ts.map +1 -1
- package/dist/doctor/db-substrate.js +39 -24
- package/dist/doctor/db-substrate.js.map +1 -1
- package/dist/doctor/knowledge-summary.d.ts +10 -3
- package/dist/doctor/knowledge-summary.d.ts.map +1 -1
- package/dist/doctor/knowledge-summary.js +10 -3
- package/dist/doctor/knowledge-summary.js.map +1 -1
- package/dist/doctor/orphan-ac-bindings.d.ts +64 -0
- package/dist/doctor/orphan-ac-bindings.d.ts.map +1 -0
- package/dist/doctor/orphan-ac-bindings.js +59 -0
- package/dist/doctor/orphan-ac-bindings.js.map +1 -0
- package/dist/doctor/project-identity.d.ts +128 -37
- package/dist/doctor/project-identity.d.ts.map +1 -1
- package/dist/doctor/project-identity.js +476 -63
- package/dist/doctor/project-identity.js.map +1 -1
- package/dist/doctor/projects.d.ts.map +1 -1
- package/dist/doctor/projects.js +43 -29
- package/dist/doctor/projects.js.map +1 -1
- package/dist/doctor/row-identity.d.ts +31 -0
- package/dist/doctor/row-identity.d.ts.map +1 -0
- package/dist/doctor/row-identity.js +93 -0
- package/dist/doctor/row-identity.js.map +1 -0
- package/dist/doctor/twin-collapse.d.ts +108 -2
- package/dist/doctor/twin-collapse.d.ts.map +1 -1
- package/dist/doctor/twin-collapse.js +309 -7
- package/dist/doctor/twin-collapse.js.map +1 -1
- package/dist/error-catalog.js +2 -2
- package/dist/error-catalog.js.map +1 -1
- package/dist/error-registry.js +1 -1
- package/dist/error-registry.js.map +1 -1
- package/dist/gateway-client/generated/types.gen.d.ts +22 -2
- package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +20 -11
- package/dist/init.js.map +1 -1
- package/dist/inject/index.d.ts.map +1 -1
- package/dist/inject/index.js +2 -3
- package/dist/inject/index.js.map +1 -1
- package/dist/internal.d.ts +5 -4
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +6 -4
- package/dist/internal.js.map +1 -1
- package/dist/lifecycle/verification/satisfies-validator.d.ts.map +1 -1
- package/dist/lifecycle/verification/satisfies-validator.js +10 -0
- package/dist/lifecycle/verification/satisfies-validator.js.map +1 -1
- package/dist/llm/credential-remove-entry.d.ts +59 -0
- package/dist/llm/credential-remove-entry.d.ts.map +1 -0
- package/dist/llm/credential-remove-entry.js +101 -0
- package/dist/llm/credential-remove-entry.js.map +1 -0
- package/dist/llm/oauth/device-code.d.ts +26 -6
- package/dist/llm/oauth/device-code.d.ts.map +1 -1
- package/dist/llm/oauth/device-code.js +44 -12
- package/dist/llm/oauth/device-code.js.map +1 -1
- package/dist/llm/plugin-facade.js +18202 -14682
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/memory/attention.d.ts.map +1 -1
- package/dist/memory/attention.js +5 -3
- package/dist/memory/attention.js.map +1 -1
- package/dist/memory/decisions.d.ts +48 -3
- package/dist/memory/decisions.d.ts.map +1 -1
- package/dist/memory/decisions.js +98 -14
- package/dist/memory/decisions.js.map +1 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +19 -10
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/learnings.d.ts +6 -6
- package/dist/memory/manifest-identity.d.ts +171 -0
- package/dist/memory/manifest-identity.d.ts.map +1 -0
- package/dist/memory/manifest-identity.js +345 -0
- package/dist/memory/manifest-identity.js.map +1 -0
- package/dist/memory/mental-model-queue.d.ts +14 -4
- package/dist/memory/mental-model-queue.d.ts.map +1 -1
- package/dist/memory/mental-model-queue.js +64 -35
- package/dist/memory/mental-model-queue.js.map +1 -1
- package/dist/memory/patterns.d.ts +4 -4
- package/dist/memory/pipeline-manifest-sqlite.d.ts +47 -5
- package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.js +130 -14
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
- package/dist/memory/retrieval/observe.d.ts.map +1 -1
- package/dist/memory/retrieval/observe.js +2 -0
- package/dist/memory/retrieval/observe.js.map +1 -1
- package/dist/memory/transcript-scanner.js +1 -1
- package/dist/migration/manual/T10165-backfill-adr-index.d.ts.map +1 -1
- package/dist/migration/manual/T10165-backfill-adr-index.js +5 -1
- package/dist/migration/manual/T10165-backfill-adr-index.js.map +1 -1
- package/dist/nexus/deps.d.ts.map +1 -1
- package/dist/nexus/deps.js +7 -14
- package/dist/nexus/deps.js.map +1 -1
- package/dist/nexus/discover.d.ts.map +1 -1
- package/dist/nexus/discover.js +6 -9
- package/dist/nexus/discover.js.map +1 -1
- package/dist/nexus/fleet-status.d.ts +83 -0
- package/dist/nexus/fleet-status.d.ts.map +1 -0
- package/dist/nexus/fleet-status.js +414 -0
- package/dist/nexus/fleet-status.js.map +1 -0
- package/dist/nexus/git-state.d.ts +15 -0
- package/dist/nexus/git-state.d.ts.map +1 -1
- package/dist/nexus/git-state.js +77 -3
- package/dist/nexus/git-state.js.map +1 -1
- package/dist/nexus/identity.d.ts.map +1 -1
- package/dist/nexus/identity.js +4 -0
- package/dist/nexus/identity.js.map +1 -1
- package/dist/nexus/index.d.ts +4 -1
- package/dist/nexus/index.d.ts.map +1 -1
- package/dist/nexus/index.js +7 -1
- package/dist/nexus/index.js.map +1 -1
- package/dist/nexus/migrate-json-to-sqlite.d.ts +3 -2
- package/dist/nexus/migrate-json-to-sqlite.d.ts.map +1 -1
- package/dist/nexus/migrate-json-to-sqlite.js +9 -17
- package/dist/nexus/migrate-json-to-sqlite.js.map +1 -1
- package/dist/nexus/ops.d.ts +1 -0
- package/dist/nexus/ops.d.ts.map +1 -1
- package/dist/nexus/project-activity.d.ts +104 -0
- package/dist/nexus/project-activity.d.ts.map +1 -0
- package/dist/nexus/project-activity.js +150 -0
- package/dist/nexus/project-activity.js.map +1 -0
- package/dist/nexus/projects-clean.d.ts.map +1 -1
- package/dist/nexus/projects-clean.js +22 -11
- package/dist/nexus/projects-clean.js.map +1 -1
- package/dist/nexus/projects-scan.d.ts.map +1 -1
- package/dist/nexus/projects-scan.js +8 -13
- package/dist/nexus/projects-scan.js.map +1 -1
- package/dist/nexus/query.d.ts +2 -2
- package/dist/nexus/query.d.ts.map +1 -1
- package/dist/nexus/query.js +8 -31
- package/dist/nexus/query.js.map +1 -1
- package/dist/nexus/registry-errors.d.ts +61 -0
- package/dist/nexus/registry-errors.d.ts.map +1 -0
- package/dist/nexus/registry-errors.js +85 -0
- package/dist/nexus/registry-errors.js.map +1 -0
- package/dist/nexus/registry-roots.d.ts +5 -2
- package/dist/nexus/registry-roots.d.ts.map +1 -1
- package/dist/nexus/registry-roots.js +8 -10
- package/dist/nexus/registry-roots.js.map +1 -1
- package/dist/nexus/registry.d.ts +48 -5
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +151 -85
- package/dist/nexus/registry.js.map +1 -1
- package/dist/orchestrate/pivot.d.ts +4 -0
- package/dist/orchestrate/pivot.d.ts.map +1 -1
- package/dist/orchestrate/pivot.js +75 -12
- package/dist/orchestrate/pivot.js.map +1 -1
- package/dist/orchestrate/query-ops.d.ts.map +1 -1
- package/dist/orchestrate/query-ops.js +29 -27
- package/dist/orchestrate/query-ops.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +29 -3
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestrate/worktree-complete.d.ts.map +1 -1
- package/dist/orchestrate/worktree-complete.js +40 -2
- package/dist/orchestrate/worktree-complete.js.map +1 -1
- package/dist/orchestration/bootstrap.d.ts.map +1 -1
- package/dist/orchestration/bootstrap.js +20 -14
- package/dist/orchestration/bootstrap.js.map +1 -1
- package/dist/orchestration/index.d.ts +15 -1
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +25 -6
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/lead-rollup.d.ts +7 -1
- package/dist/orchestration/lead-rollup.d.ts.map +1 -1
- package/dist/orchestration/lead-rollup.js +6 -3
- package/dist/orchestration/lead-rollup.js.map +1 -1
- package/dist/orchestration/spawn-prompt.d.ts +26 -0
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +63 -92
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/orchestration/waves.d.ts +21 -10
- package/dist/orchestration/waves.d.ts.map +1 -1
- package/dist/orchestration/waves.js +38 -35
- package/dist/orchestration/waves.js.map +1 -1
- package/dist/paths.d.ts +9 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +30 -13
- package/dist/paths.js.map +1 -1
- package/dist/phases/index.d.ts +1 -1
- package/dist/phases/index.d.ts.map +1 -1
- package/dist/phases/index.js +3 -4
- package/dist/phases/index.js.map +1 -1
- package/dist/project-info.d.ts +40 -3
- package/dist/project-info.d.ts.map +1 -1
- package/dist/project-info.js +74 -6
- package/dist/project-info.js.map +1 -1
- package/dist/project-lifecycle.d.ts +28 -7
- package/dist/project-lifecycle.d.ts.map +1 -1
- package/dist/project-lifecycle.js +114 -47
- package/dist/project-lifecycle.js.map +1 -1
- package/dist/project-scope.d.ts +70 -3
- package/dist/project-scope.d.ts.map +1 -1
- package/dist/project-scope.js +154 -15
- package/dist/project-scope.js.map +1 -1
- package/dist/release/ci-evidence.d.ts +190 -0
- package/dist/release/ci-evidence.d.ts.map +1 -1
- package/dist/release/ci-evidence.js +436 -4
- package/dist/release/ci-evidence.js.map +1 -1
- package/dist/release/open.d.ts +12 -2
- package/dist/release/open.d.ts.map +1 -1
- package/dist/release/open.js +32 -3
- package/dist/release/open.js.map +1 -1
- package/dist/release/preflight-skip.d.ts +73 -0
- package/dist/release/preflight-skip.d.ts.map +1 -0
- package/dist/release/preflight-skip.js +254 -0
- package/dist/release/preflight-skip.js.map +1 -0
- package/dist/render/decide/index.d.ts +51 -0
- package/dist/render/decide/index.d.ts.map +1 -0
- package/dist/render/decide/index.js +289 -0
- package/dist/render/decide/index.js.map +1 -0
- package/dist/render/index.d.ts +1 -0
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +1 -0
- package/dist/render/index.js.map +1 -1
- package/dist/render/nexus/graph/index.d.ts +5 -0
- package/dist/render/nexus/graph/index.d.ts.map +1 -1
- package/dist/render/nexus/graph/index.js +53 -0
- package/dist/render/nexus/graph/index.js.map +1 -1
- package/dist/scaffold/ensure-config.d.ts +14 -6
- package/dist/scaffold/ensure-config.d.ts.map +1 -1
- package/dist/scaffold/ensure-config.js +39 -17
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/scaffold/project-identity.d.ts +115 -23
- package/dist/scaffold/project-identity.d.ts.map +1 -1
- package/dist/scaffold/project-identity.js +196 -44
- package/dist/scaffold/project-identity.js.map +1 -1
- package/dist/sdk/validator-ac-pull.d.ts.map +1 -1
- package/dist/sdk/validator-ac-pull.js +2 -1
- package/dist/sdk/validator-ac-pull.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +18221 -14701
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sentient/cross-project-hygiene.d.ts +17 -6
- package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
- package/dist/sentient/cross-project-hygiene.js +22 -11
- package/dist/sentient/cross-project-hygiene.js.map +1 -1
- package/dist/sentient/propose-tick.d.ts.map +1 -1
- package/dist/sentient/propose-tick.js +2 -3
- package/dist/sentient/propose-tick.js.map +1 -1
- package/dist/sentient/stage-drift-tick.d.ts.map +1 -1
- package/dist/sentient/stage-drift-tick.js +2 -3
- package/dist/sentient/stage-drift-tick.js.map +1 -1
- package/dist/session/engine-ops.d.ts +13 -4
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +38 -45
- package/dist/session/engine-ops.js.map +1 -1
- package/dist/sessions/briefing.d.ts +7 -3
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +10 -10
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/drift-watchdog.d.ts.map +1 -1
- package/dist/sessions/drift-watchdog.js +11 -19
- package/dist/sessions/drift-watchdog.js.map +1 -1
- package/dist/sessions/focus-state-store.d.ts +103 -26
- package/dist/sessions/focus-state-store.d.ts.map +1 -1
- package/dist/sessions/focus-state-store.js +166 -37
- package/dist/sessions/focus-state-store.js.map +1 -1
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +9 -18
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/sessions/index.d.ts +4 -2
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +35 -6
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/session-drift.d.ts.map +1 -1
- package/dist/sessions/session-drift.js +4 -2
- package/dist/sessions/session-drift.js.map +1 -1
- package/dist/sessions/session-view.d.ts +8 -1
- package/dist/sessions/session-view.d.ts.map +1 -1
- package/dist/sessions/session-view.js +9 -2
- package/dist/sessions/session-view.js.map +1 -1
- package/dist/setup/config-json-merge.d.ts.map +1 -1
- package/dist/setup/config-json-merge.js +1 -0
- package/dist/setup/config-json-merge.js.map +1 -1
- package/dist/setup/index.d.ts +4 -2
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +6 -2
- package/dist/setup/index.js.map +1 -1
- package/dist/setup/sections/nexus-account.d.ts +32 -0
- package/dist/setup/sections/nexus-account.d.ts.map +1 -0
- package/dist/setup/sections/nexus-account.js +64 -0
- package/dist/setup/sections/nexus-account.js.map +1 -0
- package/dist/setup/wizard.d.ts +1 -1
- package/dist/setup/wizard.d.ts.map +1 -1
- package/dist/setup/wizard.js.map +1 -1
- package/dist/skills/manifests/research.js +2 -0
- package/dist/skills/manifests/research.js.map +1 -1
- package/dist/skills/orchestrator/startup.d.ts.map +1 -1
- package/dist/skills/orchestrator/startup.js +18 -31
- package/dist/skills/orchestrator/startup.js.map +1 -1
- package/dist/skills/orchestrator/validator.d.ts.map +1 -1
- package/dist/skills/orchestrator/validator.js +9 -2
- package/dist/skills/orchestrator/validator.js.map +1 -1
- package/dist/skills/validation.d.ts +4 -1
- package/dist/skills/validation.d.ts.map +1 -1
- package/dist/skills/validation.js +11 -3
- package/dist/skills/validation.js.map +1 -1
- package/dist/snapshot/index.d.ts.map +1 -1
- package/dist/snapshot/index.js +60 -53
- package/dist/snapshot/index.js.map +1 -1
- package/dist/spawn/agent-identity.d.ts +33 -1
- package/dist/spawn/agent-identity.d.ts.map +1 -1
- package/dist/spawn/agent-identity.js +53 -1
- package/dist/spawn/agent-identity.js.map +1 -1
- package/dist/spawn/branch-lock.d.ts +111 -7
- package/dist/spawn/branch-lock.d.ts.map +1 -1
- package/dist/spawn/branch-lock.js +296 -8
- package/dist/spawn/branch-lock.js.map +1 -1
- package/dist/spawn/index.d.ts +1 -1
- package/dist/spawn/index.d.ts.map +1 -1
- package/dist/spawn/index.js +1 -1
- package/dist/spawn/index.js.map +1 -1
- package/dist/stats/index.d.ts.map +1 -1
- package/dist/stats/index.js +3 -4
- package/dist/stats/index.js.map +1 -1
- package/dist/status/index.d.ts +12 -3
- package/dist/status/index.d.ts.map +1 -1
- package/dist/status/index.js +47 -5
- package/dist/status/index.js.map +1 -1
- package/dist/store/ac-binding-prune.d.ts +144 -0
- package/dist/store/ac-binding-prune.d.ts.map +1 -0
- package/dist/store/ac-binding-prune.js +293 -0
- package/dist/store/ac-binding-prune.js.map +1 -0
- package/dist/store/agent-registry-store.d.ts.map +1 -1
- package/dist/store/agent-registry-store.js +3 -2
- package/dist/store/agent-registry-store.js.map +1 -1
- package/dist/store/attachment-repair.d.ts.map +1 -1
- package/dist/store/attachment-repair.js +42 -3
- package/dist/store/attachment-repair.js.map +1 -1
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +30 -46
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/backup-recover-brain.d.ts +4 -0
- package/dist/store/backup-recover-brain.d.ts.map +1 -1
- package/dist/store/backup-recover-brain.js +2 -0
- package/dist/store/backup-recover-brain.js.map +1 -1
- package/dist/store/backup-recover.d.ts +9 -0
- package/dist/store/backup-recover.d.ts.map +1 -1
- package/dist/store/backup-recover.js +28 -1
- package/dist/store/backup-recover.js.map +1 -1
- package/dist/store/backup-sidecar.d.ts +115 -2
- package/dist/store/backup-sidecar.d.ts.map +1 -1
- package/dist/store/backup-sidecar.js +263 -3
- package/dist/store/backup-sidecar.js.map +1 -1
- package/dist/store/blob-keep.d.ts +135 -0
- package/dist/store/blob-keep.d.ts.map +1 -0
- package/dist/store/blob-keep.js +283 -0
- package/dist/store/blob-keep.js.map +1 -0
- package/dist/store/conduit-sqlite.d.ts.map +1 -1
- package/dist/store/conduit-sqlite.js +3 -2
- package/dist/store/conduit-sqlite.js.map +1 -1
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/converters.js +11 -0
- package/dist/store/converters.js.map +1 -1
- package/dist/store/credential-transfer.d.ts +37 -5
- package/dist/store/credential-transfer.d.ts.map +1 -1
- package/dist/store/credential-transfer.js +76 -18
- package/dist/store/credential-transfer.js.map +1 -1
- package/dist/store/data-accessor.d.ts +1 -1
- package/dist/store/data-accessor.d.ts.map +1 -1
- package/dist/store/data-accessor.js.map +1 -1
- package/dist/store/db-helpers.d.ts +35 -11
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +107 -38
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/display-id-alias.d.ts +529 -0
- package/dist/store/display-id-alias.d.ts.map +1 -0
- package/dist/store/display-id-alias.js +1063 -0
- package/dist/store/display-id-alias.js.map +1 -0
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +21 -0
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +35 -0
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/reconcile.d.ts.map +1 -1
- package/dist/store/exodus/reconcile.js +7 -2
- package/dist/store/exodus/reconcile.js.map +1 -1
- package/dist/store/exodus/recovery.d.ts.map +1 -1
- package/dist/store/exodus/recovery.js +20 -1
- package/dist/store/exodus/recovery.js.map +1 -1
- package/dist/store/exodus/runtime-targets.d.ts +3 -3
- package/dist/store/exodus/runtime-targets.js +3 -3
- package/dist/store/import-remap.d.ts +12 -1
- package/dist/store/import-remap.d.ts.map +1 -1
- package/dist/store/import-remap.js +14 -0
- package/dist/store/import-remap.js.map +1 -1
- package/dist/store/legacy-tasks-lineage.d.ts +3 -1
- package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
- package/dist/store/legacy-tasks-lineage.js +22 -3
- package/dist/store/legacy-tasks-lineage.js.map +1 -1
- package/dist/store/memory-accessor.js +1 -1
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/migration-manager.d.ts +61 -0
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +102 -4
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/nexus-validation-schemas.d.ts +64 -0
- package/dist/store/nexus-validation-schemas.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.d.ts +8 -0
- package/dist/store/portable-bundle-import.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.js +10 -0
- package/dist/store/portable-bundle-import.js.map +1 -1
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +1 -0
- package/dist/store/portable-bundle-scan.js.map +1 -1
- package/dist/store/portable-bundle.d.ts.map +1 -1
- package/dist/store/portable-bundle.js +15 -14
- package/dist/store/portable-bundle.js.map +1 -1
- package/dist/store/pre-repair-snapshot.d.ts +4 -1
- package/dist/store/pre-repair-snapshot.d.ts.map +1 -1
- package/dist/store/pre-repair-snapshot.js +5 -1
- package/dist/store/pre-repair-snapshot.js.map +1 -1
- package/dist/store/regenerators.d.ts +4 -2
- package/dist/store/regenerators.d.ts.map +1 -1
- package/dist/store/regenerators.js +7 -3
- package/dist/store/regenerators.js.map +1 -1
- package/dist/store/repair-malformed-dbs.d.ts +4 -0
- package/dist/store/repair-malformed-dbs.d.ts.map +1 -1
- package/dist/store/repair-malformed-dbs.js +3 -0
- package/dist/store/repair-malformed-dbs.js.map +1 -1
- package/dist/store/row-identity-flag.d.ts +26 -0
- package/dist/store/row-identity-flag.d.ts.map +1 -0
- package/dist/store/row-identity-flag.js +31 -0
- package/dist/store/row-identity-flag.js.map +1 -0
- package/dist/store/row-identity-registry.d.ts +61 -0
- package/dist/store/row-identity-registry.d.ts.map +1 -0
- package/dist/store/row-identity-registry.js +198 -0
- package/dist/store/row-identity-registry.js.map +1 -0
- package/dist/store/row-identity.d.ts +390 -0
- package/dist/store/row-identity.d.ts.map +1 -0
- package/dist/store/row-identity.js +1240 -0
- package/dist/store/row-identity.js.map +1 -0
- package/dist/store/safety-data-accessor.d.ts +10 -3
- package/dist/store/safety-data-accessor.d.ts.map +1 -1
- package/dist/store/safety-data-accessor.js +15 -4
- package/dist/store/safety-data-accessor.js.map +1 -1
- package/dist/store/schema/attachments.d.ts +1 -1
- package/dist/store/schema/audit.d.ts +4 -4
- package/dist/store/schema/background-jobs.d.ts +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +49 -1
- package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/nexus.js +17 -0
- package/dist/store/schema/cleo-global/nexus.js.map +1 -1
- package/dist/store/schema/cleo-global/skills.d.ts +2 -2
- package/dist/store/schema/cleo-project/audit.d.ts +4 -4
- package/dist/store/schema/cleo-project/docs.d.ts +17 -1
- package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/docs.js +10 -0
- package/dist/store/schema/cleo-project/docs.js.map +1 -1
- package/dist/store/schema/cleo-project/lifecycle.d.ts +4 -4
- package/dist/store/schema/cleo-project/nexus-graph.d.ts +3 -3
- package/dist/store/schema/cleo-project/provenance-commits.d.ts +2 -2
- package/dist/store/schema/cleo-project/provenance-rest.d.ts +3 -3
- package/dist/store/schema/cleo-project/runtime.d.ts +3 -3
- package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +87 -1
- package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core-batch2.js +35 -0
- package/dist/store/schema/cleo-project/tasks-core-batch2.js.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +263 -7
- package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.js +77 -2
- package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +7 -7
- package/dist/store/schema/lifecycle.d.ts +4 -4
- package/dist/store/schema/manifest.d.ts +1 -1
- package/dist/store/schema/memory-schema.d.ts +6 -6
- package/dist/store/schema/nexus-schema.d.ts +51 -3
- package/dist/store/schema/nexus-schema.d.ts.map +1 -1
- package/dist/store/schema/nexus-schema.js +28 -7
- package/dist/store/schema/nexus-schema.js.map +1 -1
- package/dist/store/schema/provenance/releases.d.ts +1 -1
- package/dist/store/schema/skills-schema.d.ts +2 -2
- package/dist/store/schema/tasks.d.ts +6 -6
- package/dist/store/session-store.d.ts +65 -0
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +108 -7
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/split-brain-import.d.ts +2 -14
- package/dist/store/split-brain-import.d.ts.map +1 -1
- package/dist/store/split-brain-import.js +4 -19
- package/dist/store/split-brain-import.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts +279 -2
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +789 -91
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite.d.ts +15 -3
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +52 -20
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/store-write-guard.d.ts +9 -3
- package/dist/store/store-write-guard.d.ts.map +1 -1
- package/dist/store/store-write-guard.js +25 -4
- package/dist/store/store-write-guard.js.map +1 -1
- package/dist/store/sync/clock-store.d.ts +67 -0
- package/dist/store/sync/clock-store.d.ts.map +1 -0
- package/dist/store/sync/clock-store.js +117 -0
- package/dist/store/sync/clock-store.js.map +1 -0
- package/dist/store/sync/flags.d.ts +51 -0
- package/dist/store/sync/flags.d.ts.map +1 -0
- package/dist/store/sync/flags.js +81 -0
- package/dist/store/sync/flags.js.map +1 -0
- package/dist/store/sync/hlc.d.ts +115 -0
- package/dist/store/sync/hlc.d.ts.map +1 -0
- package/dist/store/sync/hlc.js +172 -0
- package/dist/store/sync/hlc.js.map +1 -0
- package/dist/store/sync/index.d.ts +20 -0
- package/dist/store/sync/index.d.ts.map +1 -0
- package/dist/store/sync/index.js +20 -0
- package/dist/store/sync/index.js.map +1 -0
- package/dist/store/sync/replica-registry.d.ts +85 -0
- package/dist/store/sync/replica-registry.d.ts.map +1 -0
- package/dist/store/sync/replica-registry.js +147 -0
- package/dist/store/sync/replica-registry.js.map +1 -0
- package/dist/store/sync/replica.d.ts +181 -0
- package/dist/store/sync/replica.d.ts.map +1 -0
- package/dist/store/sync/replica.js +305 -0
- package/dist/store/sync/replica.js.map +1 -0
- package/dist/store/sync/schema.d.ts +68 -0
- package/dist/store/sync/schema.d.ts.map +1 -0
- package/dist/store/sync/schema.js +130 -0
- package/dist/store/sync/schema.js.map +1 -0
- package/dist/store/sync/skew-hold.d.ts +71 -0
- package/dist/store/sync/skew-hold.d.ts.map +1 -0
- package/dist/store/sync/skew-hold.js +89 -0
- package/dist/store/sync/skew-hold.js.map +1 -0
- package/dist/store/table-classification.d.ts +11 -9
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +127 -33
- package/dist/store/table-classification.js.map +1 -1
- package/dist/store/task-claim.d.ts +144 -0
- package/dist/store/task-claim.d.ts.map +1 -0
- package/dist/store/task-claim.js +195 -0
- package/dist/store/task-claim.js.map +1 -0
- package/dist/store/task-version.d.ts +43 -5
- package/dist/store/task-version.d.ts.map +1 -1
- package/dist/store/task-version.js +113 -17
- package/dist/store/task-version.js.map +1 -1
- package/dist/store/tasks-schema.d.ts +2 -0
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/tasks-schema.js +1 -0
- package/dist/store/tasks-schema.js.map +1 -1
- package/dist/store/tasks-sqlite.d.ts.map +1 -1
- package/dist/store/tasks-sqlite.js +10 -2
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/twin-collapse.d.ts +450 -22
- package/dist/store/twin-collapse.d.ts.map +1 -1
- package/dist/store/twin-collapse.js +1552 -49
- package/dist/store/twin-collapse.js.map +1 -1
- package/dist/store/umbrella-data-accessor.d.ts +10 -3
- package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
- package/dist/store/umbrella-data-accessor.js +14 -4
- package/dist/store/umbrella-data-accessor.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +402 -50
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/store/with-retry.d.ts +36 -0
- package/dist/store/with-retry.d.ts.map +1 -1
- package/dist/store/with-retry.js +51 -0
- package/dist/store/with-retry.js.map +1 -1
- package/dist/store/worktree-build-guard.d.ts +13 -4
- package/dist/store/worktree-build-guard.d.ts.map +1 -1
- package/dist/store/worktree-build-guard.js +21 -10
- package/dist/store/worktree-build-guard.js.map +1 -1
- package/dist/store/worktree-isolation-guard.d.ts +121 -10
- package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
- package/dist/store/worktree-isolation-guard.js +155 -34
- package/dist/store/worktree-isolation-guard.js.map +1 -1
- package/dist/system/backup.d.ts +7 -0
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +5 -0
- package/dist/system/backup.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +6 -1
- package/dist/system/health.js.map +1 -1
- package/dist/system/inject-generate.d.ts.map +1 -1
- package/dist/system/inject-generate.js +23 -10
- package/dist/system/inject-generate.js.map +1 -1
- package/dist/system/project-health.d.ts +17 -2
- package/dist/system/project-health.d.ts.map +1 -1
- package/dist/system/project-health.js +19 -6
- package/dist/system/project-health.js.map +1 -1
- package/dist/task-tools/index.d.ts +1 -1
- package/dist/task-tools/index.d.ts.map +1 -1
- package/dist/task-tools/index.js +1 -1
- package/dist/task-tools/index.js.map +1 -1
- package/dist/task-tools/score-task-priority.d.ts +38 -0
- package/dist/task-tools/score-task-priority.d.ts.map +1 -1
- package/dist/task-tools/score-task-priority.js +51 -0
- package/dist/task-tools/score-task-priority.js.map +1 -1
- package/dist/task-work/claims.d.ts +215 -0
- package/dist/task-work/claims.d.ts.map +1 -0
- package/dist/task-work/claims.js +272 -0
- package/dist/task-work/claims.js.map +1 -0
- package/dist/task-work/index.d.ts +47 -3
- package/dist/task-work/index.d.ts.map +1 -1
- package/dist/task-work/index.js +74 -41
- package/dist/task-work/index.js.map +1 -1
- package/dist/tasks/ac-coverage-gate.d.ts.map +1 -1
- package/dist/tasks/ac-coverage-gate.js +3 -0
- package/dist/tasks/ac-coverage-gate.js.map +1 -1
- package/dist/tasks/ac-table.d.ts +35 -7
- package/dist/tasks/ac-table.d.ts.map +1 -1
- package/dist/tasks/ac-table.js +119 -14
- package/dist/tasks/ac-table.js.map +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +51 -4
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/analyze.d.ts.map +1 -1
- package/dist/tasks/analyze.js +3 -4
- package/dist/tasks/analyze.js.map +1 -1
- package/dist/tasks/backfill-child-projections.js +47 -6
- package/dist/tasks/backfill-child-projections.js.map +1 -1
- package/dist/tasks/change-set.d.ts +5 -0
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +59 -3
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/complete.d.ts +16 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +33 -8
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/completion-evaluation.d.ts.map +1 -1
- package/dist/tasks/completion-evaluation.js +3 -0
- package/dist/tasks/completion-evaluation.js.map +1 -1
- package/dist/tasks/component-pr.d.ts +162 -1
- package/dist/tasks/component-pr.d.ts.map +1 -1
- package/dist/tasks/component-pr.js +560 -59
- package/dist/tasks/component-pr.js.map +1 -1
- package/dist/tasks/done-record.d.ts +14 -1
- package/dist/tasks/done-record.d.ts.map +1 -1
- package/dist/tasks/done-record.js +37 -0
- package/dist/tasks/done-record.js.map +1 -1
- package/dist/tasks/duplicate-detector.d.ts +20 -1
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +10 -2
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/engine-wrap-ops.d.ts +19 -10
- package/dist/tasks/engine-wrap-ops.d.ts.map +1 -1
- package/dist/tasks/engine-wrap-ops.js +38 -10
- package/dist/tasks/engine-wrap-ops.js.map +1 -1
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +14 -3
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/graph-ops.d.ts +9 -2
- package/dist/tasks/graph-ops.d.ts.map +1 -1
- package/dist/tasks/graph-ops.js +24 -32
- package/dist/tasks/graph-ops.js.map +1 -1
- package/dist/tasks/plan.d.ts.map +1 -1
- package/dist/tasks/plan.js +16 -60
- package/dist/tasks/plan.js.map +1 -1
- package/dist/tasks/task-context.d.ts.map +1 -1
- package/dist/tasks/task-context.js +13 -0
- package/dist/tasks/task-context.js.map +1 -1
- package/dist/tasks/task-import.d.ts.map +1 -1
- package/dist/tasks/task-import.js +21 -12
- package/dist/tasks/task-import.js.map +1 -1
- package/dist/tasks/task-next.d.ts +25 -2
- package/dist/tasks/task-next.d.ts.map +1 -1
- package/dist/tasks/task-next.js +32 -13
- package/dist/tasks/task-next.js.map +1 -1
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +7 -5
- package/dist/tasks/update.js.map +1 -1
- package/dist/upgrade.d.ts +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +48 -9
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/compliance.d.ts +5 -1
- package/dist/validation/compliance.d.ts.map +1 -1
- package/dist/validation/compliance.js +24 -3
- package/dist/validation/compliance.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +20 -6
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +51 -8
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/validation/index.d.ts +1 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +1 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/protocol-common.d.ts +47 -2
- package/dist/validation/protocol-common.d.ts.map +1 -1
- package/dist/validation/protocol-common.js +86 -21
- package/dist/validation/protocol-common.js.map +1 -1
- package/dist/validation/validate-ops.d.ts.map +1 -1
- package/dist/validation/validate-ops.js +2 -3
- package/dist/validation/validate-ops.js.map +1 -1
- package/migrations/README.md +12 -0
- package/migrations/drizzle-cleo-global/20260929010000_t12512-registry-probed-opened/migration.sql +35 -0
- package/migrations/drizzle-cleo-global/20260929020000_t12721-git-state-head-committed-at/migration.sql +25 -0
- package/migrations/drizzle-cleo-project/20260928120000_t12341-row-uids/migration.sql +169 -0
- package/migrations/drizzle-cleo-project/20260929000000_t12535-docs-attachments-union-shape/migration.sql +21 -0
- package/migrations/drizzle-cleo-project/20260929120000_t12502-task-claim-leases/migration.sql +77 -0
- package/migrations/drizzle-cleo-project/20260929130000_t12736-claim-lease-iso-repair/migration.sql +37 -0
- package/migrations/sync-journal/20260929140000_t12342-sync-clock/migration.sql +42 -0
- package/package.json +23 -13
- package/schemas/project-info.schema.json +10 -4
- package/templates/CLEO-INJECTION.md +1 -1
- package/templates/CLEO-REFERENCE.md +7 -3
- package/templates/cleo-gitignore +11 -0
- package/templates/workflows/release-prepare.yml.tmpl +156 -10
package/dist/nexus/registry.js
CHANGED
|
@@ -34,6 +34,8 @@ import { generateProjectHash } from './hash.js';
|
|
|
34
34
|
import { collectCheckoutEvidence, legacyProjectId, projectPathFingerprint } from './identity.js';
|
|
35
35
|
import { registryAliasClaimants, resolveProjectAlias } from './legacy-alias.js';
|
|
36
36
|
import { isSupersededRegistryPath, recordCandidateLocation, recordProjectCheckout, } from './path-map.js';
|
|
37
|
+
import { projectLastActivitySql } from './project-activity.js';
|
|
38
|
+
import { NexusDeviceNotFoundError, NexusRegistryReadError, toRegistryReadError, } from './registry-errors.js';
|
|
37
39
|
import { registryStorePath } from './registry-hygiene.js';
|
|
38
40
|
// ── Path helpers ─────────────────────────────────────────────────────
|
|
39
41
|
/** Get path to the NEXUS home directory (cache, etc.). */
|
|
@@ -96,6 +98,8 @@ function rowToProject(row) {
|
|
|
96
98
|
: registryStorePath(row.projectPath),
|
|
97
99
|
lastIndexed: row.lastIndexed ?? null,
|
|
98
100
|
stats,
|
|
101
|
+
lastProbedAt: row.lastProbedAt ?? null,
|
|
102
|
+
lastOpenedAt: row.lastOpenedAt ?? null,
|
|
99
103
|
};
|
|
100
104
|
}
|
|
101
105
|
/**
|
|
@@ -162,38 +166,40 @@ async function withLiveNexusDb(fn) {
|
|
|
162
166
|
/**
|
|
163
167
|
* Read all projects from nexus.db and return as a NexusRegistryFile.
|
|
164
168
|
* Compatibility wrapper for consumers that expect the legacy JSON shape.
|
|
165
|
-
*
|
|
169
|
+
*
|
|
170
|
+
* @throws {NexusRegistryReadError} When the registry cannot be read — a
|
|
171
|
+
* broken registry never looks empty (T12512).
|
|
166
172
|
*/
|
|
167
173
|
export async function readRegistry() {
|
|
174
|
+
let rows;
|
|
168
175
|
try {
|
|
169
|
-
|
|
170
|
-
const projects = {};
|
|
171
|
-
let latestUpdate = '';
|
|
172
|
-
for (const row of rows) {
|
|
173
|
-
const p = rowToProject(row);
|
|
174
|
-
projects[p.hash] = p;
|
|
175
|
-
if (p.lastSeen > latestUpdate)
|
|
176
|
-
latestUpdate = p.lastSeen;
|
|
177
|
-
}
|
|
178
|
-
return {
|
|
179
|
-
schemaVersion: '1.0.0',
|
|
180
|
-
lastUpdated: latestUpdate || new Date().toISOString(),
|
|
181
|
-
projects,
|
|
182
|
-
};
|
|
176
|
+
rows = await withLiveNexusDb((db) => db.select().from(projectRegistry));
|
|
183
177
|
}
|
|
184
|
-
catch {
|
|
185
|
-
|
|
178
|
+
catch (error) {
|
|
179
|
+
throw toRegistryReadError('read registry', error);
|
|
180
|
+
}
|
|
181
|
+
const projects = {};
|
|
182
|
+
let latestUpdate = '';
|
|
183
|
+
for (const row of rows) {
|
|
184
|
+
const p = rowToProject(row);
|
|
185
|
+
projects[p.hash] = p;
|
|
186
|
+
if (p.lastSeen > latestUpdate)
|
|
187
|
+
latestUpdate = p.lastSeen;
|
|
186
188
|
}
|
|
189
|
+
return {
|
|
190
|
+
schemaVersion: '1.0.0',
|
|
191
|
+
lastUpdated: latestUpdate || new Date().toISOString(),
|
|
192
|
+
projects,
|
|
193
|
+
};
|
|
187
194
|
}
|
|
188
195
|
/**
|
|
189
|
-
* Read the global registry
|
|
196
|
+
* Read the global registry.
|
|
197
|
+
*
|
|
198
|
+
* @deprecated {@link readRegistry} now throws a typed error itself (T12512).
|
|
199
|
+
* @throws {NexusRegistryReadError} When the registry cannot be read.
|
|
190
200
|
*/
|
|
191
201
|
export async function readRegistryRequired() {
|
|
192
|
-
|
|
193
|
-
if (!registry) {
|
|
194
|
-
throw new CleoError(ExitCode.NEXUS_NOT_INITIALIZED, 'Nexus registry not initialized. Run: cleo nexus init', { fix: 'cleo nexus init' });
|
|
195
|
-
}
|
|
196
|
-
return registry;
|
|
202
|
+
return readRegistry();
|
|
197
203
|
}
|
|
198
204
|
/**
|
|
199
205
|
* Initialize the NEXUS directory structure and nexus.db.
|
|
@@ -234,29 +240,26 @@ async function readProjectMeta(projectPath) {
|
|
|
234
240
|
/**
|
|
235
241
|
* Read the declared immutable identity; absence differs from unreadable metadata.
|
|
236
242
|
*
|
|
237
|
-
* The
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
* a
|
|
243
|
+
* The TRACKED id wins (T12470, T12716): `.cleo/project.json`, else the legacy
|
|
244
|
+
* `.cleo/project-id`, through `readPortableProjectId` — the same order as
|
|
245
|
+
* `readDeclaredProjectIdentity` and `decideProjectIdentity`. The
|
|
246
|
+
* `project-info.json` id is only a cache, used when nothing is tracked yet.
|
|
247
|
+
* A fresh clone that has not run `cleo init` therefore declares the tracked id
|
|
248
|
+
* and never registers under a path-derived fallback.
|
|
241
249
|
*/
|
|
242
250
|
async function readProjectId(projectPath) {
|
|
243
251
|
const infoPath = join(projectPath, '.cleo', 'project-info.json');
|
|
244
|
-
const tracked = ()
|
|
245
|
-
|
|
246
|
-
return
|
|
247
|
-
};
|
|
248
|
-
// T12470: the tracked `.cleo/project-id` outranks project-info.json.
|
|
249
|
-
const trackedId = tracked();
|
|
250
|
-
if (trackedId)
|
|
251
|
-
return trackedId;
|
|
252
|
+
const tracked = readPortableProjectId(projectPath);
|
|
253
|
+
if (tracked.status === 'valid')
|
|
254
|
+
return tracked.projectId;
|
|
252
255
|
try {
|
|
253
256
|
return (z
|
|
254
257
|
.object({ projectId: z.string().min(1).optional() })
|
|
255
|
-
.parse(JSON.parse(await readFile(infoPath, 'utf8'))).projectId ??
|
|
258
|
+
.parse(JSON.parse(await readFile(infoPath, 'utf8'))).projectId ?? '');
|
|
256
259
|
}
|
|
257
260
|
catch (error) {
|
|
258
261
|
if (error instanceof Error && 'code' in error && error.code === 'ENOENT')
|
|
259
|
-
return
|
|
262
|
+
return '';
|
|
260
263
|
throw new CleoError(ExitCode.CONFIG_ERROR, `Cannot read project identity at ${infoPath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
261
264
|
}
|
|
262
265
|
}
|
|
@@ -264,11 +267,12 @@ async function readProjectId(projectPath) {
|
|
|
264
267
|
* Return the id a project root declares, adopting one first when it declares
|
|
265
268
|
* none (T12470).
|
|
266
269
|
*
|
|
267
|
-
* A path — or any hash of it — is never a project identity. A root with
|
|
268
|
-
*
|
|
269
|
-
* way `cleo init` does: re-linked
|
|
270
|
-
* registered identity matches, otherwise
|
|
271
|
-
* write-once in `.cleo/project
|
|
270
|
+
* A path — or any hash of it — is never a project identity. A root with no
|
|
271
|
+
* tracked identity (`.cleo/project.json` / `.cleo/project-id`) and no
|
|
272
|
+
* `project-info.json` id gets one the same way `cleo init` does: re-linked
|
|
273
|
+
* from the registry when exactly one registered identity matches, otherwise
|
|
274
|
+
* freshly minted — and recorded write-once in `.cleo/project.json` (plus the
|
|
275
|
+
* legacy `.cleo/project-id` mirror), so every later resolution returns it.
|
|
272
276
|
*
|
|
273
277
|
* @throws {CleoError} `CONFIG_ERROR` when no identity can be recorded.
|
|
274
278
|
*/
|
|
@@ -282,7 +286,7 @@ async function adoptDeclaredProjectId(projectPath) {
|
|
|
282
286
|
const recorded = await readProjectId(projectPath);
|
|
283
287
|
if (recorded)
|
|
284
288
|
return recorded;
|
|
285
|
-
throw new CleoError(ExitCode.CONFIG_ERROR, `Project at ${projectPath} declares no identity and none could be recorded in .cleo/project
|
|
289
|
+
throw new CleoError(ExitCode.CONFIG_ERROR, `Project at ${projectPath} declares no identity and none could be recorded in .cleo/project.json; refusing to derive one from its path`, { fix: `Run \`cleo init\` in ${projectPath} to record the project's identity` });
|
|
286
290
|
}
|
|
287
291
|
/** Record alternate project identity tokens as aliases for registry lookup. */
|
|
288
292
|
async function recordProjectIdAliases(projectId, aliases, createdAt) {
|
|
@@ -340,6 +344,8 @@ export async function nexusRegister(projectRootOrPath, paramsOrName, permissions
|
|
|
340
344
|
throw new CleoError(ExitCode.NOT_FOUND, `Path missing .cleo directory: ${resolvedPath}`);
|
|
341
345
|
}
|
|
342
346
|
const declaredId = await adoptDeclaredProjectId(resolvedPath);
|
|
347
|
+
const declared = readPortableProjectId(resolvedPath);
|
|
348
|
+
const declaredName = declared.status === 'valid' ? declared.name : undefined;
|
|
343
349
|
const pathFingerprint = await projectPathFingerprint(resolvedPath);
|
|
344
350
|
const evidence = await collectCheckoutEvidence(resolvedPath);
|
|
345
351
|
await nexusInit();
|
|
@@ -362,13 +368,23 @@ export async function nexusRegister(projectRootOrPath, paramsOrName, permissions
|
|
|
362
368
|
// Keyed by the primary key, so at most one row: no owner conflict exists.
|
|
363
369
|
const existing = tx.select().from(projectRegistry).where(ownershipFilter).get();
|
|
364
370
|
const immutableId = ownerId;
|
|
365
|
-
const
|
|
366
|
-
const nameOwner = tx
|
|
371
|
+
const takenByOther = (candidate) => tx
|
|
367
372
|
.select()
|
|
368
373
|
.from(projectRegistry)
|
|
369
|
-
.where(eq(projectRegistry.name,
|
|
370
|
-
.all()
|
|
371
|
-
|
|
374
|
+
.where(eq(projectRegistry.name, candidate))
|
|
375
|
+
.all()
|
|
376
|
+
.some((row) => row.projectId !== immutableId);
|
|
377
|
+
// T12716: an explicit name; else the row's current label (a repeat
|
|
378
|
+
// registration never silently relabels — `cleo doctor
|
|
379
|
+
// project-identity` reports drift and `--resolve` syncs it); else, for
|
|
380
|
+
// a new row, the committed `.cleo/project.json` name unless another
|
|
381
|
+
// project on this device already holds it; else the basename.
|
|
382
|
+
const projectName = name ||
|
|
383
|
+
existing?.name ||
|
|
384
|
+
(declaredName !== undefined && !takenByOther(declaredName) ? declaredName : '') ||
|
|
385
|
+
basename(resolvedPath) ||
|
|
386
|
+
'unnamed';
|
|
387
|
+
if (takenByOther(projectName)) {
|
|
372
388
|
throw new CleoError(ExitCode.VALIDATION_ERROR, `Project name '${projectName}' already exists in registry`);
|
|
373
389
|
}
|
|
374
390
|
const metadata = {
|
|
@@ -489,15 +505,19 @@ export async function nexusUnregister(projectRootOrNameOrHash, paramsOrUndefined
|
|
|
489
505
|
}
|
|
490
506
|
/**
|
|
491
507
|
* List all registered projects.
|
|
508
|
+
*
|
|
509
|
+
* @throws {NexusRegistryReadError} When the registry cannot be read — never
|
|
510
|
+
* an empty list that hides the failure (T12512).
|
|
492
511
|
*/
|
|
493
512
|
export async function nexusList(_projectRoot = '', _params = {}) {
|
|
513
|
+
let rows;
|
|
494
514
|
try {
|
|
495
|
-
|
|
496
|
-
return rows.map(rowToProject);
|
|
515
|
+
rows = await withLiveNexusDb((db) => db.select().from(projectRegistry));
|
|
497
516
|
}
|
|
498
|
-
catch {
|
|
499
|
-
|
|
517
|
+
catch (error) {
|
|
518
|
+
throw toRegistryReadError('list projects', error);
|
|
500
519
|
}
|
|
520
|
+
return rows.map(rowToProject);
|
|
501
521
|
}
|
|
502
522
|
/**
|
|
503
523
|
* A project NAME matched more than one registry row (T12510). Names are not
|
|
@@ -513,7 +533,7 @@ export async function nexusList(_projectRoot = '', _params = {}) {
|
|
|
513
533
|
export class NexusProjectAmbiguityError extends CleoError {
|
|
514
534
|
/** Stable machine-readable error code. */
|
|
515
535
|
codeName = 'E_NEXUS_PROJECT_AMBIGUOUS';
|
|
516
|
-
/** Every matching project, most recently
|
|
536
|
+
/** Every matching project, most recently active first (`projectLastActivity`). */
|
|
517
537
|
candidates;
|
|
518
538
|
/**
|
|
519
539
|
* @param name - The ambiguous project name, or alias key (T12589).
|
|
@@ -552,7 +572,8 @@ export async function nexusGetProject(projectRootOrNameOrHash, paramsOrUndefined
|
|
|
552
572
|
// cross-project open can close mid-query.
|
|
553
573
|
const row = await withLiveNexusDb(async (db) => {
|
|
554
574
|
// T12469: the immutable id is the key, so it wins; a path hash is not
|
|
555
|
-
// unique, so among hash/name matches the most recently
|
|
575
|
+
// unique, so among hash/name matches the most recently active row wins
|
|
576
|
+
// (max of last_seen/last_opened_at/last_probed_at, T12512).
|
|
556
577
|
let rows = await db
|
|
557
578
|
.select()
|
|
558
579
|
.from(projectRegistry)
|
|
@@ -562,7 +583,7 @@ export async function nexusGetProject(projectRootOrNameOrHash, paramsOrUndefined
|
|
|
562
583
|
.select()
|
|
563
584
|
.from(projectRegistry)
|
|
564
585
|
.where(eq(projectRegistry.projectHash, nameOrHash))
|
|
565
|
-
.orderBy(desc(
|
|
586
|
+
.orderBy(desc(projectLastActivitySql));
|
|
566
587
|
}
|
|
567
588
|
if (rows.length === 0) {
|
|
568
589
|
// T12510: a name is not unique. One match resolves; several are
|
|
@@ -571,7 +592,7 @@ export async function nexusGetProject(projectRootOrNameOrHash, paramsOrUndefined
|
|
|
571
592
|
.select()
|
|
572
593
|
.from(projectRegistry)
|
|
573
594
|
.where(eq(projectRegistry.name, nameOrHash))
|
|
574
|
-
.orderBy(desc(
|
|
595
|
+
.orderBy(desc(projectLastActivitySql));
|
|
575
596
|
if (rows.length > 1)
|
|
576
597
|
throw new NexusProjectAmbiguityError(nameOrHash, rows);
|
|
577
598
|
}
|
|
@@ -584,7 +605,7 @@ export async function nexusGetProject(projectRootOrNameOrHash, paramsOrUndefined
|
|
|
584
605
|
.select()
|
|
585
606
|
.from(projectRegistry)
|
|
586
607
|
.where(inArray(projectRegistry.projectId, [...alias.claimants]))
|
|
587
|
-
.orderBy(desc(
|
|
608
|
+
.orderBy(desc(projectLastActivitySql));
|
|
588
609
|
throw new NexusProjectAmbiguityError(nameOrHash, claimed, 'alias');
|
|
589
610
|
}
|
|
590
611
|
if (alias.status === 'resolved') {
|
|
@@ -601,9 +622,8 @@ export async function nexusGetProject(projectRootOrNameOrHash, paramsOrUndefined
|
|
|
601
622
|
return rowToProject(row);
|
|
602
623
|
}
|
|
603
624
|
catch (error) {
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
return null;
|
|
625
|
+
// T12512: `null` means "no such project", never "could not read".
|
|
626
|
+
throw toRegistryReadError('get project', error);
|
|
607
627
|
}
|
|
608
628
|
}
|
|
609
629
|
/**
|
|
@@ -633,7 +653,8 @@ export async function nexusSync(projectRootOrName, paramsOrUndefined) {
|
|
|
633
653
|
taskCount: meta.taskCount,
|
|
634
654
|
labelsJson: JSON.stringify(meta.labels),
|
|
635
655
|
lastSync: now,
|
|
636
|
-
|
|
656
|
+
// T12512: a sync probes the project; it is not evidence of use.
|
|
657
|
+
lastProbedAt: now,
|
|
637
658
|
})
|
|
638
659
|
.where(eq(projectRegistry.projectId, project.projectId));
|
|
639
660
|
await writeNexusAudit({
|
|
@@ -672,7 +693,7 @@ export async function nexusSyncAll() {
|
|
|
672
693
|
taskCount: meta.taskCount,
|
|
673
694
|
labelsJson: JSON.stringify(meta.labels),
|
|
674
695
|
lastSync: now,
|
|
675
|
-
|
|
696
|
+
lastProbedAt: now,
|
|
676
697
|
})
|
|
677
698
|
.where(eq(projectRegistry.projectId, project.projectId));
|
|
678
699
|
synced++;
|
|
@@ -708,13 +729,13 @@ export async function nexusUpdateIndexStats(projectPath, stats) {
|
|
|
708
729
|
const { getNexusDb } = await import('../store/nexus-sqlite.js');
|
|
709
730
|
const { eq } = await import('drizzle-orm');
|
|
710
731
|
const db = await getNexusDb();
|
|
711
|
-
// T12469: a path hash is not unique; the most recently
|
|
732
|
+
// T12469: a path hash is not unique; the most recently active row for this
|
|
712
733
|
// checkout is the one being indexed, and it is updated by its id.
|
|
713
734
|
const ownerAt = async () => (await db
|
|
714
735
|
.select({ projectId: projectRegistry.projectId })
|
|
715
736
|
.from(projectRegistry)
|
|
716
737
|
.where(eq(projectRegistry.projectHash, projectHash))
|
|
717
|
-
.orderBy(desc(
|
|
738
|
+
.orderBy(desc(projectLastActivitySql))
|
|
718
739
|
.limit(1))[0];
|
|
719
740
|
let owner = await ownerAt();
|
|
720
741
|
if (!owner) {
|
|
@@ -1045,10 +1066,26 @@ export { resetNexusDbState };
|
|
|
1045
1066
|
// EngineResult-returning wrappers (T1569 / ADR-057 / ADR-058)
|
|
1046
1067
|
// ---------------------------------------------------------------------------
|
|
1047
1068
|
/**
|
|
1048
|
-
* Convert a caught error to an EngineResult failure
|
|
1069
|
+
* Convert a caught error to an EngineResult failure, keeping the code, exit
|
|
1070
|
+
* code, fix and details of a typed registry error (`E_NEXUS_REGISTRY_READ`,
|
|
1071
|
+
* `E_NEXUS_DEVICE_NOT_FOUND`, `E_NEXUS_PROJECT_AMBIGUOUS`, `E_PROJECT_MOVED`)
|
|
1072
|
+
* instead of collapsing it to `E_INTERNAL` (T12512). Every nexus engine
|
|
1073
|
+
* wrapper that reads the registry uses this.
|
|
1074
|
+
*
|
|
1075
|
+
* @param error - The caught value.
|
|
1076
|
+
* @param fallbackMsg - Message used when `error` is not an `Error`.
|
|
1077
|
+
* @returns A failed EngineResult.
|
|
1078
|
+
* @example
|
|
1079
|
+
* ```ts
|
|
1080
|
+
* try { return engineSuccess(await nexusList()); }
|
|
1081
|
+
* catch (error) { return nexusCaughtToEngineError(error, 'Failed to list projects'); }
|
|
1082
|
+
* ```
|
|
1083
|
+
* @task T12512
|
|
1049
1084
|
*/
|
|
1050
|
-
function
|
|
1051
|
-
if (error instanceof NexusProjectAmbiguityError
|
|
1085
|
+
export function nexusCaughtToEngineError(error, fallbackMsg) {
|
|
1086
|
+
if (error instanceof NexusProjectAmbiguityError ||
|
|
1087
|
+
error instanceof NexusRegistryReadError ||
|
|
1088
|
+
error instanceof NexusDeviceNotFoundError) {
|
|
1052
1089
|
return engineError(error.codeName, error.message, {
|
|
1053
1090
|
exitCode: error.code,
|
|
1054
1091
|
details: error.details,
|
|
@@ -1075,17 +1112,16 @@ function caughtToEngineError(error, fallbackMsg) {
|
|
|
1075
1112
|
// SSoT-EXEMPT:engine-migration-T1569
|
|
1076
1113
|
export async function nexusStatus() {
|
|
1077
1114
|
try {
|
|
1115
|
+
// T12512: an unreadable registry is an error envelope, never "not initialized".
|
|
1078
1116
|
const registry = await readRegistry();
|
|
1079
|
-
const initialized = registry !== null;
|
|
1080
|
-
const projectCount = initialized ? Object.keys(registry.projects).length : 0;
|
|
1081
1117
|
return engineSuccess({
|
|
1082
|
-
initialized,
|
|
1083
|
-
projectCount,
|
|
1084
|
-
lastUpdated: registry
|
|
1118
|
+
initialized: true,
|
|
1119
|
+
projectCount: Object.keys(registry.projects).length,
|
|
1120
|
+
lastUpdated: registry.lastUpdated,
|
|
1085
1121
|
});
|
|
1086
1122
|
}
|
|
1087
1123
|
catch (error) {
|
|
1088
|
-
return
|
|
1124
|
+
return nexusCaughtToEngineError(error, 'Failed to get nexus status');
|
|
1089
1125
|
}
|
|
1090
1126
|
}
|
|
1091
1127
|
/**
|
|
@@ -1111,7 +1147,7 @@ export async function nexusListProjects(limit, offset) {
|
|
|
1111
1147
|
};
|
|
1112
1148
|
}
|
|
1113
1149
|
catch (error) {
|
|
1114
|
-
return
|
|
1150
|
+
return nexusCaughtToEngineError(error, 'Failed to list projects');
|
|
1115
1151
|
}
|
|
1116
1152
|
}
|
|
1117
1153
|
/**
|
|
@@ -1129,7 +1165,7 @@ export async function nexusShowProject(name) {
|
|
|
1129
1165
|
return engineSuccess(project);
|
|
1130
1166
|
}
|
|
1131
1167
|
catch (error) {
|
|
1132
|
-
return
|
|
1168
|
+
return nexusCaughtToEngineError(error, `Failed to show project: ${name}`);
|
|
1133
1169
|
}
|
|
1134
1170
|
}
|
|
1135
1171
|
/**
|
|
@@ -1144,7 +1180,7 @@ export async function nexusInitialize() {
|
|
|
1144
1180
|
return engineSuccess({ message: 'NEXUS initialized successfully' });
|
|
1145
1181
|
}
|
|
1146
1182
|
catch (error) {
|
|
1147
|
-
return
|
|
1183
|
+
return nexusCaughtToEngineError(error, 'Failed to initialize nexus');
|
|
1148
1184
|
}
|
|
1149
1185
|
}
|
|
1150
1186
|
/**
|
|
@@ -1159,7 +1195,7 @@ export async function nexusRegisterProject(path, name, permission = 'read') {
|
|
|
1159
1195
|
return engineSuccess({ hash, message: `Project registered with hash: ${hash}` });
|
|
1160
1196
|
}
|
|
1161
1197
|
catch (error) {
|
|
1162
|
-
return
|
|
1198
|
+
return nexusCaughtToEngineError(error, `Failed to register project: ${path}`);
|
|
1163
1199
|
}
|
|
1164
1200
|
}
|
|
1165
1201
|
/**
|
|
@@ -1174,7 +1210,7 @@ export async function nexusUnregisterProject(name) {
|
|
|
1174
1210
|
return engineSuccess({ message: `Project unregistered: ${name}` });
|
|
1175
1211
|
}
|
|
1176
1212
|
catch (error) {
|
|
1177
|
-
return
|
|
1213
|
+
return nexusCaughtToEngineError(error, `Failed to unregister project: ${name}`);
|
|
1178
1214
|
}
|
|
1179
1215
|
}
|
|
1180
1216
|
/**
|
|
@@ -1193,7 +1229,7 @@ export async function nexusSyncProject(name) {
|
|
|
1193
1229
|
return engineSuccess(result);
|
|
1194
1230
|
}
|
|
1195
1231
|
catch (error) {
|
|
1196
|
-
return
|
|
1232
|
+
return nexusCaughtToEngineError(error, 'Failed to sync project');
|
|
1197
1233
|
}
|
|
1198
1234
|
}
|
|
1199
1235
|
/**
|
|
@@ -1208,7 +1244,7 @@ export async function nexusReconcileProject(projectRoot, params = {}) {
|
|
|
1208
1244
|
return engineSuccess(result);
|
|
1209
1245
|
}
|
|
1210
1246
|
catch (error) {
|
|
1211
|
-
return
|
|
1247
|
+
return nexusCaughtToEngineError(error, `Failed to reconcile project: ${projectRoot}`);
|
|
1212
1248
|
}
|
|
1213
1249
|
}
|
|
1214
1250
|
/**
|
|
@@ -1225,7 +1261,7 @@ export async function nexusProjectsList() {
|
|
|
1225
1261
|
return engineSuccess({ projects: list, count: list.length, devices });
|
|
1226
1262
|
}
|
|
1227
1263
|
catch (error) {
|
|
1228
|
-
return
|
|
1264
|
+
return nexusCaughtToEngineError(error, 'Failed to list nexus projects');
|
|
1229
1265
|
}
|
|
1230
1266
|
}
|
|
1231
1267
|
/**
|
|
@@ -1243,10 +1279,40 @@ export async function nexusProjectsStatus(_projectRoot, params) {
|
|
|
1243
1279
|
try {
|
|
1244
1280
|
const { getNexusRegistryDb } = await import('../store/nexus-sqlite.js');
|
|
1245
1281
|
const { runProjectsGitStatus } = await import('./git-state.js');
|
|
1246
|
-
|
|
1282
|
+
let db;
|
|
1283
|
+
try {
|
|
1284
|
+
db = await getNexusRegistryDb(getCleoHome());
|
|
1285
|
+
}
|
|
1286
|
+
catch (error) {
|
|
1287
|
+
throw toRegistryReadError('open project registry', error);
|
|
1288
|
+
}
|
|
1289
|
+
return engineSuccess(await runProjectsGitStatus(db, params));
|
|
1290
|
+
}
|
|
1291
|
+
catch (error) {
|
|
1292
|
+
return nexusCaughtToEngineError(error, 'Failed to probe project git state');
|
|
1293
|
+
}
|
|
1294
|
+
}
|
|
1295
|
+
/**
|
|
1296
|
+
* Fleet view (`nexus.projects.fleet`, T12513): every project, where it lives
|
|
1297
|
+
* on each device, and its last recorded git state, paged with counts first.
|
|
1298
|
+
* Read-only: it never runs git — see `nexus/fleet-status.ts`.
|
|
1299
|
+
*
|
|
1300
|
+
* @param _projectRoot - Unused: the fleet spans every registered project
|
|
1301
|
+
* (uniform ADR-057 signature).
|
|
1302
|
+
* @param params - Filters, staleness window and paging.
|
|
1303
|
+
* @returns The fleet view, or a typed error (`E_NEXUS_REGISTRY_READ`,
|
|
1304
|
+
* `E_NEXUS_DEVICE_NOT_FOUND`) — never an empty page that hides a failure.
|
|
1305
|
+
* @task T12513
|
|
1306
|
+
*/
|
|
1307
|
+
export async function nexusProjectsFleet(_projectRoot, params) {
|
|
1308
|
+
const { getNexusRegistryDb } = await import('../store/nexus-sqlite.js');
|
|
1309
|
+
const { listFleetStatus } = await import('./fleet-status.js');
|
|
1310
|
+
try {
|
|
1311
|
+
return engineSuccess(listFleetStatus(await getNexusRegistryDb(getCleoHome()), params));
|
|
1247
1312
|
}
|
|
1248
1313
|
catch (error) {
|
|
1249
|
-
|
|
1314
|
+
// A typed error (unknown device) passes through; anything else is a read failure.
|
|
1315
|
+
return nexusCaughtToEngineError(toRegistryReadError('read fleet status', error), 'Failed to read fleet status');
|
|
1250
1316
|
}
|
|
1251
1317
|
}
|
|
1252
1318
|
/**
|
|
@@ -1263,7 +1329,7 @@ export async function nexusProjectsRegister(repoPath, name) {
|
|
|
1263
1329
|
return engineSuccess({ hash, path: repoPath });
|
|
1264
1330
|
}
|
|
1265
1331
|
catch (error) {
|
|
1266
|
-
return
|
|
1332
|
+
return nexusCaughtToEngineError(error, `Failed to register project: ${repoPath}`);
|
|
1267
1333
|
}
|
|
1268
1334
|
}
|
|
1269
1335
|
/**
|
|
@@ -1279,7 +1345,7 @@ export async function nexusProjectsRemove(nameOrHash) {
|
|
|
1279
1345
|
return engineSuccess({ removed: nameOrHash });
|
|
1280
1346
|
}
|
|
1281
1347
|
catch (error) {
|
|
1282
|
-
return
|
|
1348
|
+
return nexusCaughtToEngineError(error, `Failed to remove project: ${nameOrHash}`);
|
|
1283
1349
|
}
|
|
1284
1350
|
}
|
|
1285
1351
|
//# sourceMappingURL=registry.js.map
|