@cleocode/core 2026.9.20 → 2026.9.22
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/agents/scaffold.d.ts.map +1 -1
- package/dist/agents/scaffold.js +0 -1
- package/dist/agents/scaffold.js.map +1 -1
- package/dist/bootstrap.d.ts +5 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +45 -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/dispatch/mutate-projection.d.ts.map +1 -1
- package/dist/dispatch/mutate-projection.js +5 -0
- package/dist/dispatch/mutate-projection.js.map +1 -1
- package/dist/docs/docs-update.d.ts.map +1 -1
- package/dist/docs/docs-update.js +25 -9
- package/dist/docs/docs-update.js.map +1 -1
- package/dist/docs/export-document.js +5963 -2406
- 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 +16 -1
- package/dist/doctor/knowledge.d.ts.map +1 -1
- package/dist/doctor/knowledge.js +58 -32
- 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 +36 -6
- package/dist/engine/engine-ops.d.ts.map +1 -1
- package/dist/engine/engine-ops.js +115 -14
- 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/gateway-client/generated/types.gen.d.ts +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 +8 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -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 +578 -53
- package/dist/init.js.map +1 -1
- package/dist/inject/index.d.ts.map +1 -1
- package/dist/inject/index.js +8 -3
- package/dist/inject/index.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 +11 -7
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +9 -5
- 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 +4400 -1801
- 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.js +31 -31
- 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 +38 -0
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +136 -48
- 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 +40 -5
- 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 +171 -0
- package/dist/nexus/stored-roots.d.ts.map +1 -0
- package/dist/nexus/stored-roots.js +253 -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/lifecycle-ops.d.ts.map +1 -1
- package/dist/orchestrate/lifecycle-ops.js +4 -1
- package/dist/orchestrate/lifecycle-ops.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/plan.d.ts.map +1 -1
- package/dist/orchestrate/plan.js +5 -2
- package/dist/orchestrate/plan.js.map +1 -1
- package/dist/orchestrate/query-ops.d.ts +7 -2
- package/dist/orchestrate/query-ops.d.ts.map +1 -1
- package/dist/orchestrate/query-ops.js +17 -6
- package/dist/orchestrate/query-ops.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 +157 -71
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestration/bootstrap.d.ts.map +1 -1
- package/dist/orchestration/bootstrap.js +4 -2
- package/dist/orchestration/bootstrap.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 +4 -2
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +6 -4
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/lead-rollup.d.ts +8 -5
- package/dist/orchestration/lead-rollup.d.ts.map +1 -1
- package/dist/orchestration/lead-rollup.js +32 -15
- package/dist/orchestration/lead-rollup.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/parallel.d.ts.map +1 -1
- package/dist/orchestration/parallel.js +10 -17
- package/dist/orchestration/parallel.js.map +1 -1
- 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 +16 -2
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +144 -181
- 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/orchestration/status.d.ts +8 -3
- package/dist/orchestration/status.d.ts.map +1 -1
- package/dist/orchestration/status.js +9 -6
- package/dist/orchestration/status.js.map +1 -1
- package/dist/orchestration/wave-topic.d.ts +54 -0
- package/dist/orchestration/wave-topic.d.ts.map +1 -0
- package/dist/orchestration/wave-topic.js +68 -0
- package/dist/orchestration/wave-topic.js.map +1 -0
- package/dist/orchestration/waves.d.ts +47 -8
- package/dist/orchestration/waves.d.ts.map +1 -1
- package/dist/orchestration/waves.js +152 -43
- package/dist/orchestration/waves.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/phases/index.d.ts.map +1 -1
- package/dist/phases/index.js +6 -2
- package/dist/phases/index.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 +104 -4
- package/dist/project-scope.d.ts.map +1 -1
- package/dist/project-scope.js +263 -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 +233 -0
- package/dist/release/ci-evidence.d.ts.map +1 -0
- package/dist/release/ci-evidence.js +668 -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/github-pr.d.ts +30 -0
- package/dist/release/github-pr.d.ts.map +1 -1
- package/dist/release/github-pr.js +40 -0
- package/dist/release/github-pr.js.map +1 -1
- package/dist/release/plan.d.ts.map +1 -1
- package/dist/release/plan.js +11 -7
- 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 +79 -15
- 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 +20 -3
- package/dist/security/input-sanitization.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +4409 -1810
- 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 +15 -0
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +146 -22
- 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 +23 -0
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +59 -9
- 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 +8 -5
- package/dist/sessions/drift-watchdog.js.map +1 -1
- package/dist/sessions/focus-state-store.d.ts +89 -1
- package/dist/sessions/focus-state-store.d.ts.map +1 -1
- package/dist/sessions/focus-state-store.js +97 -1
- package/dist/sessions/focus-state-store.js.map +1 -1
- package/dist/sessions/index.d.ts +2 -2
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +34 -5
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/session-drift.d.ts.map +1 -1
- package/dist/sessions/session-drift.js +4 -3
- package/dist/sessions/session-drift.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 +20 -3
- package/dist/skills/discovery.d.ts.map +1 -1
- package/dist/skills/discovery.js +41 -4
- 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/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 +14 -7
- package/dist/skills/orchestrator/startup.js.map +1 -1
- package/dist/skills/prune-bundled.d.ts +267 -0
- package/dist/skills/prune-bundled.d.ts.map +1 -0
- package/dist/skills/prune-bundled.js +536 -0
- package/dist/skills/prune-bundled.js.map +1 -0
- 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 +32 -1
- package/dist/skills/types.d.ts.map +1 -1
- package/dist/skills/types.js +17 -34
- 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 +80 -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/stats/index.d.ts.map +1 -1
- package/dist/stats/index.js +4 -2
- package/dist/stats/index.js.map +1 -1
- 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/skills-db.d.ts +17 -0
- package/dist/store/skills-db.d.ts.map +1 -1
- package/dist/store/skills-db.js +30 -0
- package/dist/store/skills-db.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 +401 -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 +73 -4
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite.d.ts +15 -1
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +75 -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 +320 -0
- package/dist/store/twin-collapse.d.ts.map +1 -0
- package/dist/store/twin-collapse.js +931 -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 +71 -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 +3 -6
- 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/inject-generate.d.ts.map +1 -1
- package/dist/system/inject-generate.js +4 -4
- package/dist/system/inject-generate.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/task-work/index.d.ts +6 -0
- package/dist/task-work/index.d.ts.map +1 -1
- package/dist/task-work/index.js +6 -3
- package/dist/task-work/index.js.map +1 -1
- 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 +218 -0
- package/dist/tasks/affected-packages.d.ts.map +1 -0
- package/dist/tasks/affected-packages.js +496 -0
- package/dist/tasks/affected-packages.js.map +1 -0
- package/dist/tasks/affected-scope.d.ts +59 -0
- package/dist/tasks/affected-scope.d.ts.map +1 -0
- package/dist/tasks/affected-scope.js +81 -0
- package/dist/tasks/affected-scope.js.map +1 -0
- package/dist/tasks/analyze.d.ts.map +1 -1
- package/dist/tasks/analyze.js +7 -2
- package/dist/tasks/analyze.js.map +1 -1
- package/dist/tasks/change-set.d.ts +175 -0
- package/dist/tasks/change-set.d.ts.map +1 -0
- package/dist/tasks/change-set.js +753 -0
- package/dist/tasks/change-set.js.map +1 -0
- package/dist/tasks/complete.d.ts +10 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +59 -5
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/component-pr.d.ts +106 -0
- package/dist/tasks/component-pr.d.ts.map +1 -0
- package/dist/tasks/component-pr.js +190 -0
- package/dist/tasks/component-pr.js.map +1 -0
- package/dist/tasks/done-plan.d.ts +123 -0
- package/dist/tasks/done-plan.d.ts.map +1 -0
- package/dist/tasks/done-plan.js +696 -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 +302 -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 +101 -1
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +278 -31
- 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/task-next.d.ts +4 -0
- package/dist/tasks/task-next.d.ts.map +1 -1
- package/dist/tasks/task-next.js +32 -28
- package/dist/tasks/task-next.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 +24 -1
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +272 -98
- package/dist/validation/engine-ops.js.map +1 -1
- package/dist/validation/validate-ops.d.ts.map +1 -1
- package/dist/validation/validate-ops.js +9 -3
- package/dist/validation/validate-ops.js.map +1 -1
- package/dist/worktree/worktree-adopt.d.ts.map +1 -1
- package/dist/worktree/worktree-adopt.js +5 -2
- package/dist/worktree/worktree-adopt.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
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Result cache for typed acceptance gates (T12621 · ADR-061).
|
|
3
|
+
*
|
|
4
|
+
* `tool:` evidence atoms have been cached since T1534; typed gates were not, so
|
|
5
|
+
* `cleo verify <id> --run` followed by the attesting `cleo verify <id> --gate …`
|
|
6
|
+
* executed a slow suite twice, and a retry after any unrelated failure executed
|
|
7
|
+
* it a third time. This module gives typed gates the same content-addressed
|
|
8
|
+
* cache, in the same directory (`.cleo/cache/evidence/`, `gate-` prefix).
|
|
9
|
+
*
|
|
10
|
+
* The key is `(gate definition hash, git HEAD, dirty-tree fingerprint, cwd,
|
|
11
|
+
* inputs digest)`. HEAD and the fingerprint come from the exact helpers the tool
|
|
12
|
+
* cache uses, so every tracked byte is unchanged on a hit. The inputs digest
|
|
13
|
+
* covers what the fingerprint cannot: the captured invocation (including its
|
|
14
|
+
* environment hash) and the bytes of every input the verifier binds — untracked
|
|
15
|
+
* harness scripts and task files included. Like the tool cache, a directory that
|
|
16
|
+
* is not a git checkout gets no caching at all rather than one answer forever
|
|
17
|
+
* (gh#1419).
|
|
18
|
+
*
|
|
19
|
+
* NOT in the key (the gh#1221 trade-off, stated rather than hidden): modules an
|
|
20
|
+
* untracked harness imports, `node_modules`, and an in-place toolchain upgrade.
|
|
21
|
+
* A reused pass is therefore always marked `source: 'cache'` on the result and
|
|
22
|
+
* on the receipt, and `evidence.allowCachedGates: false` in
|
|
23
|
+
* `.cleo/project-context.json` turns reuse off and makes completion refuse it.
|
|
24
|
+
*
|
|
25
|
+
* ## Authentication
|
|
26
|
+
*
|
|
27
|
+
* Entries are plain JSON in the project, and every key input is public, so an
|
|
28
|
+
* unauthenticated entry is a forgeable pass. Each entry therefore carries an
|
|
29
|
+
* HMAC-SHA256 under a per-machine key at `<cleoHome>/keys/evidence-cache.key`
|
|
30
|
+
* (created `0600` on first use, outside every project and worktree). An entry
|
|
31
|
+
* whose MAC does not verify is never served. This module can VERIFY an entry
|
|
32
|
+
* given the key; only the gate runner can create one, from a result it executed
|
|
33
|
+
* itself, and nothing exported from core loads the key. The key defends against
|
|
34
|
+
* hand-written, tampered and copied entries; it cannot defend against a process
|
|
35
|
+
* that reads the key file directly with the user's own privileges.
|
|
36
|
+
*
|
|
37
|
+
* Only a `pass` is ever written. A failure, an error or a timeout is not a
|
|
38
|
+
* reusable fact about the tree — it is the thing the next run exists to change.
|
|
39
|
+
* Only process-executing kinds (`test`, `command`, `lint`) are cacheable.
|
|
40
|
+
*
|
|
41
|
+
* @task T12621
|
|
42
|
+
*/
|
|
43
|
+
import { createHash, createHmac, timingSafeEqual } from 'node:crypto';
|
|
44
|
+
import { existsSync, readFileSync, realpathSync } from 'node:fs';
|
|
45
|
+
import { join, resolve } from 'node:path';
|
|
46
|
+
import { acceptanceGateResultSchema } from '@cleocode/contracts';
|
|
47
|
+
import { getCleoHome } from '../paths.js';
|
|
48
|
+
import { acItemToText } from './ac-table.js';
|
|
49
|
+
import { captureDirtyFingerprint, captureHead } from './tool-cache.js';
|
|
50
|
+
/** Schema version of an on-disk gate cache entry; bump to invalidate every entry. */
|
|
51
|
+
export const GATE_CACHE_SCHEMA_VERSION = 2;
|
|
52
|
+
/** Gate kinds whose pass can be reused for an unchanged tree. */
|
|
53
|
+
const CACHEABLE_GATE_KINDS = new Set([
|
|
54
|
+
'test',
|
|
55
|
+
'command',
|
|
56
|
+
'lint',
|
|
57
|
+
]);
|
|
58
|
+
/**
|
|
59
|
+
* Whether a gate kind's pass may be served from the cache.
|
|
60
|
+
* @param gate - Gate to classify.
|
|
61
|
+
* @returns `true` for `test`, `command` and `lint` gates.
|
|
62
|
+
* @example
|
|
63
|
+
* ```typescript
|
|
64
|
+
* isCacheableGate({ kind: 'manual', description: 'look', prompt: 'ok?' }); // false
|
|
65
|
+
* ```
|
|
66
|
+
* @task T12621
|
|
67
|
+
*/
|
|
68
|
+
export function isCacheableGate(gate) {
|
|
69
|
+
return CACHEABLE_GATE_KINDS.has(gate.kind);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Capture the repo state gate cache keys are computed against.
|
|
73
|
+
* @param projectRoot - Directory the gates execute in.
|
|
74
|
+
* @returns The state, or `null` when the directory is not a git checkout.
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const state = await captureGateCacheState('/project');
|
|
78
|
+
* ```
|
|
79
|
+
* @task T12621
|
|
80
|
+
*/
|
|
81
|
+
export async function captureGateCacheState(projectRoot) {
|
|
82
|
+
const head = await captureHead(projectRoot);
|
|
83
|
+
if (!head)
|
|
84
|
+
return null;
|
|
85
|
+
const dirtyFingerprint = await captureDirtyFingerprint(projectRoot);
|
|
86
|
+
if (!dirtyFingerprint)
|
|
87
|
+
return null;
|
|
88
|
+
let cwd;
|
|
89
|
+
try {
|
|
90
|
+
cwd = realpathSync(projectRoot);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
cwd = resolve(projectRoot);
|
|
94
|
+
}
|
|
95
|
+
return { head, dirtyFingerprint, cwd };
|
|
96
|
+
}
|
|
97
|
+
function gateHash(gate) {
|
|
98
|
+
return createHash('sha256').update(acItemToText(gate)).digest('hex');
|
|
99
|
+
}
|
|
100
|
+
function gateCacheKey(gate, state, inputsHash) {
|
|
101
|
+
return createHash('sha256')
|
|
102
|
+
.update(JSON.stringify([gateHash(gate), state.head, state.dirtyFingerprint, state.cwd, inputsHash]))
|
|
103
|
+
.digest('hex')
|
|
104
|
+
.slice(0, 32);
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Absolute path of the cache entry for a gate against a repo state.
|
|
108
|
+
* @param projectRoot - Project whose `.cleo/cache/evidence/` holds the entry.
|
|
109
|
+
* @param gate - Gate definition.
|
|
110
|
+
* @param state - Repo state from {@link captureGateCacheState}.
|
|
111
|
+
* @param inputsHash - Digest of the captured invocation and input artifacts.
|
|
112
|
+
* @returns The entry path (which may not exist).
|
|
113
|
+
* @example
|
|
114
|
+
* ```typescript
|
|
115
|
+
* const path = gateCacheEntryPath(root, gate, state, inputsHash);
|
|
116
|
+
* ```
|
|
117
|
+
* @task T12621
|
|
118
|
+
*/
|
|
119
|
+
export function gateCacheEntryPath(projectRoot, gate, state, inputsHash) {
|
|
120
|
+
return join(projectRoot, '.cleo', 'cache', 'evidence', `gate-${gateCacheKey(gate, state, inputsHash)}.json`);
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Path of the per-machine key that authenticates evidence cache entries.
|
|
124
|
+
* @returns `<cleoHome>/keys/evidence-cache.key`.
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* evidenceCacheKeyPath(); // ~/.local/share/cleo/keys/evidence-cache.key
|
|
128
|
+
* ```
|
|
129
|
+
* @task T12621
|
|
130
|
+
*/
|
|
131
|
+
export function evidenceCacheKeyPath() {
|
|
132
|
+
return join(getCleoHome(), 'keys', 'evidence-cache.key');
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Build the unsealed entry body for an observed pass.
|
|
136
|
+
* @param gate - Gate the result was observed for.
|
|
137
|
+
* @param state - Repo state captured BEFORE the gate executed.
|
|
138
|
+
* @param inputsHash - Inputs digest captured BEFORE the gate executed.
|
|
139
|
+
* @param result - The runner's observed result.
|
|
140
|
+
* @returns The body to seal, or `null` for anything but a cacheable pass.
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* const body = buildGateCacheEntryBody(gate, state, inputsHash, observed);
|
|
144
|
+
* ```
|
|
145
|
+
* @task T12621
|
|
146
|
+
*/
|
|
147
|
+
export function buildGateCacheEntryBody(gate, state, inputsHash, result) {
|
|
148
|
+
if (!isCacheableGate(gate) || result.result !== 'pass')
|
|
149
|
+
return null;
|
|
150
|
+
const { index: _index, binding: _binding, source: _source, cachedAt: _cachedAt, ...observed } = result;
|
|
151
|
+
return {
|
|
152
|
+
schemaVersion: GATE_CACHE_SCHEMA_VERSION,
|
|
153
|
+
key: gateCacheKey(gate, state, inputsHash),
|
|
154
|
+
gateHash: gateHash(gate),
|
|
155
|
+
head: state.head,
|
|
156
|
+
dirtyFingerprint: state.dirtyFingerprint,
|
|
157
|
+
cwd: state.cwd,
|
|
158
|
+
inputsHash,
|
|
159
|
+
createdAt: new Date().toISOString(),
|
|
160
|
+
result: observed,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Canonical bytes an entry's MAC covers: every body field, in a fixed order.
|
|
165
|
+
* @param body - Entry body (a `mac` field, if present, is ignored).
|
|
166
|
+
* @returns The string to MAC.
|
|
167
|
+
* @example
|
|
168
|
+
* ```typescript
|
|
169
|
+
* const payload = gateCacheEntryMacPayload(body);
|
|
170
|
+
* ```
|
|
171
|
+
* @task T12621
|
|
172
|
+
*/
|
|
173
|
+
export function gateCacheEntryMacPayload(body) {
|
|
174
|
+
return JSON.stringify([
|
|
175
|
+
body.schemaVersion,
|
|
176
|
+
body.key,
|
|
177
|
+
body.gateHash,
|
|
178
|
+
body.head,
|
|
179
|
+
body.dirtyFingerprint,
|
|
180
|
+
body.cwd,
|
|
181
|
+
body.inputsHash,
|
|
182
|
+
body.createdAt,
|
|
183
|
+
body.result,
|
|
184
|
+
]);
|
|
185
|
+
}
|
|
186
|
+
function macOf(body, key) {
|
|
187
|
+
return createHmac('sha256', key).update(gateCacheEntryMacPayload(body)).digest('hex');
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Seal an entry body with the machine key.
|
|
191
|
+
* @param body - Entry body from {@link buildGateCacheEntryBody}.
|
|
192
|
+
* @param key - Machine key; the caller is the only holder.
|
|
193
|
+
* @returns The sealed entry.
|
|
194
|
+
* @example
|
|
195
|
+
* ```typescript
|
|
196
|
+
* const entry = sealGateCacheEntry(body, key);
|
|
197
|
+
* ```
|
|
198
|
+
* @task T12621
|
|
199
|
+
*/
|
|
200
|
+
export function sealGateCacheEntry(body, key) {
|
|
201
|
+
return { ...body, mac: macOf(body, key) };
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Look a gate up in the cache and authenticate what is found.
|
|
205
|
+
* @param projectRoot - Project whose `.cleo/cache/evidence/` holds the entry.
|
|
206
|
+
* @param gate - Gate definition; any change to it changes the key.
|
|
207
|
+
* @param state - Repo state from {@link captureGateCacheState}.
|
|
208
|
+
* @param inputsHash - Digest of the captured invocation and input artifacts.
|
|
209
|
+
* @param key - Machine key the entry must be sealed under.
|
|
210
|
+
* @returns `hit` with the observation, `miss` when there is no entry, or
|
|
211
|
+
* `invalid` when an entry exists but is unauthenticated, tampered or not a pass.
|
|
212
|
+
* @example
|
|
213
|
+
* ```typescript
|
|
214
|
+
* const lookup = readGateCacheEntry(root, gate, state, inputsHash, key);
|
|
215
|
+
* ```
|
|
216
|
+
* @task T12621
|
|
217
|
+
*/
|
|
218
|
+
export function readGateCacheEntry(projectRoot, gate, state, inputsHash, key) {
|
|
219
|
+
if (!isCacheableGate(gate))
|
|
220
|
+
return { status: 'miss' };
|
|
221
|
+
const path = gateCacheEntryPath(projectRoot, gate, state, inputsHash);
|
|
222
|
+
if (!existsSync(path))
|
|
223
|
+
return { status: 'miss' };
|
|
224
|
+
let entry;
|
|
225
|
+
try {
|
|
226
|
+
entry = JSON.parse(readFileSync(path, 'utf-8'));
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
return { status: 'invalid', reason: 'entry is not readable JSON' };
|
|
230
|
+
}
|
|
231
|
+
if (entry.schemaVersion !== GATE_CACHE_SCHEMA_VERSION ||
|
|
232
|
+
entry.key !== gateCacheKey(gate, state, inputsHash) ||
|
|
233
|
+
entry.gateHash !== gateHash(gate) ||
|
|
234
|
+
entry.head !== state.head ||
|
|
235
|
+
entry.dirtyFingerprint !== state.dirtyFingerprint ||
|
|
236
|
+
entry.cwd !== state.cwd ||
|
|
237
|
+
entry.inputsHash !== inputsHash ||
|
|
238
|
+
typeof entry.createdAt !== 'string' ||
|
|
239
|
+
!entry.result ||
|
|
240
|
+
typeof entry.mac !== 'string')
|
|
241
|
+
return { status: 'invalid', reason: 'entry is unsealed or describes another gate or tree' };
|
|
242
|
+
const expected = Buffer.from(macOf(entry, key), 'hex');
|
|
243
|
+
const actual = Buffer.from(entry.mac, 'hex');
|
|
244
|
+
if (actual.length !== expected.length || !timingSafeEqual(actual, expected))
|
|
245
|
+
return { status: 'invalid', reason: 'entry MAC does not verify under this machine key' };
|
|
246
|
+
try {
|
|
247
|
+
const result = acceptanceGateResultSchema.parse({ ...entry.result, index: 0 });
|
|
248
|
+
if (result.result !== 'pass' || result.kind !== gate.kind || result.req !== gate.req)
|
|
249
|
+
return { status: 'invalid', reason: 'entry is not a pass for this gate' };
|
|
250
|
+
const { index: _index, binding: _binding, source: _source, cachedAt: _cachedAt, ...observation } = result;
|
|
251
|
+
return { status: 'hit', observation, createdAt: entry.createdAt };
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
return { status: 'invalid', reason: 'entry result is malformed' };
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Project policy: may a typed gate pass be reused from the cache?
|
|
259
|
+
*
|
|
260
|
+
* Reads `evidence.allowCachedGates` from `.cleo/project-context.json` with a
|
|
261
|
+
* bare read, like `evidence.gitRoot`. Only an explicit `false` disables reuse.
|
|
262
|
+
*
|
|
263
|
+
* @param projectRoot - CLEO store root holding `.cleo/`.
|
|
264
|
+
* @returns `false` only when the project declares `evidence.allowCachedGates: false`.
|
|
265
|
+
* @example
|
|
266
|
+
* ```typescript
|
|
267
|
+
* if (!readAllowCachedGates(root)) cache = 'off';
|
|
268
|
+
* ```
|
|
269
|
+
* @task T12621
|
|
270
|
+
*/
|
|
271
|
+
export function readAllowCachedGates(projectRoot) {
|
|
272
|
+
try {
|
|
273
|
+
const parsed = JSON.parse(readFileSync(join(projectRoot, '.cleo', 'project-context.json'), 'utf-8'));
|
|
274
|
+
if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed))
|
|
275
|
+
return true;
|
|
276
|
+
const evidence = parsed.evidence;
|
|
277
|
+
if (evidence === null || typeof evidence !== 'object' || Array.isArray(evidence))
|
|
278
|
+
return true;
|
|
279
|
+
return evidence.allowCachedGates !== false;
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
return true;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
//# sourceMappingURL=gate-result-cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-result-cache.js","sourceRoot":"","sources":["../../src/tasks/gate-result-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,8 +12,12 @@
|
|
|
12
12
|
*
|
|
13
13
|
* Design constraints:
|
|
14
14
|
* - Each gate is self-contained (no cross-gate state).
|
|
15
|
-
* - Gates run sequentially under
|
|
16
|
-
*
|
|
15
|
+
* - Gates run sequentially under ONE captured operation deadline. The caller admits it
|
|
16
|
+
* with {@link typedGateAdmissionMs}: the ADR-061 tool deadline of every executing gate
|
|
17
|
+
* plus {@link TYPED_GATE_BOOKKEEPING_MS} for the surrounding bookkeeping (T12516).
|
|
18
|
+
* - Per-gate timeouts can only tighten the captured deadline, never renew it.
|
|
19
|
+
* - Passing process gates can be served from the ADR-061 evidence cache
|
|
20
|
+
* (`options.cache`, see `gate-result-cache.ts`); failures are never cached (T12621).
|
|
17
21
|
* - Structured test-count evidence and HTTP service startup require separate capabilities.
|
|
18
22
|
* - Results are observations; this module does not persist completion authority.
|
|
19
23
|
*
|
|
@@ -22,6 +26,19 @@
|
|
|
22
26
|
*/
|
|
23
27
|
import type { AcceptanceGate, AcceptanceGateResult, AcRow, DataAccessor, Task } from '@cleocode/contracts';
|
|
24
28
|
import type { AcceptanceGateRunOptions, AcceptanceGateVerificationReceipt } from '@cleocode/contracts/acceptance-gate';
|
|
29
|
+
import type { OperationExecutionContext } from '@cleocode/contracts/jobs';
|
|
30
|
+
/**
|
|
31
|
+
* Shared budget for the bookkeeping around typed gates: task and criterion
|
|
32
|
+
* reads, input snapshots, result binding and the persisting transaction.
|
|
33
|
+
*
|
|
34
|
+
* It is the same two seconds the maintenance paths use, and it is ADDED to the
|
|
35
|
+
* tool deadlines rather than bounding them. Before T12516 it was the whole
|
|
36
|
+
* lifetime of a typed verification, so any gate whose tool ran longer than two
|
|
37
|
+
* seconds — every real test suite — stopped with `E_OPERATION_DEADLINE`.
|
|
38
|
+
*
|
|
39
|
+
* @task T12516
|
|
40
|
+
*/
|
|
41
|
+
export declare const TYPED_GATE_BOOKKEEPING_MS = 2000;
|
|
25
42
|
/**
|
|
26
43
|
* Captured gate-runner options from the canonical shared contract.
|
|
27
44
|
* @remarks Nested invocations retain their original operation authority and deadline.
|
|
@@ -31,6 +48,98 @@ import type { AcceptanceGateRunOptions, AcceptanceGateVerificationReceipt } from
|
|
|
31
48
|
* ```
|
|
32
49
|
*/
|
|
33
50
|
export type RunGatesOptions = AcceptanceGateRunOptions;
|
|
51
|
+
/**
|
|
52
|
+
* Resolve the wall-clock deadline for one gate's tool execution.
|
|
53
|
+
*
|
|
54
|
+
* Precedence: the gate's own `timeoutMs`; then the legacy blanket
|
|
55
|
+
* `CLEO_GATE_TIMEOUT_MS`; then the ADR-061 tool deadline for the gate kind,
|
|
56
|
+
* resolved by {@link resolveSpawnTimeoutMs} — `CLEO_TOOL_TIMEOUT_<KIND>`, else
|
|
57
|
+
* 1,800,000 ms for `test` and 300,000 ms for every other kind.
|
|
58
|
+
*
|
|
59
|
+
* @param gate - Gate whose tool deadline is needed.
|
|
60
|
+
* @param env - Environment to read the overrides from.
|
|
61
|
+
* @returns Deadline in milliseconds.
|
|
62
|
+
* @throws When a declared or configured deadline is not a positive safe integer.
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* resolveGateTimeoutMs({ kind: 'test', description: 'suite', command: 'npm', args: ['test'], expect: 'exit0' }); // 1_800_000
|
|
66
|
+
* ```
|
|
67
|
+
* @task T12516
|
|
68
|
+
*/
|
|
69
|
+
export declare function resolveGateTimeoutMs(gate: AcceptanceGate, env?: NodeJS.ProcessEnv): number;
|
|
70
|
+
/**
|
|
71
|
+
* Wall-clock lifetime to admit for running a set of typed gates.
|
|
72
|
+
*
|
|
73
|
+
* The sum of every tool-executing gate's ADR-061 deadline plus
|
|
74
|
+
* {@link TYPED_GATE_BOOKKEEPING_MS}. Callers that own the operation lifetime
|
|
75
|
+
* create it with this budget so the two-second shared budget covers the
|
|
76
|
+
* bookkeeping only and never bounds a tool (T12516).
|
|
77
|
+
*
|
|
78
|
+
* @param gates - Gates that will run.
|
|
79
|
+
* @param env - Environment to read deadline overrides from.
|
|
80
|
+
* @returns Budget in milliseconds, clamped to the safe-integer range.
|
|
81
|
+
* @throws When a gate deadline override is invalid (see {@link resolveGateTimeoutMs}).
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const execution = createOperationExecutionContext(identity, { budgetMs: typedGateAdmissionMs(gates) });
|
|
85
|
+
* ```
|
|
86
|
+
* @task T12516
|
|
87
|
+
*/
|
|
88
|
+
export declare function typedGateAdmissionMs(gates: readonly AcceptanceGate[], env?: NodeJS.ProcessEnv): number;
|
|
89
|
+
/**
|
|
90
|
+
* Prefix of the `errorMessage` a gate carries when `cache: 'only'` refused to
|
|
91
|
+
* execute it. The verifier matches it to refuse the whole write with
|
|
92
|
+
* `E_GATE_NOT_CACHED` instead of recording an `error` result.
|
|
93
|
+
* @task T12621
|
|
94
|
+
*/
|
|
95
|
+
export declare const GATE_NOT_CACHED_PREFIX = "--no-run:";
|
|
96
|
+
/**
|
|
97
|
+
* Prefix of the `errorMessage` a gate carries when `cache: 'only'` found an
|
|
98
|
+
* entry that failed authentication. The verifier refuses the write with
|
|
99
|
+
* `E_GATE_CACHE_INVALID`: a forged or tampered pass is never recorded.
|
|
100
|
+
* @task T12621
|
|
101
|
+
*/
|
|
102
|
+
export declare const GATE_CACHE_INVALID_PREFIX = "--no-run [invalid cache entry]:";
|
|
103
|
+
/**
|
|
104
|
+
* Compute a gate's cache inputs digest the same way the attesting verifier does.
|
|
105
|
+
* @param task - Task that owns the gate; its `files` are verifier inputs.
|
|
106
|
+
* @param gate - Gate whose invocation and inputs are captured.
|
|
107
|
+
* @param execution - Admitted lifetime whose project root scopes the capture.
|
|
108
|
+
* @param env - Environment the gate will launch with.
|
|
109
|
+
* @returns Digest to pass as `cacheInputsHash` to {@link runGates}.
|
|
110
|
+
* @example
|
|
111
|
+
* ```typescript
|
|
112
|
+
* const cacheInputsHash = await captureGateInputsHash(task, gate, execution);
|
|
113
|
+
* ```
|
|
114
|
+
* @task T12621
|
|
115
|
+
*/
|
|
116
|
+
export declare function captureGateInputsHash(task: Task, gate: AcceptanceGate, execution: OperationExecutionContext, env?: NodeJS.ProcessEnv): Promise<string>;
|
|
117
|
+
/**
|
|
118
|
+
* The tree a typed gate runs in and is fingerprinted against.
|
|
119
|
+
*
|
|
120
|
+
* `projectRoot` is the CLEO store root, which for a git worktree is the MAIN
|
|
121
|
+
* checkout (all worktrees share one `.cleo/`). Evidence tools already run in the
|
|
122
|
+
* caller's own worktree (gh#1220); typed gates ran in the store root, so from a
|
|
123
|
+
* worktree `cleo done` measured the task's code with its tools and the main
|
|
124
|
+
* checkout with its typed gates (T12625 review). The caller's git toplevel is
|
|
125
|
+
* used only when it is a linked worktree OF THIS project — any other cwd
|
|
126
|
+
* (an unrelated repo, a test harness, a declared child repo in a multi-repo
|
|
127
|
+
* root) keeps `projectRoot`, so typed-gate paths written against the CLEO root
|
|
128
|
+
* keep resolving exactly as before.
|
|
129
|
+
*
|
|
130
|
+
* Known limit (documented, accepted): "linked worktree of this project" is read
|
|
131
|
+
* from the `.git` gitlink, so a plain directory carrying a forged gitlink that
|
|
132
|
+
* points into this project's `.git/worktrees/` is treated as a worktree. That
|
|
133
|
+
* grants nothing a copy of the checkout would not: its typed results are only
|
|
134
|
+
* carried to another tree by content (tracked inputs must hash identically and
|
|
135
|
+
* the recorded HEAD must be merged there).
|
|
136
|
+
*
|
|
137
|
+
* @param projectRoot - CLEO store root (the typed gate's authority).
|
|
138
|
+
* @param cwd - Invocation directory. Defaults to `process.cwd()`.
|
|
139
|
+
* @returns The realpath of the tree typed gates execute in.
|
|
140
|
+
* @task T12625
|
|
141
|
+
*/
|
|
142
|
+
export declare function resolveTypedGateRoot(projectRoot: string, cwd?: string): string;
|
|
34
143
|
/**
|
|
35
144
|
* Execute all typed `AcceptanceGate` entries and return results.
|
|
36
145
|
*
|
|
@@ -55,6 +164,17 @@ export type RunGatesOptions = AcceptanceGateRunOptions;
|
|
|
55
164
|
* @task T781
|
|
56
165
|
*/
|
|
57
166
|
export declare function runGates(gates: AcceptanceGate[], options?: RunGatesOptions): Promise<AcceptanceGateResult[]>;
|
|
167
|
+
/**
|
|
168
|
+
* A typed result was verified in another tree of this project and cannot be
|
|
169
|
+
* accepted from the completing tree. Carries the exact re-verify command.
|
|
170
|
+
*
|
|
171
|
+
* @task T12625
|
|
172
|
+
*/
|
|
173
|
+
export declare class TypedRevalidationError extends Error {
|
|
174
|
+
/** The command that re-verifies the task's typed gates in the completing tree. */
|
|
175
|
+
readonly fix: string;
|
|
176
|
+
constructor(message: string, fix: string);
|
|
177
|
+
}
|
|
58
178
|
/**
|
|
59
179
|
* Run task requirements with their canonical AC and bounded input snapshots.
|
|
60
180
|
* @param task - Captured task, including its complete mixed acceptance array.
|
|
@@ -107,6 +227,7 @@ export declare function revalidateTaskGateResults(task: Task, criteria: readonly
|
|
|
107
227
|
* @param criteria - Normalized criteria from that same transaction.
|
|
108
228
|
* @param options - Captured original execution lifetime and project scope.
|
|
109
229
|
* @param accessor - Canonical receipt reader bound to the same project store.
|
|
230
|
+
* @param policy - Project evidence policy; `allowCachedGates: false` refuses cached passes (T12621).
|
|
110
231
|
* @returns Resolves only when every hard typed requirement has current authentic proof.
|
|
111
232
|
* @throws When typed representations, results, inputs or canonical receipts disagree.
|
|
112
233
|
* @remarks Callers retain transaction ownership and must check their execution context before
|
|
@@ -117,7 +238,9 @@ export declare function revalidateTaskGateResults(task: Task, criteria: readonly
|
|
|
117
238
|
* await validateTaskGateCompletion(task, rows, { execution }, accessor);
|
|
118
239
|
* ```
|
|
119
240
|
*/
|
|
120
|
-
export declare function validateTaskGateCompletion(task: Task, criteria: readonly AcRow[], options: RunGatesOptions, accessor: Pick<DataAccessor, 'queryAuditLog'
|
|
241
|
+
export declare function validateTaskGateCompletion(task: Task, criteria: readonly AcRow[], options: RunGatesOptions, accessor: Pick<DataAccessor, 'queryAuditLog'>, policy?: {
|
|
242
|
+
allowCachedGates?: boolean;
|
|
243
|
+
}): Promise<void>;
|
|
121
244
|
/**
|
|
122
245
|
* Filter a mixed acceptance array to only typed `AcceptanceGate` objects.
|
|
123
246
|
* Free-text strings are silently dropped with their original index preserved
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gate-runner.d.ts","sourceRoot":"","sources":["../../src/tasks/gate-runner.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"gate-runner.d.ts","sourceRoot":"","sources":["../../src/tasks/gate-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAgBH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,KAAK,EAEL,YAAY,EAMZ,IAAI,EAEL,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAIV,wBAAwB,EAExB,iCAAiC,EAClC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AA4B1E;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,OAAO,CAAC;AAkB9C;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAEvD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,cAAc,EACpB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CASR;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,cAAc,EAAE,EAChC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,CAMR;AAwBD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,cAAc,CAAC;AAElD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,oCAAoC,CAAC;AAgE3E;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,cAAc,EACpB,SAAS,EAAE,yBAAyB,EACpC,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,OAAO,CAAC,MAAM,CAAC,CAOjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,GAAG,GAAE,MAAsB,GAC1B,MAAM,CAYR;AAeD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAmIjC;AAkED;;;;;GAKG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,kFAAkF;IAClF,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBAET,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;CAKzC;AA6GD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,KAAK,EAAE,EAC1B,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAmEjC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,SAAS,oBAAoB,EAAE,EACxC,MAAM,EAAE,OAAO,GACd,iCAAiC,CAgCnC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,KAAK,EAAE,EAC1B,OAAO,EAAE,SAAS,oBAAoB,EAAE,EACxC,OAAO,EAAE,eAAe,EACxB,cAAc,UAAO,GACpB,OAAO,CAAC,IAAI,CAAC,CAoEf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,SAAS,KAAK,EAAE,EAC1B,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,CAAC,EAC7C,MAAM,GAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC1C,OAAO,CAAC,IAAI,CAAC,CAiCf;AAq2BD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,CAAC,MAAM,GAAG,cAAc,CAAC,EAAE,GACjC,KAAK,CAAC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAAC,CAQxD"}
|