@cleocode/core 2026.9.23 → 2026.9.25
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/admin/import-tasks.d.ts.map +1 -1
- package/dist/admin/import-tasks.js +35 -6
- package/dist/admin/import-tasks.js.map +1 -1
- package/dist/admin/import.d.ts.map +1 -1
- package/dist/admin/import.js +25 -6
- package/dist/admin/import.js.map +1 -1
- package/dist/audit-prune.d.ts +32 -0
- package/dist/audit-prune.d.ts.map +1 -1
- package/dist/audit-prune.js +37 -3
- package/dist/audit-prune.js.map +1 -1
- package/dist/build-provenance.json +2 -2
- package/dist/cloud/crypto.d.ts +1 -2
- package/dist/cloud/crypto.d.ts.map +1 -1
- package/dist/cloud/crypto.js +1 -11
- package/dist/cloud/crypto.js.map +1 -1
- package/dist/cloud/http.d.ts +8 -0
- package/dist/cloud/http.d.ts.map +1 -1
- package/dist/cloud/http.js +8 -1
- package/dist/cloud/http.js.map +1 -1
- package/dist/cloud/index.d.ts +6 -1
- package/dist/cloud/index.d.ts.map +1 -1
- package/dist/cloud/index.js +6 -1
- package/dist/cloud/index.js.map +1 -1
- package/dist/cloud/nexus-auth.d.ts +169 -0
- package/dist/cloud/nexus-auth.d.ts.map +1 -0
- package/dist/cloud/nexus-auth.js +372 -0
- package/dist/cloud/nexus-auth.js.map +1 -0
- package/dist/cloud/nexus-credentials.d.ts +188 -0
- package/dist/cloud/nexus-credentials.d.ts.map +1 -0
- package/dist/cloud/nexus-credentials.js +323 -0
- package/dist/cloud/nexus-credentials.js.map +1 -0
- package/dist/cloud/nexus-link.d.ts +85 -0
- package/dist/cloud/nexus-link.d.ts.map +1 -0
- package/dist/cloud/nexus-link.js +226 -0
- package/dist/cloud/nexus-link.js.map +1 -0
- package/dist/cloud/presence.d.ts +88 -0
- package/dist/cloud/presence.d.ts.map +1 -0
- package/dist/cloud/presence.js +137 -0
- package/dist/cloud/presence.js.map +1 -0
- package/dist/cloud/projects.d.ts +3 -1
- package/dist/cloud/projects.d.ts.map +1 -1
- package/dist/cloud/projects.js +4 -2
- package/dist/cloud/projects.js.map +1 -1
- package/dist/cloud/uuidv7.d.ts +9 -0
- package/dist/cloud/uuidv7.d.ts.map +1 -0
- package/dist/cloud/uuidv7.js +19 -0
- package/dist/cloud/uuidv7.js.map +1 -0
- package/dist/crypto/credentials.d.ts +14 -4
- package/dist/crypto/credentials.d.ts.map +1 -1
- package/dist/crypto/credentials.js +15 -1
- package/dist/crypto/credentials.js.map +1 -1
- package/dist/decide/bench/dataset.d.ts +125 -0
- package/dist/decide/bench/dataset.d.ts.map +1 -0
- package/dist/decide/bench/dataset.js +457 -0
- package/dist/decide/bench/dataset.js.map +1 -0
- package/dist/decide/bench/index.d.ts +23 -0
- package/dist/decide/bench/index.d.ts.map +1 -0
- package/dist/decide/bench/index.js +23 -0
- package/dist/decide/bench/index.js.map +1 -0
- package/dist/decide/bench/metrics.d.ts +55 -0
- package/dist/decide/bench/metrics.d.ts.map +1 -0
- package/dist/decide/bench/metrics.js +100 -0
- package/dist/decide/bench/metrics.js.map +1 -0
- package/dist/decide/bench/operation.d.ts +119 -0
- package/dist/decide/bench/operation.d.ts.map +1 -0
- package/dist/decide/bench/operation.js +171 -0
- package/dist/decide/bench/operation.js.map +1 -0
- package/dist/decide/bench/profiles.d.ts +102 -0
- package/dist/decide/bench/profiles.d.ts.map +1 -0
- package/dist/decide/bench/profiles.js +175 -0
- package/dist/decide/bench/profiles.js.map +1 -0
- package/dist/decide/bench/questions.d.ts +40 -0
- package/dist/decide/bench/questions.d.ts.map +1 -0
- package/dist/decide/bench/questions.js +107 -0
- package/dist/decide/bench/questions.js.map +1 -0
- package/dist/decide/bench/report.d.ts +21 -0
- package/dist/decide/bench/report.d.ts.map +1 -0
- package/dist/decide/bench/report.js +125 -0
- package/dist/decide/bench/report.js.map +1 -0
- package/dist/decide/bench/runner.d.ts +208 -0
- package/dist/decide/bench/runner.d.ts.map +1 -0
- package/dist/decide/bench/runner.js +336 -0
- package/dist/decide/bench/runner.js.map +1 -0
- package/dist/decide/bench/source.d.ts +21 -0
- package/dist/decide/bench/source.d.ts.map +1 -0
- package/dist/decide/bench/source.js +67 -0
- package/dist/decide/bench/source.js.map +1 -0
- package/dist/decide/bench/spot-check.d.ts +117 -0
- package/dist/decide/bench/spot-check.d.ts.map +1 -0
- package/dist/decide/bench/spot-check.js +221 -0
- package/dist/decide/bench/spot-check.js.map +1 -0
- package/dist/decide/bench/stats.d.ts +57 -0
- package/dist/decide/bench/stats.d.ts.map +1 -0
- package/dist/decide/bench/stats.js +82 -0
- package/dist/decide/bench/stats.js.map +1 -0
- package/dist/decide/bench/types.d.ts +216 -0
- package/dist/decide/bench/types.d.ts.map +1 -0
- package/dist/decide/bench/types.js +104 -0
- package/dist/decide/bench/types.js.map +1 -0
- package/dist/decide/client.d.ts +35 -1
- package/dist/decide/client.d.ts.map +1 -1
- package/dist/decide/client.js +135 -35
- package/dist/decide/client.js.map +1 -1
- package/dist/decide/credentials.d.ts +177 -17
- package/dist/decide/credentials.d.ts.map +1 -1
- package/dist/decide/credentials.js +505 -41
- package/dist/decide/credentials.js.map +1 -1
- package/dist/decide/index.d.ts +8 -8
- package/dist/decide/index.d.ts.map +1 -1
- package/dist/decide/index.js +8 -8
- package/dist/decide/index.js.map +1 -1
- package/dist/decide/jev-wire.d.ts +55 -19
- package/dist/decide/jev-wire.d.ts.map +1 -1
- package/dist/decide/jev-wire.js +116 -37
- package/dist/decide/jev-wire.js.map +1 -1
- package/dist/decide/operations.d.ts +63 -12
- package/dist/decide/operations.d.ts.map +1 -1
- package/dist/decide/operations.js +116 -58
- package/dist/decide/operations.js.map +1 -1
- package/dist/decide/provider-state.d.ts +85 -12
- package/dist/decide/provider-state.d.ts.map +1 -1
- package/dist/decide/provider-state.js +154 -21
- package/dist/decide/provider-state.js.map +1 -1
- package/dist/decide/provider.d.ts +5 -0
- package/dist/decide/provider.d.ts.map +1 -1
- package/dist/decide/provider.js.map +1 -1
- package/dist/decide/providers.d.ts +15 -2
- package/dist/decide/providers.d.ts.map +1 -1
- package/dist/decide/providers.js +22 -6
- package/dist/decide/providers.js.map +1 -1
- package/dist/decide/sites/registry.d.ts +22 -0
- package/dist/decide/sites/registry.d.ts.map +1 -1
- package/dist/decide/sites/registry.js +23 -0
- package/dist/decide/sites/registry.js.map +1 -1
- package/dist/decide/wizard.d.ts +12 -4
- package/dist/decide/wizard.d.ts.map +1 -1
- package/dist/decide/wizard.js +79 -26
- package/dist/decide/wizard.js.map +1 -1
- package/dist/dispatch/mvi-projection.d.ts +15 -2
- package/dist/dispatch/mvi-projection.d.ts.map +1 -1
- package/dist/dispatch/mvi-projection.js +73 -12
- package/dist/dispatch/mvi-projection.js.map +1 -1
- package/dist/docs/adr-allocator.d.ts +2 -2
- package/dist/docs/adr-allocator.d.ts.map +1 -1
- package/dist/docs/adr-allocator.js +17 -4
- package/dist/docs/adr-allocator.js.map +1 -1
- package/dist/docs/blob-consolidation.js +1 -1
- package/dist/docs/blob-consolidation.js.map +1 -1
- package/dist/docs/display-alias.d.ts +1 -1
- package/dist/docs/display-alias.d.ts.map +1 -1
- package/dist/docs/display-alias.js +7 -4
- package/dist/docs/display-alias.js.map +1 -1
- package/dist/docs/docs-inconsistency-detector.js +1 -1
- package/dist/docs/docs-inconsistency-detector.js.map +1 -1
- package/dist/docs/docs-update.d.ts.map +1 -1
- package/dist/docs/docs-update.js +6 -1
- package/dist/docs/docs-update.js.map +1 -1
- package/dist/docs/export-document.js +18058 -14538
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/numbering.js +1 -1
- package/dist/docs/numbering.js.map +1 -1
- package/dist/docs/supersede.d.ts.map +1 -1
- package/dist/docs/supersede.js +6 -3
- package/dist/docs/supersede.js.map +1 -1
- package/dist/docs/version-ssot.js +1 -1
- package/dist/docs/version-ssot.js.map +1 -1
- package/dist/doctor/db-substrate.d.ts.map +1 -1
- package/dist/doctor/db-substrate.js +39 -24
- package/dist/doctor/db-substrate.js.map +1 -1
- package/dist/doctor/knowledge-summary.d.ts +10 -3
- package/dist/doctor/knowledge-summary.d.ts.map +1 -1
- package/dist/doctor/knowledge-summary.js +10 -3
- package/dist/doctor/knowledge-summary.js.map +1 -1
- package/dist/doctor/orphan-ac-bindings.d.ts +64 -0
- package/dist/doctor/orphan-ac-bindings.d.ts.map +1 -0
- package/dist/doctor/orphan-ac-bindings.js +59 -0
- package/dist/doctor/orphan-ac-bindings.js.map +1 -0
- package/dist/doctor/project-identity.d.ts +128 -37
- package/dist/doctor/project-identity.d.ts.map +1 -1
- package/dist/doctor/project-identity.js +476 -63
- package/dist/doctor/project-identity.js.map +1 -1
- package/dist/doctor/projects.d.ts.map +1 -1
- package/dist/doctor/projects.js +43 -29
- package/dist/doctor/projects.js.map +1 -1
- package/dist/doctor/row-identity.d.ts +31 -0
- package/dist/doctor/row-identity.d.ts.map +1 -0
- package/dist/doctor/row-identity.js +93 -0
- package/dist/doctor/row-identity.js.map +1 -0
- package/dist/doctor/twin-collapse.d.ts +108 -2
- package/dist/doctor/twin-collapse.d.ts.map +1 -1
- package/dist/doctor/twin-collapse.js +309 -7
- package/dist/doctor/twin-collapse.js.map +1 -1
- package/dist/error-catalog.js +2 -2
- package/dist/error-catalog.js.map +1 -1
- package/dist/error-registry.js +1 -1
- package/dist/error-registry.js.map +1 -1
- package/dist/gateway-client/generated/types.gen.d.ts +22 -2
- package/dist/gateway-client/generated/types.gen.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +20 -11
- package/dist/init.js.map +1 -1
- package/dist/inject/index.d.ts.map +1 -1
- package/dist/inject/index.js +2 -3
- package/dist/inject/index.js.map +1 -1
- package/dist/internal.d.ts +5 -4
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +6 -4
- package/dist/internal.js.map +1 -1
- package/dist/lifecycle/verification/satisfies-validator.d.ts.map +1 -1
- package/dist/lifecycle/verification/satisfies-validator.js +10 -0
- package/dist/lifecycle/verification/satisfies-validator.js.map +1 -1
- package/dist/llm/credential-remove-entry.d.ts +59 -0
- package/dist/llm/credential-remove-entry.d.ts.map +1 -0
- package/dist/llm/credential-remove-entry.js +101 -0
- package/dist/llm/credential-remove-entry.js.map +1 -0
- package/dist/llm/oauth/device-code.d.ts +26 -6
- package/dist/llm/oauth/device-code.d.ts.map +1 -1
- package/dist/llm/oauth/device-code.js +44 -12
- package/dist/llm/oauth/device-code.js.map +1 -1
- package/dist/llm/plugin-facade.js +18202 -14682
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/memory/attention.d.ts.map +1 -1
- package/dist/memory/attention.js +5 -3
- package/dist/memory/attention.js.map +1 -1
- package/dist/memory/decisions.d.ts +48 -3
- package/dist/memory/decisions.d.ts.map +1 -1
- package/dist/memory/decisions.js +98 -14
- package/dist/memory/decisions.js.map +1 -1
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +19 -10
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/learnings.d.ts +6 -6
- package/dist/memory/manifest-identity.d.ts +171 -0
- package/dist/memory/manifest-identity.d.ts.map +1 -0
- package/dist/memory/manifest-identity.js +345 -0
- package/dist/memory/manifest-identity.js.map +1 -0
- package/dist/memory/mental-model-queue.d.ts +14 -4
- package/dist/memory/mental-model-queue.d.ts.map +1 -1
- package/dist/memory/mental-model-queue.js +64 -35
- package/dist/memory/mental-model-queue.js.map +1 -1
- package/dist/memory/patterns.d.ts +4 -4
- package/dist/memory/pipeline-manifest-sqlite.d.ts +47 -5
- package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.js +130 -14
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
- package/dist/memory/retrieval/observe.d.ts.map +1 -1
- package/dist/memory/retrieval/observe.js +2 -0
- package/dist/memory/retrieval/observe.js.map +1 -1
- package/dist/memory/transcript-scanner.js +1 -1
- package/dist/migration/manual/T10165-backfill-adr-index.d.ts.map +1 -1
- package/dist/migration/manual/T10165-backfill-adr-index.js +5 -1
- package/dist/migration/manual/T10165-backfill-adr-index.js.map +1 -1
- package/dist/nexus/deps.d.ts.map +1 -1
- package/dist/nexus/deps.js +7 -14
- package/dist/nexus/deps.js.map +1 -1
- package/dist/nexus/discover.d.ts.map +1 -1
- package/dist/nexus/discover.js +6 -9
- package/dist/nexus/discover.js.map +1 -1
- package/dist/nexus/fleet-status.d.ts +83 -0
- package/dist/nexus/fleet-status.d.ts.map +1 -0
- package/dist/nexus/fleet-status.js +414 -0
- package/dist/nexus/fleet-status.js.map +1 -0
- package/dist/nexus/git-state.d.ts +15 -0
- package/dist/nexus/git-state.d.ts.map +1 -1
- package/dist/nexus/git-state.js +77 -3
- package/dist/nexus/git-state.js.map +1 -1
- package/dist/nexus/identity.d.ts.map +1 -1
- package/dist/nexus/identity.js +4 -0
- package/dist/nexus/identity.js.map +1 -1
- package/dist/nexus/index.d.ts +4 -1
- package/dist/nexus/index.d.ts.map +1 -1
- package/dist/nexus/index.js +7 -1
- package/dist/nexus/index.js.map +1 -1
- package/dist/nexus/migrate-json-to-sqlite.d.ts +3 -2
- package/dist/nexus/migrate-json-to-sqlite.d.ts.map +1 -1
- package/dist/nexus/migrate-json-to-sqlite.js +9 -17
- 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/project-activity.d.ts +104 -0
- package/dist/nexus/project-activity.d.ts.map +1 -0
- package/dist/nexus/project-activity.js +150 -0
- package/dist/nexus/project-activity.js.map +1 -0
- package/dist/nexus/projects-clean.d.ts.map +1 -1
- package/dist/nexus/projects-clean.js +22 -11
- package/dist/nexus/projects-clean.js.map +1 -1
- package/dist/nexus/projects-scan.d.ts.map +1 -1
- package/dist/nexus/projects-scan.js +8 -13
- package/dist/nexus/projects-scan.js.map +1 -1
- package/dist/nexus/query.d.ts +2 -2
- package/dist/nexus/query.d.ts.map +1 -1
- package/dist/nexus/query.js +8 -31
- package/dist/nexus/query.js.map +1 -1
- package/dist/nexus/registry-errors.d.ts +61 -0
- package/dist/nexus/registry-errors.d.ts.map +1 -0
- package/dist/nexus/registry-errors.js +85 -0
- package/dist/nexus/registry-errors.js.map +1 -0
- package/dist/nexus/registry-roots.d.ts +5 -2
- package/dist/nexus/registry-roots.d.ts.map +1 -1
- package/dist/nexus/registry-roots.js +8 -10
- package/dist/nexus/registry-roots.js.map +1 -1
- package/dist/nexus/registry.d.ts +48 -5
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +151 -85
- package/dist/nexus/registry.js.map +1 -1
- package/dist/orchestrate/pivot.d.ts +4 -0
- package/dist/orchestrate/pivot.d.ts.map +1 -1
- package/dist/orchestrate/pivot.js +75 -12
- package/dist/orchestrate/pivot.js.map +1 -1
- package/dist/orchestrate/query-ops.d.ts.map +1 -1
- package/dist/orchestrate/query-ops.js +29 -27
- package/dist/orchestrate/query-ops.js.map +1 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +29 -3
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestrate/worktree-complete.d.ts.map +1 -1
- package/dist/orchestrate/worktree-complete.js +40 -2
- package/dist/orchestrate/worktree-complete.js.map +1 -1
- package/dist/orchestration/bootstrap.d.ts.map +1 -1
- package/dist/orchestration/bootstrap.js +20 -14
- package/dist/orchestration/bootstrap.js.map +1 -1
- package/dist/orchestration/index.d.ts +15 -1
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +25 -6
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/lead-rollup.d.ts +7 -1
- package/dist/orchestration/lead-rollup.d.ts.map +1 -1
- package/dist/orchestration/lead-rollup.js +6 -3
- package/dist/orchestration/lead-rollup.js.map +1 -1
- package/dist/orchestration/spawn-prompt.d.ts +26 -0
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +63 -92
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/orchestration/waves.d.ts +21 -10
- package/dist/orchestration/waves.d.ts.map +1 -1
- package/dist/orchestration/waves.js +38 -35
- package/dist/orchestration/waves.js.map +1 -1
- package/dist/paths.d.ts +9 -2
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +30 -13
- package/dist/paths.js.map +1 -1
- package/dist/phases/index.d.ts +1 -1
- package/dist/phases/index.d.ts.map +1 -1
- package/dist/phases/index.js +3 -4
- package/dist/phases/index.js.map +1 -1
- package/dist/project-info.d.ts +40 -3
- package/dist/project-info.d.ts.map +1 -1
- package/dist/project-info.js +74 -6
- package/dist/project-info.js.map +1 -1
- package/dist/project-lifecycle.d.ts +28 -7
- package/dist/project-lifecycle.d.ts.map +1 -1
- package/dist/project-lifecycle.js +114 -47
- package/dist/project-lifecycle.js.map +1 -1
- package/dist/project-scope.d.ts +70 -3
- package/dist/project-scope.d.ts.map +1 -1
- package/dist/project-scope.js +154 -15
- package/dist/project-scope.js.map +1 -1
- package/dist/release/ci-evidence.d.ts +190 -0
- package/dist/release/ci-evidence.d.ts.map +1 -1
- package/dist/release/ci-evidence.js +436 -4
- package/dist/release/ci-evidence.js.map +1 -1
- package/dist/release/open.d.ts +12 -2
- package/dist/release/open.d.ts.map +1 -1
- package/dist/release/open.js +32 -3
- package/dist/release/open.js.map +1 -1
- package/dist/release/preflight-skip.d.ts +73 -0
- package/dist/release/preflight-skip.d.ts.map +1 -0
- package/dist/release/preflight-skip.js +254 -0
- package/dist/release/preflight-skip.js.map +1 -0
- package/dist/render/decide/index.d.ts +51 -0
- package/dist/render/decide/index.d.ts.map +1 -0
- package/dist/render/decide/index.js +289 -0
- package/dist/render/decide/index.js.map +1 -0
- package/dist/render/index.d.ts +1 -0
- package/dist/render/index.d.ts.map +1 -1
- package/dist/render/index.js +1 -0
- package/dist/render/index.js.map +1 -1
- package/dist/render/nexus/graph/index.d.ts +5 -0
- package/dist/render/nexus/graph/index.d.ts.map +1 -1
- package/dist/render/nexus/graph/index.js +53 -0
- package/dist/render/nexus/graph/index.js.map +1 -1
- package/dist/scaffold/ensure-config.d.ts +14 -6
- package/dist/scaffold/ensure-config.d.ts.map +1 -1
- package/dist/scaffold/ensure-config.js +39 -17
- package/dist/scaffold/ensure-config.js.map +1 -1
- package/dist/scaffold/project-identity.d.ts +115 -23
- package/dist/scaffold/project-identity.d.ts.map +1 -1
- package/dist/scaffold/project-identity.js +196 -44
- package/dist/scaffold/project-identity.js.map +1 -1
- package/dist/sdk/validator-ac-pull.d.ts.map +1 -1
- package/dist/sdk/validator-ac-pull.js +2 -1
- package/dist/sdk/validator-ac-pull.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +18221 -14701
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sentient/cross-project-hygiene.d.ts +17 -6
- package/dist/sentient/cross-project-hygiene.d.ts.map +1 -1
- package/dist/sentient/cross-project-hygiene.js +22 -11
- package/dist/sentient/cross-project-hygiene.js.map +1 -1
- package/dist/sentient/propose-tick.d.ts.map +1 -1
- package/dist/sentient/propose-tick.js +2 -3
- package/dist/sentient/propose-tick.js.map +1 -1
- package/dist/sentient/stage-drift-tick.d.ts.map +1 -1
- package/dist/sentient/stage-drift-tick.js +2 -3
- package/dist/sentient/stage-drift-tick.js.map +1 -1
- package/dist/session/engine-ops.d.ts +13 -4
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +38 -45
- package/dist/session/engine-ops.js.map +1 -1
- package/dist/sessions/briefing.d.ts +7 -3
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +10 -10
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/drift-watchdog.d.ts.map +1 -1
- package/dist/sessions/drift-watchdog.js +11 -19
- package/dist/sessions/drift-watchdog.js.map +1 -1
- package/dist/sessions/focus-state-store.d.ts +103 -26
- package/dist/sessions/focus-state-store.d.ts.map +1 -1
- package/dist/sessions/focus-state-store.js +166 -37
- package/dist/sessions/focus-state-store.js.map +1 -1
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +9 -18
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/sessions/index.d.ts +4 -2
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +35 -6
- 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 -2
- package/dist/sessions/session-drift.js.map +1 -1
- package/dist/sessions/session-view.d.ts +8 -1
- package/dist/sessions/session-view.d.ts.map +1 -1
- package/dist/sessions/session-view.js +9 -2
- package/dist/sessions/session-view.js.map +1 -1
- package/dist/setup/config-json-merge.d.ts.map +1 -1
- package/dist/setup/config-json-merge.js +1 -0
- package/dist/setup/config-json-merge.js.map +1 -1
- package/dist/setup/index.d.ts +4 -2
- package/dist/setup/index.d.ts.map +1 -1
- package/dist/setup/index.js +6 -2
- package/dist/setup/index.js.map +1 -1
- package/dist/setup/sections/nexus-account.d.ts +32 -0
- package/dist/setup/sections/nexus-account.d.ts.map +1 -0
- package/dist/setup/sections/nexus-account.js +64 -0
- package/dist/setup/sections/nexus-account.js.map +1 -0
- package/dist/setup/wizard.d.ts +1 -1
- package/dist/setup/wizard.d.ts.map +1 -1
- package/dist/setup/wizard.js.map +1 -1
- package/dist/skills/manifests/research.js +2 -0
- package/dist/skills/manifests/research.js.map +1 -1
- package/dist/skills/orchestrator/startup.d.ts.map +1 -1
- package/dist/skills/orchestrator/startup.js +18 -31
- package/dist/skills/orchestrator/startup.js.map +1 -1
- package/dist/skills/orchestrator/validator.d.ts.map +1 -1
- package/dist/skills/orchestrator/validator.js +9 -2
- package/dist/skills/orchestrator/validator.js.map +1 -1
- package/dist/skills/validation.d.ts +4 -1
- package/dist/skills/validation.d.ts.map +1 -1
- package/dist/skills/validation.js +11 -3
- package/dist/skills/validation.js.map +1 -1
- package/dist/snapshot/index.d.ts.map +1 -1
- package/dist/snapshot/index.js +60 -53
- package/dist/snapshot/index.js.map +1 -1
- package/dist/spawn/agent-identity.d.ts +33 -1
- package/dist/spawn/agent-identity.d.ts.map +1 -1
- package/dist/spawn/agent-identity.js +53 -1
- package/dist/spawn/agent-identity.js.map +1 -1
- package/dist/spawn/branch-lock.d.ts +111 -7
- package/dist/spawn/branch-lock.d.ts.map +1 -1
- package/dist/spawn/branch-lock.js +296 -8
- package/dist/spawn/branch-lock.js.map +1 -1
- package/dist/spawn/index.d.ts +1 -1
- 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/stats/index.d.ts.map +1 -1
- package/dist/stats/index.js +3 -4
- package/dist/stats/index.js.map +1 -1
- package/dist/status/index.d.ts +12 -3
- package/dist/status/index.d.ts.map +1 -1
- package/dist/status/index.js +47 -5
- package/dist/status/index.js.map +1 -1
- package/dist/store/ac-binding-prune.d.ts +144 -0
- package/dist/store/ac-binding-prune.d.ts.map +1 -0
- package/dist/store/ac-binding-prune.js +293 -0
- package/dist/store/ac-binding-prune.js.map +1 -0
- package/dist/store/agent-registry-store.d.ts.map +1 -1
- package/dist/store/agent-registry-store.js +3 -2
- package/dist/store/agent-registry-store.js.map +1 -1
- package/dist/store/attachment-repair.d.ts.map +1 -1
- package/dist/store/attachment-repair.js +42 -3
- package/dist/store/attachment-repair.js.map +1 -1
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +30 -46
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/backup-recover-brain.d.ts +4 -0
- package/dist/store/backup-recover-brain.d.ts.map +1 -1
- package/dist/store/backup-recover-brain.js +2 -0
- package/dist/store/backup-recover-brain.js.map +1 -1
- package/dist/store/backup-recover.d.ts +9 -0
- package/dist/store/backup-recover.d.ts.map +1 -1
- package/dist/store/backup-recover.js +28 -1
- package/dist/store/backup-recover.js.map +1 -1
- package/dist/store/backup-sidecar.d.ts +115 -2
- package/dist/store/backup-sidecar.d.ts.map +1 -1
- package/dist/store/backup-sidecar.js +263 -3
- package/dist/store/backup-sidecar.js.map +1 -1
- package/dist/store/blob-keep.d.ts +135 -0
- package/dist/store/blob-keep.d.ts.map +1 -0
- package/dist/store/blob-keep.js +283 -0
- package/dist/store/blob-keep.js.map +1 -0
- package/dist/store/conduit-sqlite.d.ts.map +1 -1
- package/dist/store/conduit-sqlite.js +3 -2
- package/dist/store/conduit-sqlite.js.map +1 -1
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/converters.js +11 -0
- package/dist/store/converters.js.map +1 -1
- package/dist/store/credential-transfer.d.ts +37 -5
- package/dist/store/credential-transfer.d.ts.map +1 -1
- package/dist/store/credential-transfer.js +76 -18
- package/dist/store/credential-transfer.js.map +1 -1
- 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.map +1 -1
- package/dist/store/db-helpers.d.ts +35 -11
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +107 -38
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/display-id-alias.d.ts +529 -0
- package/dist/store/display-id-alias.d.ts.map +1 -0
- package/dist/store/display-id-alias.js +1063 -0
- package/dist/store/display-id-alias.js.map +1 -0
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +21 -0
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +35 -0
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/reconcile.d.ts.map +1 -1
- package/dist/store/exodus/reconcile.js +7 -2
- package/dist/store/exodus/reconcile.js.map +1 -1
- package/dist/store/exodus/recovery.d.ts.map +1 -1
- package/dist/store/exodus/recovery.js +20 -1
- package/dist/store/exodus/recovery.js.map +1 -1
- package/dist/store/exodus/runtime-targets.d.ts +3 -3
- package/dist/store/exodus/runtime-targets.js +3 -3
- package/dist/store/import-remap.d.ts +12 -1
- package/dist/store/import-remap.d.ts.map +1 -1
- package/dist/store/import-remap.js +14 -0
- package/dist/store/import-remap.js.map +1 -1
- package/dist/store/legacy-tasks-lineage.d.ts +3 -1
- package/dist/store/legacy-tasks-lineage.d.ts.map +1 -1
- package/dist/store/legacy-tasks-lineage.js +22 -3
- package/dist/store/legacy-tasks-lineage.js.map +1 -1
- package/dist/store/memory-accessor.js +1 -1
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/migration-manager.d.ts +61 -0
- package/dist/store/migration-manager.d.ts.map +1 -1
- package/dist/store/migration-manager.js +102 -4
- package/dist/store/migration-manager.js.map +1 -1
- package/dist/store/nexus-validation-schemas.d.ts +64 -0
- package/dist/store/nexus-validation-schemas.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.d.ts +8 -0
- package/dist/store/portable-bundle-import.d.ts.map +1 -1
- package/dist/store/portable-bundle-import.js +10 -0
- package/dist/store/portable-bundle-import.js.map +1 -1
- package/dist/store/portable-bundle-scan.d.ts.map +1 -1
- package/dist/store/portable-bundle-scan.js +1 -0
- 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 +15 -14
- package/dist/store/portable-bundle.js.map +1 -1
- package/dist/store/pre-repair-snapshot.d.ts +4 -1
- package/dist/store/pre-repair-snapshot.d.ts.map +1 -1
- package/dist/store/pre-repair-snapshot.js +5 -1
- package/dist/store/pre-repair-snapshot.js.map +1 -1
- package/dist/store/regenerators.d.ts +4 -2
- package/dist/store/regenerators.d.ts.map +1 -1
- package/dist/store/regenerators.js +7 -3
- package/dist/store/regenerators.js.map +1 -1
- package/dist/store/repair-malformed-dbs.d.ts +4 -0
- package/dist/store/repair-malformed-dbs.d.ts.map +1 -1
- package/dist/store/repair-malformed-dbs.js +3 -0
- package/dist/store/repair-malformed-dbs.js.map +1 -1
- package/dist/store/row-identity-flag.d.ts +26 -0
- package/dist/store/row-identity-flag.d.ts.map +1 -0
- package/dist/store/row-identity-flag.js +31 -0
- package/dist/store/row-identity-flag.js.map +1 -0
- package/dist/store/row-identity-registry.d.ts +61 -0
- package/dist/store/row-identity-registry.d.ts.map +1 -0
- package/dist/store/row-identity-registry.js +198 -0
- package/dist/store/row-identity-registry.js.map +1 -0
- package/dist/store/row-identity.d.ts +390 -0
- package/dist/store/row-identity.d.ts.map +1 -0
- package/dist/store/row-identity.js +1240 -0
- package/dist/store/row-identity.js.map +1 -0
- package/dist/store/safety-data-accessor.d.ts +10 -3
- package/dist/store/safety-data-accessor.d.ts.map +1 -1
- package/dist/store/safety-data-accessor.js +15 -4
- package/dist/store/safety-data-accessor.js.map +1 -1
- package/dist/store/schema/attachments.d.ts +1 -1
- package/dist/store/schema/audit.d.ts +4 -4
- package/dist/store/schema/background-jobs.d.ts +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +49 -1
- package/dist/store/schema/cleo-global/nexus.d.ts.map +1 -1
- package/dist/store/schema/cleo-global/nexus.js +17 -0
- 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 +4 -4
- package/dist/store/schema/cleo-project/docs.d.ts +17 -1
- package/dist/store/schema/cleo-project/docs.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/docs.js +10 -0
- package/dist/store/schema/cleo-project/docs.js.map +1 -1
- package/dist/store/schema/cleo-project/lifecycle.d.ts +4 -4
- package/dist/store/schema/cleo-project/nexus-graph.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/runtime.d.ts +3 -3
- package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts +87 -1
- package/dist/store/schema/cleo-project/tasks-core-batch2.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core-batch2.js +35 -0
- package/dist/store/schema/cleo-project/tasks-core-batch2.js.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +263 -7
- package/dist/store/schema/cleo-project/tasks-core.d.ts.map +1 -1
- package/dist/store/schema/cleo-project/tasks-core.js +77 -2
- package/dist/store/schema/cleo-project/tasks-core.js.map +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +7 -7
- package/dist/store/schema/lifecycle.d.ts +4 -4
- package/dist/store/schema/manifest.d.ts +1 -1
- package/dist/store/schema/memory-schema.d.ts +6 -6
- package/dist/store/schema/nexus-schema.d.ts +51 -3
- package/dist/store/schema/nexus-schema.d.ts.map +1 -1
- package/dist/store/schema/nexus-schema.js +28 -7
- 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 +6 -6
- package/dist/store/session-store.d.ts +65 -0
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +108 -7
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/split-brain-import.d.ts +2 -14
- package/dist/store/split-brain-import.d.ts.map +1 -1
- package/dist/store/split-brain-import.js +4 -19
- package/dist/store/split-brain-import.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts +279 -2
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +789 -91
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/sqlite.d.ts +15 -3
- package/dist/store/sqlite.d.ts.map +1 -1
- package/dist/store/sqlite.js +52 -20
- package/dist/store/sqlite.js.map +1 -1
- package/dist/store/store-write-guard.d.ts +9 -3
- package/dist/store/store-write-guard.d.ts.map +1 -1
- package/dist/store/store-write-guard.js +25 -4
- package/dist/store/store-write-guard.js.map +1 -1
- package/dist/store/sync/clock-store.d.ts +67 -0
- package/dist/store/sync/clock-store.d.ts.map +1 -0
- package/dist/store/sync/clock-store.js +117 -0
- package/dist/store/sync/clock-store.js.map +1 -0
- package/dist/store/sync/flags.d.ts +51 -0
- package/dist/store/sync/flags.d.ts.map +1 -0
- package/dist/store/sync/flags.js +81 -0
- package/dist/store/sync/flags.js.map +1 -0
- package/dist/store/sync/hlc.d.ts +115 -0
- package/dist/store/sync/hlc.d.ts.map +1 -0
- package/dist/store/sync/hlc.js +172 -0
- package/dist/store/sync/hlc.js.map +1 -0
- package/dist/store/sync/index.d.ts +20 -0
- package/dist/store/sync/index.d.ts.map +1 -0
- package/dist/store/sync/index.js +20 -0
- package/dist/store/sync/index.js.map +1 -0
- package/dist/store/sync/replica-registry.d.ts +85 -0
- package/dist/store/sync/replica-registry.d.ts.map +1 -0
- package/dist/store/sync/replica-registry.js +147 -0
- package/dist/store/sync/replica-registry.js.map +1 -0
- package/dist/store/sync/replica.d.ts +181 -0
- package/dist/store/sync/replica.d.ts.map +1 -0
- package/dist/store/sync/replica.js +305 -0
- package/dist/store/sync/replica.js.map +1 -0
- package/dist/store/sync/schema.d.ts +68 -0
- package/dist/store/sync/schema.d.ts.map +1 -0
- package/dist/store/sync/schema.js +130 -0
- package/dist/store/sync/schema.js.map +1 -0
- package/dist/store/sync/skew-hold.d.ts +71 -0
- package/dist/store/sync/skew-hold.d.ts.map +1 -0
- package/dist/store/sync/skew-hold.js +89 -0
- package/dist/store/sync/skew-hold.js.map +1 -0
- package/dist/store/table-classification.d.ts +11 -9
- package/dist/store/table-classification.d.ts.map +1 -1
- package/dist/store/table-classification.js +127 -33
- package/dist/store/table-classification.js.map +1 -1
- package/dist/store/task-claim.d.ts +144 -0
- package/dist/store/task-claim.d.ts.map +1 -0
- package/dist/store/task-claim.js +195 -0
- package/dist/store/task-claim.js.map +1 -0
- package/dist/store/task-version.d.ts +43 -5
- package/dist/store/task-version.d.ts.map +1 -1
- package/dist/store/task-version.js +113 -17
- package/dist/store/task-version.js.map +1 -1
- package/dist/store/tasks-schema.d.ts +2 -0
- package/dist/store/tasks-schema.d.ts.map +1 -1
- package/dist/store/tasks-schema.js +1 -0
- package/dist/store/tasks-schema.js.map +1 -1
- package/dist/store/tasks-sqlite.d.ts.map +1 -1
- package/dist/store/tasks-sqlite.js +10 -2
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/twin-collapse.d.ts +450 -22
- package/dist/store/twin-collapse.d.ts.map +1 -1
- package/dist/store/twin-collapse.js +1552 -49
- package/dist/store/twin-collapse.js.map +1 -1
- package/dist/store/umbrella-data-accessor.d.ts +10 -3
- package/dist/store/umbrella-data-accessor.d.ts.map +1 -1
- package/dist/store/umbrella-data-accessor.js +14 -4
- package/dist/store/umbrella-data-accessor.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +402 -50
- package/dist/store/validation-schemas.d.ts.map +1 -1
- package/dist/store/with-retry.d.ts +36 -0
- package/dist/store/with-retry.d.ts.map +1 -1
- package/dist/store/with-retry.js +51 -0
- package/dist/store/with-retry.js.map +1 -1
- package/dist/store/worktree-build-guard.d.ts +13 -4
- package/dist/store/worktree-build-guard.d.ts.map +1 -1
- package/dist/store/worktree-build-guard.js +21 -10
- package/dist/store/worktree-build-guard.js.map +1 -1
- package/dist/store/worktree-isolation-guard.d.ts +121 -10
- package/dist/store/worktree-isolation-guard.d.ts.map +1 -1
- package/dist/store/worktree-isolation-guard.js +155 -34
- package/dist/store/worktree-isolation-guard.js.map +1 -1
- package/dist/system/backup.d.ts +7 -0
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +5 -0
- package/dist/system/backup.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +6 -1
- package/dist/system/health.js.map +1 -1
- package/dist/system/inject-generate.d.ts.map +1 -1
- package/dist/system/inject-generate.js +23 -10
- package/dist/system/inject-generate.js.map +1 -1
- package/dist/system/project-health.d.ts +17 -2
- package/dist/system/project-health.d.ts.map +1 -1
- package/dist/system/project-health.js +19 -6
- package/dist/system/project-health.js.map +1 -1
- package/dist/task-tools/index.d.ts +1 -1
- package/dist/task-tools/index.d.ts.map +1 -1
- package/dist/task-tools/index.js +1 -1
- package/dist/task-tools/index.js.map +1 -1
- package/dist/task-tools/score-task-priority.d.ts +38 -0
- package/dist/task-tools/score-task-priority.d.ts.map +1 -1
- package/dist/task-tools/score-task-priority.js +51 -0
- package/dist/task-tools/score-task-priority.js.map +1 -1
- package/dist/task-work/claims.d.ts +215 -0
- package/dist/task-work/claims.d.ts.map +1 -0
- package/dist/task-work/claims.js +272 -0
- package/dist/task-work/claims.js.map +1 -0
- package/dist/task-work/index.d.ts +47 -3
- package/dist/task-work/index.d.ts.map +1 -1
- package/dist/task-work/index.js +74 -41
- package/dist/task-work/index.js.map +1 -1
- package/dist/tasks/ac-coverage-gate.d.ts.map +1 -1
- package/dist/tasks/ac-coverage-gate.js +3 -0
- package/dist/tasks/ac-coverage-gate.js.map +1 -1
- package/dist/tasks/ac-table.d.ts +35 -7
- package/dist/tasks/ac-table.d.ts.map +1 -1
- package/dist/tasks/ac-table.js +119 -14
- package/dist/tasks/ac-table.js.map +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +51 -4
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/analyze.d.ts.map +1 -1
- package/dist/tasks/analyze.js +3 -4
- package/dist/tasks/analyze.js.map +1 -1
- package/dist/tasks/backfill-child-projections.js +47 -6
- package/dist/tasks/backfill-child-projections.js.map +1 -1
- package/dist/tasks/change-set.d.ts +5 -0
- package/dist/tasks/change-set.d.ts.map +1 -1
- package/dist/tasks/change-set.js +59 -3
- package/dist/tasks/change-set.js.map +1 -1
- package/dist/tasks/complete.d.ts +16 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +33 -8
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/completion-evaluation.d.ts.map +1 -1
- package/dist/tasks/completion-evaluation.js +3 -0
- package/dist/tasks/completion-evaluation.js.map +1 -1
- package/dist/tasks/component-pr.d.ts +162 -1
- package/dist/tasks/component-pr.d.ts.map +1 -1
- package/dist/tasks/component-pr.js +560 -59
- package/dist/tasks/component-pr.js.map +1 -1
- package/dist/tasks/done-record.d.ts +14 -1
- package/dist/tasks/done-record.d.ts.map +1 -1
- package/dist/tasks/done-record.js +37 -0
- package/dist/tasks/done-record.js.map +1 -1
- package/dist/tasks/duplicate-detector.d.ts +20 -1
- package/dist/tasks/duplicate-detector.d.ts.map +1 -1
- package/dist/tasks/duplicate-detector.js +10 -2
- package/dist/tasks/duplicate-detector.js.map +1 -1
- package/dist/tasks/engine-wrap-ops.d.ts +19 -10
- package/dist/tasks/engine-wrap-ops.d.ts.map +1 -1
- package/dist/tasks/engine-wrap-ops.js +38 -10
- package/dist/tasks/engine-wrap-ops.js.map +1 -1
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +14 -3
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/graph-ops.d.ts +9 -2
- package/dist/tasks/graph-ops.d.ts.map +1 -1
- package/dist/tasks/graph-ops.js +24 -32
- package/dist/tasks/graph-ops.js.map +1 -1
- package/dist/tasks/plan.d.ts.map +1 -1
- package/dist/tasks/plan.js +16 -60
- package/dist/tasks/plan.js.map +1 -1
- package/dist/tasks/task-context.d.ts.map +1 -1
- package/dist/tasks/task-context.js +13 -0
- package/dist/tasks/task-context.js.map +1 -1
- package/dist/tasks/task-import.d.ts.map +1 -1
- package/dist/tasks/task-import.js +21 -12
- package/dist/tasks/task-import.js.map +1 -1
- package/dist/tasks/task-next.d.ts +25 -2
- package/dist/tasks/task-next.d.ts.map +1 -1
- package/dist/tasks/task-next.js +32 -13
- package/dist/tasks/task-next.js.map +1 -1
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +7 -5
- package/dist/tasks/update.js.map +1 -1
- package/dist/upgrade.d.ts +1 -1
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +48 -9
- package/dist/upgrade.js.map +1 -1
- package/dist/validation/compliance.d.ts +5 -1
- package/dist/validation/compliance.d.ts.map +1 -1
- package/dist/validation/compliance.js +24 -3
- package/dist/validation/compliance.js.map +1 -1
- package/dist/validation/doctor/checks.d.ts +20 -6
- package/dist/validation/doctor/checks.d.ts.map +1 -1
- package/dist/validation/doctor/checks.js +51 -8
- package/dist/validation/doctor/checks.js.map +1 -1
- package/dist/validation/index.d.ts +1 -1
- package/dist/validation/index.d.ts.map +1 -1
- package/dist/validation/index.js +1 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/protocol-common.d.ts +47 -2
- package/dist/validation/protocol-common.d.ts.map +1 -1
- package/dist/validation/protocol-common.js +86 -21
- package/dist/validation/protocol-common.js.map +1 -1
- package/dist/validation/validate-ops.d.ts.map +1 -1
- package/dist/validation/validate-ops.js +2 -3
- package/dist/validation/validate-ops.js.map +1 -1
- package/migrations/README.md +12 -0
- package/migrations/drizzle-cleo-global/20260929010000_t12512-registry-probed-opened/migration.sql +35 -0
- package/migrations/drizzle-cleo-global/20260929020000_t12721-git-state-head-committed-at/migration.sql +25 -0
- package/migrations/drizzle-cleo-project/20260928120000_t12341-row-uids/migration.sql +169 -0
- package/migrations/drizzle-cleo-project/20260929000000_t12535-docs-attachments-union-shape/migration.sql +21 -0
- package/migrations/drizzle-cleo-project/20260929120000_t12502-task-claim-leases/migration.sql +77 -0
- package/migrations/drizzle-cleo-project/20260929130000_t12736-claim-lease-iso-repair/migration.sql +37 -0
- package/migrations/sync-journal/20260929140000_t12342-sync-clock/migration.sql +42 -0
- package/package.json +23 -13
- package/schemas/project-info.schema.json +10 -4
- package/templates/CLEO-INJECTION.md +1 -1
- package/templates/CLEO-REFERENCE.md +7 -3
- package/templates/cleo-gitignore +11 -0
- package/templates/workflows/release-prepare.yml.tmpl +156 -10
package/dist/task-work/index.js
CHANGED
|
@@ -10,29 +10,14 @@ import { ExitCode } from '@cleocode/contracts';
|
|
|
10
10
|
import { CleoError } from '../errors.js';
|
|
11
11
|
import { assessKnowledgeCoverage } from '../nexus/knowledge.js';
|
|
12
12
|
import { resolveOrCwd } from '../paths.js';
|
|
13
|
-
import { readFocusState, readLiveFocus, writeFocusState, } from '../sessions/focus-state-store.js';
|
|
14
|
-
import { resolveSessionIdFromEnv } from '../sessions/session-id.js';
|
|
13
|
+
import { readFocusState, readLiveFocus, releaseLegacyPointer, resolveFocusSessionId, writeFocusState, } from '../sessions/focus-state-store.js';
|
|
15
14
|
import { trackBackgroundOp } from '../store/background-ops.js';
|
|
16
15
|
import { getTaskAccessor } from '../store/data-accessor.js';
|
|
17
16
|
import { logOperation } from '../tasks/add.js';
|
|
18
17
|
import { getUnresolvedDeps } from '../tasks/dependency-check.js';
|
|
19
18
|
import { isValidPipelineStage } from '../tasks/pipeline-stage.js';
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
*
|
|
23
|
-
* Env-first: a spawned agent's `CLEO_SESSION_ID` keys its own focus_state
|
|
24
|
-
* (`focus_state:<id>`); an orchestrator/CLI call with no session env resolves
|
|
25
|
-
* to `null`, which {@link readFocusState}/{@link writeFocusState} map to the
|
|
26
|
-
* legacy global `focus_state` key (backward-compatible — no behaviour change
|
|
27
|
-
* outside spawned agents). This is what stops two concurrent agents from
|
|
28
|
-
* clobbering each other's current task.
|
|
29
|
-
*
|
|
30
|
-
* @returns The resolved session id, or `null` for the legacy global key.
|
|
31
|
-
* @task T11345
|
|
32
|
-
*/
|
|
33
|
-
function resolveFocusSessionId() {
|
|
34
|
-
return resolveSessionIdFromEnv();
|
|
35
|
-
}
|
|
19
|
+
import { claimModeFor, releaseOwnClaim, resolveClaimant, } from './claims.js';
|
|
20
|
+
export { claimModeFor, claimSpawnedTask, heartbeatProjectSession, releaseOwnClaim, releaseSpawnClaim, renewClaimsForSession, renewProjectSessionClaims, renewTaskClaim, resolveClaimant, } from './claims.js';
|
|
36
21
|
/**
|
|
37
22
|
* RCASD planning stages — tasks in these stages auto-advance to 'implementation'
|
|
38
23
|
* when work begins (cleo start TXXX).
|
|
@@ -53,7 +38,7 @@ export async function currentTask(cwd, accessor) {
|
|
|
53
38
|
const acc = accessor ?? (await getTaskAccessor(cwd));
|
|
54
39
|
// T12660/T12684: the one validating focus reader — a pointer left behind by
|
|
55
40
|
// a completion (or the never-cleared legacy key) comes back stale.
|
|
56
|
-
const { state: focus, currentTask: live, staleFocus, } = await readLiveFocus(acc, resolveFocusSessionId());
|
|
41
|
+
const { state: focus, currentTask: live, staleFocus, } = await readLiveFocus(acc, await resolveFocusSessionId(cwd));
|
|
57
42
|
return {
|
|
58
43
|
currentTask: live,
|
|
59
44
|
...(staleFocus ? { staleFocus } : {}),
|
|
@@ -62,12 +47,49 @@ export async function currentTask(cwd, accessor) {
|
|
|
62
47
|
nextAction: focus?.nextAction ?? null,
|
|
63
48
|
};
|
|
64
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Refuse to start `taskId` while it has unresolved dependencies — the
|
|
52
|
+
* readiness check {@link startTask} runs before it takes any claim or writes
|
|
53
|
+
* focus. Exported so a composite verb (`pivot`) can run it BEFORE its own
|
|
54
|
+
* side effects instead of discovering the refusal half-way (T12502).
|
|
55
|
+
*
|
|
56
|
+
* @param acc - Task accessor.
|
|
57
|
+
* @param taskId - The task about to be started.
|
|
58
|
+
* @throws CleoError `DEPENDENCY_ERROR` naming the unresolved blockers.
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts
|
|
61
|
+
* await assertTaskStartable(acc, 'T2');
|
|
62
|
+
* ```
|
|
63
|
+
* @task T12502
|
|
64
|
+
*/
|
|
65
|
+
export async function assertTaskStartable(acc, taskId) {
|
|
66
|
+
const { tasks: allTasks } = await acc.queryTasks({});
|
|
67
|
+
const unresolvedDeps = getUnresolvedDeps(taskId, allTasks);
|
|
68
|
+
if (unresolvedDeps.length > 0) {
|
|
69
|
+
throw new CleoError(ExitCode.DEPENDENCY_ERROR, `Task ${taskId} is blocked by unresolved dependencies: ${unresolvedDeps.join(', ')}`, {
|
|
70
|
+
fix: `Complete blockers first: ${unresolvedDeps.map((d) => `cleo complete ${d}`).join(', ')}`,
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
65
74
|
/**
|
|
66
75
|
* Start working on a specific task.
|
|
76
|
+
*
|
|
77
|
+
* T12502: the start takes the caller session's claim lease on the task with a
|
|
78
|
+
* compare-and-set inside the same write transaction as the focus write. When
|
|
79
|
+
* another session holds the task the start is refused with `E_TASK_CLAIMED`
|
|
80
|
+
* naming the holder and lease expiry; `takeOver` takes an expired lease and
|
|
81
|
+
* `forceClaim` a live one (both audited). The human `assignee` is not touched.
|
|
82
|
+
* Starting a new task releases the lease this session held on its previous one.
|
|
83
|
+
*
|
|
84
|
+
* @param taskId - Task to start.
|
|
85
|
+
* @param cwd - Project root.
|
|
86
|
+
* @param accessor - Task accessor (tests inject one).
|
|
87
|
+
* @param options - Claim overrides (`--take-over`, `--force-claim`).
|
|
67
88
|
* @task T4462
|
|
68
89
|
* @task T4750
|
|
90
|
+
* @task T12502
|
|
69
91
|
*/
|
|
70
|
-
export async function startTask(taskId, cwd, accessor) {
|
|
92
|
+
export async function startTask(taskId, cwd, accessor, options = {}) {
|
|
71
93
|
if (!taskId) {
|
|
72
94
|
throw new CleoError(ExitCode.INVALID_INPUT, 'Task ID is required');
|
|
73
95
|
}
|
|
@@ -80,22 +102,17 @@ export async function startTask(taskId, cwd, accessor) {
|
|
|
80
102
|
});
|
|
81
103
|
}
|
|
82
104
|
// Block starting a task with unresolved dependencies
|
|
83
|
-
|
|
84
|
-
const unresolvedDeps = getUnresolvedDeps(taskId, allTasks);
|
|
85
|
-
if (unresolvedDeps.length > 0) {
|
|
86
|
-
throw new CleoError(ExitCode.DEPENDENCY_ERROR, `Task ${taskId} is blocked by unresolved dependencies: ${unresolvedDeps.join(', ')}`, {
|
|
87
|
-
fix: `Complete blockers first: ${unresolvedDeps.map((d) => `cleo complete ${d}`).join(', ')}`,
|
|
88
|
-
});
|
|
89
|
-
}
|
|
105
|
+
await assertTaskStartable(acc, taskId);
|
|
90
106
|
// Auto-advance pipelineStage: RCASD planning stages → implementation (T719)
|
|
91
107
|
// Best-effort: if pipelineStage is in planning stages, advance to implementation.
|
|
92
108
|
// This mirrors the lifecycle model: starting work means entering the IVTR phase.
|
|
93
109
|
const currentStage = task.pipelineStage;
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
// T11345 — read/write the CALLER's
|
|
98
|
-
|
|
110
|
+
const advanceStage = !!currentStage && isValidPipelineStage(currentStage) && PLANNING_STAGES.has(currentStage);
|
|
111
|
+
// T12502 — the caller's claim identity: its BOUND session, never a guess.
|
|
112
|
+
const claimant = await resolveClaimant(cwd);
|
|
113
|
+
// T11345/T12501 — read/write the CALLER's focus key: its bound session's,
|
|
114
|
+
// the same one `cleo current`, briefing and inject read.
|
|
115
|
+
const focusSessionId = await resolveFocusSessionId(cwd);
|
|
99
116
|
const focus = (await readFocusState(acc, focusSessionId)) ?? {};
|
|
100
117
|
const previousTask = focus.currentTask ?? null;
|
|
101
118
|
// Update focus
|
|
@@ -111,12 +128,17 @@ export async function startTask(taskId, cwd, accessor) {
|
|
|
111
128
|
}
|
|
112
129
|
focus.sessionNotes.push(noteEntry);
|
|
113
130
|
const projectRoot = resolveOrCwd(cwd);
|
|
114
|
-
await acc.transaction(async () => {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
131
|
+
const claim = await acc.transaction(async () => {
|
|
132
|
+
// T12502: claim first — a refusal rolls back before anything is written.
|
|
133
|
+
const held = await acc.claimTask(taskId, { ...claimant, mode: claimModeFor(options) });
|
|
134
|
+
if (advanceStage) {
|
|
135
|
+
await acc.updateTaskFields(taskId, { pipelineStage: 'implementation' });
|
|
136
|
+
}
|
|
137
|
+
if (previousTask && previousTask !== taskId) {
|
|
138
|
+
await releaseOwnClaim(acc, previousTask, claimant.sessionId);
|
|
118
139
|
}
|
|
119
|
-
await
|
|
140
|
+
await writeFocusState(acc, focusSessionId, focus);
|
|
141
|
+
await logOperation('task_start', taskId, { previousTask, title: task.title, claimedBy: held?.sessionId ?? null }, acc);
|
|
120
142
|
trackBackgroundOp(async () => {
|
|
121
143
|
const { hooks } = await import('../hooks/registry.js');
|
|
122
144
|
await hooks.dispatch('PreToolUse', projectRoot, {
|
|
@@ -125,23 +147,27 @@ export async function startTask(taskId, cwd, accessor) {
|
|
|
125
147
|
taskTitle: task.title,
|
|
126
148
|
});
|
|
127
149
|
});
|
|
150
|
+
return held;
|
|
128
151
|
});
|
|
129
152
|
return {
|
|
130
153
|
knowledgeCoverage: await assessKnowledgeCoverage(resolveOrCwd(cwd)),
|
|
131
154
|
taskId,
|
|
132
155
|
taskTitle: task.title,
|
|
133
156
|
previousTask,
|
|
157
|
+
claim,
|
|
134
158
|
};
|
|
135
159
|
}
|
|
136
160
|
/**
|
|
137
|
-
* Stop working on the current task.
|
|
161
|
+
* Stop working on the current task. T12502: releases the claim lease the
|
|
162
|
+
* caller's session holds on it (a lease held by another session is left).
|
|
138
163
|
* @task T4462
|
|
139
164
|
* @task T4750
|
|
165
|
+
* @task T12502
|
|
140
166
|
*/
|
|
141
167
|
export async function stopTask(cwd, accessor) {
|
|
142
168
|
const acc = accessor ?? (await getTaskAccessor(cwd));
|
|
143
|
-
// T11345 — read/write the CALLER's
|
|
144
|
-
const focusSessionId = resolveFocusSessionId();
|
|
169
|
+
// T11345/T12501 — read/write the CALLER's focus key (THE focus-key rule).
|
|
170
|
+
const focusSessionId = await resolveFocusSessionId(cwd);
|
|
145
171
|
const focus = await readFocusState(acc, focusSessionId);
|
|
146
172
|
const previousTask = focus?.currentTask ?? null;
|
|
147
173
|
if (!focus) {
|
|
@@ -153,8 +179,11 @@ export async function stopTask(cwd, accessor) {
|
|
|
153
179
|
focus.currentTask = null;
|
|
154
180
|
focus.nextAction = null;
|
|
155
181
|
const now = new Date().toISOString();
|
|
182
|
+
const claimant = taskId ? await resolveClaimant(cwd) : null;
|
|
156
183
|
const projectRoot = resolveOrCwd(cwd);
|
|
157
184
|
await acc.transaction(async () => {
|
|
185
|
+
if (taskId && claimant)
|
|
186
|
+
await releaseOwnClaim(acc, taskId, claimant.sessionId);
|
|
158
187
|
await writeFocusState(acc, focusSessionId, focus);
|
|
159
188
|
await logOperation('task_stop', previousTask ?? 'none', { previousTask }, acc);
|
|
160
189
|
if (taskId && task) {
|
|
@@ -169,6 +198,10 @@ export async function stopTask(cwd, accessor) {
|
|
|
169
198
|
});
|
|
170
199
|
}
|
|
171
200
|
});
|
|
201
|
+
// T12501: a bound caller's stop also releases a pre-upgrade legacy pointer
|
|
202
|
+
// to the same task, so unbound callers do not inherit a stopped focus.
|
|
203
|
+
if (taskId && focusSessionId)
|
|
204
|
+
await releaseLegacyPointer(acc, taskId);
|
|
172
205
|
return { previousTask };
|
|
173
206
|
}
|
|
174
207
|
/**
|
|
@@ -178,7 +211,7 @@ export async function stopTask(cwd, accessor) {
|
|
|
178
211
|
*/
|
|
179
212
|
export async function getWorkHistory(cwd, accessor) {
|
|
180
213
|
const acc = accessor ?? (await getTaskAccessor(cwd));
|
|
181
|
-
const focus = await readFocusState(acc, resolveFocusSessionId());
|
|
214
|
+
const focus = await readFocusState(acc, await resolveFocusSessionId(cwd));
|
|
182
215
|
const notes = focus?.sessionNotes ?? [];
|
|
183
216
|
const history = [];
|
|
184
217
|
for (const note of notes) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task-work/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,8BAA8B;AAC9B,OAAO,4BAA4B,CAAC;AAGpC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,cAAc,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task-work/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ac-coverage-gate.d.ts","sourceRoot":"","sources":["../../src/tasks/ac-coverage-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAUH,OAAO,KAAK,EAAE,YAAY,IAAI,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE9F;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAMzC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACE,EAAE,EAAE,KAAK,CAAC;IACV,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B,CAAC;AAEN;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAMD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"ac-coverage-gate.d.ts","sourceRoot":"","sources":["../../src/tasks/ac-coverage-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAUH,OAAO,KAAK,EAAE,YAAY,IAAI,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE9F;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAMzC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IACE,EAAE,EAAE,KAAK,CAAC;IACV,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B,CAAC;AAEN;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0EAA0E;IAC1E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,yDAAyD;IACzD,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAMD;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAkC3B;AAMD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,MAAM,EAAE,SAAS,KAAK,EAAE,GACvB,eAAe,CAsCjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,SAAS,aAAa,EAAE,EACrC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAC/B,aAAa,EAAE,CAGjB;AAMD;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,gDAAgD;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,4FAA4F;IAC5F,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,kBAAkB,EACzB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,qDAAqD;IACrD,IAAI,EAAE,aAAa,CAAC;IACpB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,WAAW,EAAE,aAAa,EAAE,CAAC;CAC9B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,0BAA0B,EACjC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,IAAI,CAAC,CAMf;AAMD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,IAAI,CAQrF"}
|
|
@@ -83,6 +83,9 @@ export async function computeAcCoverage(taskId, accessor) {
|
|
|
83
83
|
// from verification.passed. Keep its rows as history, never as proof.
|
|
84
84
|
if (b.evidenceAtomId === 'auto-coverage-verification-passed')
|
|
85
85
|
continue;
|
|
86
|
+
// T12341: evidence recorded against an earlier text of the criterion.
|
|
87
|
+
if (b.stale)
|
|
88
|
+
continue;
|
|
86
89
|
covered.add(b.acId);
|
|
87
90
|
}
|
|
88
91
|
const unsatisfied = acRows
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ac-coverage-gate.js","sourceRoot":"","sources":["../../src/tasks/ac-coverage-gate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ac-coverage-gate.js","sourceRoot":"","sources":["../../src/tasks/ac-coverage-gate.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/ac-table.d.ts
CHANGED
|
@@ -44,6 +44,10 @@ export type AcInsertRow = {
|
|
|
44
44
|
targetTaskId?: string | null;
|
|
45
45
|
projection?: string;
|
|
46
46
|
contentHash?: string | null;
|
|
47
|
+
/** Row uid to keep (T12341); omitted → the writer mints a new one. */
|
|
48
|
+
uid?: string | null;
|
|
49
|
+
/** Birth fingerprint to keep with the uid (T12341): write-once, never re-derived. */
|
|
50
|
+
birthFp?: string | null;
|
|
47
51
|
};
|
|
48
52
|
/**
|
|
49
53
|
* Canonical text used for AC hashing/idempotency. It deliberately ignores
|
|
@@ -107,6 +111,18 @@ export declare function planChildProjectionRebuild(parentId: string, children: r
|
|
|
107
111
|
export declare function rebuildChildProjectionAc(tx: TransactionAccessor, parentId: string, children: readonly ChildProjectionAuditInput[], updatedAt: string): Promise<ChildProjectionRebuildResult>;
|
|
108
112
|
/** Returns true when an AC row is the compatibility/typed projection for `childId`. */
|
|
109
113
|
export declare function isChildProjectionAcRow(row: AcRow, childId: string): boolean;
|
|
114
|
+
/**
|
|
115
|
+
* Which existing criterion each incoming AC continues, as uids (T12341): an
|
|
116
|
+
* incoming AC with the same text as an existing one keeps that one's uid (a
|
|
117
|
+
* reorder keeps identity); the rest take the uid of the unclaimed existing AC
|
|
118
|
+
* at the same position (an in-place edit keeps identity, so its evidence
|
|
119
|
+
* bindings follow it); anything left gets `null` and a new uid.
|
|
120
|
+
*
|
|
121
|
+
* @param existing - Current AC rows, ordered by ordinal.
|
|
122
|
+
* @param incomingTexts - Incoming AC texts, in their new order.
|
|
123
|
+
* @returns One uid (or `null`) per incoming AC.
|
|
124
|
+
*/
|
|
125
|
+
export declare function carryAcUids(existing: readonly AcRow[], incomingTexts: readonly string[]): Array<string | null>;
|
|
110
126
|
/**
|
|
111
127
|
* Result of `planAcUpdate` — the row + history mutations the caller must
|
|
112
128
|
* apply inside a transaction.
|
|
@@ -119,11 +135,15 @@ export interface AcUpdatePlan {
|
|
|
119
135
|
acId: string;
|
|
120
136
|
previousText: string;
|
|
121
137
|
reason: string;
|
|
138
|
+
acUid?: string | null;
|
|
122
139
|
}>;
|
|
123
140
|
/**
|
|
124
|
-
* When true the
|
|
125
|
-
*
|
|
126
|
-
*
|
|
141
|
+
* When true `inserts` is the task's COMPLETE AC set: {@link applyAcPlan}
|
|
142
|
+
* deletes rows whose id is absent from it, updates kept ids in place and
|
|
143
|
+
* inserts the rest (a diff, never delete-all-then-reinsert — T12789, so
|
|
144
|
+
* evidence bindings on surviving ACs are never cascade-deleted). Used by
|
|
145
|
+
* replace-all, shrink and child-projection rebuild/removal paths. When
|
|
146
|
+
* false `inserts` are appended as new rows.
|
|
127
147
|
*/
|
|
128
148
|
fullDelete: boolean;
|
|
129
149
|
}
|
|
@@ -156,7 +176,7 @@ export interface AcUpdatePlan {
|
|
|
156
176
|
* @param taskId — task being updated
|
|
157
177
|
* @param existing — current AC rows from the table (ordered by ordinal ASC)
|
|
158
178
|
* @param incoming — new AC items from `--acceptance "a|b|c"`
|
|
159
|
-
* @returns plan to be applied
|
|
179
|
+
* @returns plan to be applied with {@link applyAcPlan}
|
|
160
180
|
*/
|
|
161
181
|
export declare function planAcUpdate(taskId: string, existing: readonly AcRow[], incoming: readonly AcceptanceItem[]): AcUpdatePlan;
|
|
162
182
|
/**
|
|
@@ -166,14 +186,22 @@ export declare function planAcUpdate(taskId: string, existing: readonly AcRow[],
|
|
|
166
186
|
export declare function planChildProjectionRemoval(parentId: string, existing: readonly AcRow[], childId: string, reason: 'delete' | 'archive'): AcUpdatePlan;
|
|
167
187
|
/** Remove a direct child's parent-owned AC projection from row + legacy views. */
|
|
168
188
|
export declare function removeChildProjectionAc(tx: TransactionAccessor, parentId: string, childId: string, reason: 'delete' | 'archive', updatedAt: string): Promise<boolean>;
|
|
189
|
+
/**
|
|
190
|
+
* The subset of {@link TransactionAccessor} that {@link applyAcPlan} writes
|
|
191
|
+
* through — any open transaction accessor satisfies it.
|
|
192
|
+
*
|
|
193
|
+
* @task T12789
|
|
194
|
+
*/
|
|
195
|
+
export type AcPlanWriter = Pick<TransactionAccessor, 'appendAcHistory' | 'getAcRows' | 'deleteAcRowsByIds' | 'updateAcRows' | 'insertAcRows'>;
|
|
169
196
|
/**
|
|
170
197
|
* Convenience executor — apply an {@link AcUpdatePlan} against a transaction
|
|
171
|
-
* accessor in the required order: history append →
|
|
172
|
-
*
|
|
198
|
+
* accessor in the required order: history append → (for `fullDelete`) delete
|
|
199
|
+
* the ids that leave the set, update kept ids in place → insert new ids.
|
|
200
|
+
* Caller MUST have already opened a transaction.
|
|
173
201
|
*
|
|
174
202
|
* @param tx — open transaction accessor
|
|
175
203
|
* @param taskId — task whose AC rows are being mutated
|
|
176
204
|
* @param plan — pre-computed plan from {@link planAcUpdate} or {@link buildFreshAcRows}
|
|
177
205
|
*/
|
|
178
|
-
export declare function applyAcPlan(tx:
|
|
206
|
+
export declare function applyAcPlan(tx: AcPlanWriter, taskId: string, plan: AcUpdatePlan): Promise<void>;
|
|
179
207
|
//# sourceMappingURL=ac-table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ac-table.d.ts","sourceRoot":"","sources":["../../src/tasks/ac-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAEd,uBAAuB,EACvB,KAAK,EACL,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAI7B;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAKzD;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,gBAAgB,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ac-table.d.ts","sourceRoot":"","sources":["../../src/tasks/ac-table.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/ac-table.js
CHANGED
|
@@ -31,6 +31,17 @@ export function acItemToText(item) {
|
|
|
31
31
|
// JSON-parse when they detect a leading `{`.
|
|
32
32
|
return stableStringify(item);
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* The identity a re-inserted criterion keeps (T12341): its uid AND its birth
|
|
36
|
+
* fingerprint. The fingerprint is write-once; dropping it on a delete-and-
|
|
37
|
+
* reinsert would let the fill re-derive it from the NEW text, and every edit
|
|
38
|
+
* would then sync as a uid collision.
|
|
39
|
+
*/
|
|
40
|
+
function carriedIdentity(row) {
|
|
41
|
+
if (!row?.uid)
|
|
42
|
+
return {};
|
|
43
|
+
return { uid: row.uid, ...(row.birthFp ? { birthFp: row.birthFp } : {}) };
|
|
44
|
+
}
|
|
34
45
|
/** Deterministically stringify structured AC objects by sorting object keys recursively. */
|
|
35
46
|
function stableStringify(value) {
|
|
36
47
|
if (value === null || typeof value !== 'object')
|
|
@@ -191,11 +202,13 @@ function acRowToInsertRow(row) {
|
|
|
191
202
|
targetTaskId: row.targetTaskId,
|
|
192
203
|
projection: row.projection,
|
|
193
204
|
contentHash: row.contentHash,
|
|
205
|
+
...carriedIdentity(row),
|
|
194
206
|
};
|
|
195
207
|
}
|
|
196
|
-
function buildChildProjectionInsertRow(parentId, child, ordinal) {
|
|
208
|
+
function buildChildProjectionInsertRow(parentId, child, ordinal, carried) {
|
|
197
209
|
const sourceKey = childProjectionSourceKey(child.id);
|
|
198
210
|
return {
|
|
211
|
+
...carriedIdentity(carried),
|
|
199
212
|
id: buildAcRowId(parentId, sourceKey),
|
|
200
213
|
taskId: parentId,
|
|
201
214
|
ordinal,
|
|
@@ -369,7 +382,9 @@ export function planChildProjectionRebuild(parentId, children, existing) {
|
|
|
369
382
|
const childRows = existing.filter(isChildProjectionCandidate);
|
|
370
383
|
const nonChildInserts = nonChildRows.map(acRowToInsertRow);
|
|
371
384
|
const maxNonChildOrdinal = nonChildInserts.reduce((max, row) => (row.ordinal > max ? row.ordinal : max), 0);
|
|
372
|
-
|
|
385
|
+
// A child's projection row keeps its uid across rebuilds (T12341).
|
|
386
|
+
const childUids = new Map(childRows.map((row) => [row.targetTaskId ?? row.sourceKey, row]));
|
|
387
|
+
const childInserts = children.map((child, index) => buildChildProjectionInsertRow(parentId, child, maxNonChildOrdinal + index + 1, childUids.get(child.id) ?? childUids.get(childProjectionSourceKey(child.id))));
|
|
373
388
|
const inserts = [...nonChildInserts, ...childInserts];
|
|
374
389
|
assertUniqueGeneratedRows(parentId, inserts);
|
|
375
390
|
return {
|
|
@@ -377,6 +392,7 @@ export function planChildProjectionRebuild(parentId, children, existing) {
|
|
|
377
392
|
inserts,
|
|
378
393
|
history: childRows.map((row) => ({
|
|
379
394
|
acId: row.id,
|
|
395
|
+
...(row.uid ? { acUid: row.uid } : {}),
|
|
380
396
|
previousText: row.text,
|
|
381
397
|
reason: 'projection_rebuild',
|
|
382
398
|
})),
|
|
@@ -408,6 +424,38 @@ export function isChildProjectionAcRow(row, childId) {
|
|
|
408
424
|
row.sourceKey === `child:${childId}` ||
|
|
409
425
|
row.text.startsWith(`Complete child ${childId}: `));
|
|
410
426
|
}
|
|
427
|
+
/**
|
|
428
|
+
* Which existing criterion each incoming AC continues, as uids (T12341): an
|
|
429
|
+
* incoming AC with the same text as an existing one keeps that one's uid (a
|
|
430
|
+
* reorder keeps identity); the rest take the uid of the unclaimed existing AC
|
|
431
|
+
* at the same position (an in-place edit keeps identity, so its evidence
|
|
432
|
+
* bindings follow it); anything left gets `null` and a new uid.
|
|
433
|
+
*
|
|
434
|
+
* @param existing - Current AC rows, ordered by ordinal.
|
|
435
|
+
* @param incomingTexts - Incoming AC texts, in their new order.
|
|
436
|
+
* @returns One uid (or `null`) per incoming AC.
|
|
437
|
+
*/
|
|
438
|
+
export function carryAcUids(existing, incomingTexts) {
|
|
439
|
+
const out = incomingTexts.map(() => null);
|
|
440
|
+
const claimed = new Set();
|
|
441
|
+
incomingTexts.forEach((text, i) => {
|
|
442
|
+
const j = existing.findIndex((row, k) => !claimed.has(k) && row.uid && row.text === text);
|
|
443
|
+
if (j >= 0) {
|
|
444
|
+
claimed.add(j);
|
|
445
|
+
out[i] = existing[j]?.uid ?? null;
|
|
446
|
+
}
|
|
447
|
+
});
|
|
448
|
+
incomingTexts.forEach((_, i) => {
|
|
449
|
+
if (out[i] !== null || claimed.has(i))
|
|
450
|
+
return;
|
|
451
|
+
const row = existing[i];
|
|
452
|
+
if (!row?.uid)
|
|
453
|
+
return;
|
|
454
|
+
claimed.add(i);
|
|
455
|
+
out[i] = row.uid;
|
|
456
|
+
});
|
|
457
|
+
return out;
|
|
458
|
+
}
|
|
411
459
|
/**
|
|
412
460
|
* Plan the AC table mutations for a `cleo update --acceptance` call.
|
|
413
461
|
*
|
|
@@ -437,7 +485,7 @@ export function isChildProjectionAcRow(row, childId) {
|
|
|
437
485
|
* @param taskId — task being updated
|
|
438
486
|
* @param existing — current AC rows from the table (ordered by ordinal ASC)
|
|
439
487
|
* @param incoming — new AC items from `--acceptance "a|b|c"`
|
|
440
|
-
* @returns plan to be applied
|
|
488
|
+
* @returns plan to be applied with {@link applyAcPlan}
|
|
441
489
|
*/
|
|
442
490
|
export function planAcUpdate(taskId, existing, incoming) {
|
|
443
491
|
const incomingTexts = incoming.map(acItemToText);
|
|
@@ -464,13 +512,14 @@ export function planAcUpdate(taskId, existing, incoming) {
|
|
|
464
512
|
const tailRows = existing.slice(incomingTexts.length);
|
|
465
513
|
const history = tailRows.map((row) => ({
|
|
466
514
|
acId: row.id,
|
|
515
|
+
...(row.uid ? { acUid: row.uid } : {}),
|
|
467
516
|
previousText: row.text,
|
|
468
517
|
reason: 'edit',
|
|
469
518
|
}));
|
|
470
|
-
// For shrink we DO need to delete the tail.
|
|
471
|
-
//
|
|
472
|
-
//
|
|
473
|
-
//
|
|
519
|
+
// For shrink we DO need to delete the tail. The plan lists the kept
|
|
520
|
+
// prefix rows with their EXISTING ids + ordinals as the complete set;
|
|
521
|
+
// applyAcPlan's diff deletes only the tail ids, so the kept rows (and
|
|
522
|
+
// their evidence bindings) are never touched.
|
|
474
523
|
const keepInserts = existing.slice(0, incomingTexts.length).map((row) => ({
|
|
475
524
|
id: row.id,
|
|
476
525
|
taskId,
|
|
@@ -481,6 +530,7 @@ export function planAcUpdate(taskId, existing, incoming) {
|
|
|
481
530
|
targetTaskId: row.targetTaskId,
|
|
482
531
|
projection: row.projection,
|
|
483
532
|
contentHash: row.contentHash,
|
|
533
|
+
...carriedIdentity(row),
|
|
484
534
|
}));
|
|
485
535
|
return { inserts: keepInserts, history, fullDelete: true };
|
|
486
536
|
}
|
|
@@ -488,12 +538,16 @@ export function planAcUpdate(taskId, existing, incoming) {
|
|
|
488
538
|
// Case 3: replace-all (mid-edit, reorder, mixed, or text drift).
|
|
489
539
|
const history = existing.map((row) => ({
|
|
490
540
|
acId: row.id,
|
|
541
|
+
...(row.uid ? { acUid: row.uid } : {}),
|
|
491
542
|
previousText: row.text,
|
|
492
543
|
reason: 'edit',
|
|
493
544
|
}));
|
|
545
|
+
const uids = carryAcUids(existing, incomingTexts);
|
|
494
546
|
const inserts = incoming.map((item, idx) => {
|
|
495
547
|
const ordinal = idx + 1;
|
|
496
|
-
|
|
548
|
+
const uid = uids[idx];
|
|
549
|
+
const carried = uid ? existing.find((row) => row.uid === uid) : undefined;
|
|
550
|
+
return { ...buildInsertRow(taskId, item, ordinal), ...carriedIdentity(carried) };
|
|
497
551
|
});
|
|
498
552
|
assertUniqueGeneratedRows(taskId, inserts);
|
|
499
553
|
return { inserts, history, fullDelete: true };
|
|
@@ -518,9 +572,11 @@ export function planChildProjectionRemoval(parentId, existing, childId, reason)
|
|
|
518
572
|
targetTaskId: row.targetTaskId,
|
|
519
573
|
projection: row.projection,
|
|
520
574
|
contentHash: row.contentHash,
|
|
575
|
+
...carriedIdentity(row),
|
|
521
576
|
}));
|
|
522
577
|
const history = removed.map((row) => ({
|
|
523
578
|
acId: row.id,
|
|
579
|
+
...(row.uid ? { acUid: row.uid } : {}),
|
|
524
580
|
previousText: row.text,
|
|
525
581
|
reason,
|
|
526
582
|
}));
|
|
@@ -542,8 +598,9 @@ export async function removeChildProjectionAc(tx, parentId, childId, reason, upd
|
|
|
542
598
|
}
|
|
543
599
|
/**
|
|
544
600
|
* Convenience executor — apply an {@link AcUpdatePlan} against a transaction
|
|
545
|
-
* accessor in the required order: history append →
|
|
546
|
-
*
|
|
601
|
+
* accessor in the required order: history append → (for `fullDelete`) delete
|
|
602
|
+
* the ids that leave the set, update kept ids in place → insert new ids.
|
|
603
|
+
* Caller MUST have already opened a transaction.
|
|
547
604
|
*
|
|
548
605
|
* @param tx — open transaction accessor
|
|
549
606
|
* @param taskId — task whose AC rows are being mutated
|
|
@@ -553,11 +610,59 @@ export async function applyAcPlan(tx, taskId, plan) {
|
|
|
553
610
|
if (plan.history.length > 0) {
|
|
554
611
|
await tx.appendAcHistory(plan.history);
|
|
555
612
|
}
|
|
556
|
-
if (plan.fullDelete) {
|
|
557
|
-
|
|
613
|
+
if (!plan.fullDelete) {
|
|
614
|
+
if (plan.inserts.length > 0) {
|
|
615
|
+
await tx.insertAcRows(plan.inserts);
|
|
616
|
+
}
|
|
617
|
+
return;
|
|
618
|
+
}
|
|
619
|
+
// `fullDelete` means "the task's AC set becomes exactly `plan.inserts`".
|
|
620
|
+
// It is applied as a DIFF, never as delete-all-then-reinsert (T12789):
|
|
621
|
+
// deleting a row fires `ON DELETE CASCADE` on its evidence bindings wherever
|
|
622
|
+
// that FK is declared and enforced, so a wholesale delete would wipe the
|
|
623
|
+
// bindings of every AC that survives the edit unchanged under the same id.
|
|
624
|
+
// Only ids that leave the set are deleted; kept ids are updated in place.
|
|
625
|
+
const existing = await tx.getAcRows(taskId);
|
|
626
|
+
const existingById = new Map(existing.map((row) => [row.id, row]));
|
|
627
|
+
const targetIds = new Set(plan.inserts.map((row) => row.id));
|
|
628
|
+
const removedIds = existing.filter((row) => !targetIds.has(row.id)).map((row) => row.id);
|
|
629
|
+
const changed = plan.inserts.filter((row) => {
|
|
630
|
+
const current = existingById.get(row.id);
|
|
631
|
+
return current !== undefined && acRowDiffers(current, row);
|
|
632
|
+
});
|
|
633
|
+
const fresh = plan.inserts.filter((row) => !existingById.has(row.id));
|
|
634
|
+
if (removedIds.length > 0) {
|
|
635
|
+
// An edited criterion leaves under its old id and returns under a new id
|
|
636
|
+
// with the same uid: its bindings stay (stale until re-verified, T12341).
|
|
637
|
+
const carried = new Set(fresh.map((row) => row.uid).filter((u) => !!u));
|
|
638
|
+
const keep = existing
|
|
639
|
+
.filter((row) => removedIds.includes(row.id) && row.uid && carried.has(row.uid))
|
|
640
|
+
.map((row) => row.uid);
|
|
641
|
+
await tx.deleteAcRowsByIds(taskId, removedIds, keep);
|
|
642
|
+
}
|
|
643
|
+
if (changed.length > 0) {
|
|
644
|
+
// Park every changed row on a unique negative ordinal and a unique source
|
|
645
|
+
// key first: UNIQUE (task_id, ordinal) / (task_id, source_key) are checked
|
|
646
|
+
// per statement, so a reorder (A:1→2, B:2→1) collides mid-way otherwise.
|
|
647
|
+
await tx.updateAcRows(changed.map((row, index) => ({
|
|
648
|
+
...row,
|
|
649
|
+
ordinal: -(index + 1),
|
|
650
|
+
sourceKey: `reorder:${row.id}`,
|
|
651
|
+
})));
|
|
652
|
+
await tx.updateAcRows(changed);
|
|
558
653
|
}
|
|
559
|
-
if (
|
|
560
|
-
await tx.insertAcRows(
|
|
654
|
+
if (fresh.length > 0) {
|
|
655
|
+
await tx.insertAcRows(fresh);
|
|
561
656
|
}
|
|
562
657
|
}
|
|
658
|
+
/** True when applying `next` to the stored row `current` would change any column. */
|
|
659
|
+
function acRowDiffers(current, next) {
|
|
660
|
+
return (current.ordinal !== next.ordinal ||
|
|
661
|
+
current.text !== next.text ||
|
|
662
|
+
current.kind !== (next.kind ?? 'text') ||
|
|
663
|
+
current.sourceKey !== (next.sourceKey ?? `text:${next.ordinal}`) ||
|
|
664
|
+
current.targetTaskId !== (next.targetTaskId ?? null) ||
|
|
665
|
+
current.projection !== (next.projection ?? 'legacy') ||
|
|
666
|
+
current.contentHash !== (next.contentHash ?? null));
|
|
667
|
+
}
|
|
563
668
|
//# sourceMappingURL=ac-table.js.map
|