@cleocode/core 2026.9.19 → 2026.9.21
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/adapters/discovery.d.ts.map +1 -1
- package/dist/adapters/discovery.js +3 -10
- package/dist/adapters/discovery.js.map +1 -1
- package/dist/adrs/link-pipeline.js +2 -2
- package/dist/adrs/link-pipeline.js.map +1 -1
- package/dist/adrs/parse.js +3 -3
- package/dist/adrs/parse.js.map +1 -1
- package/dist/agents/invoke-meta-agent.d.ts.map +1 -1
- package/dist/agents/invoke-meta-agent.js +8 -4
- package/dist/agents/invoke-meta-agent.js.map +1 -1
- package/dist/bootstrap.d.ts +5 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +41 -21
- package/dist/bootstrap.js.map +1 -1
- package/dist/cloud/crypto.d.ts +47 -0
- package/dist/cloud/crypto.d.ts.map +1 -0
- package/dist/cloud/crypto.js +223 -0
- package/dist/cloud/crypto.js.map +1 -0
- package/dist/cloud/http.d.ts +52 -0
- package/dist/cloud/http.d.ts.map +1 -0
- package/dist/cloud/http.js +98 -0
- package/dist/cloud/http.js.map +1 -0
- package/dist/cloud/index.d.ts +19 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/cloud/index.js +19 -0
- package/dist/cloud/index.js.map +1 -0
- package/dist/cloud/journal.d.ts +169 -0
- package/dist/cloud/journal.d.ts.map +1 -0
- package/dist/cloud/journal.js +428 -0
- package/dist/cloud/journal.js.map +1 -0
- package/dist/cloud/keys.d.ts +213 -0
- package/dist/cloud/keys.d.ts.map +1 -0
- package/dist/cloud/keys.js +362 -0
- package/dist/cloud/keys.js.map +1 -0
- package/dist/cloud/manifest-check.d.ts +36 -0
- package/dist/cloud/manifest-check.d.ts.map +1 -0
- package/dist/cloud/manifest-check.js +70 -0
- package/dist/cloud/manifest-check.js.map +1 -0
- package/dist/cloud/projects.d.ts +13 -0
- package/dist/cloud/projects.d.ts.map +1 -0
- package/dist/cloud/projects.js +11 -0
- package/dist/cloud/projects.js.map +1 -0
- package/dist/cloud/signing.d.ts +105 -0
- package/dist/cloud/signing.d.ts.map +1 -0
- package/dist/cloud/signing.js +117 -0
- package/dist/cloud/signing.js.map +1 -0
- package/dist/cloud/streams.d.ts +6 -0
- package/dist/cloud/streams.d.ts.map +1 -0
- package/dist/cloud/streams.js +5 -0
- package/dist/cloud/streams.js.map +1 -0
- package/dist/decide/audit.d.ts +131 -0
- package/dist/decide/audit.d.ts.map +1 -0
- package/dist/decide/audit.js +98 -0
- package/dist/decide/audit.js.map +1 -0
- package/dist/decide/budget.d.ts +91 -0
- package/dist/decide/budget.d.ts.map +1 -0
- package/dist/decide/budget.js +194 -0
- package/dist/decide/budget.js.map +1 -0
- package/dist/decide/cache.d.ts +49 -0
- package/dist/decide/cache.d.ts.map +1 -0
- package/dist/decide/cache.js +87 -0
- package/dist/decide/cache.js.map +1 -0
- package/dist/decide/client.d.ts +103 -0
- package/dist/decide/client.d.ts.map +1 -0
- package/dist/decide/client.js +262 -0
- package/dist/decide/client.js.map +1 -0
- package/dist/decide/credentials.d.ts +159 -0
- package/dist/decide/credentials.d.ts.map +1 -0
- package/dist/decide/credentials.js +383 -0
- package/dist/decide/credentials.js.map +1 -0
- package/dist/decide/index.d.ts +18 -0
- package/dist/decide/index.d.ts.map +1 -0
- package/dist/decide/index.js +18 -0
- package/dist/decide/index.js.map +1 -0
- package/dist/decide/jev-wire.d.ts +155 -0
- package/dist/decide/jev-wire.d.ts.map +1 -0
- package/dist/decide/jev-wire.js +420 -0
- package/dist/decide/jev-wire.js.map +1 -0
- package/dist/decide/operations.d.ts +152 -0
- package/dist/decide/operations.d.ts.map +1 -0
- package/dist/decide/operations.js +199 -0
- package/dist/decide/operations.js.map +1 -0
- package/dist/decide/provider.d.ts +90 -0
- package/dist/decide/provider.d.ts.map +1 -0
- package/dist/decide/provider.js +43 -0
- package/dist/decide/provider.js.map +1 -0
- package/dist/decide/site.d.ts +148 -0
- package/dist/decide/site.d.ts.map +1 -0
- package/dist/decide/site.js +181 -0
- package/dist/decide/site.js.map +1 -0
- package/dist/decide/transport.d.ts +67 -0
- package/dist/decide/transport.d.ts.map +1 -0
- package/dist/decide/transport.js +350 -0
- package/dist/decide/transport.js.map +1 -0
- package/dist/docs/export-document.js +5908 -2436
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/index.d.ts +2 -2
- package/dist/docs/index.d.ts.map +1 -1
- package/dist/docs/index.js +1 -1
- package/dist/docs/index.js.map +1 -1
- package/dist/docs/projection.d.ts.map +1 -1
- package/dist/docs/projection.js +2 -3
- package/dist/docs/projection.js.map +1 -1
- package/dist/docs/publish-pr.d.ts +69 -1
- package/dist/docs/publish-pr.d.ts.map +1 -1
- package/dist/docs/publish-pr.js +112 -10
- package/dist/docs/publish-pr.js.map +1 -1
- package/dist/doctor/db-substrate.d.ts +13 -8
- package/dist/doctor/db-substrate.d.ts.map +1 -1
- package/dist/doctor/db-substrate.js +39 -26
- package/dist/doctor/db-substrate.js.map +1 -1
- package/dist/doctor/index.d.ts +2 -0
- package/dist/doctor/index.d.ts.map +1 -1
- package/dist/doctor/index.js +1 -0
- package/dist/doctor/index.js.map +1 -1
- package/dist/doctor/knowledge.d.ts.map +1 -1
- package/dist/doctor/knowledge.js +5 -15
- package/dist/doctor/knowledge.js.map +1 -1
- package/dist/doctor/nexus-schema-residency.d.ts +1 -1
- package/dist/doctor/nexus-schema-residency.d.ts.map +1 -1
- package/dist/doctor/nexus-schema-residency.js +3 -0
- package/dist/doctor/nexus-schema-residency.js.map +1 -1
- package/dist/doctor/project-identity.d.ts +44 -1
- package/dist/doctor/project-identity.d.ts.map +1 -1
- package/dist/doctor/project-identity.js +237 -10
- package/dist/doctor/project-identity.js.map +1 -1
- package/dist/doctor/projects.d.ts +170 -0
- package/dist/doctor/projects.d.ts.map +1 -0
- package/dist/doctor/projects.js +1075 -0
- package/dist/doctor/projects.js.map +1 -0
- package/dist/doctor/twin-collapse.d.ts +97 -0
- package/dist/doctor/twin-collapse.d.ts.map +1 -0
- package/dist/doctor/twin-collapse.js +168 -0
- package/dist/doctor/twin-collapse.js.map +1 -0
- package/dist/doctor/worktree-orphans.d.ts.map +1 -1
- package/dist/doctor/worktree-orphans.js +13 -29
- package/dist/doctor/worktree-orphans.js.map +1 -1
- package/dist/doctor/worktree-stores.d.ts +128 -0
- package/dist/doctor/worktree-stores.d.ts.map +1 -0
- package/dist/doctor/worktree-stores.js +374 -0
- package/dist/doctor/worktree-stores.js.map +1 -0
- package/dist/engine/engine-ops.d.ts.map +1 -1
- package/dist/engine/engine-ops.js +59 -23
- package/dist/engine/engine-ops.js.map +1 -1
- package/dist/error-catalog.d.ts.map +1 -1
- package/dist/error-catalog.js +21 -0
- package/dist/error-catalog.js.map +1 -1
- package/dist/error-registry.d.ts.map +1 -1
- package/dist/error-registry.js +40 -0
- package/dist/error-registry.js.map +1 -1
- package/dist/gc/cleanup.d.ts.map +1 -1
- package/dist/gc/cleanup.js +32 -19
- package/dist/gc/cleanup.js.map +1 -1
- package/dist/git/bounded-git.d.ts +170 -0
- package/dist/git/bounded-git.d.ts.map +1 -0
- package/dist/git/bounded-git.js +371 -0
- package/dist/git/bounded-git.js.map +1 -0
- package/dist/git/work-tree.d.ts +20 -0
- package/dist/git/work-tree.d.ts.map +1 -1
- package/dist/git/work-tree.js +20 -2
- package/dist/git/work-tree.js.map +1 -1
- package/dist/hooks/handlers/session-hooks.d.ts +11 -26
- package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/session-hooks.js +18 -47
- package/dist/hooks/handlers/session-hooks.js.map +1 -1
- package/dist/hooks/payload-schemas.d.ts +2 -2
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/init/engine-ops.d.ts.map +1 -1
- package/dist/init/engine-ops.js +23 -1
- package/dist/init/engine-ops.js.map +1 -1
- package/dist/init.d.ts +158 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +535 -44
- package/dist/init.js.map +1 -1
- package/dist/injection.d.ts +55 -0
- package/dist/injection.d.ts.map +1 -1
- package/dist/injection.js +102 -6
- package/dist/injection.js.map +1 -1
- package/dist/internal.d.ts +9 -5
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +8 -4
- package/dist/internal.js.map +1 -1
- package/dist/issue/diagnostics.d.ts.map +1 -1
- package/dist/issue/diagnostics.js +2 -1
- package/dist/issue/diagnostics.js.map +1 -1
- package/dist/lib/concurrency.d.ts +25 -0
- package/dist/lib/concurrency.d.ts.map +1 -0
- package/dist/lib/concurrency.js +43 -0
- package/dist/lib/concurrency.js.map +1 -0
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/index.js +1 -0
- package/dist/lib/index.js.map +1 -1
- package/dist/lifecycle/engine-ops.d.ts.map +1 -1
- package/dist/lifecycle/engine-ops.js +4 -2
- package/dist/lifecycle/engine-ops.js.map +1 -1
- package/dist/lifecycle/stage-guidance.d.ts +5 -0
- package/dist/lifecycle/stage-guidance.d.ts.map +1 -1
- package/dist/lifecycle/stage-guidance.js +14 -4
- package/dist/lifecycle/stage-guidance.js.map +1 -1
- package/dist/llm/catalog-cache.d.ts +3 -2
- package/dist/llm/catalog-cache.d.ts.map +1 -1
- package/dist/llm/catalog-cache.js +5 -5
- package/dist/llm/catalog-cache.js.map +1 -1
- package/dist/llm/credentials.d.ts +4 -4
- package/dist/llm/credentials.js +6 -6
- package/dist/llm/credentials.js.map +1 -1
- package/dist/llm/plugin-facade.js +4312 -1798
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/llm/stable-device-id.d.ts.map +1 -1
- package/dist/llm/stable-device-id.js +3 -5
- package/dist/llm/stable-device-id.js.map +1 -1
- package/dist/memory/attention.d.ts.map +1 -1
- package/dist/memory/attention.js +30 -30
- package/dist/memory/attention.js.map +1 -1
- package/dist/memory/decision-contradiction.d.ts +152 -0
- package/dist/memory/decision-contradiction.d.ts.map +1 -0
- package/dist/memory/decision-contradiction.js +273 -0
- package/dist/memory/decision-contradiction.js.map +1 -0
- package/dist/memory/decisions.d.ts +42 -11
- package/dist/memory/decisions.d.ts.map +1 -1
- package/dist/memory/decisions.js +153 -56
- package/dist/memory/decisions.js.map +1 -1
- package/dist/memory/dialectic-evaluator.d.ts +7 -0
- package/dist/memory/dialectic-evaluator.d.ts.map +1 -1
- package/dist/memory/dialectic-evaluator.js +23 -8
- package/dist/memory/dialectic-evaluator.js.map +1 -1
- package/dist/memory/dispatch-trace-format.d.ts +39 -0
- package/dist/memory/dispatch-trace-format.d.ts.map +1 -0
- package/dist/memory/dispatch-trace-format.js +54 -0
- package/dist/memory/dispatch-trace-format.js.map +1 -0
- package/dist/memory/dispatch-trace.d.ts.map +1 -1
- package/dist/memory/dispatch-trace.js +1 -27
- package/dist/memory/dispatch-trace.js.map +1 -1
- package/dist/memory/engine-compat.d.ts +2 -0
- package/dist/memory/engine-compat.d.ts.map +1 -1
- package/dist/memory/engine-compat.js +1 -0
- package/dist/memory/engine-compat.js.map +1 -1
- package/dist/memory/import-from-provider.js +3 -3
- package/dist/memory/import-from-provider.js.map +1 -1
- package/dist/memory/learnings.d.ts +2 -2
- package/dist/memory/observation-type-decision.d.ts +96 -0
- package/dist/memory/observation-type-decision.d.ts.map +1 -0
- package/dist/memory/observation-type-decision.js +218 -0
- package/dist/memory/observation-type-decision.js.map +1 -0
- package/dist/memory/redaction.js +2 -0
- package/dist/memory/redaction.js.map +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.d.ts +9 -2
- package/dist/memory/retrieval/build-retrieval-bundle.d.ts.map +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.js +42 -11
- package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
- package/dist/memory/retrieval/get-current-session-id.d.ts +5 -0
- package/dist/memory/retrieval/get-current-session-id.d.ts.map +1 -1
- package/dist/memory/retrieval/get-current-session-id.js +7 -2
- package/dist/memory/retrieval/get-current-session-id.js.map +1 -1
- package/dist/memory/retrieval/observe.d.ts.map +1 -1
- package/dist/memory/retrieval/observe.js +30 -29
- package/dist/memory/retrieval/observe.js.map +1 -1
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +42 -29
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/assessment-projection.d.ts +76 -0
- package/dist/nexus/assessment-projection.d.ts.map +1 -0
- package/dist/nexus/assessment-projection.js +143 -0
- package/dist/nexus/assessment-projection.js.map +1 -0
- package/dist/nexus/assessment-store.d.ts +14 -2
- package/dist/nexus/assessment-store.d.ts.map +1 -1
- package/dist/nexus/assessment-store.js +21 -3
- package/dist/nexus/assessment-store.js.map +1 -1
- package/dist/nexus/checkout-nonce.d.ts +48 -0
- package/dist/nexus/checkout-nonce.d.ts.map +1 -0
- package/dist/nexus/checkout-nonce.js +84 -0
- package/dist/nexus/checkout-nonce.js.map +1 -0
- package/dist/nexus/devices.d.ts +93 -0
- package/dist/nexus/devices.d.ts.map +1 -0
- package/dist/nexus/devices.js +141 -0
- package/dist/nexus/devices.js.map +1 -0
- package/dist/nexus/freshness.d.ts.map +1 -1
- package/dist/nexus/freshness.js +25 -6
- package/dist/nexus/freshness.js.map +1 -1
- package/dist/nexus/git-state.d.ts +225 -0
- package/dist/nexus/git-state.d.ts.map +1 -0
- package/dist/nexus/git-state.js +677 -0
- package/dist/nexus/git-state.js.map +1 -0
- package/dist/nexus/graph-manifest.d.ts +20 -4
- package/dist/nexus/graph-manifest.d.ts.map +1 -1
- package/dist/nexus/graph-manifest.js +40 -5
- package/dist/nexus/graph-manifest.js.map +1 -1
- package/dist/nexus/identity.d.ts +68 -23
- package/dist/nexus/identity.d.ts.map +1 -1
- package/dist/nexus/identity.js +99 -22
- package/dist/nexus/identity.js.map +1 -1
- package/dist/nexus/index.d.ts +5 -2
- package/dist/nexus/index.d.ts.map +1 -1
- package/dist/nexus/index.js +10 -4
- package/dist/nexus/index.js.map +1 -1
- package/dist/nexus/knowledge.d.ts +5 -0
- package/dist/nexus/knowledge.d.ts.map +1 -1
- package/dist/nexus/knowledge.js +26 -2
- package/dist/nexus/knowledge.js.map +1 -1
- package/dist/nexus/legacy-alias.d.ts +60 -0
- package/dist/nexus/legacy-alias.d.ts.map +1 -0
- package/dist/nexus/legacy-alias.js +68 -0
- package/dist/nexus/legacy-alias.js.map +1 -0
- package/dist/nexus/migrate-json-to-sqlite.js +2 -2
- 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/path-map.d.ts +264 -20
- package/dist/nexus/path-map.d.ts.map +1 -1
- package/dist/nexus/path-map.js +580 -44
- package/dist/nexus/path-map.js.map +1 -1
- package/dist/nexus/projects-clean.d.ts +9 -1
- package/dist/nexus/projects-clean.d.ts.map +1 -1
- package/dist/nexus/projects-clean.js +126 -14
- package/dist/nexus/projects-clean.js.map +1 -1
- package/dist/nexus/projects-scan.d.ts +56 -1
- package/dist/nexus/projects-scan.d.ts.map +1 -1
- package/dist/nexus/projects-scan.js +144 -3
- package/dist/nexus/projects-scan.js.map +1 -1
- package/dist/nexus/registry-hygiene.d.ts +18 -2
- package/dist/nexus/registry-hygiene.d.ts.map +1 -1
- package/dist/nexus/registry-hygiene.js +37 -11
- package/dist/nexus/registry-hygiene.js.map +1 -1
- package/dist/nexus/registry-roots.d.ts +47 -0
- package/dist/nexus/registry-roots.d.ts.map +1 -0
- package/dist/nexus/registry-roots.js +79 -0
- package/dist/nexus/registry-roots.js.map +1 -0
- package/dist/nexus/registry.d.ts +50 -9
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +311 -156
- package/dist/nexus/registry.js.map +1 -1
- package/dist/nexus/stored-roots.d.ts +106 -0
- package/dist/nexus/stored-roots.d.ts.map +1 -0
- package/dist/nexus/stored-roots.js +180 -0
- package/dist/nexus/stored-roots.js.map +1 -0
- package/dist/nexus/transfer.d.ts.map +1 -1
- package/dist/nexus/transfer.js +3 -0
- package/dist/nexus/transfer.js.map +1 -1
- package/dist/nexus/user-profile-hygiene.d.ts +168 -0
- package/dist/nexus/user-profile-hygiene.d.ts.map +1 -0
- package/dist/nexus/user-profile-hygiene.js +305 -0
- package/dist/nexus/user-profile-hygiene.js.map +1 -0
- package/dist/nexus/user-profile.d.ts +53 -2
- package/dist/nexus/user-profile.d.ts.map +1 -1
- package/dist/nexus/user-profile.js +106 -4
- package/dist/nexus/user-profile.js.map +1 -1
- package/dist/orchestrate/pivot.d.ts.map +1 -1
- package/dist/orchestrate/pivot.js +5 -1
- package/dist/orchestrate/pivot.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts +12 -0
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +152 -57
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestration/classify-readiness.d.ts +37 -1
- package/dist/orchestration/classify-readiness.d.ts.map +1 -1
- package/dist/orchestration/classify-readiness.js +48 -19
- package/dist/orchestration/classify-readiness.js.map +1 -1
- package/dist/orchestration/index.d.ts +3 -2
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +2 -1
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/owner-decision-readiness.d.ts +88 -0
- package/dist/orchestration/owner-decision-readiness.d.ts.map +1 -0
- package/dist/orchestration/owner-decision-readiness.js +152 -0
- package/dist/orchestration/owner-decision-readiness.js.map +1 -0
- package/dist/orchestration/psyche-memory-budget.d.ts +105 -0
- package/dist/orchestration/psyche-memory-budget.d.ts.map +1 -0
- package/dist/orchestration/psyche-memory-budget.js +383 -0
- package/dist/orchestration/psyche-memory-budget.js.map +1 -0
- package/dist/orchestration/spawn-prompt.d.ts +12 -1
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +141 -179
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/orchestration/spawn.d.ts +7 -0
- package/dist/orchestration/spawn.d.ts.map +1 -1
- package/dist/orchestration/spawn.js +1 -0
- package/dist/orchestration/spawn.js.map +1 -1
- package/dist/paths.d.ts +24 -8
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +135 -71
- package/dist/paths.js.map +1 -1
- package/dist/platform.d.ts +6 -1
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +8 -19
- package/dist/platform.js.map +1 -1
- package/dist/project-info.d.ts +18 -0
- package/dist/project-info.d.ts.map +1 -1
- package/dist/project-info.js +29 -1
- package/dist/project-info.js.map +1 -1
- package/dist/project-lifecycle.d.ts +91 -32
- package/dist/project-lifecycle.d.ts.map +1 -1
- package/dist/project-lifecycle.js +639 -75
- package/dist/project-lifecycle.js.map +1 -1
- package/dist/project-scope.d.ts +86 -4
- package/dist/project-scope.d.ts.map +1 -1
- package/dist/project-scope.js +226 -13
- package/dist/project-scope.js.map +1 -1
- package/dist/project-tombstone.d.ts +111 -0
- package/dist/project-tombstone.d.ts.map +1 -0
- package/dist/project-tombstone.js +220 -0
- package/dist/project-tombstone.js.map +1 -0
- package/dist/release/artifacts.d.ts.map +1 -1
- package/dist/release/artifacts.js +14 -9
- package/dist/release/artifacts.js.map +1 -1
- package/dist/release/ci-evidence.d.ts +223 -0
- package/dist/release/ci-evidence.d.ts.map +1 -0
- package/dist/release/ci-evidence.js +652 -0
- package/dist/release/ci-evidence.js.map +1 -0
- package/dist/release/engine-ops.d.ts.map +1 -1
- package/dist/release/engine-ops.js +3 -3
- package/dist/release/engine-ops.js.map +1 -1
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +7 -6
- package/dist/release/plan.js.map +1 -1
- package/dist/release/pr-evidence.d.ts +38 -0
- package/dist/release/pr-evidence.d.ts.map +1 -1
- package/dist/release/pr-evidence.js +67 -11
- package/dist/release/pr-evidence.js.map +1 -1
- package/dist/release/reconcile.d.ts.map +1 -1
- package/dist/release/reconcile.js +3 -2
- package/dist/release/reconcile.js.map +1 -1
- package/dist/release/release-manifest.d.ts +2 -1
- package/dist/release/release-manifest.d.ts.map +1 -1
- package/dist/release/release-manifest.js +6 -5
- package/dist/release/release-manifest.js.map +1 -1
- package/dist/render/nexus/graph/index.d.ts +4 -0
- package/dist/render/nexus/graph/index.d.ts.map +1 -1
- package/dist/render/nexus/graph/index.js +57 -0
- package/dist/render/nexus/graph/index.js.map +1 -1
- package/dist/resources/spawn-wrapper.d.ts +8 -1
- package/dist/resources/spawn-wrapper.d.ts.map +1 -1
- package/dist/resources/spawn-wrapper.js +42 -5
- package/dist/resources/spawn-wrapper.js.map +1 -1
- package/dist/routing/build-command-groups.d.ts.map +1 -1
- package/dist/routing/build-command-groups.js +1 -0
- package/dist/routing/build-command-groups.js.map +1 -1
- package/dist/sagas/index.d.ts +1 -1
- package/dist/sagas/index.d.ts.map +1 -1
- package/dist/sagas/index.js +1 -1
- package/dist/sagas/index.js.map +1 -1
- package/dist/sagas/reconcile.d.ts +24 -4
- package/dist/sagas/reconcile.d.ts.map +1 -1
- package/dist/sagas/reconcile.js +226 -100
- package/dist/sagas/reconcile.js.map +1 -1
- package/dist/scaffold/ensure-config.d.ts.map +1 -1
- package/dist/scaffold/ensure-config.js +31 -1
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/scaffold/project-identity.d.ts +2 -8
- package/dist/scaffold/project-identity.d.ts.map +1 -1
- package/dist/scaffold/project-identity.js +5 -21
- package/dist/scaffold/project-identity.js.map +1 -1
- package/dist/security/input-sanitization.d.ts +9 -1
- package/dist/security/input-sanitization.d.ts.map +1 -1
- package/dist/security/input-sanitization.js +12 -2
- package/dist/security/input-sanitization.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +4321 -1807
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sentient/propose-tick.d.ts.map +1 -1
- package/dist/sentient/propose-tick.js +4 -2
- package/dist/sentient/propose-tick.js.map +1 -1
- package/dist/sequence/index.d.ts.map +1 -1
- package/dist/sequence/index.js +6 -23
- package/dist/sequence/index.js.map +1 -1
- package/dist/session/engine-ops.d.ts +9 -0
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +110 -18
- package/dist/session/engine-ops.js.map +1 -1
- package/dist/sessions/assumptions.d.ts.map +1 -1
- package/dist/sessions/assumptions.js +7 -4
- package/dist/sessions/assumptions.js.map +1 -1
- package/dist/sessions/briefing.d.ts +6 -0
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +12 -1
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/decisions.d.ts +38 -3
- package/dist/sessions/decisions.d.ts.map +1 -1
- package/dist/sessions/decisions.js +235 -21
- package/dist/sessions/decisions.js.map +1 -1
- package/dist/sessions/drift-watchdog.d.ts.map +1 -1
- package/dist/sessions/drift-watchdog.js +4 -2
- package/dist/sessions/drift-watchdog.js.map +1 -1
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +33 -4
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/session-end-snapshot-entry.d.ts +26 -0
- package/dist/sessions/session-end-snapshot-entry.d.ts.map +1 -0
- package/dist/sessions/session-end-snapshot-entry.js +59 -0
- package/dist/sessions/session-end-snapshot-entry.js.map +1 -0
- package/dist/sessions/session-end-snapshot.d.ts +114 -0
- package/dist/sessions/session-end-snapshot.d.ts.map +1 -0
- package/dist/sessions/session-end-snapshot.js +446 -0
- package/dist/sessions/session-end-snapshot.js.map +1 -0
- package/dist/sessions/session-manifest-mirror.d.ts.map +1 -1
- package/dist/sessions/session-manifest-mirror.js +10 -17
- package/dist/sessions/session-manifest-mirror.js.map +1 -1
- package/dist/sessions/session-switch.d.ts.map +1 -1
- package/dist/sessions/session-switch.js +5 -3
- package/dist/sessions/session-switch.js.map +1 -1
- package/dist/sessions/snapshot.d.ts.map +1 -1
- package/dist/sessions/snapshot.js +5 -4
- package/dist/sessions/snapshot.js.map +1 -1
- package/dist/sessions/terminal-identity.d.ts +169 -0
- package/dist/sessions/terminal-identity.d.ts.map +1 -0
- package/dist/sessions/terminal-identity.js +273 -0
- package/dist/sessions/terminal-identity.js.map +1 -0
- package/dist/setup/sections/verification.d.ts +1 -1
- package/dist/setup/sections/verification.d.ts.map +1 -1
- package/dist/setup/sections/verification.js +11 -15
- package/dist/setup/sections/verification.js.map +1 -1
- package/dist/skills/discovery.d.ts +8 -2
- package/dist/skills/discovery.d.ts.map +1 -1
- package/dist/skills/discovery.js +15 -3
- package/dist/skills/discovery.js.map +1 -1
- package/dist/skills/dispatch.d.ts +5 -2
- package/dist/skills/dispatch.d.ts.map +1 -1
- package/dist/skills/dispatch.js +5 -2
- package/dist/skills/dispatch.js.map +1 -1
- package/dist/skills/doctor.d.ts.map +1 -1
- package/dist/skills/doctor.js +5 -1
- package/dist/skills/doctor.js.map +1 -1
- package/dist/skills/federated-search.js +2 -2
- package/dist/skills/federated-search.js.map +1 -1
- package/dist/skills/index.d.ts +3 -3
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +1 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/skills/install.d.ts +15 -2
- package/dist/skills/install.d.ts.map +1 -1
- package/dist/skills/install.js +21 -5
- package/dist/skills/install.js.map +1 -1
- package/dist/skills/migration.d.ts +5 -5
- package/dist/skills/migration.d.ts.map +1 -1
- package/dist/skills/migration.js +7 -9
- package/dist/skills/migration.js.map +1 -1
- package/dist/skills/orchestrator/startup.d.ts.map +1 -1
- package/dist/skills/orchestrator/startup.js +4 -2
- package/dist/skills/orchestrator/startup.js.map +1 -1
- package/dist/skills/skill-paths.d.ts +30 -3
- package/dist/skills/skill-paths.d.ts.map +1 -1
- package/dist/skills/skill-paths.js +28 -9
- package/dist/skills/skill-paths.js.map +1 -1
- package/dist/skills/skill-root.d.ts +60 -11
- package/dist/skills/skill-root.d.ts.map +1 -1
- package/dist/skills/skill-root.js +100 -14
- package/dist/skills/skill-root.js.map +1 -1
- package/dist/skills/skills-guard.js +5 -5
- package/dist/skills/skills-guard.js.map +1 -1
- package/dist/skills/types.d.ts +23 -0
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/skills/types.js.map +1 -1
- package/dist/spawn/agent-identity.d.ts +51 -2
- package/dist/spawn/agent-identity.d.ts.map +1 -1
- package/dist/spawn/agent-identity.js +89 -26
- package/dist/spawn/agent-identity.js.map +1 -1
- package/dist/spawn/branch-lock.d.ts.map +1 -1
- package/dist/spawn/branch-lock.js +56 -79
- package/dist/spawn/branch-lock.js.map +1 -1
- package/dist/spawn/index.d.ts +2 -2
- 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/spawn/worktree-lock-holder.d.ts +37 -0
- package/dist/spawn/worktree-lock-holder.d.ts.map +1 -0
- package/dist/spawn/worktree-lock-holder.js +41 -0
- package/dist/spawn/worktree-lock-holder.js.map +1 -0
- package/dist/sticky/convert.d.ts.map +1 -1
- package/dist/sticky/convert.js +16 -4
- package/dist/sticky/convert.js.map +1 -1
- package/dist/store/attachment-store.d.ts +14 -0
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +11 -1
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/backup-inspect.d.ts +7 -3
- package/dist/store/backup-inspect.d.ts.map +1 -1
- package/dist/store/backup-inspect.js +18 -7
- package/dist/store/backup-inspect.js.map +1 -1
- package/dist/store/backup-sidecar.d.ts +60 -0
- package/dist/store/backup-sidecar.d.ts.map +1 -0
- package/dist/store/backup-sidecar.js +96 -0
- package/dist/store/backup-sidecar.js.map +1 -0
- 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 +6 -6
- package/dist/store/data-accessor.js.map +1 -1
- package/dist/store/data-safety-central.d.ts +13 -4
- package/dist/store/data-safety-central.d.ts.map +1 -1
- package/dist/store/data-safety-central.js +31 -4
- package/dist/store/data-safety-central.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +10 -0
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/__fixtures__/representative-fixture.d.ts.map +1 -1
- package/dist/store/exodus/__fixtures__/representative-fixture.js +4 -0
- package/dist/store/exodus/__fixtures__/representative-fixture.js.map +1 -1
- package/dist/store/exodus/migrate.js +1 -1
- package/dist/store/exodus/migrate.js.map +1 -1
- package/dist/store/exodus/reconcile.js +1 -1
- package/dist/store/exodus/reconcile.js.map +1 -1
- package/dist/store/exodus/runtime-targets.d.ts +4 -3
- package/dist/store/exodus/runtime-targets.d.ts.map +1 -1
- package/dist/store/exodus/runtime-targets.js +4 -3
- package/dist/store/exodus/runtime-targets.js.map +1 -1
- package/dist/store/import-logging.d.ts.map +1 -1
- package/dist/store/import-logging.js +5 -4
- package/dist/store/import-logging.js.map +1 -1
- package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
- package/dist/store/legacy-tasks-lineage.js +2 -7
- package/dist/store/legacy-tasks-lineage.js.map +1 -1
- package/dist/store/lock.d.ts +1 -0
- package/dist/store/lock.d.ts.map +1 -1
- package/dist/store/lock.js +1 -0
- package/dist/store/lock.js.map +1 -1
- package/dist/store/memory-accessor.d.ts +8 -3
- package/dist/store/memory-accessor.d.ts.map +1 -1
- package/dist/store/memory-accessor.js +29 -13
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/memory-sqlite.d.ts.map +1 -1
- package/dist/store/memory-sqlite.js +5 -0
- package/dist/store/memory-sqlite.js.map +1 -1
- package/dist/store/open-cleo-db.d.ts.map +1 -1
- package/dist/store/open-cleo-db.js +11 -6
- package/dist/store/open-cleo-db.js.map +1 -1
- package/dist/store/portable-bundle-relocate.d.ts +13 -8
- package/dist/store/portable-bundle-relocate.d.ts.map +1 -1
- package/dist/store/portable-bundle-relocate.js +75 -31
- package/dist/store/portable-bundle-relocate.js.map +1 -1
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +2 -1
- 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 +7 -3
- package/dist/store/portable-bundle.js.map +1 -1
- package/dist/store/pre-repair-snapshot.d.ts +77 -0
- package/dist/store/pre-repair-snapshot.d.ts.map +1 -0
- package/dist/store/pre-repair-snapshot.js +122 -0
- package/dist/store/pre-repair-snapshot.js.map +1 -0
- package/dist/store/regenerators.d.ts +2 -1
- package/dist/store/regenerators.d.ts.map +1 -1
- package/dist/store/regenerators.js +17 -3
- package/dist/store/regenerators.js.map +1 -1
- package/dist/store/relocated-store-guard.d.ts +71 -0
- package/dist/store/relocated-store-guard.d.ts.map +1 -0
- package/dist/store/relocated-store-guard.js +138 -0
- package/dist/store/relocated-store-guard.js.map +1 -0
- package/dist/store/safety-data-accessor.d.ts +2 -2
- package/dist/store/safety-data-accessor.d.ts.map +1 -1
- package/dist/store/safety-data-accessor.js +2 -2
- package/dist/store/safety-data-accessor.js.map +1 -1
- package/dist/store/schema/attachments.d.ts +2 -2
- package/dist/store/schema/audit.d.ts +5 -5
- package/dist/store/schema/background-jobs.d.ts +1 -1
- package/dist/store/schema/cleo-global/models-catalog.d.ts +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +686 -0
- package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/nexus.js +175 -7
- 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 +5 -5
- package/dist/store/schema/cleo-project/docs.d.ts +3 -3
- package/dist/store/schema/cleo-project/lifecycle.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/tasks-core-batch2.d.ts +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +6 -6
- package/dist/store/schema/cleo-shared/brain.d.ts +26 -26
- package/dist/store/schema/lifecycle.d.ts +3 -3
- package/dist/store/schema/manifest.d.ts +1 -1
- package/dist/store/schema/memory-schema.d.ts +26 -26
- package/dist/store/schema/nexus-schema.d.ts +696 -2
- package/dist/store/schema/nexus-schema.d.ts.map +1 -1
- package/dist/store/schema/nexus-schema.js +175 -19
- 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 +5 -5
- package/dist/store/session-binding-schema.d.ts +132 -0
- package/dist/store/session-binding-schema.d.ts.map +1 -0
- package/dist/store/session-binding-schema.js +53 -0
- package/dist/store/session-binding-schema.js.map +1 -0
- package/dist/store/session-store.d.ts +262 -4
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +486 -26
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/snapshot-gate.d.ts +239 -0
- package/dist/store/snapshot-gate.d.ts.map +1 -0
- package/dist/store/snapshot-gate.js +398 -0
- package/dist/store/snapshot-gate.js.map +1 -0
- package/dist/store/split-brain-import.js +2 -2
- package/dist/store/split-brain-import.js.map +1 -1
- package/dist/store/sqlite-backup.d.ts +55 -13
- package/dist/store/sqlite-backup.d.ts.map +1 -1
- package/dist/store/sqlite-backup.js +414 -106
- package/dist/store/sqlite-backup.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts +15 -0
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +63 -4
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite.d.ts +1 -1
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +53 -5
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/store-write-guard.d.ts +28 -0
- package/dist/store/store-write-guard.d.ts.map +1 -0
- package/dist/store/store-write-guard.js +50 -0
- package/dist/store/store-write-guard.js.map +1 -0
- package/dist/store/table-classification.d.ts +143 -0
- package/dist/store/table-classification.d.ts.map +1 -0
- package/dist/store/table-classification.js +1866 -0
- package/dist/store/table-classification.js.map +1 -0
- package/dist/store/task-version.d.ts +72 -0
- package/dist/store/task-version.d.ts.map +1 -0
- package/dist/store/task-version.js +93 -0
- package/dist/store/task-version.js.map +1 -0
- package/dist/store/tasks-schema.d.ts +1 -0
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/tasks-schema.js +13 -0
- package/dist/store/tasks-schema.js.map +1 -1
- package/dist/store/tasks-sqlite.d.ts +10 -3
- package/dist/store/tasks-sqlite.d.ts.map +1 -1
- package/dist/store/tasks-sqlite.js +12 -3
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/twin-collapse.d.ts +275 -0
- package/dist/store/twin-collapse.d.ts.map +1 -0
- package/dist/store/twin-collapse.js +805 -0
- package/dist/store/twin-collapse.js.map +1 -0
- package/dist/store/umbrella-data-accessor.d.ts +2 -2
- package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
- package/dist/store/umbrella-data-accessor.js +2 -2
- package/dist/store/umbrella-data-accessor.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +63 -63
- package/dist/store/worktree-isolation-guard.d.ts +46 -24
- package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
- package/dist/store/worktree-isolation-guard.js +69 -50
- package/dist/store/worktree-isolation-guard.js.map +1 -1
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +3 -67
- package/dist/system/backup.js.map +1 -1
- package/dist/system/cleo-link.d.ts +163 -0
- package/dist/system/cleo-link.d.ts.map +1 -0
- package/dist/system/cleo-link.js +246 -0
- package/dist/system/cleo-link.js.map +1 -0
- package/dist/system/dependencies.d.ts.map +1 -1
- package/dist/system/dependencies.js +26 -41
- package/dist/system/dependencies.js.map +1 -1
- package/dist/system/global-delivery.d.ts +205 -0
- package/dist/system/global-delivery.d.ts.map +1 -0
- package/dist/system/global-delivery.js +320 -0
- package/dist/system/global-delivery.js.map +1 -0
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +29 -6
- package/dist/system/health.js.map +1 -1
- package/dist/system/project-health.d.ts.map +1 -1
- package/dist/system/project-health.js +1 -20
- package/dist/system/project-health.js.map +1 -1
- package/dist/system/runtime.d.ts.map +1 -1
- package/dist/system/runtime.js +2 -12
- package/dist/system/runtime.js.map +1 -1
- package/dist/system/safestop.d.ts.map +1 -1
- package/dist/system/safestop.js +5 -2
- package/dist/system/safestop.js.map +1 -1
- package/dist/system/skill-fixtures.d.ts +200 -0
- package/dist/system/skill-fixtures.d.ts.map +1 -0
- package/dist/system/skill-fixtures.js +331 -0
- package/dist/system/skill-fixtures.js.map +1 -0
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +4 -2
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/affected-packages.d.ts +173 -0
- package/dist/tasks/affected-packages.d.ts.map +1 -0
- package/dist/tasks/affected-packages.js +389 -0
- package/dist/tasks/affected-packages.js.map +1 -0
- package/dist/tasks/change-set.d.ts +151 -0
- package/dist/tasks/change-set.d.ts.map +1 -0
- package/dist/tasks/change-set.js +634 -0
- package/dist/tasks/change-set.js.map +1 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +10 -5
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/done-plan.d.ts +103 -0
- package/dist/tasks/done-plan.d.ts.map +1 -0
- package/dist/tasks/done-plan.js +541 -0
- package/dist/tasks/done-plan.js.map +1 -0
- package/dist/tasks/done-record.d.ts +127 -0
- package/dist/tasks/done-record.d.ts.map +1 -0
- package/dist/tasks/done-record.js +373 -0
- package/dist/tasks/done-record.js.map +1 -0
- package/dist/tasks/duplicate-detector.d.ts +68 -11
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +314 -58
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/evidence-paths.d.ts +78 -0
- package/dist/tasks/evidence-paths.d.ts.map +1 -0
- package/dist/tasks/evidence-paths.js +150 -0
- package/dist/tasks/evidence-paths.js.map +1 -0
- package/dist/tasks/evidence.d.ts +55 -0
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +223 -26
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/gate-preview.d.ts +5 -0
- package/dist/tasks/gate-preview.d.ts.map +1 -1
- package/dist/tasks/gate-preview.js +25 -21
- package/dist/tasks/gate-preview.js.map +1 -1
- package/dist/tasks/gate-result-cache.d.ts +205 -0
- package/dist/tasks/gate-result-cache.d.ts.map +1 -0
- package/dist/tasks/gate-result-cache.js +285 -0
- package/dist/tasks/gate-result-cache.js.map +1 -0
- package/dist/tasks/gate-runner.d.ts +126 -3
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +483 -28
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/session-scope.d.ts +3 -1
- package/dist/tasks/session-scope.d.ts.map +1 -1
- package/dist/tasks/session-scope.js +18 -3
- package/dist/tasks/session-scope.js.map +1 -1
- package/dist/tasks/tool-resolver.d.ts +23 -6
- package/dist/tasks/tool-resolver.d.ts.map +1 -1
- package/dist/tasks/tool-resolver.js +146 -8
- package/dist/tasks/tool-resolver.js.map +1 -1
- package/dist/tasks/tool-vacuity.d.ts +71 -0
- package/dist/tasks/tool-vacuity.d.ts.map +1 -0
- package/dist/tasks/tool-vacuity.js +334 -0
- package/dist/tasks/tool-vacuity.js.map +1 -0
- package/dist/tasks/update.d.ts +8 -0
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +159 -78
- package/dist/tasks/update.js.map +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +18 -2
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +20 -2
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +64 -4
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/validation/doctor/index.d.ts +1 -1
- package/dist/validation/doctor/index.d.ts.map +1 -1
- package/dist/validation/doctor/index.js +1 -1
- package/dist/validation/doctor/index.js.map +1 -1
- package/dist/validation/doctor/utils.d.ts.map +1 -1
- package/dist/validation/doctor/utils.js +7 -2
- package/dist/validation/doctor/utils.js.map +1 -1
- package/dist/validation/engine-ops.d.ts +15 -0
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +249 -98
- package/dist/validation/engine-ops.js.map +1 -1
- package/migrations/drizzle-cleo-global/20260927000000_t12469-project-locations/migration.sql +121 -0
- package/migrations/drizzle-cleo-global/20260927010000_t12543-user-profile-project-scope/migration.sql +23 -0
- package/migrations/drizzle-cleo-global/20260928010000_t12470-location-candidates/migration.sql +72 -0
- package/migrations/drizzle-cleo-global/20260928020000_t12510-nexus-devices/migration.sql +34 -0
- package/migrations/drizzle-cleo-global/20260928030000_t12511-project-git-state/migration.sql +62 -0
- package/migrations/drizzle-cleo-project/20260927000000_t12499-session-terminal-bindings/migration.sql +34 -0
- package/migrations/drizzle-cleo-project/20260928000000_t12500-binding-provider-flag/migration.sql +15 -0
- package/package.json +23 -13
- package/schemas/config.schema.json +54 -0
- package/schemas/project-context.schema.json +51 -3
- package/schemas/project-info.schema.json +28 -1
- package/templates/CLEO-INJECTION.md +40 -332
- package/templates/CLEO-REFERENCE.md +303 -0
- package/templates/workflows/README.md +36 -14
- package/templates/workflows/release-prepare.yml.tmpl +7 -0
|
@@ -65,6 +65,13 @@ export interface ComposeSpawnPayloadOptions {
|
|
|
65
65
|
role?: AgentSpawnCapability;
|
|
66
66
|
/** Harness hint override. Default: {@link resolveHarnessHint}. */
|
|
67
67
|
harnessHint?: HarnessHint;
|
|
68
|
+
/**
|
|
69
|
+
* CAAMP provider id of the orchestrator's harness, used to name its ask
|
|
70
|
+
* tool in the subagent's HITL line. Default: derived from `harnessHint`.
|
|
71
|
+
*
|
|
72
|
+
* @task T12482
|
|
73
|
+
*/
|
|
74
|
+
askProviderId?: string;
|
|
68
75
|
/** Project root for path + profile resolution. Default: `process.cwd()`. */
|
|
69
76
|
projectRoot?: string;
|
|
70
77
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../src/orchestration/spawn.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../src/orchestration/spawn.ts"],"names":[],"mappings":"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"}
|
|
@@ -376,6 +376,7 @@ export async function composeSpawnPayload(db, task, options = {}) {
|
|
|
376
376
|
projectRoot,
|
|
377
377
|
sessionId: options.sessionId ?? null,
|
|
378
378
|
harnessHint,
|
|
379
|
+
...(options.askProviderId !== undefined ? { askProviderId: options.askProviderId } : {}),
|
|
379
380
|
skipCleoInjectionEmbed: !shouldEmbedInjection,
|
|
380
381
|
worktreePath: options.worktreePath,
|
|
381
382
|
worktreeBranch: options.worktreeBranch,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/orchestration/spawn.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAIH,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAwB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAE1B,YAAY,GACb,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAoB,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAEhB,4BAA4B,GAI7B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,GAGjB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/orchestration/spawn.ts"],"names":[],"mappings":"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"}
|
package/dist/paths.d.ts
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* @task T4458
|
|
16
16
|
*/
|
|
17
17
|
export type { WorktreeScope } from './project-scope.js';
|
|
18
|
-
export { getProjectRoot, validateProjectRoot, worktreeScope } from './project-scope.js';
|
|
18
|
+
export { getProjectRoot, isGitLinkedCheckout, linkedWorktreeMainRoot, resolveStoreOwnerRoot, validateProjectRoot, worktreeScope, } from './project-scope.js';
|
|
19
19
|
/**
|
|
20
20
|
* Run `fn` inside a `worktreeScope.run()` AsyncLocalStorage frame derived
|
|
21
21
|
* from the `CLEO_WORKTREE_ROOT` and `CLEO_PROJECT_HASH` environment variables.
|
|
@@ -252,25 +252,34 @@ export declare function getCleoDirAbsolute(cwd?: string, opts?: {
|
|
|
252
252
|
*/
|
|
253
253
|
export declare function resolveCanonicalCleoDir(projectId: string): string;
|
|
254
254
|
/**
|
|
255
|
-
* Resolve the
|
|
255
|
+
* Resolve the project id from a working directory.
|
|
256
256
|
*
|
|
257
|
-
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
257
|
+
* Resolution order (T12470 · ADR-094) — the id is always DECLARED, never
|
|
258
|
+
* derived from a path:
|
|
259
|
+
* 1. An absolute `CLEO_DIR` pin: the pinned root's declared id.
|
|
260
|
+
* 2. The nearest ancestor (or, from a git worktree, its main checkout) whose
|
|
261
|
+
* `.cleo/` declares an id: tracked `.cleo/project-id`, then
|
|
262
|
+
* `project-info.json`.
|
|
263
|
+
* 3. The registry's recorded location for this directory — a suggestion used
|
|
264
|
+
* only when no ancestor declares an identity.
|
|
265
|
+
*
|
|
266
|
+
* Old path-derived ids handed in by callers keep resolving through
|
|
267
|
+
* `nexus_project_id_aliases` in `resolveCanonicalCleoDir`.
|
|
260
268
|
*
|
|
261
269
|
* @param cwd - Optional working directory. Defaults to `process.cwd()`.
|
|
262
|
-
* @returns The
|
|
270
|
+
* @returns The opaque project id.
|
|
263
271
|
* @throws {CleoError} `ExitCode.NEXUS_PROJECT_NOT_FOUND` (E_CLEO_NEXUS_PROJECT_NOT_FOUND)
|
|
264
|
-
* with a remediation hint when no CLEO project is found
|
|
272
|
+
* with a remediation hint when no CLEO project is found.
|
|
265
273
|
*
|
|
266
274
|
* @example
|
|
267
275
|
* ```typescript
|
|
268
276
|
* const projectId = resolveProjectByCwd('/repo/packages/core');
|
|
269
|
-
* // "
|
|
277
|
+
* // "c78d09c3a8ee" — the content of /repo/.cleo/project-id
|
|
270
278
|
* ```
|
|
271
279
|
*
|
|
272
280
|
* @public
|
|
273
281
|
* @task T11013
|
|
282
|
+
* @task T12470
|
|
274
283
|
*/
|
|
275
284
|
export declare function resolveProjectByCwd(cwd?: string): string;
|
|
276
285
|
/**
|
|
@@ -290,6 +299,13 @@ export declare function resolveProjectByCwd(cwd?: string): string;
|
|
|
290
299
|
* 3. Nearest ancestor containing a `.cleo/` directory — presence of `.cleo/`
|
|
291
300
|
* identifies the project root (`<root>/.cleo`); no `project-info.json` or
|
|
292
301
|
* nexus registration required. Bounded by the `$HOME`/`/` guard.
|
|
302
|
+
*
|
|
303
|
+
* Steps 1 and 3 map their root through {@link resolveStoreOwnerRoot}: a CLEO
|
|
304
|
+
* worktree (a linked git checkout whose parent is a CLEO project) resolves to
|
|
305
|
+
* the PARENT project's `.cleo/`, even when the worktree carries its own
|
|
306
|
+
* `.cleo/` (tracked files, or the seeded `project-info.json`). Without this a
|
|
307
|
+
* worktree opened an empty local `cleo.db`, auto-recovered a full copy of the
|
|
308
|
+
* parent's newest snapshot into it, and every write there was lost (T12460).
|
|
293
309
|
* 4. Cross-project nexus `project_registry` lookup by `cwd` — for callers
|
|
294
310
|
* whose `cwd` is not under a `.cleo/` tree but is registered.
|
|
295
311
|
* 5. Throw `E_NO_PROJECT` with a remediation hint.
|
package/dist/paths.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
|
package/dist/paths.js
CHANGED
|
@@ -19,11 +19,11 @@ import { createRequire } from 'node:module';
|
|
|
19
19
|
import { homedir } from 'node:os';
|
|
20
20
|
import { basename, dirname, join, resolve } from 'node:path';
|
|
21
21
|
import { E_CWD_WALKUP_FORBIDDEN, ExitCode } from '@cleocode/contracts';
|
|
22
|
-
import {
|
|
22
|
+
import { getCanonicalTemplatesTildePath as _getCanonicalTemplatesTildePath, getCleoTemplatesTildePath as _getCleoTemplatesTildePath, isAbsolutePath as _isAbsolutePath, resolveProjectByCwd as _pathsResolveProjectByCwd, readDeclaredProjectIdentity as _readDeclaredProjectIdentity, resolveCanonicalCleoDir as _resolveCanonicalCleoDir, } from '@cleocode/paths';
|
|
23
23
|
import { CleoError } from './errors.js';
|
|
24
24
|
import { registryStorePath, shouldAutoRegisterProject } from './nexus/registry-hygiene.js';
|
|
25
|
-
import { _resolveMainRepoFromGitlink, captureProjectScope, getProjectRoot, validateProjectRoot, worktreeScope, } from './project-scope.js';
|
|
26
|
-
export { getProjectRoot, validateProjectRoot, worktreeScope } from './project-scope.js';
|
|
25
|
+
import { _resolveMainRepoFromGitlink, captureProjectScope, getProjectRoot, resolveStoreOwnerRoot, validateProjectRoot, worktreeScope, } from './project-scope.js';
|
|
26
|
+
export { getProjectRoot, isGitLinkedCheckout, linkedWorktreeMainRoot, resolveStoreOwnerRoot, validateProjectRoot, worktreeScope, } from './project-scope.js';
|
|
27
27
|
import { createOperationExecutionContext, isExpectedTeardownRejection, trackBackgroundOp, } from './store/background-ops.js';
|
|
28
28
|
import { getPlatformPaths } from './system/platform-paths.js';
|
|
29
29
|
import { isShuttingDown } from './teardown-signal.js';
|
|
@@ -334,15 +334,14 @@ export function getCleoDirAbsolute(cwd, opts) {
|
|
|
334
334
|
const project = _pathsResolveProjectByCwd(cwd);
|
|
335
335
|
if (project !== null) {
|
|
336
336
|
// T11021: Schedule lifecycle-tracked registration against captured global ownership.
|
|
337
|
-
//
|
|
338
|
-
// the canonical ID.
|
|
337
|
+
// T12470: the declared id (tracked `.cleo/project-id` first) owns the row.
|
|
339
338
|
// T11281: unit tests that exercise the nexus registration/reconcile contract
|
|
340
339
|
// in isolation set CLEO_DISABLE_PROJECT_AUTOREGISTER=1 so this encounter-time
|
|
341
340
|
// side-effect does not pre-register the fixture project out from under the
|
|
342
341
|
// test's explicit registration state. Off by default — production always
|
|
343
342
|
// auto-registers on encounter.
|
|
344
343
|
if (process.env['CLEO_DISABLE_PROJECT_AUTOREGISTER'] !== '1') {
|
|
345
|
-
scheduleProjectEncounter(project.projectRoot, project.
|
|
344
|
+
scheduleProjectEncounter(project.projectRoot, project.projectId);
|
|
346
345
|
}
|
|
347
346
|
try {
|
|
348
347
|
const projectRoot = getProjectRoot(cwd);
|
|
@@ -546,50 +545,63 @@ function _findCleoDirRoot(cwd) {
|
|
|
546
545
|
return null;
|
|
547
546
|
}
|
|
548
547
|
/**
|
|
549
|
-
* Resolve the
|
|
548
|
+
* Resolve the project id from a working directory.
|
|
550
549
|
*
|
|
551
|
-
*
|
|
552
|
-
*
|
|
553
|
-
*
|
|
550
|
+
* Resolution order (T12470 · ADR-094) — the id is always DECLARED, never
|
|
551
|
+
* derived from a path:
|
|
552
|
+
* 1. An absolute `CLEO_DIR` pin: the pinned root's declared id.
|
|
553
|
+
* 2. The nearest ancestor (or, from a git worktree, its main checkout) whose
|
|
554
|
+
* `.cleo/` declares an id: tracked `.cleo/project-id`, then
|
|
555
|
+
* `project-info.json`.
|
|
556
|
+
* 3. The registry's recorded location for this directory — a suggestion used
|
|
557
|
+
* only when no ancestor declares an identity.
|
|
558
|
+
*
|
|
559
|
+
* Old path-derived ids handed in by callers keep resolving through
|
|
560
|
+
* `nexus_project_id_aliases` in `resolveCanonicalCleoDir`.
|
|
554
561
|
*
|
|
555
562
|
* @param cwd - Optional working directory. Defaults to `process.cwd()`.
|
|
556
|
-
* @returns The
|
|
563
|
+
* @returns The opaque project id.
|
|
557
564
|
* @throws {CleoError} `ExitCode.NEXUS_PROJECT_NOT_FOUND` (E_CLEO_NEXUS_PROJECT_NOT_FOUND)
|
|
558
|
-
* with a remediation hint when no CLEO project is found
|
|
565
|
+
* with a remediation hint when no CLEO project is found.
|
|
559
566
|
*
|
|
560
567
|
* @example
|
|
561
568
|
* ```typescript
|
|
562
569
|
* const projectId = resolveProjectByCwd('/repo/packages/core');
|
|
563
|
-
* // "
|
|
570
|
+
* // "c78d09c3a8ee" — the content of /repo/.cleo/project-id
|
|
564
571
|
* ```
|
|
565
572
|
*
|
|
566
573
|
* @public
|
|
567
574
|
* @task T11013
|
|
575
|
+
* @task T12470
|
|
568
576
|
*/
|
|
569
577
|
export function resolveProjectByCwd(cwd) {
|
|
570
|
-
|
|
571
|
-
//
|
|
572
|
-
//
|
|
573
|
-
//
|
|
574
|
-
//
|
|
578
|
+
let from = cwd;
|
|
579
|
+
// CLEO_DIR override (backward-compat, T11262). An absolute CLEO_DIR pins the
|
|
580
|
+
// project for the whole process. T12470: return the pinned root's DECLARED
|
|
581
|
+
// id — never a hash of its path. A pinned root that declares nothing is
|
|
582
|
+
// resolved by the ordinary chain FROM THAT ROOT, never from the process cwd
|
|
583
|
+
// (which may sit inside a different project).
|
|
575
584
|
const overrideDir = _cleoDirEnvOverride();
|
|
576
585
|
if (overrideDir !== null) {
|
|
577
586
|
const projectRoot = overrideDir.replace(/[\\/]\.cleo$/, '');
|
|
578
|
-
|
|
587
|
+
const declared = _readDeclaredProjectIdentity(projectRoot);
|
|
588
|
+
if (declared !== null)
|
|
589
|
+
return declared.projectId;
|
|
590
|
+
from = projectRoot;
|
|
579
591
|
}
|
|
580
|
-
//
|
|
581
|
-
const pathsResult = _pathsResolveProjectByCwd(
|
|
592
|
+
// Declared identity: tracked .cleo/project-id, then project-info.json.
|
|
593
|
+
const pathsResult = _pathsResolveProjectByCwd(from);
|
|
582
594
|
if (pathsResult !== null) {
|
|
583
595
|
return pathsResult.projectId;
|
|
584
596
|
}
|
|
585
597
|
// AC4: Walk up from cwd looking for git worktree gitlinks.
|
|
586
598
|
// When cwd is inside a worktree (`.git` is a FILE pointing to main repo),
|
|
587
|
-
// resolve the main repo and
|
|
599
|
+
// resolve the main repo and read its declared identity there.
|
|
588
600
|
// This handles the canonical CLEO worktree layout where worktrees live
|
|
589
601
|
// under ~/.local/share/cleo/worktrees/<hash>/<taskId>/ — completely
|
|
590
602
|
// separate from the main repo — and therefore ancestor-walk from cwd
|
|
591
|
-
// will never encounter the main repo's
|
|
592
|
-
const start = resolve(
|
|
603
|
+
// will never encounter the main repo's `.cleo/`.
|
|
604
|
+
const start = resolve(from ?? process.cwd());
|
|
593
605
|
let current = start;
|
|
594
606
|
while (true) {
|
|
595
607
|
const mainRepo = _resolveMainRepoFromGitlink(current);
|
|
@@ -598,7 +610,7 @@ export function resolveProjectByCwd(cwd) {
|
|
|
598
610
|
if (mainRepoResult !== null) {
|
|
599
611
|
return mainRepoResult.projectId;
|
|
600
612
|
}
|
|
601
|
-
// Found a gitlink but the main repo
|
|
613
|
+
// Found a gitlink but the main repo declares no identity —
|
|
602
614
|
// don't keep walking up past the gitlink; the worktree's ancestors
|
|
603
615
|
// won't help.
|
|
604
616
|
break;
|
|
@@ -608,8 +620,8 @@ export function resolveProjectByCwd(cwd) {
|
|
|
608
620
|
break;
|
|
609
621
|
current = parent;
|
|
610
622
|
}
|
|
611
|
-
//
|
|
612
|
-
const nexusProjectId = _resolveProjectByCwdFromNexus(
|
|
623
|
+
// Suggestion only: the registry's recorded location for this directory.
|
|
624
|
+
const nexusProjectId = _resolveProjectByCwdFromNexus(from);
|
|
613
625
|
if (nexusProjectId !== null) {
|
|
614
626
|
return nexusProjectId;
|
|
615
627
|
}
|
|
@@ -636,6 +648,13 @@ export function resolveProjectByCwd(cwd) {
|
|
|
636
648
|
* 3. Nearest ancestor containing a `.cleo/` directory — presence of `.cleo/`
|
|
637
649
|
* identifies the project root (`<root>/.cleo`); no `project-info.json` or
|
|
638
650
|
* nexus registration required. Bounded by the `$HOME`/`/` guard.
|
|
651
|
+
*
|
|
652
|
+
* Steps 1 and 3 map their root through {@link resolveStoreOwnerRoot}: a CLEO
|
|
653
|
+
* worktree (a linked git checkout whose parent is a CLEO project) resolves to
|
|
654
|
+
* the PARENT project's `.cleo/`, even when the worktree carries its own
|
|
655
|
+
* `.cleo/` (tracked files, or the seeded `project-info.json`). Without this a
|
|
656
|
+
* worktree opened an empty local `cleo.db`, auto-recovered a full copy of the
|
|
657
|
+
* parent's newest snapshot into it, and every write there was lost (T12460).
|
|
639
658
|
* 4. Cross-project nexus `project_registry` lookup by `cwd` — for callers
|
|
640
659
|
* whose `cwd` is not under a `.cleo/` tree but is registered.
|
|
641
660
|
* 5. Throw `E_NO_PROJECT` with a remediation hint.
|
|
@@ -651,7 +670,7 @@ export function resolveCleoDir(cwd) {
|
|
|
651
670
|
// 1. Active worktree scope wins (matches getProjectRoot precedence).
|
|
652
671
|
const scope = worktreeScope.getStore();
|
|
653
672
|
if (scope !== undefined) {
|
|
654
|
-
return join(scope.worktreeRoot, '.cleo');
|
|
673
|
+
return join(resolveStoreOwnerRoot(scope.worktreeRoot), '.cleo');
|
|
655
674
|
}
|
|
656
675
|
// 2. Absolute CLEO_DIR override.
|
|
657
676
|
const override = _cleoDirEnvOverride();
|
|
@@ -659,9 +678,10 @@ export function resolveCleoDir(cwd) {
|
|
|
659
678
|
return override;
|
|
660
679
|
}
|
|
661
680
|
// 3. Nearest ancestor with a `.cleo/` directory — presence = project root.
|
|
681
|
+
// A worktree's own `.cleo/` never owns the store (T12460).
|
|
662
682
|
const root = _findCleoDirRoot(cwd);
|
|
663
683
|
if (root !== null) {
|
|
664
|
-
return join(root, '.cleo');
|
|
684
|
+
return join(resolveStoreOwnerRoot(root), '.cleo');
|
|
665
685
|
}
|
|
666
686
|
// 3b. Worktree gitlink: when `cwd` is inside a git worktree (`.git` is a FILE
|
|
667
687
|
// pointing to `<mainRepo>/.git/worktrees/<name>`), the canonical project
|
|
@@ -1661,7 +1681,7 @@ export async function resolveProjectById(projectId) {
|
|
|
1661
1681
|
if (!existsSync(getNexusRegistryDbPath()))
|
|
1662
1682
|
return null;
|
|
1663
1683
|
const { eq } = await import('drizzle-orm');
|
|
1664
|
-
const { projectRegistry
|
|
1684
|
+
const { projectRegistry } = await import('./store/schema/nexus-schema.js');
|
|
1665
1685
|
const db = await getNexusDb();
|
|
1666
1686
|
const directRows = await db
|
|
1667
1687
|
.select()
|
|
@@ -1670,15 +1690,13 @@ export async function resolveProjectById(projectId) {
|
|
|
1670
1690
|
.limit(1);
|
|
1671
1691
|
if (directRows.length > 0)
|
|
1672
1692
|
return _rowToRegistryEntry(directRows[0]);
|
|
1673
|
-
// Alias lookup (AC4) — gracefully handles missing project_id_aliases table
|
|
1693
|
+
// Alias lookup (AC4) — gracefully handles missing project_id_aliases table.
|
|
1694
|
+
// T12589: an alias shared by several projects resolves to none of them.
|
|
1674
1695
|
try {
|
|
1675
|
-
const
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
.
|
|
1679
|
-
.limit(1);
|
|
1680
|
-
if (aliasRows.length > 0) {
|
|
1681
|
-
const canonicalId = aliasRows[0].canonicalId;
|
|
1696
|
+
const { resolveProjectAlias } = await import('./nexus/legacy-alias.js');
|
|
1697
|
+
const alias = resolveProjectAlias(db, projectId);
|
|
1698
|
+
if (alias.status === 'resolved') {
|
|
1699
|
+
const canonicalId = alias.canonicalId;
|
|
1682
1700
|
const canonicalRows = await db
|
|
1683
1701
|
.select()
|
|
1684
1702
|
.from(projectRegistry)
|
|
@@ -1829,27 +1847,30 @@ export async function recordProjectEncounter(cwd) {
|
|
|
1829
1847
|
const project = _pathsResolveProjectByCwd(start);
|
|
1830
1848
|
if (project === null)
|
|
1831
1849
|
return 'no-project';
|
|
1832
|
-
const infoProjectId = project.
|
|
1850
|
+
const infoProjectId = project.projectId;
|
|
1833
1851
|
const cleoHome = getCleoHome();
|
|
1834
1852
|
if (!shouldAutoRegisterProject(project.projectRoot, cleoHome))
|
|
1835
1853
|
return 'ephemeral';
|
|
1836
1854
|
const checkout = captureProjectScope(project.projectRoot, worktreeScope.getStore()).worktreeRoot;
|
|
1837
1855
|
const { getNexusRegistryDb, getNexusRegistryDbPath } = await import('./store/nexus-sqlite.js');
|
|
1838
1856
|
if (existsSync(getNexusRegistryDbPath(cleoHome))) {
|
|
1839
|
-
const { eq } = await import('drizzle-orm');
|
|
1840
|
-
const {
|
|
1857
|
+
const { and, eq } = await import('drizzle-orm');
|
|
1858
|
+
const { projectLocations, projectRegistry } = await import('./store/schema/nexus-schema.js');
|
|
1859
|
+
const { currentDeviceId } = await import('./nexus/path-map.js');
|
|
1841
1860
|
const db = await getNexusRegistryDb(cleoHome);
|
|
1842
1861
|
const row = db
|
|
1843
1862
|
.select({ projectPath: projectRegistry.projectPath })
|
|
1844
1863
|
.from(projectRegistry)
|
|
1845
1864
|
.where(eq(projectRegistry.projectId, infoProjectId))
|
|
1846
1865
|
.get();
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
.
|
|
1866
|
+
// T12469: current only when this checkout is a LIVE location of this id
|
|
1867
|
+
// on this device; the unique holder of a path is never assumed.
|
|
1868
|
+
const located = db
|
|
1869
|
+
.select({ state: projectLocations.state })
|
|
1870
|
+
.from(projectLocations)
|
|
1871
|
+
.where(and(eq(projectLocations.projectId, infoProjectId), eq(projectLocations.deviceId, currentDeviceId()), eq(projectLocations.path, checkout)))
|
|
1851
1872
|
.get();
|
|
1852
|
-
if (row?.projectPath === checkout &&
|
|
1873
|
+
if (row?.projectPath === checkout && located?.state === 'live')
|
|
1853
1874
|
return 'current';
|
|
1854
1875
|
}
|
|
1855
1876
|
const key = `${cleoHome}\u0000${infoProjectId}\u0000${project.projectRoot}`;
|
|
@@ -1888,32 +1909,70 @@ export async function registerProjectOnEncounter(projectRoot, infoProjectId) {
|
|
|
1888
1909
|
});
|
|
1889
1910
|
try {
|
|
1890
1911
|
const outcome = await trackBackgroundOp(() => worktreeScope.run({ ...scope, execution }, async () => {
|
|
1891
|
-
const {
|
|
1912
|
+
const { collectCheckoutEvidence, projectPathFingerprint, legacyProjectId } = await import('./nexus/identity.js');
|
|
1913
|
+
const { ensureCheckoutNonce, readCheckoutNonce } = await import('./nexus/checkout-nonce.js');
|
|
1892
1914
|
const { generateProjectHash } = await import('./nexus/hash.js');
|
|
1893
|
-
|
|
1915
|
+
// Path-derived values are ALIASES of the declared id, never the id (T12470).
|
|
1916
|
+
const canonical = await projectPathFingerprint(resolvedPath, execution);
|
|
1917
|
+
const evidence = await collectCheckoutEvidence(resolvedPath, execution);
|
|
1894
1918
|
execution.assertActive();
|
|
1895
1919
|
const { getNexusRegistryDb } = await import('./store/nexus-sqlite.js');
|
|
1896
|
-
const { eq
|
|
1920
|
+
const { eq } = await import('drizzle-orm');
|
|
1897
1921
|
const { projectRegistry, projectIdAliases } = await import('./store/schema/nexus-schema.js');
|
|
1898
|
-
const { recordProjectCheckout } = await import('./nexus/path-map.js');
|
|
1922
|
+
const { decideEncounterBinding, recordCandidateLocation, recordProjectCheckout, touchProjectLocation, } = await import('./nexus/path-map.js');
|
|
1923
|
+
const { registryAliasClaimants } = await import('./nexus/legacy-alias.js');
|
|
1899
1924
|
const db = await getNexusRegistryDb(capturedHome);
|
|
1900
1925
|
execution.assertActive();
|
|
1901
1926
|
const projectHash = generateProjectHash(resolvedPath);
|
|
1902
1927
|
const legacyAlias = legacyProjectId(resolvedPath);
|
|
1903
1928
|
const skippedAliases = [];
|
|
1929
|
+
let candidateOf = null;
|
|
1904
1930
|
const aliases = new Set([legacyAlias, canonical.id, ...(canonical.legacyAliases ?? [])]);
|
|
1905
1931
|
aliases.delete(infoProjectId);
|
|
1906
1932
|
db.transaction((tx) => {
|
|
1907
1933
|
execution.assertActive();
|
|
1908
|
-
const
|
|
1934
|
+
const now = new Date().toISOString();
|
|
1935
|
+
const unconfirmed = {
|
|
1936
|
+
projectId: infoProjectId,
|
|
1937
|
+
projectPath: resolvedPath,
|
|
1938
|
+
projectHash,
|
|
1939
|
+
now,
|
|
1940
|
+
evidence,
|
|
1941
|
+
checkoutNonce: readCheckoutNonce(resolvedPath),
|
|
1942
|
+
};
|
|
1943
|
+
// T12470: an encounter runs under ANY command, read-only ones
|
|
1944
|
+
// included, and the id it sees is committed to git — any
|
|
1945
|
+
// directory can declare it. It never repoints an existing row
|
|
1946
|
+
// to a new path (nor hands that row's permissions over) unless
|
|
1947
|
+
// the move is PROVEN by this checkout's untracked nonce;
|
|
1948
|
+
// otherwise the path is only a candidate.
|
|
1949
|
+
const binding = decideEncounterBinding(tx, unconfirmed);
|
|
1950
|
+
if (binding === 'candidate') {
|
|
1951
|
+
if (!recordCandidateLocation(tx, unconfirmed))
|
|
1952
|
+
return;
|
|
1953
|
+
const holder = tx
|
|
1954
|
+
.select({ projectPath: projectRegistry.projectPath })
|
|
1955
|
+
.from(projectRegistry)
|
|
1956
|
+
.where(eq(projectRegistry.projectId, infoProjectId))
|
|
1957
|
+
.get();
|
|
1958
|
+
candidateOf = holder?.projectPath ?? null;
|
|
1959
|
+
return;
|
|
1960
|
+
}
|
|
1961
|
+
// Confirmed: make sure the checkout carries a nonce, so a later
|
|
1962
|
+
// move of it can be proven.
|
|
1963
|
+
const record = {
|
|
1964
|
+
...unconfirmed,
|
|
1965
|
+
checkoutNonce: unconfirmed.checkoutNonce ?? ensureCheckoutNonce(resolvedPath),
|
|
1966
|
+
};
|
|
1967
|
+
if (binding === 'refresh') {
|
|
1968
|
+
touchProjectLocation(tx, record);
|
|
1969
|
+
return;
|
|
1970
|
+
}
|
|
1971
|
+
const existing = tx
|
|
1909
1972
|
.select()
|
|
1910
1973
|
.from(projectRegistry)
|
|
1911
|
-
.where(
|
|
1912
|
-
.
|
|
1913
|
-
if (owners.some((owner) => owner.projectId !== infoProjectId))
|
|
1914
|
-
throw new Error('Project encounter path or hash belongs to another immutable identity');
|
|
1915
|
-
const now = new Date().toISOString();
|
|
1916
|
-
const existing = owners.find((owner) => owner.projectId === infoProjectId);
|
|
1974
|
+
.where(eq(projectRegistry.projectId, infoProjectId))
|
|
1975
|
+
.get();
|
|
1917
1976
|
if (existing) {
|
|
1918
1977
|
tx.update(projectRegistry)
|
|
1919
1978
|
.set({
|
|
@@ -1947,19 +2006,21 @@ export async function registerProjectOnEncounter(projectRoot, infoProjectId) {
|
|
|
1947
2006
|
})
|
|
1948
2007
|
.run();
|
|
1949
2008
|
}
|
|
1950
|
-
// T12354: every checkout is
|
|
1951
|
-
recordProjectCheckout(tx,
|
|
1952
|
-
projectId: infoProjectId,
|
|
1953
|
-
projectPath: resolvedPath,
|
|
1954
|
-
projectHash,
|
|
1955
|
-
now,
|
|
1956
|
-
});
|
|
2009
|
+
// T12354 · T12469: every confirmed checkout is a live location.
|
|
2010
|
+
recordProjectCheckout(tx, record);
|
|
1957
2011
|
for (const alias of aliases) {
|
|
1958
2012
|
const owner = tx
|
|
1959
2013
|
.select()
|
|
1960
2014
|
.from(projectIdAliases)
|
|
1961
2015
|
.where(eq(projectIdAliases.legacyId, alias))
|
|
1962
2016
|
.get();
|
|
2017
|
+
// T12589: the legacy key encodes only 24 path bytes, so every
|
|
2018
|
+
// project under a shared prefix derives it. Shared, it names no
|
|
2019
|
+
// project: never recorded for a second one and never resolved
|
|
2020
|
+
// (legacy-alias.ts). Expected, so not reported.
|
|
2021
|
+
if (alias === legacyAlias &&
|
|
2022
|
+
registryAliasClaimants(tx, alias, owner?.canonicalId).some((id) => id !== infoProjectId))
|
|
2023
|
+
continue;
|
|
1963
2024
|
const directOwner = tx
|
|
1964
2025
|
.select()
|
|
1965
2026
|
.from(projectRegistry)
|
|
@@ -1967,13 +2028,12 @@ export async function registerProjectOnEncounter(projectRoot, infoProjectId) {
|
|
|
1967
2028
|
.get();
|
|
1968
2029
|
if ((owner && owner.canonicalId !== infoProjectId) ||
|
|
1969
2030
|
(directOwner && directOwner.projectId !== infoProjectId)) {
|
|
1970
|
-
//
|
|
1971
|
-
//
|
|
1972
|
-
|
|
1973
|
-
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
throw new Error('Project encounter alias belongs to another immutable identity');
|
|
2031
|
+
// Every alias here is derived from the PATH (base64url path,
|
|
2032
|
+
// git-root hash), so another project owning it means the path
|
|
2033
|
+
// changed hands — not a conflict of identity (T12469). Keep the
|
|
2034
|
+
// existing owner; the immutable identity still registers.
|
|
2035
|
+
skippedAliases.push(alias);
|
|
2036
|
+
continue;
|
|
1977
2037
|
}
|
|
1978
2038
|
if (!owner)
|
|
1979
2039
|
tx.insert(projectIdAliases)
|
|
@@ -1984,6 +2044,10 @@ export async function registerProjectOnEncounter(projectRoot, infoProjectId) {
|
|
|
1984
2044
|
}, { behavior: 'immediate' });
|
|
1985
2045
|
if (skippedAliases.length > 0)
|
|
1986
2046
|
process.stderr.write(`[cleo] Project encounter omitted colliding legacy alias: ${skippedAliases.join(', ')}\n`);
|
|
2047
|
+
if (candidateOf !== null)
|
|
2048
|
+
process.stderr.write(`[cleo] ${resolvedPath} declares project ${infoProjectId}, which is registered at ${candidateOf}; ` +
|
|
2049
|
+
'recorded as an unconfirmed candidate location (nothing proves it is the same checkout). ' +
|
|
2050
|
+
'If it is, confirm with `cleo doctor project-identity --resolve`.\n');
|
|
1987
2051
|
}), execution);
|
|
1988
2052
|
if (outcome.status === 'rejected')
|
|
1989
2053
|
throw outcome.reason;
|