@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lead-rollup.d.ts","sourceRoot":"","sources":["../../src/orchestration/lead-rollup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAKd,UAAU,EACX,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"lead-rollup.d.ts","sourceRoot":"","sources":["../../src/orchestration/lead-rollup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAKd,UAAU,EACX,MAAM,qBAAqB,CAAC;AAQ7B;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,sCAAsC;AACtC,MAAM,WAAW,uBAAuB;IACtC;;;;;OAKG;IACH,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC1C;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAgBzF;AAoBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,UAAU,CAAC,CAwIrB;AAoBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,UAAU,CAAC,CAsBrB"}
|
|
@@ -34,10 +34,12 @@
|
|
|
34
34
|
* @saga T10377
|
|
35
35
|
* @adr ADR-070
|
|
36
36
|
*/
|
|
37
|
+
import { ExitCode } from '@cleocode/contracts';
|
|
37
38
|
import { getConfigValue } from '../config/registry.js';
|
|
39
|
+
import { CleoError } from '../errors.js';
|
|
38
40
|
import { resolveOrCwd } from '../paths.js';
|
|
39
41
|
import { getTaskAccessor } from '../store/data-accessor.js';
|
|
40
|
-
import {
|
|
42
|
+
import { planEpicWaves } from './waves.js';
|
|
41
43
|
/**
|
|
42
44
|
* Resolve the operative `leadRollup.mode` from the `.cleo/config.json` cascade.
|
|
43
45
|
*
|
|
@@ -79,6 +81,19 @@ export async function resolveLeadRollupMode(projectRoot) {
|
|
|
79
81
|
}
|
|
80
82
|
return 'passive';
|
|
81
83
|
}
|
|
84
|
+
/**
|
|
85
|
+
* Refuse a wave number `cleo orchestrate waves` never prints. Roll-up counted
|
|
86
|
+
* from 0 while the waves listing counts from 1 (T12682); a 0 now fails loudly
|
|
87
|
+
* instead of silently meaning the first wave.
|
|
88
|
+
*
|
|
89
|
+
* @param waveId - Requested wave number.
|
|
90
|
+
* @throws {CleoError} When it is not an integer of at least 1.
|
|
91
|
+
*/
|
|
92
|
+
function assertWaveNumber(waveId) {
|
|
93
|
+
if (!Number.isInteger(waveId) || waveId < 1) {
|
|
94
|
+
throw new CleoError(ExitCode.VALIDATION_ERROR, `Wave ${waveId} does not exist: waves are numbered from 1, as \`cleo orchestrate waves\` prints them.`, { fix: 'cleo orchestrate waves <epicId>' });
|
|
95
|
+
}
|
|
96
|
+
}
|
|
82
97
|
/**
|
|
83
98
|
* Compute a roll-up for a single wave of an epic.
|
|
84
99
|
*
|
|
@@ -87,21 +102,24 @@ export async function resolveLeadRollupMode(projectRoot) {
|
|
|
87
102
|
* Conflicting histories and failed reads reject rather than imply missing evidence.
|
|
88
103
|
*
|
|
89
104
|
* @param epicId - Parent epic ID.
|
|
90
|
-
* @param waveId - Wave number
|
|
91
|
-
*
|
|
105
|
+
* @param waveId - Wave number as `cleo orchestrate waves` prints it (1 =
|
|
106
|
+
* first wave, T12682). The same plan numbers the wave topic
|
|
107
|
+
* `epic-<epicId>.wave-<waveId>` its workers publish on.
|
|
92
108
|
* @param projectRoot - Optional project root for SDK consumers (test fixtures
|
|
93
109
|
* pass an explicit root; CLI consumers omit it). Also used to resolve the
|
|
94
110
|
* `leadRollup.mode` feature flag from the project config cascade.
|
|
95
111
|
* @param options - Optional inputs (conduit messages).
|
|
96
112
|
* @returns A `WaveRollup` shape. Returns an empty wave (`workers: []`) when
|
|
97
113
|
* the wave has no tasks.
|
|
98
|
-
* @throws If manifest history conflicts or a canonical store read fails
|
|
114
|
+
* @throws If manifest history conflicts or a canonical store read fails, or
|
|
115
|
+
* `waveId` is not a wave number (from 1).
|
|
99
116
|
* @example
|
|
100
117
|
* ```ts
|
|
101
|
-
* const wave = await rollupWaveStatus("T100",
|
|
118
|
+
* const wave = await rollupWaveStatus("T100", 1, "/project", {});
|
|
102
119
|
* ```
|
|
103
120
|
*/
|
|
104
121
|
export async function rollupWaveStatus(epicId, waveId, projectRoot, options = {}) {
|
|
122
|
+
assertWaveNumber(waveId);
|
|
105
123
|
const mode = await resolveLeadRollupMode(projectRoot);
|
|
106
124
|
const accessor = await getTaskAccessor(projectRoot);
|
|
107
125
|
// Load the epic and its children.
|
|
@@ -122,11 +140,10 @@ export async function rollupWaveStatus(epicId, waveId, projectRoot, options = {}
|
|
|
122
140
|
capturedAt: new Date().toISOString(),
|
|
123
141
|
};
|
|
124
142
|
}
|
|
125
|
-
|
|
126
|
-
//
|
|
127
|
-
|
|
128
|
-
const
|
|
129
|
-
const wave = waves[waveId];
|
|
143
|
+
// T12682: the plan `cleo orchestrate waves` prints — same dependency
|
|
144
|
+
// lookup, same 1-based numbers — never a second, differently indexed one.
|
|
145
|
+
const { children, waves } = await planEpicWaves(epicId, accessor);
|
|
146
|
+
const wave = waves.find((w) => w.waveNumber === waveId);
|
|
130
147
|
if (!wave) {
|
|
131
148
|
return {
|
|
132
149
|
epicId,
|
|
@@ -259,7 +276,8 @@ function applyActiveModeHook(_workers, _blockers) {
|
|
|
259
276
|
* @param projectRoot - Optional explicit project root.
|
|
260
277
|
* @param options - Optional pre-collected conduit messages.
|
|
261
278
|
* @returns Rollups for every dependency wave and aggregate worker counts.
|
|
262
|
-
* @throws If manifest history conflicts or a canonical store read fails
|
|
279
|
+
* @throws If manifest history conflicts or a canonical store read fails, or
|
|
280
|
+
* `waveId` is not a wave number (from 1).
|
|
263
281
|
* @example
|
|
264
282
|
* ```ts
|
|
265
283
|
* const epic = await rollupEpicStatus("T100", "/project", {});
|
|
@@ -267,11 +285,10 @@ function applyActiveModeHook(_workers, _blockers) {
|
|
|
267
285
|
*/
|
|
268
286
|
export async function rollupEpicStatus(epicId, projectRoot, options = {}) {
|
|
269
287
|
const accessor = await getTaskAccessor(projectRoot);
|
|
270
|
-
const
|
|
271
|
-
const waves = computeWaves(children);
|
|
288
|
+
const { waves } = await planEpicWaves(epicId, accessor);
|
|
272
289
|
const waveRollups = [];
|
|
273
|
-
for (
|
|
274
|
-
waveRollups.push(await rollupWaveStatus(epicId,
|
|
290
|
+
for (const wave of waves) {
|
|
291
|
+
waveRollups.push(await rollupWaveStatus(epicId, wave.waveNumber, projectRoot, options));
|
|
275
292
|
}
|
|
276
293
|
const totalWorkers = waveRollups.reduce((sum, w) => sum + w.workers.length, 0);
|
|
277
294
|
const doneWorkers = waveRollups.reduce((sum, w) => sum + w.workers.filter((x) => x.verificationPassed).length, 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lead-rollup.js","sourceRoot":"","sources":["../../src/orchestration/lead-rollup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAWH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"lead-rollup.js","sourceRoot":"","sources":["../../src/orchestration/lead-rollup.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System One needs-human-decision check for the readiness grill gate (T12494).
|
|
3
|
+
*
|
|
4
|
+
* `classifyReadiness` flags `OWNER_DECISION_REQUIRED` when `blockedBy`
|
|
5
|
+
* contains "owner" or "decision" as a substring, so "blocked on T12 (decision
|
|
6
|
+
* store refactor)" grills and "waiting on legal to choose a vendor" does not.
|
|
7
|
+
* This module asks ONE `noul` question — "does this block need a human
|
|
8
|
+
* owner's decision, approval or choice?" — and hands the answer to the pure
|
|
9
|
+
* predicate as {@link ReadinessSignals.ownerDecision}.
|
|
10
|
+
*
|
|
11
|
+
* Escalate-only: the answer can ADD the flag the substring rule missed, never
|
|
12
|
+
* clear one the rule or the label raised (a false positive stays a grill).
|
|
13
|
+
* Silently removing a flag would route around the owner. A flagged task
|
|
14
|
+
* grills, and the grill is routed to the owner through the orchestrator's ask
|
|
15
|
+
* tool (the HITL rule); System One never answers the owner's question itself.
|
|
16
|
+
*
|
|
17
|
+
* - Asked only when the task has a non-blank `blockedBy` and no
|
|
18
|
+
* `owner-decision` label (the label is authoritative). In `on` mode it is
|
|
19
|
+
* also skipped when the substring rule already flags: an answer could not
|
|
20
|
+
* change the verdict. `shadow` still asks, so the audit measures agreement.
|
|
21
|
+
* - Title, `blockedBy` and description are redacted, then clipped, before they
|
|
22
|
+
* leave the machine.
|
|
23
|
+
* - Provider wait is bounded by {@link OWNER_DECISION_BUDGET_MS}; the budget
|
|
24
|
+
* starts once the decision modules are loaded.
|
|
25
|
+
*
|
|
26
|
+
* Mode comes from `decide.sites.ownerDecision` (`off | shadow | on`): `shadow`
|
|
27
|
+
* (the default once a provider is configured) audits the answer next to the
|
|
28
|
+
* substring rule and returns no signal, so the verdict is unchanged; `on`
|
|
29
|
+
* returns the signal, which the predicate uses to add a flag when its
|
|
30
|
+
* confidence is at least {@link OWNER_DECISION_MIN_CONFIDENCE}. No provider configured → `off`, no
|
|
31
|
+
* network call.
|
|
32
|
+
*
|
|
33
|
+
* @task T12494
|
|
34
|
+
* @epic T12486
|
|
35
|
+
*/
|
|
36
|
+
import type { DecisionRequest, Task } from '@cleocode/contracts';
|
|
37
|
+
import type { DecideOptions } from '../decide/client.js';
|
|
38
|
+
import { type DecisionSiteMode } from '../decide/site.js';
|
|
39
|
+
import { type OwnerDecisionSignal, type ReadinessResult, type ReadinessSignals } from './classify-readiness.js';
|
|
40
|
+
/** Wait budget for the owner-decision question, in ms (module load excluded; see `askSiteDecision`). */
|
|
41
|
+
export declare const OWNER_DECISION_BUDGET_MS = 300;
|
|
42
|
+
/** Call-site id for the owner-decision question; keys the audit line. */
|
|
43
|
+
export declare const OWNER_DECISION_SITE = "orchestration.owner-decision";
|
|
44
|
+
/** Config key selecting the System One mode for the owner-decision check. */
|
|
45
|
+
export declare const OWNER_DECISION_MODE_KEY = "decide.sites.ownerDecision";
|
|
46
|
+
/**
|
|
47
|
+
* Build the decision request: title, `blockedBy` and description as state and
|
|
48
|
+
* one `noul` question.
|
|
49
|
+
*
|
|
50
|
+
* @param task - The task being classified.
|
|
51
|
+
* @param redact - Redaction applied to every field BEFORE clipping.
|
|
52
|
+
* @returns The request.
|
|
53
|
+
*/
|
|
54
|
+
export declare function buildOwnerDecisionRequest(task: Pick<Task, 'title' | 'blockedBy' | 'description'>, redact: (s: string) => string): DecisionRequest;
|
|
55
|
+
/** Options for {@link resolveOwnerDecisionSignal}. */
|
|
56
|
+
export interface OwnerDecisionOptions {
|
|
57
|
+
/** Explicit mode; wins over config when a provider is configured. */
|
|
58
|
+
readonly mode?: DecisionSiteMode;
|
|
59
|
+
/** Provider, connection, budget, cache and audit wiring forwarded to `decide()`. */
|
|
60
|
+
readonly decide?: DecideOptions;
|
|
61
|
+
/** Project root for config lookup and the default audit sink. */
|
|
62
|
+
readonly projectRoot?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Ask System One whether the task's `blockedBy` needs an owner decision.
|
|
66
|
+
*
|
|
67
|
+
* Never throws and never waits longer than {@link OWNER_DECISION_BUDGET_MS}
|
|
68
|
+
* once a decision is asked.
|
|
69
|
+
*
|
|
70
|
+
* @param task - The task being classified.
|
|
71
|
+
* @param opts - Mode, wiring and project root.
|
|
72
|
+
* @returns The signal in `on` mode when a valid answer arrived; otherwise `null`
|
|
73
|
+
* (not asked, `shadow`, or fallback) — and the substring rule decides.
|
|
74
|
+
*/
|
|
75
|
+
export declare function resolveOwnerDecisionSignal(task: Task, opts?: OwnerDecisionOptions): Promise<OwnerDecisionSignal | null>;
|
|
76
|
+
/**
|
|
77
|
+
* {@link classifyReadiness} with the owner-decision signal resolved first.
|
|
78
|
+
*
|
|
79
|
+
* Equivalent to `classifyReadiness(task, signals)` whenever System One is
|
|
80
|
+
* unconfigured, `off`, `shadow`, or does not answer in budget.
|
|
81
|
+
*
|
|
82
|
+
* @param task - Task record to classify.
|
|
83
|
+
* @param signals - Pre-fetched supporting state; an explicit `ownerDecision` is kept.
|
|
84
|
+
* @param opts - Mode, wiring and project root for the owner-decision question.
|
|
85
|
+
* @returns The readiness verdict.
|
|
86
|
+
*/
|
|
87
|
+
export declare function classifyReadinessWithDecision(task: Task, signals?: ReadinessSignals, opts?: OwnerDecisionOptions): Promise<ReadinessResult>;
|
|
88
|
+
//# sourceMappingURL=owner-decision-readiness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-decision-readiness.d.ts","sourceRoot":"","sources":["../../src/orchestration/owner-decision-readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EAAkB,eAAe,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,KAAK,gBAAgB,EAAkB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC,wGAAwG;AACxG,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAE5C,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,iCAAiC,CAAC;AAElE,6EAA6E;AAC7E,eAAO,MAAM,uBAAuB,+BAA+B,CAAC;AAkBpE;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,aAAa,CAAC,EACvD,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,GAC5B,eAAe,CASjB;AAED,sDAAsD;AACtD,MAAM,WAAW,oBAAoB;IACnC,qEAAqE;IACrE,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,oFAAoF;IACpF,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAChC,iEAAiE;IACjE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC,CA6CrC;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,6BAA6B,CACjD,IAAI,EAAE,IAAI,EACV,OAAO,GAAE,gBAAqB,EAC9B,IAAI,GAAE,oBAAyB,GAC9B,OAAO,CAAC,eAAe,CAAC,CAM1B"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System One needs-human-decision check for the readiness grill gate (T12494).
|
|
3
|
+
*
|
|
4
|
+
* `classifyReadiness` flags `OWNER_DECISION_REQUIRED` when `blockedBy`
|
|
5
|
+
* contains "owner" or "decision" as a substring, so "blocked on T12 (decision
|
|
6
|
+
* store refactor)" grills and "waiting on legal to choose a vendor" does not.
|
|
7
|
+
* This module asks ONE `noul` question — "does this block need a human
|
|
8
|
+
* owner's decision, approval or choice?" — and hands the answer to the pure
|
|
9
|
+
* predicate as {@link ReadinessSignals.ownerDecision}.
|
|
10
|
+
*
|
|
11
|
+
* Escalate-only: the answer can ADD the flag the substring rule missed, never
|
|
12
|
+
* clear one the rule or the label raised (a false positive stays a grill).
|
|
13
|
+
* Silently removing a flag would route around the owner. A flagged task
|
|
14
|
+
* grills, and the grill is routed to the owner through the orchestrator's ask
|
|
15
|
+
* tool (the HITL rule); System One never answers the owner's question itself.
|
|
16
|
+
*
|
|
17
|
+
* - Asked only when the task has a non-blank `blockedBy` and no
|
|
18
|
+
* `owner-decision` label (the label is authoritative). In `on` mode it is
|
|
19
|
+
* also skipped when the substring rule already flags: an answer could not
|
|
20
|
+
* change the verdict. `shadow` still asks, so the audit measures agreement.
|
|
21
|
+
* - Title, `blockedBy` and description are redacted, then clipped, before they
|
|
22
|
+
* leave the machine.
|
|
23
|
+
* - Provider wait is bounded by {@link OWNER_DECISION_BUDGET_MS}; the budget
|
|
24
|
+
* starts once the decision modules are loaded.
|
|
25
|
+
*
|
|
26
|
+
* Mode comes from `decide.sites.ownerDecision` (`off | shadow | on`): `shadow`
|
|
27
|
+
* (the default once a provider is configured) audits the answer next to the
|
|
28
|
+
* substring rule and returns no signal, so the verdict is unchanged; `on`
|
|
29
|
+
* returns the signal, which the predicate uses to add a flag when its
|
|
30
|
+
* confidence is at least {@link OWNER_DECISION_MIN_CONFIDENCE}. No provider configured → `off`, no
|
|
31
|
+
* network call.
|
|
32
|
+
*
|
|
33
|
+
* @task T12494
|
|
34
|
+
* @epic T12486
|
|
35
|
+
*/
|
|
36
|
+
import { redactThenClip } from '../decide/site.js';
|
|
37
|
+
import { blockedByMentionsOwnerDecision, classifyReadiness, OWNER_DECISION_MIN_CONFIDENCE, } from './classify-readiness.js';
|
|
38
|
+
/** Wait budget for the owner-decision question, in ms (module load excluded; see `askSiteDecision`). */
|
|
39
|
+
export const OWNER_DECISION_BUDGET_MS = 300;
|
|
40
|
+
/** Call-site id for the owner-decision question; keys the audit line. */
|
|
41
|
+
export const OWNER_DECISION_SITE = 'orchestration.owner-decision';
|
|
42
|
+
/** Config key selecting the System One mode for the owner-decision check. */
|
|
43
|
+
export const OWNER_DECISION_MODE_KEY = 'decide.sites.ownerDecision';
|
|
44
|
+
/** Label that already marks an owner decision; mirrors `classify-readiness.ts`. */
|
|
45
|
+
const OWNER_DECISION_LABEL = 'owner-decision';
|
|
46
|
+
/** The single question's name. */
|
|
47
|
+
const QUESTION = 'owner';
|
|
48
|
+
/** Per-field character caps. */
|
|
49
|
+
const TITLE_MAX_CHARS = 160;
|
|
50
|
+
const BLOCKED_BY_MAX_CHARS = 300;
|
|
51
|
+
const DESCRIPTION_MAX_CHARS = 440;
|
|
52
|
+
const CRITERIA = 'Work on this task cannot start until a human owner makes a decision, approval or choice ' +
|
|
53
|
+
'(as described by "blockedBy"). It is NOT enough to be waiting on another task, a tool, ' +
|
|
54
|
+
'a build, an external service or another agent.';
|
|
55
|
+
/**
|
|
56
|
+
* Build the decision request: title, `blockedBy` and description as state and
|
|
57
|
+
* one `noul` question.
|
|
58
|
+
*
|
|
59
|
+
* @param task - The task being classified.
|
|
60
|
+
* @param redact - Redaction applied to every field BEFORE clipping.
|
|
61
|
+
* @returns The request.
|
|
62
|
+
*/
|
|
63
|
+
export function buildOwnerDecisionRequest(task, redact) {
|
|
64
|
+
return {
|
|
65
|
+
state: {
|
|
66
|
+
title: redactThenClip(task.title, TITLE_MAX_CHARS, redact),
|
|
67
|
+
blockedBy: redactThenClip(task.blockedBy ?? '', BLOCKED_BY_MAX_CHARS, redact),
|
|
68
|
+
description: redactThenClip(task.description ?? '', DESCRIPTION_MAX_CHARS, redact),
|
|
69
|
+
},
|
|
70
|
+
questions: { [QUESTION]: { type: 'noul', criteria: CRITERIA } },
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Ask System One whether the task's `blockedBy` needs an owner decision.
|
|
75
|
+
*
|
|
76
|
+
* Never throws and never waits longer than {@link OWNER_DECISION_BUDGET_MS}
|
|
77
|
+
* once a decision is asked.
|
|
78
|
+
*
|
|
79
|
+
* @param task - The task being classified.
|
|
80
|
+
* @param opts - Mode, wiring and project root.
|
|
81
|
+
* @returns The signal in `on` mode when a valid answer arrived; otherwise `null`
|
|
82
|
+
* (not asked, `shadow`, or fallback) — and the substring rule decides.
|
|
83
|
+
*/
|
|
84
|
+
export async function resolveOwnerDecisionSignal(task, opts = {}) {
|
|
85
|
+
if ((task.blockedBy ?? '').trim() === '')
|
|
86
|
+
return null;
|
|
87
|
+
if ((task.labels ?? []).some((l) => l.toLowerCase() === OWNER_DECISION_LABEL))
|
|
88
|
+
return null;
|
|
89
|
+
try {
|
|
90
|
+
const { askSiteDecision, resolveDecisionSiteSettings } = await import('../decide/site.js');
|
|
91
|
+
const { mode } = await resolveDecisionSiteSettings({
|
|
92
|
+
modeKey: OWNER_DECISION_MODE_KEY,
|
|
93
|
+
mode: opts.mode,
|
|
94
|
+
wiring: opts.decide,
|
|
95
|
+
projectRoot: opts.projectRoot,
|
|
96
|
+
});
|
|
97
|
+
if (mode === 'off')
|
|
98
|
+
return null;
|
|
99
|
+
const substring = blockedByMentionsOwnerDecision(task);
|
|
100
|
+
// Escalate-only: once the rule flags, no answer can change the verdict.
|
|
101
|
+
if (mode === 'on' && substring)
|
|
102
|
+
return null;
|
|
103
|
+
const heuristicAnswer = {
|
|
104
|
+
type: 'noul',
|
|
105
|
+
value: substring,
|
|
106
|
+
probability: substring ? 1 : 0,
|
|
107
|
+
confidence: 0.5,
|
|
108
|
+
};
|
|
109
|
+
const decision = await askSiteDecision({
|
|
110
|
+
siteId: OWNER_DECISION_SITE,
|
|
111
|
+
budgetMs: OWNER_DECISION_BUDGET_MS,
|
|
112
|
+
minConfidence: OWNER_DECISION_MIN_CONFIDENCE,
|
|
113
|
+
mode,
|
|
114
|
+
heuristicVerdict: substring ? 'owner-decision' : 'none',
|
|
115
|
+
buildRequest: (redact) => buildOwnerDecisionRequest(task, redact),
|
|
116
|
+
heuristicAnswers: { [QUESTION]: heuristicAnswer },
|
|
117
|
+
agree: (answers) => answers[QUESTION]?.value === substring,
|
|
118
|
+
shadowExtras: { subjects: { [QUESTION]: task.id } },
|
|
119
|
+
wiring: opts.decide,
|
|
120
|
+
projectRoot: opts.projectRoot,
|
|
121
|
+
});
|
|
122
|
+
const answer = decision?.answers[QUESTION];
|
|
123
|
+
if (mode !== 'on' || answer?.type !== 'noul')
|
|
124
|
+
return null;
|
|
125
|
+
return {
|
|
126
|
+
required: answer.value,
|
|
127
|
+
probability: answer.probability,
|
|
128
|
+
confidence: answer.confidence,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return null;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* {@link classifyReadiness} with the owner-decision signal resolved first.
|
|
137
|
+
*
|
|
138
|
+
* Equivalent to `classifyReadiness(task, signals)` whenever System One is
|
|
139
|
+
* unconfigured, `off`, `shadow`, or does not answer in budget.
|
|
140
|
+
*
|
|
141
|
+
* @param task - Task record to classify.
|
|
142
|
+
* @param signals - Pre-fetched supporting state; an explicit `ownerDecision` is kept.
|
|
143
|
+
* @param opts - Mode, wiring and project root for the owner-decision question.
|
|
144
|
+
* @returns The readiness verdict.
|
|
145
|
+
*/
|
|
146
|
+
export async function classifyReadinessWithDecision(task, signals = {}, opts = {}) {
|
|
147
|
+
const ownerDecision = signals.ownerDecision !== undefined
|
|
148
|
+
? signals.ownerDecision
|
|
149
|
+
: await resolveOwnerDecisionSignal(task, opts);
|
|
150
|
+
return classifyReadiness(task, { ...signals, ownerDecision });
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=owner-decision-readiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner-decision-readiness.js","sourceRoot":"","sources":["../../src/orchestration/owner-decision-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel.d.ts","sourceRoot":"","sources":["../../src/orchestration/parallel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,UAAU,aAAa;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAaD,2CAA2C;AAC3C,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,
|
|
1
|
+
{"version":3,"file":"parallel.d.ts","sourceRoot":"","sources":["../../src/orchestration/parallel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAI9D,UAAU,aAAa;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAaD,2CAA2C;AAC3C,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC,CAmCD;AAED,yCAAyC;AACzC,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC,CAuCD;AAED,4CAA4C;AAC5C,wBAAsB,iBAAiB,CACrC,GAAG,CAAC,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,YAAY,GACtB,OAAO,CAAC,aAAa,CAAC,CAGxB"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { ExitCode } from '@cleocode/contracts';
|
|
6
6
|
import { CleoError } from '../errors.js';
|
|
7
7
|
import { getTaskAccessor } from '../store/data-accessor.js';
|
|
8
|
-
import {
|
|
8
|
+
import { isTerminalWaveStatus, planEpicWaves } from './waves.js';
|
|
9
9
|
const PARALLEL_STATE_KEY = 'parallel_state';
|
|
10
10
|
async function readParallelState(accessor) {
|
|
11
11
|
const state = await accessor.getMetaValue(PARALLEL_STATE_KEY);
|
|
@@ -25,28 +25,21 @@ export async function startParallelExecution(epicId, wave, cwd, accessor) {
|
|
|
25
25
|
if (!epic) {
|
|
26
26
|
throw new CleoError(ExitCode.NOT_FOUND, `Epic ${epicId} not found`);
|
|
27
27
|
}
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
// T12682: the same stable plan `orchestrate waves` prints; the wave's
|
|
29
|
+
// finished tasks keep their number but are not run again.
|
|
30
|
+
const { children, waves } = await planEpicWaves(epicId, acc);
|
|
30
31
|
const targetWave = waves.find((w) => w.waveNumber === wave);
|
|
31
32
|
if (!targetWave) {
|
|
32
33
|
throw new CleoError(ExitCode.INVALID_INPUT, `Wave ${wave} not found for epic ${epicId}`);
|
|
33
34
|
}
|
|
34
35
|
const startedAt = new Date().toISOString();
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
tasks: targetWave.tasks,
|
|
41
|
-
};
|
|
36
|
+
const tasks = targetWave.tasks.filter((id) => {
|
|
37
|
+
const status = children.find((c) => c.id === id)?.status;
|
|
38
|
+
return status === undefined || !isTerminalWaveStatus(status);
|
|
39
|
+
});
|
|
40
|
+
const state = { active: true, epicId, wave, startedAt, tasks };
|
|
42
41
|
await writeParallelState(state, acc);
|
|
43
|
-
return {
|
|
44
|
-
epicId,
|
|
45
|
-
wave,
|
|
46
|
-
tasks: targetWave.tasks,
|
|
47
|
-
taskCount: targetWave.tasks.length,
|
|
48
|
-
startedAt,
|
|
49
|
-
};
|
|
42
|
+
return { epicId, wave, tasks, taskCount: tasks.length, startedAt };
|
|
50
43
|
}
|
|
51
44
|
/** End parallel execution for a wave. */
|
|
52
45
|
export async function endParallelExecution(epicId, wave, cwd, accessor) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../src/orchestration/parallel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"parallel.js","sourceRoot":"","sources":["../../src/orchestration/parallel.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAUjE,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAE5C,KAAK,UAAU,iBAAiB,CAAC,QAAsB;IACrD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAgB,kBAAkB,CAAC,CAAC;IAC7E,OAAO,KAAK,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,KAAoB,EAAE,QAAsB;IAC5E,MAAM,QAAQ,CAAC,YAAY,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;AACzD,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAc,EACd,IAAY,EACZ,GAAY,EACZ,QAAuB;IAQvB,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAClD,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACxB,MAAM,IAAI,SAAS,CACjB,QAAQ,CAAC,aAAa,EACtB,8CAA8C,YAAY,CAAC,MAAM,UAAU,YAAY,CAAC,IAAI,EAAE,CAC/F,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,MAAM,YAAY,CAAC,CAAC;IACtE,CAAC;IAED,sEAAsE;IACtE,0DAA0D;IAC1D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,IAAI,CAAC,CAAC;IAE5D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,QAAQ,IAAI,uBAAuB,MAAM,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC;QACzD,OAAO,MAAM,KAAK,SAAS,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAkB,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAE9E,MAAM,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAErC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;AACrE,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,MAAc,EACd,IAAY,EACZ,GAAY,EACZ,QAAuB;IAWvB,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAElD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO;YACL,MAAM;YACN,IAAI;YACJ,KAAK,EAAE,EAAE;YACT,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,IAAI;YACf,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACjC,UAAU,EAAE,CAAC;YACb,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,IAAI,YAAY,CAAC,MAAM,KAAK,MAAM,IAAI,YAAY,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;QACjE,MAAM,IAAI,SAAS,CACjB,QAAQ,CAAC,aAAa,EACtB,+BAA+B,YAAY,CAAC,MAAM,SAAS,YAAY,CAAC,IAAI,cAAc,MAAM,SAAS,IAAI,EAAE,CAChH,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS;QACrC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE;QACzD,CAAC,CAAC,CAAC,CAAC;IAEN,MAAM,kBAAkB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;IAEjD,OAAO;QACL,MAAM;QACN,IAAI;QACJ,KAAK,EAAE,YAAY,CAAC,KAAK,IAAI,EAAE;QAC/B,SAAS,EAAE,YAAY,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC;QAC1C,SAAS,EAAE,YAAY,CAAC,SAAS,IAAI,IAAI;QACzC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACjC,UAAU,EAAE,QAAQ;KACrB,CAAC;AACJ,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAAY,EACZ,QAAuB;IAEvB,MAAM,GAAG,GAAG,QAAQ,IAAI,CAAC,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IACrD,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PSYCHE-MEMORY block budgeting for spawn prompts (T12519 · E-TOKEN-ECONOMY).
|
|
3
|
+
*
|
|
4
|
+
* `buildRetrievalBundle` returns up to ~400 cold-pass user-profile traits plus
|
|
5
|
+
* the ten most recent learnings, patterns and decisions. It does not consider
|
|
6
|
+
* the task being spawned. Rendering all of it made the PSYCHE-MEMORY block
|
|
7
|
+
* about 51 % of a tier-1 prompt (measured 2026-09-27: ~3,844 of 7,497 tokens).
|
|
8
|
+
* Most of that was operation receipts ("Cleo tasks update operation
|
|
9
|
+
* succeeded") and dispatch traces.
|
|
10
|
+
*
|
|
11
|
+
* This module turns a bundle into a bounded block:
|
|
12
|
+
*
|
|
13
|
+
* 1. **Exclude noise.** Drop entries that only record an operation succeeding,
|
|
14
|
+
* and serialized dispatch traces. See {@link isOperationReceiptText} for why
|
|
15
|
+
* this is a text match rather than a field match.
|
|
16
|
+
* 2. **Rank by relevance to the spawned task.** First by overlap with the
|
|
17
|
+
* task's id, epic, labels and files. Then by stored quality score. Then by
|
|
18
|
+
* citation count.
|
|
19
|
+
* 3. **Cap at a token budget** ({@link PSYCHE_MEMORY_TOKEN_BUDGET}) using the
|
|
20
|
+
* repo's `estimateTokens` (chars / 4). Entries are admitted whole or not at
|
|
21
|
+
* all, never cut mid-entry. The omitted count is surfaced as a single
|
|
22
|
+
* `cleo memory find` pointer line.
|
|
23
|
+
*
|
|
24
|
+
* @module orchestration/psyche-memory-budget
|
|
25
|
+
* @task T12519
|
|
26
|
+
* @epic T12484
|
|
27
|
+
*/
|
|
28
|
+
import type { RetrievalBundle, Task } from '@cleocode/contracts';
|
|
29
|
+
/** Default token budget for the whole `## PSYCHE-MEMORY` block (T12519). */
|
|
30
|
+
export declare const PSYCHE_MEMORY_TOKEN_BUDGET = 800;
|
|
31
|
+
/**
|
|
32
|
+
* Whether memory text only records that an operation succeeded, or is a
|
|
33
|
+
* serialized dispatch trace. Such text carries no knowledge a spawned agent
|
|
34
|
+
* can act on.
|
|
35
|
+
*
|
|
36
|
+
* @param text - Entry text (trait value, pattern, insight, title, …).
|
|
37
|
+
* @returns `true` when the entry is noise and must not be injected.
|
|
38
|
+
*/
|
|
39
|
+
export declare function isOperationReceiptText(text: string): boolean;
|
|
40
|
+
/** Task facts used to rank memory entries by relevance. */
|
|
41
|
+
export interface PsycheRelevanceContext {
|
|
42
|
+
/** Id of the task being spawned. */
|
|
43
|
+
taskId: string;
|
|
44
|
+
/** Parent (epic) id of the spawned task, when it has one. */
|
|
45
|
+
epicId?: string | null;
|
|
46
|
+
/** Task labels. */
|
|
47
|
+
labels?: readonly string[];
|
|
48
|
+
/** Files the task declares. */
|
|
49
|
+
files?: readonly string[];
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Derive a {@link PsycheRelevanceContext} from a task record.
|
|
53
|
+
*
|
|
54
|
+
* @param task - The task being spawned.
|
|
55
|
+
* @returns The relevance context for ranking memory entries.
|
|
56
|
+
*/
|
|
57
|
+
export declare function relevanceContextFromTask(task: Task): PsycheRelevanceContext;
|
|
58
|
+
/** Inputs for {@link buildBudgetedPsycheMemoryBlock}. */
|
|
59
|
+
export interface BudgetedPsycheMemoryInput {
|
|
60
|
+
/** Retrieval bundle from `buildRetrievalBundle`. */
|
|
61
|
+
bundle: RetrievalBundle;
|
|
62
|
+
/** Relevance facts of the spawned task. */
|
|
63
|
+
relevance: PsycheRelevanceContext;
|
|
64
|
+
/** Pre-rendered, already-bounded Tier-2 attention digest lines (T11374). */
|
|
65
|
+
attentionDigestLines?: readonly string[];
|
|
66
|
+
/** Token budget for the whole block. Defaults to {@link PSYCHE_MEMORY_TOKEN_BUDGET}. */
|
|
67
|
+
tokenBudget?: number;
|
|
68
|
+
}
|
|
69
|
+
/** Result of {@link buildBudgetedPsycheMemoryBlock}. */
|
|
70
|
+
export interface BudgetedPsycheMemoryResult {
|
|
71
|
+
/** The rendered `## PSYCHE-MEMORY` markdown section. */
|
|
72
|
+
block: string;
|
|
73
|
+
/** Estimated tokens of `block` (chars / 4). */
|
|
74
|
+
tokens: number;
|
|
75
|
+
/** Entries rendered. */
|
|
76
|
+
shown: number;
|
|
77
|
+
/** Relevant (non-noise) entries omitted because the budget ran out. */
|
|
78
|
+
omitted: number;
|
|
79
|
+
/** Entries dropped as operation receipts / dispatch traces. */
|
|
80
|
+
excludedNoise: number;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Render the `## PSYCHE-MEMORY` block under a token budget.
|
|
84
|
+
*
|
|
85
|
+
* The header, the attention digest (already bounded by its own renderer) and
|
|
86
|
+
* the sigil card are fixed. Every other entry competes for the remaining
|
|
87
|
+
* budget in rank order: pinned first, then overlap score, then quality, then
|
|
88
|
+
* citations, then bundle (recency) order. An entry that does not fit is skipped
|
|
89
|
+
* whole, and a smaller one further down may still fit. Admitted entries render
|
|
90
|
+
* grouped under their usual section headings, in rank order within each
|
|
91
|
+
* section.
|
|
92
|
+
*
|
|
93
|
+
* @param input - Bundle, relevance context, attention lines and budget.
|
|
94
|
+
* @returns The rendered block plus accounting.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* const { block } = buildBudgetedPsycheMemoryBlock({
|
|
99
|
+
* bundle,
|
|
100
|
+
* relevance: relevanceContextFromTask(task),
|
|
101
|
+
* });
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
export declare function buildBudgetedPsycheMemoryBlock(input: BudgetedPsycheMemoryInput): BudgetedPsycheMemoryResult;
|
|
105
|
+
//# sourceMappingURL=psyche-memory-budget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"psyche-memory-budget.d.ts","sourceRoot":"","sources":["../../src/orchestration/psyche-memory-budget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAIjE,4EAA4E;AAC5E,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAgC9C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAI5D;AAED,2DAA2D;AAC3D,MAAM,WAAW,sBAAsB;IACrC,oCAAoC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mBAAmB;IACnB,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,IAAI,GAAG,sBAAsB,CAO3E;AA8ND,yDAAyD;AACzD,MAAM,WAAW,yBAAyB;IACxC,oDAAoD;IACpD,MAAM,EAAE,eAAe,CAAC;IACxB,2CAA2C;IAC3C,SAAS,EAAE,sBAAsB,CAAC;IAClC,4EAA4E;IAC5E,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,wFAAwF;IACxF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wDAAwD;AACxD,MAAM,WAAW,0BAA0B;IACzC,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,yBAAyB,GAC/B,0BAA0B,CA6F5B"}
|