@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
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `~/.cleo` link audit and repair — the keystone of global protocol delivery.
|
|
3
|
+
*
|
|
4
|
+
* The global hub `~/.agents/AGENTS.md` references
|
|
5
|
+
* `@~/.cleo/templates/CLEO-INJECTION.md`. That path is only real when
|
|
6
|
+
* `~/.cleo` links to the OS data directory (`getCleoHome()`): `~/.local/share/cleo`
|
|
7
|
+
* on Linux, `~/Library/Application Support/cleo` on macOS,
|
|
8
|
+
* `%LOCALAPPDATA%\cleo\Data` on Windows. A link carried between machines by
|
|
9
|
+
* dotfiles (a macOS `~/.cleo` pointing at `/home/<user>/.local/share/cleo`)
|
|
10
|
+
* dangles, and every harness loading the hub silently receives NO protocol —
|
|
11
|
+
* no error, just an unresolved reference (T12596).
|
|
12
|
+
*
|
|
13
|
+
* `existsSync` follows links, so a dangling link reads as ABSENT; creating a
|
|
14
|
+
* link over it then fails with `EEXIST`. Everything here classifies with
|
|
15
|
+
* `lstat` first for that reason.
|
|
16
|
+
*
|
|
17
|
+
* @task T12596
|
|
18
|
+
*/
|
|
19
|
+
import { randomUUID } from 'node:crypto';
|
|
20
|
+
import { appendFileSync, existsSync, lstatSync, mkdirSync, readlinkSync, realpathSync, } from 'node:fs';
|
|
21
|
+
import { rename, symlink, unlink } from 'node:fs/promises';
|
|
22
|
+
import { tmpdir } from 'node:os';
|
|
23
|
+
import { basename, dirname, join, normalize, resolve, sep } from 'node:path';
|
|
24
|
+
import { resolveLegacyCleoDir } from '@cleocode/paths';
|
|
25
|
+
import { getCleoHome } from '../paths.js';
|
|
26
|
+
/** The reference the global hub writes; identical on every OS. */
|
|
27
|
+
export const CANONICAL_HUB_TEMPLATE_REF = '@~/.cleo/templates/CLEO-INJECTION.md';
|
|
28
|
+
/** Thrown when creating the `~/.cleo` link fails; the previous entry has been restored. */
|
|
29
|
+
export class CleoLinkRepairError extends Error {
|
|
30
|
+
receipt;
|
|
31
|
+
/** Stable error code. */
|
|
32
|
+
code = 'E_CLEO_LINK_REPAIR_FAILED';
|
|
33
|
+
/**
|
|
34
|
+
* @param message - What failed.
|
|
35
|
+
* @param receipt - The `rolled-back` receipt (also appended to the log).
|
|
36
|
+
*/
|
|
37
|
+
constructor(message, receipt) {
|
|
38
|
+
super(message);
|
|
39
|
+
this.receipt = receipt;
|
|
40
|
+
this.name = 'CleoLinkRepairError';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Repair command printed in remedies and warnings. */
|
|
44
|
+
export const CLEO_LINK_REPAIR_COMMAND = 'cleo doctor global-delivery --repair';
|
|
45
|
+
function sameTarget(a, b) {
|
|
46
|
+
return normalize(a.replace(/^\\\\\?\\/, '')) === normalize(b);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* True when mutating `linkPath` to point at `target` would bind a real,
|
|
50
|
+
* non-temporary `~/.cleo` to a temporary directory — the shape of a test run
|
|
51
|
+
* that overrides `CLEO_HOME` without overriding `HOME`. Refused so a test can
|
|
52
|
+
* never repoint the developer's own `~/.cleo` at a scratch directory.
|
|
53
|
+
*/
|
|
54
|
+
export function wouldBindRealHomeToTemp(linkPath, target) {
|
|
55
|
+
const roots = [...new Set([tmpdir(), '/tmp', '/private/tmp'].map(realPathOf))];
|
|
56
|
+
const inTmp = (p) => {
|
|
57
|
+
const real = realPathOf(p);
|
|
58
|
+
return roots.some((root) => real === root || real.startsWith(root + sep));
|
|
59
|
+
};
|
|
60
|
+
return inTmp(target) && !inTmp(linkPath);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* `realpath` of `p`, or of its nearest existing ancestor with the missing tail
|
|
64
|
+
* re-appended. Paths being repaired often do not exist yet, and a prefix match
|
|
65
|
+
* on the unresolved form misses `/tmp` → `/private/tmp` and
|
|
66
|
+
* `os.tmpdir()` → `/private/var/folders/…` on macOS.
|
|
67
|
+
*/
|
|
68
|
+
function realPathOf(p) {
|
|
69
|
+
let current = resolve(p);
|
|
70
|
+
const tail = [];
|
|
71
|
+
for (;;) {
|
|
72
|
+
try {
|
|
73
|
+
return join(realpathSync(current), ...tail.reverse());
|
|
74
|
+
}
|
|
75
|
+
catch {
|
|
76
|
+
const parent = dirname(current);
|
|
77
|
+
if (parent === current)
|
|
78
|
+
return resolve(p);
|
|
79
|
+
tail.push(basename(current));
|
|
80
|
+
current = parent;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Classify `~/.cleo` without modifying anything.
|
|
86
|
+
*
|
|
87
|
+
* @param opts - Path overrides (tests).
|
|
88
|
+
* @returns The audit; `remedy` names the exact repair command when one applies.
|
|
89
|
+
* @task T12596
|
|
90
|
+
*/
|
|
91
|
+
export function auditCleoLink(opts = {}) {
|
|
92
|
+
const path = opts.path ?? resolveLegacyCleoDir();
|
|
93
|
+
const canonicalTarget = opts.canonicalTarget ?? getCleoHome();
|
|
94
|
+
const hubReferenceResolves = existsSync(join(path, 'templates', 'CLEO-INJECTION.md'));
|
|
95
|
+
const result = (state, target, repairable) => ({
|
|
96
|
+
path,
|
|
97
|
+
canonicalTarget,
|
|
98
|
+
state,
|
|
99
|
+
target,
|
|
100
|
+
hubReferenceResolves,
|
|
101
|
+
repairable,
|
|
102
|
+
remedy: state === 'canonical' || !repairable ? null : CLEO_LINK_REPAIR_COMMAND,
|
|
103
|
+
});
|
|
104
|
+
// CLEO_HOME set to ~/.cleo itself: the data dir IS the reference path.
|
|
105
|
+
if (sameTarget(path, canonicalTarget))
|
|
106
|
+
return result('canonical', null, false);
|
|
107
|
+
let stat;
|
|
108
|
+
try {
|
|
109
|
+
stat = lstatSync(path);
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
return result('absent', null, true);
|
|
113
|
+
}
|
|
114
|
+
if (stat.isSymbolicLink()) {
|
|
115
|
+
const target = readlinkSync(path);
|
|
116
|
+
const absolute = resolve(dirname(path), target);
|
|
117
|
+
if (sameTarget(target, canonicalTarget) || sameTarget(absolute, canonicalTarget)) {
|
|
118
|
+
return result('canonical', target, false);
|
|
119
|
+
}
|
|
120
|
+
return result(existsSync(absolute) ? 'foreign' : 'dangling', target, true);
|
|
121
|
+
}
|
|
122
|
+
if (stat.isDirectory())
|
|
123
|
+
return result('directory', null, true);
|
|
124
|
+
return result('other', null, false);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Bring `~/.cleo` to the canonical link and record a receipt.
|
|
128
|
+
*
|
|
129
|
+
* - `absent` → create the link.
|
|
130
|
+
* - `dangling` → replace the link (it reaches nothing, so nothing is lost;
|
|
131
|
+
* the old target is kept in the receipt).
|
|
132
|
+
* - `foreign` / `directory` → move the entry to `~/.cleo.preserved-<ts>` (a
|
|
133
|
+
* foreign link stays a link, keeping its target), then create the link.
|
|
134
|
+
* - `other`, or a real `~/.cleo` whose target would be a temp dir → refused.
|
|
135
|
+
*
|
|
136
|
+
* Receipts are appended to `<cleoHome>/audit/cleo-link-repairs.jsonl`.
|
|
137
|
+
*
|
|
138
|
+
* @param opts - `dryRun` reports the planned action without touching disk;
|
|
139
|
+
* `states` limits which states may be repaired (bootstrap passes only the
|
|
140
|
+
* lossless ones: `absent`, `dangling`).
|
|
141
|
+
* @returns The final audit plus the receipt.
|
|
142
|
+
* @task T12596
|
|
143
|
+
*/
|
|
144
|
+
export async function repairCleoLink(opts = {}) {
|
|
145
|
+
const before = auditCleoLink(opts);
|
|
146
|
+
const at = new Date().toISOString();
|
|
147
|
+
const receipt = {
|
|
148
|
+
receiptId: randomUUID(),
|
|
149
|
+
at,
|
|
150
|
+
action: 'none',
|
|
151
|
+
before: { state: before.state, target: before.target },
|
|
152
|
+
after: { state: before.state, target: before.target },
|
|
153
|
+
preservedAt: null,
|
|
154
|
+
reason: null,
|
|
155
|
+
receiptLog: null,
|
|
156
|
+
phase: 'planned',
|
|
157
|
+
};
|
|
158
|
+
const allowed = opts.states ?? ['absent', 'dangling', 'foreign', 'directory'];
|
|
159
|
+
if (before.state === 'canonical')
|
|
160
|
+
return { audit: before, receipt };
|
|
161
|
+
if (!before.repairable || !allowed.includes(before.state)) {
|
|
162
|
+
receipt.action = 'refused';
|
|
163
|
+
receipt.reason = before.repairable
|
|
164
|
+
? `state "${before.state}" is not repaired automatically; run: ${CLEO_LINK_REPAIR_COMMAND}`
|
|
165
|
+
: `~/.cleo is a ${before.state} entry; move it aside manually`;
|
|
166
|
+
return { audit: before, receipt };
|
|
167
|
+
}
|
|
168
|
+
if (wouldBindRealHomeToTemp(before.path, before.canonicalTarget)) {
|
|
169
|
+
receipt.action = 'refused';
|
|
170
|
+
receipt.reason = `refusing to link ${before.path} to temporary directory ${before.canonicalTarget}`;
|
|
171
|
+
return { audit: before, receipt };
|
|
172
|
+
}
|
|
173
|
+
receipt.action = before.state === 'absent' ? 'created' : 'relinked';
|
|
174
|
+
if (before.state === 'foreign' || before.state === 'directory') {
|
|
175
|
+
receipt.preservedAt = `${before.path}.preserved-${at.replace(/[:.]/g, '-')}`;
|
|
176
|
+
}
|
|
177
|
+
if (opts.dryRun === true) {
|
|
178
|
+
receipt.after = { state: 'canonical', target: before.canonicalTarget };
|
|
179
|
+
return { audit: before, receipt };
|
|
180
|
+
}
|
|
181
|
+
mkdirSync(before.canonicalTarget, { recursive: true });
|
|
182
|
+
const logDir = join(before.canonicalTarget, 'audit');
|
|
183
|
+
mkdirSync(logDir, { recursive: true });
|
|
184
|
+
receipt.receiptLog = join(logDir, 'cleo-link-repairs.jsonl');
|
|
185
|
+
const log = (phase) => {
|
|
186
|
+
receipt.phase = phase;
|
|
187
|
+
appendFileSync(receipt.receiptLog, `${JSON.stringify(receipt)}\n`, 'utf8');
|
|
188
|
+
};
|
|
189
|
+
// Intent first: if anything below dies, the log still says where the old
|
|
190
|
+
// entry is (preservedAt) and what it pointed at (before.target).
|
|
191
|
+
log('intent');
|
|
192
|
+
let unlinkedDangling = false;
|
|
193
|
+
let preserved = false;
|
|
194
|
+
try {
|
|
195
|
+
if (before.state === 'dangling') {
|
|
196
|
+
await unlink(before.path);
|
|
197
|
+
unlinkedDangling = true;
|
|
198
|
+
}
|
|
199
|
+
if (receipt.preservedAt) {
|
|
200
|
+
await rename(before.path, receipt.preservedAt);
|
|
201
|
+
preserved = true;
|
|
202
|
+
}
|
|
203
|
+
const linkType = process.platform === 'win32' ? 'junction' : 'dir';
|
|
204
|
+
await symlink(before.canonicalTarget, before.path, linkType);
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
// Roll back: put the previous entry exactly where it was.
|
|
208
|
+
if (preserved && receipt.preservedAt)
|
|
209
|
+
await rename(receipt.preservedAt, before.path);
|
|
210
|
+
if (unlinkedDangling && before.target !== null)
|
|
211
|
+
await symlink(before.target, before.path);
|
|
212
|
+
receipt.after = { state: before.state, target: before.target };
|
|
213
|
+
receipt.reason = err instanceof Error ? err.message : String(err);
|
|
214
|
+
log('rolled-back');
|
|
215
|
+
throw new CleoLinkRepairError(`Could not link ${before.path} → ${before.canonicalTarget}: ${receipt.reason}. ` +
|
|
216
|
+
'The previous entry was restored.', receipt);
|
|
217
|
+
}
|
|
218
|
+
const after = auditCleoLink(opts);
|
|
219
|
+
receipt.after = { state: after.state, target: after.target };
|
|
220
|
+
log('completed');
|
|
221
|
+
return { audit: after, receipt };
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Content for the global hub's CAAMP block.
|
|
225
|
+
*
|
|
226
|
+
* Normally the one-line canonical reference. When `~/.cleo/templates` does not
|
|
227
|
+
* resolve (a link the bootstrap could not repair), a reference would deliver
|
|
228
|
+
* nothing — so the protocol text is embedded instead, with a marker naming
|
|
229
|
+
* the repair. Once the link is repaired the next bootstrap writes the
|
|
230
|
+
* reference again.
|
|
231
|
+
*
|
|
232
|
+
* @param templateContent - Installed `CLEO-INJECTION.md` text (embedded on fallback).
|
|
233
|
+
* @param opts - Path overrides (tests).
|
|
234
|
+
* @returns The block content and which mode was chosen.
|
|
235
|
+
* @task T12596
|
|
236
|
+
*/
|
|
237
|
+
export function resolveGlobalHubContent(templateContent, opts = {}) {
|
|
238
|
+
const audit = auditCleoLink(opts);
|
|
239
|
+
if (audit.hubReferenceResolves || templateContent === null) {
|
|
240
|
+
return { content: CANONICAL_HUB_TEMPLATE_REF, mode: 'reference', audit };
|
|
241
|
+
}
|
|
242
|
+
const note = `<!-- CLEO protocol embedded: ${CANONICAL_HUB_TEMPLATE_REF.slice(1)} does not resolve ` +
|
|
243
|
+
`(~/.cleo is ${audit.state}). Run \`${CLEO_LINK_REPAIR_COMMAND}\`. -->`;
|
|
244
|
+
return { content: `${note}\n${templateContent.trim()}`, mode: 'embedded', audit };
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=cleo-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cleo-link.js","sourceRoot":"","sources":["../../src/system/cleo-link.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/system/dependencies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACf,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/system/dependencies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,gBAAgB,EAChB,cAAc,EACf,MAAM,qBAAqB,CAAC;AA2X7B;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAyClF;AAED;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,gBAAgB,CAAC,CA8BtE;AAGD,YAAY,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -17,8 +17,7 @@ import { execFileSync } from 'node:child_process';
|
|
|
17
17
|
import { createRequire } from 'node:module';
|
|
18
18
|
import { dirname } from 'node:path';
|
|
19
19
|
import { fileURLToPath } from 'node:url';
|
|
20
|
-
import { evaluateNodeVersion } from '@cleocode/paths';
|
|
21
|
-
import { PLATFORM } from '../platform.js';
|
|
20
|
+
import { evaluateNodeVersion, findOnPath } from '@cleocode/paths';
|
|
22
21
|
/** ESM-safe require function for loading native addons. */
|
|
23
22
|
const _require = createRequire(import.meta.url);
|
|
24
23
|
/** Directory of this compiled file (packages/core/dist/system/). */
|
|
@@ -49,12 +48,10 @@ function tryExec(cmd, args, timeoutMs = 3000) {
|
|
|
49
48
|
/**
|
|
50
49
|
* Resolve the absolute path of a command on PATH, or `null` if absent.
|
|
51
50
|
*
|
|
52
|
-
*
|
|
53
|
-
* in `platform.ts`.
|
|
51
|
+
* Delegates to the shared PATH/PATHEXT-aware {@link findOnPath} (T12605).
|
|
54
52
|
*/
|
|
55
53
|
function which(cmd) {
|
|
56
|
-
|
|
57
|
-
return tryExec(tool, [cmd]);
|
|
54
|
+
return findOnPath(cmd);
|
|
58
55
|
}
|
|
59
56
|
// ============================================================================
|
|
60
57
|
// Dependency registry — static specifications
|
|
@@ -112,9 +109,9 @@ const DEPENDENCY_SPECS = [
|
|
|
112
109
|
{
|
|
113
110
|
name: 'cant-napi',
|
|
114
111
|
category: 'feature',
|
|
115
|
-
description: '
|
|
112
|
+
description: 'CANT parser (Rust/napi-rs) — native binary per OS/CPU with an automatic WebAssembly (WASI) fallback, bundled in @cleocode/cant.',
|
|
116
113
|
documentationUrl: 'https://github.com/kryptobaseddev/cleocode',
|
|
117
|
-
installCommand: '
|
|
114
|
+
installCommand: 'pnpm --filter @cleocode/cant build:napi',
|
|
118
115
|
},
|
|
119
116
|
{
|
|
120
117
|
name: 'lafs-napi',
|
|
@@ -277,49 +274,37 @@ function checkSimpleTool(name, category, errorMsg, fixHint) {
|
|
|
277
274
|
};
|
|
278
275
|
}
|
|
279
276
|
/**
|
|
280
|
-
* Check cant-napi
|
|
277
|
+
* Check the CANT parser addon (cant-napi) availability.
|
|
281
278
|
*
|
|
282
|
-
*
|
|
283
|
-
* `
|
|
284
|
-
*
|
|
285
|
-
*
|
|
286
|
-
*
|
|
287
|
-
* 1. `packages/cant/napi/cant.linux-x64-gnu.node` (installed binary)
|
|
288
|
-
* 2. `crates/cant-napi/index.cjs` (dev build output)
|
|
279
|
+
* Loads the napi-rs generated loader that `@cleocode/cant` ships as
|
|
280
|
+
* `napi/index.cjs`, without importing the cant package (which would create a
|
|
281
|
+
* circular dep: core → cant → core). That loader prefers a native binary for
|
|
282
|
+
* this OS/CPU and falls back to the bundled WebAssembly (WASI) build, so the
|
|
283
|
+
* check reports WHICH backend loaded in `version` (T12382), not just a boolean.
|
|
289
284
|
*/
|
|
290
285
|
function checkCantNapi() {
|
|
291
|
-
let
|
|
286
|
+
let backend = null;
|
|
287
|
+
let loadError = '';
|
|
292
288
|
try {
|
|
293
|
-
// From packages/core/dist/system/
|
|
294
|
-
// ../../../cant/napi/
|
|
295
|
-
const
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
_require(binary);
|
|
299
|
-
available = true;
|
|
289
|
+
// From packages/core/dist/system/ (or node_modules/@cleocode/core/dist/system/)
|
|
290
|
+
// the cant package's generated loader is ../../../cant/napi/index.cjs.
|
|
291
|
+
const loaderPath = _require.resolve('../../../cant/napi/index.cjs', { paths: [_dirname] });
|
|
292
|
+
const binding = _require(loaderPath);
|
|
293
|
+
backend = typeof binding.cantBackend === 'function' ? binding.cantBackend() : 'native';
|
|
300
294
|
}
|
|
301
|
-
catch {
|
|
302
|
-
|
|
303
|
-
const fallback = _require.resolve('../../../../crates/cant-napi/index.cjs', {
|
|
304
|
-
paths: [_dirname],
|
|
305
|
-
});
|
|
306
|
-
_require(fallback);
|
|
307
|
-
available = true;
|
|
308
|
-
}
|
|
309
|
-
catch {
|
|
310
|
-
available = false;
|
|
311
|
-
}
|
|
295
|
+
catch (err) {
|
|
296
|
+
loadError = err instanceof Error ? err.message : String(err);
|
|
312
297
|
}
|
|
313
298
|
return {
|
|
314
299
|
name: 'cant-napi',
|
|
315
300
|
category: 'feature',
|
|
316
|
-
installed:
|
|
317
|
-
healthy: true, // feature:
|
|
318
|
-
...(
|
|
319
|
-
? {}
|
|
301
|
+
installed: backend !== null,
|
|
302
|
+
healthy: true, // feature: a missing addon disables .cant parsing, nothing else
|
|
303
|
+
...(backend !== null
|
|
304
|
+
? { version: backend }
|
|
320
305
|
: {
|
|
321
|
-
error:
|
|
322
|
-
suggestedFix: '
|
|
306
|
+
error: `CANT parser addon not loaded (no native binary and no WebAssembly fallback): ${loadError}`,
|
|
307
|
+
suggestedFix: 'Reinstall @cleocode/cant; in a source checkout run: pnpm --filter @cleocode/cant build:napi',
|
|
323
308
|
}),
|
|
324
309
|
};
|
|
325
310
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/system/dependencies.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAOzC,OAAO,EAAE,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/system/dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global delivery audit/repair — does every harness on this machine actually
|
|
3
|
+
* load CLEO? One surface for the three things that silently break it:
|
|
4
|
+
*
|
|
5
|
+
* 1. `~/.cleo` — must link to the platform data dir ({@link auditCleoLink}).
|
|
6
|
+
* 2. The global hub `~/.agents/AGENTS.md` — its reference must resolve, or it
|
|
7
|
+
* must carry the protocol embedded.
|
|
8
|
+
* 3. Skill installs in every harness skills dir — each CLEO skill entry must
|
|
9
|
+
* resolve. Links written through `~/.cleo/skills/<name>` (the pre-T12598
|
|
10
|
+
* install target) break all at once when `~/.cleo` dangles: measured
|
|
11
|
+
* 2026-09-28 on macOS, 96 dangling `ct-*` links across six harness dirs.
|
|
12
|
+
*
|
|
13
|
+
* Repairs relink skill entries to the physical `<cleoHome>/skills/<name>`
|
|
14
|
+
* (symlink, verified; copy when a link cannot be made or does not resolve)
|
|
15
|
+
* and append one receipt per run to `<cleoHome>/audit/global-delivery.jsonl`.
|
|
16
|
+
*
|
|
17
|
+
* @task T12596
|
|
18
|
+
* @task T12598
|
|
19
|
+
*/
|
|
20
|
+
import * as path from 'node:path';
|
|
21
|
+
import { type CleoLinkAudit, type CleoLinkOptions, type CleoLinkRepairReceipt } from './cleo-link.js';
|
|
22
|
+
/** Repair command printed in remedies. */
|
|
23
|
+
export declare const GLOBAL_DELIVERY_REPAIR_COMMAND = "cleo doctor global-delivery --repair";
|
|
24
|
+
/**
|
|
25
|
+
* Skill dirs scanned in addition to the provider registry, relative to the
|
|
26
|
+
* home directory, so their stale links are reported and repaired rather than
|
|
27
|
+
* left dangling forever:
|
|
28
|
+
* - `.kimi-code/skills` — written by an older release; the registry no
|
|
29
|
+
* longer lists it.
|
|
30
|
+
* - `.config/opencode/skills` — the registry resolves OpenCode's dir through
|
|
31
|
+
* `XDG_CONFIG_HOME`, so when that is set elsewhere (or the registry entry
|
|
32
|
+
* changes) the home-relative dir that older installs populated would be
|
|
33
|
+
* missed. Measured on macOS 2026-09-28: 16 `ct-*` links there, all routed
|
|
34
|
+
* through `~/.cleo`.
|
|
35
|
+
*/
|
|
36
|
+
export declare const LEGACY_HARNESS_SKILL_DIRS: readonly string[];
|
|
37
|
+
/**
|
|
38
|
+
* State of one harness skill entry:
|
|
39
|
+
* - `ok` — resolves directly to the canonical skill (or is a real copy).
|
|
40
|
+
* - `dangling` — a link that resolves to nothing; repairable when the
|
|
41
|
+
* canonical skill exists.
|
|
42
|
+
* - `legacy-route` — resolves today but only THROUGH `~/.cleo`, so it breaks
|
|
43
|
+
* whenever that link does; relinked to the physical path on repair.
|
|
44
|
+
* - `orphan` — dangling, and no canonical skill of that name exists.
|
|
45
|
+
*/
|
|
46
|
+
export type SkillInstallState = 'ok' | 'dangling' | 'legacy-route' | 'orphan';
|
|
47
|
+
/** One CLEO-managed entry in a harness skills directory. */
|
|
48
|
+
export interface SkillInstallEntry {
|
|
49
|
+
/** Harness skills directory. */
|
|
50
|
+
dir: string;
|
|
51
|
+
/** Entry name (skill name). */
|
|
52
|
+
name: string;
|
|
53
|
+
/** Absolute entry path. */
|
|
54
|
+
path: string;
|
|
55
|
+
/** Link target as written, or null for a real directory. */
|
|
56
|
+
target: string | null;
|
|
57
|
+
/** Classified state. */
|
|
58
|
+
state: SkillInstallState;
|
|
59
|
+
}
|
|
60
|
+
/** Hub state. */
|
|
61
|
+
export interface HubAudit {
|
|
62
|
+
/** `~/.agents/AGENTS.md` path. */
|
|
63
|
+
path: string;
|
|
64
|
+
/**
|
|
65
|
+
* - `reference` — carries the canonical reference and it resolves.
|
|
66
|
+
* - `embedded` — carries the protocol text inline (T12596 fallback).
|
|
67
|
+
* - `unresolved` — carries the reference but it resolves to nothing.
|
|
68
|
+
* - `missing` — no hub file, or no CLEO reference in it.
|
|
69
|
+
*/
|
|
70
|
+
state: 'reference' | 'embedded' | 'unresolved' | 'missing';
|
|
71
|
+
}
|
|
72
|
+
/** Full audit. */
|
|
73
|
+
export interface GlobalDeliveryAudit {
|
|
74
|
+
/** `~/.cleo` link state. */
|
|
75
|
+
link: CleoLinkAudit;
|
|
76
|
+
/** Hub state. */
|
|
77
|
+
hub: HubAudit;
|
|
78
|
+
/** Canonical skills root the entries should resolve to. */
|
|
79
|
+
skillsRoot: string;
|
|
80
|
+
/** Every CLEO-managed skill entry found. */
|
|
81
|
+
skills: SkillInstallEntry[];
|
|
82
|
+
/** Per-state counts over {@link GlobalDeliveryAudit.skills}. */
|
|
83
|
+
skillCounts: Record<SkillInstallState, number>;
|
|
84
|
+
/** True when the link, hub and every skill entry resolve. */
|
|
85
|
+
healthy: boolean;
|
|
86
|
+
/** Exact repair command, or null when healthy. */
|
|
87
|
+
remedy: string | null;
|
|
88
|
+
}
|
|
89
|
+
/** Per-entry repair outcome recorded in the receipt. */
|
|
90
|
+
export interface SkillRepairOutcome {
|
|
91
|
+
/** Entry path. */
|
|
92
|
+
path: string;
|
|
93
|
+
/** State before. */
|
|
94
|
+
before: SkillInstallState;
|
|
95
|
+
/** Previous link target. */
|
|
96
|
+
previousTarget: string | null;
|
|
97
|
+
/** What was written: a verified symlink, a copy, or nothing. */
|
|
98
|
+
action: 'symlink' | 'copy' | 'skipped';
|
|
99
|
+
/** Why the entry was skipped, when it was. */
|
|
100
|
+
reason: string | null;
|
|
101
|
+
}
|
|
102
|
+
/** Receipt for one {@link repairGlobalDelivery} run. */
|
|
103
|
+
export interface GlobalDeliveryReceipt {
|
|
104
|
+
/** Unique receipt id. */
|
|
105
|
+
receiptId: string;
|
|
106
|
+
/** ISO timestamp. */
|
|
107
|
+
at: string;
|
|
108
|
+
/** Dry run: nothing was written. */
|
|
109
|
+
dryRun: boolean;
|
|
110
|
+
/**
|
|
111
|
+
* `intent` is appended BEFORE the first skill entry changes (it carries
|
|
112
|
+
* {@link GlobalDeliveryReceipt.planned}); the run then appends `completed`
|
|
113
|
+
* or `failed`. `planned` receipts (dry run) are returned, never written.
|
|
114
|
+
*/
|
|
115
|
+
phase: 'planned' | 'intent' | 'completed' | 'failed';
|
|
116
|
+
/** Every entry the run will change, with its previous link target. */
|
|
117
|
+
planned: Array<{
|
|
118
|
+
path: string;
|
|
119
|
+
previousTarget: string | null;
|
|
120
|
+
state: SkillInstallState;
|
|
121
|
+
}>;
|
|
122
|
+
/** The error that stopped the run, when `phase === 'failed'`. */
|
|
123
|
+
error: string | null;
|
|
124
|
+
/** The `~/.cleo` link repair receipt. */
|
|
125
|
+
link: CleoLinkRepairReceipt;
|
|
126
|
+
/** Skill entry outcomes. */
|
|
127
|
+
skills: SkillRepairOutcome[];
|
|
128
|
+
/** JSONL file the receipt was appended to, or null on a dry run. */
|
|
129
|
+
receiptLog: string | null;
|
|
130
|
+
}
|
|
131
|
+
/** Injection points (tests). */
|
|
132
|
+
export interface GlobalDeliveryOptions extends CleoLinkOptions {
|
|
133
|
+
/** Home directory. Defaults to `homedir()`. */
|
|
134
|
+
home?: string;
|
|
135
|
+
/** Hub path. Defaults to `<agentsHome>/AGENTS.md`. */
|
|
136
|
+
hubPath?: string;
|
|
137
|
+
/** Canonical skills root. Defaults to {@link resolveSkillsRoot}. */
|
|
138
|
+
skillsRoot?: string;
|
|
139
|
+
/** Harness skill dirs. Defaults to every provider's global dirs + legacy dirs. */
|
|
140
|
+
skillDirs?: string[];
|
|
141
|
+
/** Receipt log dir. Defaults to `<cleoHome>/audit`. */
|
|
142
|
+
auditDir?: string;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Every harness skills directory the provider registry knows (global scope),
|
|
146
|
+
* plus {@link LEGACY_HARNESS_SKILL_DIRS}. Only directories that exist.
|
|
147
|
+
*
|
|
148
|
+
* @param home - Home directory.
|
|
149
|
+
* @returns Unique absolute directories.
|
|
150
|
+
*/
|
|
151
|
+
export declare function discoverHarnessSkillDirs(home?: string): Promise<string[]>;
|
|
152
|
+
/** The subset of `node:path` the classifier needs (posix or win32). */
|
|
153
|
+
export type PathApi = Pick<typeof path, 'resolve' | 'sep'>;
|
|
154
|
+
/**
|
|
155
|
+
* True when a link target routes through `~/.cleo` — the pre-T12598 install
|
|
156
|
+
* target that breaks every link at once when `~/.cleo` dangles.
|
|
157
|
+
*
|
|
158
|
+
* Pure over `pathApi` so macOS, Linux and Windows path shapes can be checked
|
|
159
|
+
* on any host.
|
|
160
|
+
*
|
|
161
|
+
* @param target - Link target as written (relative or absolute).
|
|
162
|
+
* @param linkDir - Directory holding the link.
|
|
163
|
+
* @param cleoLink - Absolute `~/.cleo` path.
|
|
164
|
+
* @param pathApi - `path.posix` or `path.win32`; defaults to the host.
|
|
165
|
+
*/
|
|
166
|
+
export declare function routesThroughCleoLink(target: string, linkDir: string, cleoLink: string, pathApi?: PathApi): boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Classify every CLEO-managed entry in the given harness skill dirs.
|
|
169
|
+
*
|
|
170
|
+
* An entry is CLEO-managed when a canonical skill of the same name exists in
|
|
171
|
+
* `skillsRoot`, or when it is a link routed through `~/.cleo` or into
|
|
172
|
+
* `skillsRoot`. Links owned by other tools (e.g. `~/.claude/skills/x ->
|
|
173
|
+
* ../../.agents/skills/x`) are never reported or touched.
|
|
174
|
+
*
|
|
175
|
+
* @param dirs - Harness skills directories.
|
|
176
|
+
* @param skillsRoot - Canonical skills root.
|
|
177
|
+
* @param cleoLink - Absolute `~/.cleo` path.
|
|
178
|
+
* @returns Managed entries.
|
|
179
|
+
*/
|
|
180
|
+
export declare function auditSkillInstalls(dirs: readonly string[], skillsRoot: string, cleoLink: string): SkillInstallEntry[];
|
|
181
|
+
/**
|
|
182
|
+
* Audit `~/.cleo`, the global hub and every harness skill install.
|
|
183
|
+
*
|
|
184
|
+
* @param opts - Injection points (tests).
|
|
185
|
+
* @returns The audit, with the exact remedy when unhealthy.
|
|
186
|
+
* @task T12598
|
|
187
|
+
*/
|
|
188
|
+
export declare function auditGlobalDelivery(opts?: GlobalDeliveryOptions): Promise<GlobalDeliveryAudit>;
|
|
189
|
+
/**
|
|
190
|
+
* Repair everything {@link auditGlobalDelivery} reports: relink `~/.cleo`,
|
|
191
|
+
* then relink every `dangling` / `legacy-route` skill entry to the physical
|
|
192
|
+
* canonical path. `orphan` entries are reported, never deleted. The hub needs
|
|
193
|
+
* no rewrite once `~/.cleo` resolves; `cleo install-global` refreshes it.
|
|
194
|
+
*
|
|
195
|
+
* @param opts - `dryRun` plans without writing; plus injection points.
|
|
196
|
+
* @returns The post-repair audit and the receipt.
|
|
197
|
+
* @task T12598
|
|
198
|
+
*/
|
|
199
|
+
export declare function repairGlobalDelivery(opts?: GlobalDeliveryOptions & {
|
|
200
|
+
dryRun?: boolean;
|
|
201
|
+
}): Promise<{
|
|
202
|
+
audit: GlobalDeliveryAudit;
|
|
203
|
+
receipt: GlobalDeliveryReceipt;
|
|
204
|
+
}>;
|
|
205
|
+
//# sourceMappingURL=global-delivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-delivery.d.ts","sourceRoot":"","sources":["../../src/system/global-delivery.ts"],"names":[],"mappings":"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"}
|