@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
|
@@ -19,16 +19,40 @@
|
|
|
19
19
|
* The tracked file is never modified here. It is write-once, and a malformed
|
|
20
20
|
* one is restored from version control, never regenerated.
|
|
21
21
|
*
|
|
22
|
+
* T12557: `projectRoot` is a path fact, derived from the real root at runtime.
|
|
23
|
+
* A persisted copy in `project-info.json` or `project-context.json` goes stale
|
|
24
|
+
* on every move, so the inspection lists it under `derivedFields` and
|
|
25
|
+
* `--resolve` strips it. Each removed value is kept in `project-info.json`
|
|
26
|
+
* under `strippedFields`, the same in-file receipt pattern as
|
|
27
|
+
* `previousProjectIds`. `projectHash` is NOT a path fact: it is a write-once
|
|
28
|
+
* identity key, and nothing here ever touches it.
|
|
29
|
+
*
|
|
22
30
|
* @task T12353
|
|
31
|
+
* @task T12557
|
|
23
32
|
* @see ADR-094 — write-once portable project identity (amends ADR-013 §9)
|
|
24
33
|
*/
|
|
25
34
|
import { execFileSync } from 'node:child_process';
|
|
26
35
|
import { existsSync, readFileSync, renameSync, writeFileSync } from 'node:fs';
|
|
27
36
|
import { join } from 'node:path';
|
|
28
|
-
import { getCleoHome, isValidPortableProjectId, PORTABLE_PROJECT_ID_FILE, readPortableProjectId, } from '@cleocode/paths';
|
|
37
|
+
import { canonicalizePath, getCleoHome, isValidPortableProjectId, PORTABLE_PROJECT_ID_FILE, readDeclaredProjectIdentity, readPortableProjectId, } from '@cleocode/paths';
|
|
29
38
|
import { ensurePortableProjectId } from '../scaffold/project-identity.js';
|
|
39
|
+
import { detectRelocatedRoot } from '../store/relocated-store-guard.js';
|
|
30
40
|
/** Command that reports identity state; the prefix of every remedy below. */
|
|
31
41
|
const IDENTITY_COMMAND = 'cleo doctor project-identity';
|
|
42
|
+
/** Files that must not persist path-derived fields. */
|
|
43
|
+
const DERIVED_FIELD_FILES = [
|
|
44
|
+
'project-info.json',
|
|
45
|
+
'project-context.json',
|
|
46
|
+
];
|
|
47
|
+
/**
|
|
48
|
+
* Path facts derived from the real root at runtime, never authoritative on
|
|
49
|
+
* disk. `projectHash` is deliberately absent: it is a write-once identity key.
|
|
50
|
+
*/
|
|
51
|
+
const DERIVED_FIELDS = ['projectRoot'];
|
|
52
|
+
/** Schema `maxItems` for the `previousProjectIds` / `strippedFields` receipts; oldest drop first. */
|
|
53
|
+
const RECEIPT_MAX_ITEMS = 50;
|
|
54
|
+
/** Bound every git probe: briefing runs this inspection on each call. */
|
|
55
|
+
const GIT_PROBE_TIMEOUT_MS = 5000;
|
|
32
56
|
/** Read the id and the whole object from `project-info.json`; `undefined` when absent. */
|
|
33
57
|
function readInfo(projectRoot) {
|
|
34
58
|
const path = join(projectRoot, '.cleo', 'project-info.json');
|
|
@@ -43,12 +67,40 @@ function readInfo(projectRoot) {
|
|
|
43
67
|
return 'unparseable';
|
|
44
68
|
}
|
|
45
69
|
}
|
|
70
|
+
/** Read a `.cleo/` JSON object; `undefined` when absent or not an object. */
|
|
71
|
+
function readCleoJson(projectRoot, file) {
|
|
72
|
+
const path = join(projectRoot, '.cleo', file);
|
|
73
|
+
if (!existsSync(path))
|
|
74
|
+
return undefined;
|
|
75
|
+
try {
|
|
76
|
+
const data = JSON.parse(readFileSync(path, 'utf-8'));
|
|
77
|
+
return data !== null && typeof data === 'object' && !Array.isArray(data)
|
|
78
|
+
? data
|
|
79
|
+
: undefined;
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return undefined;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/** List persisted path-derived fields across the metadata files (T12557). */
|
|
86
|
+
function findDerivedFields(projectRoot) {
|
|
87
|
+
const found = [];
|
|
88
|
+
for (const file of DERIVED_FIELD_FILES) {
|
|
89
|
+
const data = readCleoJson(projectRoot, file);
|
|
90
|
+
if (!data)
|
|
91
|
+
continue;
|
|
92
|
+
for (const field of DERIVED_FIELDS)
|
|
93
|
+
if (field in data)
|
|
94
|
+
found.push({ file, field, value: data[field] });
|
|
95
|
+
}
|
|
96
|
+
return found;
|
|
97
|
+
}
|
|
46
98
|
/** Git's view of the tracked file: `null` when this is not a git work tree. */
|
|
47
99
|
function gitFileState(projectRoot) {
|
|
48
100
|
const rel = `.cleo/${PORTABLE_PROJECT_ID_FILE}`;
|
|
49
101
|
const run = (args) => {
|
|
50
102
|
try {
|
|
51
|
-
execFileSync('git', args, { cwd: projectRoot, stdio: 'pipe' });
|
|
103
|
+
execFileSync('git', args, { cwd: projectRoot, stdio: 'pipe', timeout: GIT_PROBE_TIMEOUT_MS });
|
|
52
104
|
return true;
|
|
53
105
|
}
|
|
54
106
|
catch {
|
|
@@ -80,16 +132,37 @@ export function inspectProjectIdentity(projectRoot) {
|
|
|
80
132
|
const info = readInfo(projectRoot);
|
|
81
133
|
const trackedId = tracked.status === 'valid' ? tracked.projectId : null;
|
|
82
134
|
const localId = info && info !== 'unparseable' ? info.id : null;
|
|
83
|
-
const base = { projectRoot, trackedId, localId };
|
|
135
|
+
const base = { projectRoot, trackedId, localId, derivedFields: findDerivedFields(projectRoot) };
|
|
136
|
+
// A CLEO root need not be a git work tree; git remedies apply only inside one.
|
|
137
|
+
let git;
|
|
138
|
+
const gitState = () => {
|
|
139
|
+
if (git === undefined)
|
|
140
|
+
git = gitFileState(projectRoot);
|
|
141
|
+
return git;
|
|
142
|
+
};
|
|
84
143
|
if (tracked.status === 'invalid') {
|
|
85
144
|
return {
|
|
86
145
|
...base,
|
|
87
146
|
state: 'invalid',
|
|
88
147
|
message: `.cleo/project-id is unusable (${tracked.reason}). CLEO never regenerates it.`,
|
|
89
|
-
remedy:
|
|
148
|
+
remedy: gitState() === null
|
|
149
|
+
? 'restore .cleo/project-id from a backup of this project (the CLEO root is not a git work tree)'
|
|
150
|
+
: 'git checkout -- .cleo/project-id (restore the committed id; inspect with `git log -p -- .cleo/project-id`)',
|
|
90
151
|
};
|
|
91
152
|
}
|
|
92
153
|
if (info === undefined) {
|
|
154
|
+
// T12558: a tracked id restored (e.g. by `git checkout -- .`) at a root the
|
|
155
|
+
// project was rerooted away from must not be "adopted" by a plain init —
|
|
156
|
+
// that is exactly the refusal. Point at the live root, or the opt-out.
|
|
157
|
+
const relocated = detectRelocatedRoot(projectRoot, join(getCleoHome(), 'cleo.db'));
|
|
158
|
+
if (relocated) {
|
|
159
|
+
return {
|
|
160
|
+
...base,
|
|
161
|
+
state: 'not-adopted',
|
|
162
|
+
message: `.cleo/project-id declares ${relocated.projectId}, which was rerooted from here to ${relocated.movedTo} (${relocated.via}).`,
|
|
163
|
+
remedy: `cd "${relocated.movedTo}" (the live project). A DIFFERENT project here needs a new id: \`cleo init --here --new-identity\``,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
93
166
|
return trackedId
|
|
94
167
|
? {
|
|
95
168
|
...base,
|
|
@@ -117,7 +190,9 @@ export function inspectProjectIdentity(projectRoot) {
|
|
|
117
190
|
...base,
|
|
118
191
|
state: 'missing',
|
|
119
192
|
message: `.cleo/project-id is missing. The local id is ${localId}.`,
|
|
120
|
-
remedy:
|
|
193
|
+
remedy: gitState() === null
|
|
194
|
+
? `${IDENTITY_COMMAND} --resolve (the CLEO root is not a git work tree; keep .cleo/project-id with the project)`
|
|
195
|
+
: `${IDENTITY_COMMAND} --resolve && git add .cleo/project-id && git commit -m "chore: track CLEO project id"`,
|
|
121
196
|
};
|
|
122
197
|
}
|
|
123
198
|
if (trackedId !== localId) {
|
|
@@ -128,8 +203,7 @@ export function inspectProjectIdentity(projectRoot) {
|
|
|
128
203
|
remedy: `${IDENTITY_COMMAND} --resolve --dry-run then ${IDENTITY_COMMAND} --resolve (re-keys local state to ${trackedId}; ${localId} stays resolvable as an alias)`,
|
|
129
204
|
};
|
|
130
205
|
}
|
|
131
|
-
|
|
132
|
-
if (git === 'ignored') {
|
|
206
|
+
if (gitState() === 'ignored') {
|
|
133
207
|
return {
|
|
134
208
|
...base,
|
|
135
209
|
state: 'ignored',
|
|
@@ -137,7 +211,7 @@ export function inspectProjectIdentity(projectRoot) {
|
|
|
137
211
|
remedy: 'cleo upgrade (refreshes .cleo/.gitignore with `!project-id`), then git add .cleo/project-id',
|
|
138
212
|
};
|
|
139
213
|
}
|
|
140
|
-
if (
|
|
214
|
+
if (gitState() === 'untracked') {
|
|
141
215
|
return {
|
|
142
216
|
...base,
|
|
143
217
|
state: 'untracked',
|
|
@@ -158,6 +232,120 @@ function writeJsonAtomic(path, data) {
|
|
|
158
232
|
writeFileSync(tmp, `${JSON.stringify(data, null, 2)}\n`);
|
|
159
233
|
renameSync(tmp, path);
|
|
160
234
|
}
|
|
235
|
+
/** Whether git tracks `.cleo/<file>`, so rewriting it dirties the work tree. */
|
|
236
|
+
function isGitTracked(projectRoot, file) {
|
|
237
|
+
try {
|
|
238
|
+
execFileSync('git', ['ls-files', '--error-unmatch', `.cleo/${file}`], {
|
|
239
|
+
cwd: projectRoot,
|
|
240
|
+
stdio: 'pipe',
|
|
241
|
+
timeout: GIT_PROBE_TIMEOUT_MS,
|
|
242
|
+
});
|
|
243
|
+
return true;
|
|
244
|
+
}
|
|
245
|
+
catch {
|
|
246
|
+
return false;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Return `info` with `findings` appended to its `strippedFields` receipt
|
|
251
|
+
* (capped at the schema's `maxItems`) and, when `stripInfo`, its own path
|
|
252
|
+
* facts removed. Pure; the caller writes the result.
|
|
253
|
+
*
|
|
254
|
+
* @param info - Parsed `project-info.json`.
|
|
255
|
+
* @param findings - Path facts being removed, with their values.
|
|
256
|
+
* @param now - ISO timestamp recorded on each receipt entry.
|
|
257
|
+
* @param stripInfo - Remove `DERIVED_FIELDS` from `info` itself.
|
|
258
|
+
* @returns A new object; `info` is not mutated.
|
|
259
|
+
* @example
|
|
260
|
+
* ```ts
|
|
261
|
+
* const next = withStrippedFieldsReceipt(info, findings, new Date().toISOString(), true);
|
|
262
|
+
* ```
|
|
263
|
+
* @task T12557
|
|
264
|
+
*/
|
|
265
|
+
export function withStrippedFieldsReceipt(info, findings, now, stripInfo) {
|
|
266
|
+
const next = { ...info };
|
|
267
|
+
const prior = Array.isArray(info['strippedFields']) ? info['strippedFields'] : [];
|
|
268
|
+
next['strippedFields'] = [
|
|
269
|
+
...prior,
|
|
270
|
+
...findings.map((finding) => ({ ...finding, strippedAt: now })),
|
|
271
|
+
].slice(-RECEIPT_MAX_ITEMS);
|
|
272
|
+
if (stripInfo)
|
|
273
|
+
for (const field of DERIVED_FIELDS)
|
|
274
|
+
delete next[field];
|
|
275
|
+
return next;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Remove persisted path facts. The receipt is written first, into
|
|
279
|
+
* `project-info.json` `strippedFields`, so a value is never removed without a
|
|
280
|
+
* durable record of it; without a readable `project-info.json` nothing is
|
|
281
|
+
* stripped.
|
|
282
|
+
*/
|
|
283
|
+
function stripDerivedFields(projectRoot, findings, now) {
|
|
284
|
+
const info = readCleoJson(projectRoot, 'project-info.json');
|
|
285
|
+
if (!info)
|
|
286
|
+
return false;
|
|
287
|
+
const stripInfo = findings.some((finding) => finding.file === 'project-info.json');
|
|
288
|
+
writeJsonAtomic(join(projectRoot, '.cleo', 'project-info.json'), withStrippedFieldsReceipt(info, findings, now, stripInfo));
|
|
289
|
+
if (findings.some((finding) => finding.file === 'project-context.json')) {
|
|
290
|
+
const context = readCleoJson(projectRoot, 'project-context.json');
|
|
291
|
+
if (context) {
|
|
292
|
+
for (const field of DERIVED_FIELDS)
|
|
293
|
+
delete context[field];
|
|
294
|
+
writeJsonAtomic(join(projectRoot, '.cleo', 'project-context.json'), context);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
return true;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Find this checkout's `candidate` location: it declares an id whose registry
|
|
301
|
+
* row names another path, and it is not already a live location on this device.
|
|
302
|
+
*/
|
|
303
|
+
async function findCandidateCheckout(projectRoot, cleoHome) {
|
|
304
|
+
const declared = readDeclaredProjectIdentity(projectRoot);
|
|
305
|
+
if (!declared)
|
|
306
|
+
return null;
|
|
307
|
+
const path = canonicalizePath(projectRoot);
|
|
308
|
+
const { getNexusRegistryDb } = await import('../store/nexus-sqlite.js');
|
|
309
|
+
const { projectRegistry } = await import('../store/schema/nexus-schema.js');
|
|
310
|
+
const { eq } = await import('drizzle-orm');
|
|
311
|
+
const { decideEncounterBinding } = await import('../nexus/path-map.js');
|
|
312
|
+
const db = await getNexusRegistryDb(cleoHome ?? getCleoHome());
|
|
313
|
+
const row = db
|
|
314
|
+
.select({ projectPath: projectRegistry.projectPath })
|
|
315
|
+
.from(projectRegistry)
|
|
316
|
+
.where(eq(projectRegistry.projectId, declared.projectId))
|
|
317
|
+
.get();
|
|
318
|
+
if (!row || row.projectPath === path)
|
|
319
|
+
return null;
|
|
320
|
+
const binding = decideEncounterBinding(db, {
|
|
321
|
+
projectId: declared.projectId,
|
|
322
|
+
projectPath: path,
|
|
323
|
+
now: new Date().toISOString(),
|
|
324
|
+
});
|
|
325
|
+
if (binding === 'refresh')
|
|
326
|
+
return null;
|
|
327
|
+
return { projectId: declared.projectId, path, registeredPath: row.projectPath };
|
|
328
|
+
}
|
|
329
|
+
/** Promote a candidate checkout to the project's live, registered location. */
|
|
330
|
+
async function confirmCandidateCheckout(candidate, cleoHome) {
|
|
331
|
+
const { getNexusRegistryDb } = await import('../store/nexus-sqlite.js');
|
|
332
|
+
const { confirmProjectLocation } = await import('../nexus/path-map.js');
|
|
333
|
+
const { collectCheckoutEvidence } = await import('../nexus/identity.js');
|
|
334
|
+
const { ensureCheckoutNonce } = await import('../nexus/checkout-nonce.js');
|
|
335
|
+
const evidence = await collectCheckoutEvidence(candidate.path);
|
|
336
|
+
// The confirmed checkout gets its own nonce, so a later move is provable.
|
|
337
|
+
const checkoutNonce = ensureCheckoutNonce(candidate.path);
|
|
338
|
+
const db = await getNexusRegistryDb(cleoHome ?? getCleoHome());
|
|
339
|
+
db.transaction((tx) => {
|
|
340
|
+
confirmProjectLocation(tx, {
|
|
341
|
+
projectId: candidate.projectId,
|
|
342
|
+
projectPath: candidate.path,
|
|
343
|
+
now: new Date().toISOString(),
|
|
344
|
+
evidence,
|
|
345
|
+
checkoutNonce,
|
|
346
|
+
});
|
|
347
|
+
}, { behavior: 'immediate' });
|
|
348
|
+
}
|
|
161
349
|
/**
|
|
162
350
|
* Resolve the identity state that {@link inspectProjectIdentity} reported.
|
|
163
351
|
*
|
|
@@ -167,6 +355,9 @@ function writeJsonAtomic(path, data) {
|
|
|
167
355
|
* renames the row's primary key, re-points aliases and records the old id as
|
|
168
356
|
* an alias. Then `project-info.json` is rewritten, keeping the old id under
|
|
169
357
|
* `previousProjectIds`.
|
|
358
|
+
* - In every state, persisted `projectRoot` fields are stripped first
|
|
359
|
+
* (T12557). The removed values are kept in `project-info.json`
|
|
360
|
+
* `strippedFields`. `projectHash` is never touched.
|
|
170
361
|
*
|
|
171
362
|
* Every other state is refused with its remedy. The operation is idempotent:
|
|
172
363
|
* re-running after a partial apply completes the remaining steps.
|
|
@@ -186,6 +377,36 @@ export async function resolveProjectIdentity(projectRoot, options = {}) {
|
|
|
186
377
|
const before = inspectProjectIdentity(projectRoot);
|
|
187
378
|
const steps = [];
|
|
188
379
|
const result = (refused, rows = { before: 0, after: 0 }) => ({ dryRun, before, steps, registryRows: rows, refused });
|
|
380
|
+
// T12470: a checkout that declares an already-registered id is only a
|
|
381
|
+
// `candidate` until confirmed. Resolving here IS the explicit confirmation.
|
|
382
|
+
const confirmCandidateStep = async () => {
|
|
383
|
+
const candidate = await findCandidateCheckout(projectRoot, options.cleoHome);
|
|
384
|
+
if (!candidate)
|
|
385
|
+
return false;
|
|
386
|
+
steps.push({
|
|
387
|
+
action: 'confirm-candidate-location',
|
|
388
|
+
detail: `confirm ${candidate.path} as the live location of ${candidate.projectId} (registry row moves from ${candidate.registeredPath}; its permissions stay with the row)`,
|
|
389
|
+
});
|
|
390
|
+
if (!dryRun)
|
|
391
|
+
await confirmCandidateCheckout(candidate, options.cleoHome);
|
|
392
|
+
return true;
|
|
393
|
+
};
|
|
394
|
+
if (before.derivedFields.length > 0) {
|
|
395
|
+
const removed = before.derivedFields
|
|
396
|
+
.map((finding) => `${finding.file}:${finding.field}=${JSON.stringify(finding.value)}`)
|
|
397
|
+
.join(', ');
|
|
398
|
+
const trackedNote = before.derivedFields.some((finding) => finding.file === 'project-context.json')
|
|
399
|
+
? isGitTracked(projectRoot, 'project-context.json')
|
|
400
|
+
? '; .cleo/project-context.json is git-tracked, so this dirties the work tree (commit the change)'
|
|
401
|
+
: '; .cleo/project-context.json is not git-tracked'
|
|
402
|
+
: '';
|
|
403
|
+
steps.push({
|
|
404
|
+
action: 'strip-derived-fields',
|
|
405
|
+
detail: `remove ${removed} (a path fact derived at runtime; a persisted copy goes stale on a move). Receipt: project-info.json strippedFields${trackedNote}`,
|
|
406
|
+
});
|
|
407
|
+
if (!dryRun && !stripDerivedFields(projectRoot, before.derivedFields, new Date().toISOString()))
|
|
408
|
+
return result('Cannot record a strip receipt: .cleo/project-info.json is missing or unreadable.');
|
|
409
|
+
}
|
|
189
410
|
if (before.state === 'missing' && before.localId) {
|
|
190
411
|
steps.push({
|
|
191
412
|
action: 'write-tracked-id',
|
|
@@ -193,6 +414,7 @@ export async function resolveProjectIdentity(projectRoot, options = {}) {
|
|
|
193
414
|
});
|
|
194
415
|
if (!dryRun)
|
|
195
416
|
await ensurePortableProjectId(projectRoot, before.localId);
|
|
417
|
+
await confirmCandidateStep();
|
|
196
418
|
return result(null);
|
|
197
419
|
}
|
|
198
420
|
if (before.state === 'info-invalid') {
|
|
@@ -204,10 +426,15 @@ export async function resolveProjectIdentity(projectRoot, options = {}) {
|
|
|
204
426
|
const { ensureProjectInfo } = await import('../scaffold/ensure-config.js');
|
|
205
427
|
await ensureProjectInfo(projectRoot, { force: true });
|
|
206
428
|
}
|
|
429
|
+
await confirmCandidateStep();
|
|
207
430
|
return result(null);
|
|
208
431
|
}
|
|
432
|
+
if (before.state !== 'conflict' && (await confirmCandidateStep()))
|
|
433
|
+
return result(null);
|
|
209
434
|
if (before.state !== 'conflict' || !before.trackedId || !before.localId) {
|
|
210
|
-
|
|
435
|
+
if (before.remedy)
|
|
436
|
+
return result(`${before.message} Remedy: ${before.remedy}`);
|
|
437
|
+
return result(steps.length > 0 ? null : 'Nothing to resolve.');
|
|
211
438
|
}
|
|
212
439
|
const oldId = before.localId;
|
|
213
440
|
const newId = before.trackedId;
|
|
@@ -298,7 +525,7 @@ export async function resolveProjectIdentity(projectRoot, options = {}) {
|
|
|
298
525
|
writeJsonAtomic(join(projectRoot, '.cleo', 'project-info.json'), {
|
|
299
526
|
...info.data,
|
|
300
527
|
projectId: newId,
|
|
301
|
-
previousProjectIds: [...new Set([...previous, oldId])],
|
|
528
|
+
previousProjectIds: [...new Set([...previous, oldId])].slice(-RECEIPT_MAX_ITEMS),
|
|
302
529
|
lastUpdated: now,
|
|
303
530
|
});
|
|
304
531
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-identity.js","sourceRoot":"","sources":["../../src/doctor/project-identity.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"project-identity.js","sourceRoot":"","sources":["../../src/doctor/project-identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `cleo doctor projects` — machine-wide integrity check of the project
|
|
3
|
+
* registry (T12471 · ADR-094).
|
|
4
|
+
*
|
|
5
|
+
* The registry is keyed by project id, never by path. A path is a per-device
|
|
6
|
+
* hint that goes stale when a project moves, is deleted, or is re-initialized
|
|
7
|
+
* under a new id. This module walks every registry row, probes its path, scans
|
|
8
|
+
* the directories projects live in for `.cleo/` declarations, and classifies
|
|
9
|
+
* each row (see `NexusRegistryFindingKind`):
|
|
10
|
+
*
|
|
11
|
+
* - {@link inspectProjectRegistry} is read-only and returns every non-`ok`
|
|
12
|
+
* row with its exact remedy.
|
|
13
|
+
* - {@link applyProjectRegistryRepair} applies only the safe classes: a
|
|
14
|
+
* `moved` row is rebound to the one path that declares its id, a
|
|
15
|
+
* `missing` row's location is recorded as `missing`, and an alias row whose
|
|
16
|
+
* truncated legacy key several projects claim is removed (T12589). No
|
|
17
|
+
* registry row is deleted. The rows the changes touch are imaged before and
|
|
18
|
+
* after, and both images are written to `nexus_audit_log` in the same
|
|
19
|
+
* transaction as the changes.
|
|
20
|
+
* - {@link rollbackProjectRegistryRepair} restores the before image, guarded
|
|
21
|
+
* on the current rows still matching the after image.
|
|
22
|
+
*
|
|
23
|
+
* Split identities, ambiguous moves, temp rows and home/root rows are owner
|
|
24
|
+
* decisions: they are reported with a remedy and never changed.
|
|
25
|
+
*
|
|
26
|
+
* Probes are bounded: at most `concurrency` filesystem reads at once, each
|
|
27
|
+
* with a `timeoutMs` budget. Only ENOENT/ENOTDIR prove a path gone; EACCES,
|
|
28
|
+
* EPERM or a timeout leave the row `unreadable` and untouched (#1606).
|
|
29
|
+
*
|
|
30
|
+
* @task T12471
|
|
31
|
+
* @epic T12468
|
|
32
|
+
* @see ADR-094 — write-once portable project identity
|
|
33
|
+
*/
|
|
34
|
+
import type { NexusRegistryIntegrityReport, NexusRegistryRollbackResult } from '@cleocode/contracts';
|
|
35
|
+
/** Options shared by inspect and apply. */
|
|
36
|
+
export interface ProjectRegistryScanOptions {
|
|
37
|
+
/** Extra directories to scan for `.cleo/`, beyond the registry-derived parents. */
|
|
38
|
+
roots?: readonly string[];
|
|
39
|
+
/** Scan depth below each root (default 2). */
|
|
40
|
+
maxDepth?: number;
|
|
41
|
+
/** Filesystem reads in flight at once (default 16). */
|
|
42
|
+
concurrency?: number;
|
|
43
|
+
/** Budget per filesystem probe in milliseconds (default 2000). */
|
|
44
|
+
timeoutMs?: number;
|
|
45
|
+
/** Global CLEO home whose registry is checked (defaults to the current one). */
|
|
46
|
+
cleoHome?: string;
|
|
47
|
+
}
|
|
48
|
+
/** Error with a stable code, raised when a rollback is refused. */
|
|
49
|
+
export declare class RegistryRepairError extends Error {
|
|
50
|
+
readonly code: 'E_NOT_FOUND' | 'E_ROLLBACK_CONFLICT';
|
|
51
|
+
/** @override */
|
|
52
|
+
readonly name = "RegistryRepairError";
|
|
53
|
+
/**
|
|
54
|
+
* @param code - Stable error code (`E_NOT_FOUND`, `E_ROLLBACK_CONFLICT`).
|
|
55
|
+
* @param message - Explanation with the remedy.
|
|
56
|
+
*/
|
|
57
|
+
constructor(code: 'E_NOT_FOUND' | 'E_ROLLBACK_CONFLICT', message: string);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Whether a registry path is a temp row: under a temp directory while the
|
|
61
|
+
* registry itself is persistent. A sandboxed registry (temp `CLEO_HOME`) keeps
|
|
62
|
+
* its temp fixtures legitimately, as encounter registration does.
|
|
63
|
+
*
|
|
64
|
+
* @param projectPath - Registered path.
|
|
65
|
+
* @param cleoHome - Home of the registry being checked.
|
|
66
|
+
* @returns `true` for a temp row.
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```ts
|
|
70
|
+
* isTempRegistryPath('/tmp/fixture', '/home/me/.local/share/cleo'); // true
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
export declare function isTempRegistryPath(projectPath: string, cleoHome: string): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* Whether a registry path is the home directory or a filesystem root: a
|
|
76
|
+
* project registered there claims every directory below it.
|
|
77
|
+
*
|
|
78
|
+
* @param projectPath - Registered path.
|
|
79
|
+
* @param home - Home directory (defaults to the current user's).
|
|
80
|
+
* @returns `true` for a home or root row.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* isHomeOrRootPath('/'); // true
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
export declare function isHomeOrRootPath(projectPath: string, home?: string): boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Whether `path` lies in a trash directory. A project the owner trashed is
|
|
90
|
+
* never a move target, and its registry row may be cleaned.
|
|
91
|
+
*
|
|
92
|
+
* @param path - Absolute path.
|
|
93
|
+
* @returns `true` inside `.Trash`, `.Trashes`, `$RECYCLE.BIN` or `.local/share/Trash`.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```ts
|
|
97
|
+
* isTrashPath('/Users/me/.Trash/app'); // true
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export declare function isTrashPath(path: string): boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Classify every registry row, read-only.
|
|
103
|
+
*
|
|
104
|
+
* @param opts - Extra scan roots, depth, concurrency, per-probe budget, registry home.
|
|
105
|
+
* @returns Counts per kind and every non-`ok` row with its exact remedy.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```ts
|
|
109
|
+
* const report = await inspectProjectRegistry({ roots: ['/home/me/src'] });
|
|
110
|
+
* for (const f of report.findings) console.log(f.kind, f.projectPath, f.remedy);
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare function inspectProjectRegistry(opts?: ProjectRegistryScanOptions): Promise<NexusRegistryIntegrityReport>;
|
|
114
|
+
/**
|
|
115
|
+
* Inspect, then apply the safe repairs: rebind every `moved` row to the path
|
|
116
|
+
* that declares its id, record every `missing` row's location as
|
|
117
|
+
* `missing`, and remove every alias row whose key several projects claim
|
|
118
|
+
* (T12589). One immediate transaction makes the changes and writes the
|
|
119
|
+
* receipt (before and after images of every touched row, alias rows
|
|
120
|
+
* included) to `nexus_audit_log`. No registry row is deleted, and nothing
|
|
121
|
+
* outside the registry is written. A row that changed since inspection is
|
|
122
|
+
* skipped.
|
|
123
|
+
*
|
|
124
|
+
* @param opts - Same options as {@link inspectProjectRegistry}.
|
|
125
|
+
* @returns The report, with `dryRun: false` and a receipt when anything applied.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* const result = await applyProjectRegistryRepair();
|
|
130
|
+
* if (result.receipt) console.log(result.receipt.rollback);
|
|
131
|
+
* ```
|
|
132
|
+
*/
|
|
133
|
+
export declare function applyProjectRegistryRepair(opts?: ProjectRegistryScanOptions): Promise<NexusRegistryIntegrityReport>;
|
|
134
|
+
/**
|
|
135
|
+
* Restore the rows an applied repair changed. Refused when the receipt is
|
|
136
|
+
* unknown, was already rolled back, or when any row in its scope changed
|
|
137
|
+
* since the repair (the current rows must equal the receipt's after image) —
|
|
138
|
+
* a later edit is never overwritten. The rollback writes its own receipt.
|
|
139
|
+
*
|
|
140
|
+
* @param receiptId - `receiptId` from {@link applyProjectRegistryRepair}.
|
|
141
|
+
* @param opts - Registry home.
|
|
142
|
+
* @returns Rows restored per table and the rollback's own receipt id.
|
|
143
|
+
* @throws RegistryRepairError (`E_NOT_FOUND`, `E_ROLLBACK_CONFLICT`).
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```ts
|
|
147
|
+
* await rollbackProjectRegistryRepair(receipt.receiptId);
|
|
148
|
+
* ```
|
|
149
|
+
*/
|
|
150
|
+
export declare function rollbackProjectRegistryRepair(receiptId: string, opts?: Pick<ProjectRegistryScanOptions, 'cleoHome'>): Promise<NexusRegistryRollbackResult>;
|
|
151
|
+
/**
|
|
152
|
+
* For each id, the paths on this device other than `exclude` that provably
|
|
153
|
+
* hold it now: recorded locations of the id that still declare it, plus
|
|
154
|
+
* directories found by scanning `roots`. Used by `nexus projects clean` to
|
|
155
|
+
* refuse deleting a row whose project merely moved (T12471).
|
|
156
|
+
*
|
|
157
|
+
* @param ids - Project ids to look for, with the registered path to exclude.
|
|
158
|
+
* @param opts - Scan roots and budgets; roots default to the parents of the given paths.
|
|
159
|
+
* @returns Map from id to the paths that declare it (ids found nowhere are absent).
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* ```ts
|
|
163
|
+
* const found = await locateProjectsElsewhere([{ projectId, projectPath }]);
|
|
164
|
+
* ```
|
|
165
|
+
*/
|
|
166
|
+
export declare function locateProjectsElsewhere(ids: ReadonlyArray<{
|
|
167
|
+
projectId: string;
|
|
168
|
+
projectPath: string;
|
|
169
|
+
}>, opts?: ProjectRegistryScanOptions): Promise<Map<string, string[]>>;
|
|
170
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/doctor/projects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAOH,OAAO,KAAK,EAIV,4BAA4B,EAG5B,2BAA2B,EAE5B,MAAM,qBAAqB,CAAC;AAiE7B,2CAA2C;AAC3C,MAAM,WAAW,0BAA0B;IACzC,mFAAmF;IACnF,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA4DD,mEAAmE;AACnE,qBAAa,mBAAoB,SAAQ,KAAK;IAS1C,QAAQ,CAAC,IAAI,EAAE,aAAa,GAAG,qBAAqB;IARtD,gBAAgB;IAChB,SAAkB,IAAI,yBAAyB;IAE/C;;;OAGG;gBAEQ,IAAI,EAAE,aAAa,GAAG,qBAAqB,EACpD,OAAO,EAAE,MAAM;CAIlB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEjF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB,GAAG,OAAO,CAGvF;AA8DD;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CASjD;AA8gBD;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,GAAE,0BAA+B,GACpC,OAAO,CAAC,4BAA4B,CAAC,CAEvC;AAoMD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,GAAE,0BAA+B,GACpC,OAAO,CAAC,4BAA4B,CAAC,CAuIvC;AAiBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,6BAA6B,CACjD,SAAS,EAAE,MAAM,EACjB,IAAI,GAAE,IAAI,CAAC,0BAA0B,EAAE,UAAU,CAAM,GACtD,OAAO,CAAC,2BAA2B,CAAC,CAiEtC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,aAAa,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,EAC9D,IAAI,GAAE,0BAA+B,GACpC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAwDhC"}
|