@cleocode/core 2026.9.8 → 2026.9.10
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/audit/reconstruct.d.ts +13 -43
- package/dist/audit/reconstruct.d.ts.map +1 -1
- package/dist/audit/reconstruct.js +295 -290
- package/dist/audit/reconstruct.js.map +1 -1
- package/dist/bootstrap.d.ts.map +1 -1
- package/dist/bootstrap.js +8 -2
- package/dist/bootstrap.js.map +1 -1
- package/dist/compliance/protocol-rules.d.ts.map +1 -1
- package/dist/compliance/protocol-rules.js +3 -1
- package/dist/compliance/protocol-rules.js.map +1 -1
- package/dist/dispatch/mutate-projection.d.ts.map +1 -1
- package/dist/dispatch/mutate-projection.js +12 -0
- package/dist/dispatch/mutate-projection.js.map +1 -1
- package/dist/dispatch/mvi-projection.d.ts +29 -6
- package/dist/dispatch/mvi-projection.d.ts.map +1 -1
- package/dist/dispatch/mvi-projection.js +109 -139
- package/dist/dispatch/mvi-projection.js.map +1 -1
- package/dist/docs/docs-read-model.d.ts +3 -2
- package/dist/docs/docs-read-model.d.ts.map +1 -1
- package/dist/docs/docs-read-model.js +4 -3
- package/dist/docs/docs-read-model.js.map +1 -1
- package/dist/docs/export-document.js +5129 -2297
- package/dist/docs/export-document.js.map +3 -3
- package/dist/docs/projection.d.ts +67 -0
- package/dist/docs/projection.d.ts.map +1 -0
- package/dist/docs/projection.js +370 -0
- package/dist/docs/projection.js.map +1 -0
- package/dist/doctor/acceptance-drift.d.ts +6 -2
- package/dist/doctor/acceptance-drift.d.ts.map +1 -1
- package/dist/doctor/acceptance-drift.js +43 -5
- package/dist/doctor/acceptance-drift.js.map +1 -1
- package/dist/doctor/knowledge-summary.d.ts +41 -0
- package/dist/doctor/knowledge-summary.d.ts.map +1 -0
- package/dist/doctor/knowledge-summary.js +81 -0
- package/dist/doctor/knowledge-summary.js.map +1 -0
- package/dist/doctor/knowledge.d.ts +192 -0
- package/dist/doctor/knowledge.d.ts.map +1 -0
- package/dist/doctor/knowledge.js +1864 -0
- package/dist/doctor/knowledge.js.map +1 -0
- package/dist/git/work-tree.d.ts +169 -0
- package/dist/git/work-tree.d.ts.map +1 -0
- package/dist/git/work-tree.js +341 -0
- package/dist/git/work-tree.js.map +1 -0
- package/dist/hooks/handlers/task-hooks.d.ts +8 -5
- package/dist/hooks/handlers/task-hooks.d.ts.map +1 -1
- package/dist/hooks/handlers/task-hooks.js +15 -60
- package/dist/hooks/handlers/task-hooks.js.map +1 -1
- package/dist/identity/cleo-identity.d.ts +13 -0
- package/dist/identity/cleo-identity.d.ts.map +1 -1
- package/dist/identity/cleo-identity.js +20 -6
- package/dist/identity/cleo-identity.js.map +1 -1
- package/dist/injection.d.ts.map +1 -1
- package/dist/injection.js +29 -13
- package/dist/injection.js.map +1 -1
- package/dist/internal.d.ts +3 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +4 -0
- 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 +124 -120
- package/dist/lifecycle/verification/satisfies-validator.js.map +1 -1
- package/dist/llm/plugin-facade.js +4047 -1726
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/memory/brain-backfill.d.ts +27 -12
- package/dist/memory/brain-backfill.d.ts.map +1 -1
- package/dist/memory/brain-backfill.js +325 -134
- package/dist/memory/brain-backfill.js.map +1 -1
- package/dist/memory/brain-doctor.d.ts +21 -0
- package/dist/memory/brain-doctor.d.ts.map +1 -1
- package/dist/memory/brain-doctor.js +111 -53
- package/dist/memory/brain-doctor.js.map +1 -1
- package/dist/memory/brain-links.d.ts.map +1 -1
- package/dist/memory/brain-links.js +31 -4
- package/dist/memory/brain-links.js.map +1 -1
- package/dist/memory/brain-reasoning.d.ts.map +1 -1
- package/dist/memory/brain-reasoning.js +28 -2
- package/dist/memory/brain-reasoning.js.map +1 -1
- package/dist/memory/brain-reconciler.d.ts +14 -19
- package/dist/memory/brain-reconciler.d.ts.map +1 -1
- package/dist/memory/brain-reconciler.js +70 -97
- package/dist/memory/brain-reconciler.js.map +1 -1
- package/dist/memory/brain-search.d.ts +2 -0
- package/dist/memory/brain-search.d.ts.map +1 -1
- package/dist/memory/brain-search.js +59 -29
- package/dist/memory/brain-search.js.map +1 -1
- package/dist/memory/brain-similarity.d.ts.map +1 -1
- package/dist/memory/brain-similarity.js +5 -4
- package/dist/memory/brain-similarity.js.map +1 -1
- package/dist/memory/brain-stub-prune.d.ts +31 -9
- package/dist/memory/brain-stub-prune.d.ts.map +1 -1
- package/dist/memory/brain-stub-prune.js +65 -18
- package/dist/memory/brain-stub-prune.js.map +1 -1
- package/dist/memory/brain-writer-handlers.d.ts +10 -1
- package/dist/memory/brain-writer-handlers.d.ts.map +1 -1
- package/dist/memory/brain-writer-handlers.js +23 -3
- package/dist/memory/brain-writer-handlers.js.map +1 -1
- package/dist/memory/brain-writer-thread.d.ts +11 -1
- package/dist/memory/brain-writer-thread.d.ts.map +1 -1
- package/dist/memory/brain-writer-thread.js +87 -20
- package/dist/memory/brain-writer-thread.js.map +1 -1
- package/dist/memory/brain-writer-worker.js +8 -1
- package/dist/memory/brain-writer-worker.js.map +1 -1
- package/dist/memory/decision-cross-link.d.ts +39 -0
- package/dist/memory/decision-cross-link.d.ts.map +1 -1
- package/dist/memory/decision-cross-link.js +316 -0
- package/dist/memory/decision-cross-link.js.map +1 -1
- package/dist/memory/decisions.d.ts +4 -1
- package/dist/memory/decisions.d.ts.map +1 -1
- package/dist/memory/decisions.js +7 -24
- package/dist/memory/decisions.js.map +1 -1
- package/dist/memory/dispatch-trace.d.ts +12 -5
- package/dist/memory/dispatch-trace.d.ts.map +1 -1
- package/dist/memory/dispatch-trace.js +17 -7
- package/dist/memory/dispatch-trace.js.map +1 -1
- package/dist/memory/eligibility.d.ts +51 -0
- package/dist/memory/eligibility.d.ts.map +1 -0
- package/dist/memory/eligibility.js +77 -0
- package/dist/memory/eligibility.js.map +1 -0
- 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 +10 -0
- package/dist/memory/engine-compat.js.map +1 -1
- package/dist/memory/extraction-gate.d.ts +21 -7
- package/dist/memory/extraction-gate.d.ts.map +1 -1
- package/dist/memory/extraction-gate.js +178 -216
- package/dist/memory/extraction-gate.js.map +1 -1
- package/dist/memory/graph-auto-populate.d.ts +38 -5
- package/dist/memory/graph-auto-populate.d.ts.map +1 -1
- package/dist/memory/graph-auto-populate.js +182 -60
- package/dist/memory/graph-auto-populate.js.map +1 -1
- package/dist/memory/graph-memory-bridge.d.ts +14 -1
- package/dist/memory/graph-memory-bridge.d.ts.map +1 -1
- package/dist/memory/graph-memory-bridge.js +66 -28
- package/dist/memory/graph-memory-bridge.js.map +1 -1
- package/dist/memory/index.d.ts +1 -19
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +1 -50
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/learnings.d.ts.map +1 -1
- package/dist/memory/learnings.js +2 -23
- package/dist/memory/learnings.js.map +1 -1
- package/dist/memory/manifest-filter.d.ts +21 -0
- package/dist/memory/manifest-filter.d.ts.map +1 -0
- package/dist/memory/manifest-filter.js +51 -0
- package/dist/memory/manifest-filter.js.map +1 -0
- package/dist/memory/manifest-ingestion.d.ts +28 -30
- package/dist/memory/manifest-ingestion.d.ts.map +1 -1
- package/dist/memory/manifest-ingestion.js +104 -235
- package/dist/memory/manifest-ingestion.js.map +1 -1
- package/dist/memory/observer-reflector.d.ts +2 -0
- package/dist/memory/observer-reflector.d.ts.map +1 -1
- package/dist/memory/observer-reflector.js +6 -49
- package/dist/memory/observer-reflector.js.map +1 -1
- package/dist/memory/patterns.d.ts +10 -0
- package/dist/memory/patterns.d.ts.map +1 -1
- package/dist/memory/patterns.js +25 -33
- package/dist/memory/patterns.js.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.d.ts +72 -9
- package/dist/memory/pipeline-manifest-sqlite.d.ts.map +1 -1
- package/dist/memory/pipeline-manifest-sqlite.js +508 -412
- package/dist/memory/pipeline-manifest-sqlite.js.map +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.d.ts.map +1 -1
- package/dist/memory/retrieval/build-retrieval-bundle.js +16 -15
- package/dist/memory/retrieval/build-retrieval-bundle.js.map +1 -1
- package/dist/memory/retrieval/fetch.d.ts +7 -0
- package/dist/memory/retrieval/fetch.d.ts.map +1 -1
- package/dist/memory/retrieval/fetch.js +14 -11
- package/dist/memory/retrieval/fetch.js.map +1 -1
- package/dist/memory/retrieval/observe.d.ts +7 -1
- package/dist/memory/retrieval/observe.d.ts.map +1 -1
- package/dist/memory/retrieval/observe.js +58 -4
- package/dist/memory/retrieval/observe.js.map +1 -1
- package/dist/memory/retrieval/search.d.ts +14 -1
- package/dist/memory/retrieval/search.d.ts.map +1 -1
- package/dist/memory/retrieval/search.js +133 -69
- package/dist/memory/retrieval/search.js.map +1 -1
- package/dist/memory/retrieval/telemetry.d.ts +31 -0
- package/dist/memory/retrieval/telemetry.d.ts.map +1 -0
- package/dist/memory/retrieval/telemetry.js +53 -0
- package/dist/memory/retrieval/telemetry.js.map +1 -0
- package/dist/nexus/analyze-orchestrator.d.ts +41 -9
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +257 -58
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/api-contracts.d.ts +2 -6
- package/dist/nexus/api-contracts.d.ts.map +1 -1
- package/dist/nexus/api-contracts.js +11 -2
- package/dist/nexus/api-contracts.js.map +1 -1
- package/dist/nexus/context.d.ts.map +1 -1
- package/dist/nexus/context.js +14 -37
- package/dist/nexus/context.js.map +1 -1
- package/dist/nexus/diff.d.ts.map +1 -1
- package/dist/nexus/diff.js +2 -1
- package/dist/nexus/diff.js.map +1 -1
- package/dist/nexus/identity.d.ts +29 -3
- package/dist/nexus/identity.d.ts.map +1 -1
- package/dist/nexus/identity.js +63 -12
- package/dist/nexus/identity.js.map +1 -1
- package/dist/nexus/impact.d.ts +21 -19
- package/dist/nexus/impact.d.ts.map +1 -1
- package/dist/nexus/impact.js +96 -192
- package/dist/nexus/impact.js.map +1 -1
- package/dist/nexus/knowledge.d.ts +80 -0
- package/dist/nexus/knowledge.d.ts.map +1 -0
- package/dist/nexus/knowledge.js +786 -0
- package/dist/nexus/knowledge.js.map +1 -0
- package/dist/nexus/living-brain.d.ts +8 -5
- package/dist/nexus/living-brain.d.ts.map +1 -1
- package/dist/nexus/living-brain.js +252 -188
- package/dist/nexus/living-brain.js.map +1 -1
- package/dist/nexus/registry.d.ts +11 -2
- package/dist/nexus/registry.d.ts.map +1 -1
- package/dist/nexus/registry.js +144 -128
- package/dist/nexus/registry.js.map +1 -1
- package/dist/nexus/source-roots.d.ts +16 -0
- package/dist/nexus/source-roots.d.ts.map +1 -0
- package/dist/nexus/source-roots.js +174 -0
- package/dist/nexus/source-roots.js.map +1 -0
- package/dist/nexus/task-evidence.d.ts +22 -0
- package/dist/nexus/task-evidence.d.ts.map +1 -0
- package/dist/nexus/task-evidence.js +210 -0
- package/dist/nexus/task-evidence.js.map +1 -0
- package/dist/nexus/tasks-bridge.d.ts +14 -7
- package/dist/nexus/tasks-bridge.d.ts.map +1 -1
- package/dist/nexus/tasks-bridge.js +81 -40
- package/dist/nexus/tasks-bridge.js.map +1 -1
- package/dist/orchestrate/lifecycle-ops.d.ts.map +1 -1
- package/dist/orchestrate/lifecycle-ops.js +170 -120
- package/dist/orchestrate/lifecycle-ops.js.map +1 -1
- package/dist/orchestrate/query-ops.d.ts +6 -7
- package/dist/orchestrate/query-ops.d.ts.map +1 -1
- package/dist/orchestrate/query-ops.js +509 -532
- package/dist/orchestrate/query-ops.js.map +1 -1
- package/dist/orchestration/bootstrap.d.ts +15 -1
- package/dist/orchestration/bootstrap.d.ts.map +1 -1
- package/dist/orchestration/bootstrap.js +21 -10
- package/dist/orchestration/bootstrap.js.map +1 -1
- package/dist/orchestration/index.d.ts +35 -3
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +64 -35
- package/dist/orchestration/index.js.map +1 -1
- package/dist/orchestration/lead-rollup.d.ts +24 -1
- package/dist/orchestration/lead-rollup.d.ts.map +1 -1
- package/dist/orchestration/lead-rollup.js +31 -11
- package/dist/orchestration/lead-rollup.js.map +1 -1
- package/dist/orchestration/spawn-prompt.d.ts.map +1 -1
- package/dist/orchestration/spawn-prompt.js +25 -45
- package/dist/orchestration/spawn-prompt.js.map +1 -1
- package/dist/orchestration/unblock.d.ts +15 -1
- package/dist/orchestration/unblock.d.ts.map +1 -1
- package/dist/orchestration/unblock.js +23 -12
- package/dist/orchestration/unblock.js.map +1 -1
- package/dist/orchestration/validate-spawn.d.ts.map +1 -1
- package/dist/orchestration/validate-spawn.js +3 -3
- package/dist/orchestration/validate-spawn.js.map +1 -1
- package/dist/orchestration/waves.d.ts +29 -13
- package/dist/orchestration/waves.d.ts.map +1 -1
- package/dist/orchestration/waves.js +43 -55
- package/dist/orchestration/waves.js.map +1 -1
- package/dist/paths.d.ts +17 -163
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +145 -496
- package/dist/paths.js.map +1 -1
- package/dist/project-info.d.ts +2 -11
- package/dist/project-info.d.ts.map +1 -1
- package/dist/project-info.js +3 -31
- package/dist/project-info.js.map +1 -1
- package/dist/project-scope.d.ts +239 -0
- package/dist/project-scope.d.ts.map +1 -0
- package/dist/project-scope.js +473 -0
- package/dist/project-scope.js.map +1 -0
- package/dist/release/pr-evidence.d.ts +23 -4
- package/dist/release/pr-evidence.d.ts.map +1 -1
- package/dist/release/pr-evidence.js +65 -9
- package/dist/release/pr-evidence.js.map +1 -1
- package/dist/render/nexus/graph/index.d.ts.map +1 -1
- package/dist/render/nexus/graph/index.js +4 -2
- package/dist/render/nexus/graph/index.js.map +1 -1
- package/dist/render/orchestration/audit-reconstruct.d.ts +11 -0
- package/dist/render/orchestration/audit-reconstruct.d.ts.map +1 -1
- package/dist/render/orchestration/audit-reconstruct.js +21 -6
- package/dist/render/orchestration/audit-reconstruct.js.map +1 -1
- package/dist/render/tasks/show.js +2 -1
- package/dist/render/tasks/show.js.map +1 -1
- package/dist/resources/spawn-wrapper.d.ts +82 -14
- package/dist/resources/spawn-wrapper.d.ts.map +1 -1
- package/dist/resources/spawn-wrapper.js +585 -27
- package/dist/resources/spawn-wrapper.js.map +1 -1
- package/dist/selfimprove/fix-gen.js +4055 -1734
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/sequence/index.d.ts.map +1 -1
- package/dist/sequence/index.js +76 -68
- package/dist/sequence/index.js.map +1 -1
- package/dist/session/canon-lint.d.ts +24 -3
- package/dist/session/canon-lint.d.ts.map +1 -1
- package/dist/session/canon-lint.js +72 -31
- package/dist/session/canon-lint.js.map +1 -1
- package/dist/session/engine-ops.d.ts +1 -4
- package/dist/session/engine-ops.d.ts.map +1 -1
- package/dist/session/engine-ops.js +42 -6
- package/dist/session/engine-ops.js.map +1 -1
- package/dist/sessions/briefing.d.ts +11 -1
- package/dist/sessions/briefing.d.ts.map +1 -1
- package/dist/sessions/briefing.js +76 -8
- package/dist/sessions/briefing.js.map +1 -1
- package/dist/sessions/handoff.d.ts +3 -1
- package/dist/sessions/handoff.d.ts.map +1 -1
- package/dist/sessions/handoff.js +2 -0
- package/dist/sessions/handoff.js.map +1 -1
- package/dist/shutdown-deadline.d.ts +24 -33
- package/dist/shutdown-deadline.d.ts.map +1 -1
- package/dist/shutdown-deadline.js +71 -14
- package/dist/shutdown-deadline.js.map +1 -1
- package/dist/shutdown.d.ts +21 -10
- package/dist/shutdown.d.ts.map +1 -1
- package/dist/shutdown.js +89 -42
- package/dist/shutdown.js.map +1 -1
- package/dist/skills/index.d.ts +1 -1
- 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/orchestrator/validator.d.ts +87 -20
- package/dist/skills/orchestrator/validator.d.ts.map +1 -1
- package/dist/skills/orchestrator/validator.js +330 -241
- package/dist/skills/orchestrator/validator.js.map +1 -1
- package/dist/store/agent-resolver.d.ts.map +1 -1
- package/dist/store/agent-resolver.js +16 -9
- package/dist/store/agent-resolver.js.map +1 -1
- package/dist/store/attachment-store.d.ts +4 -1
- package/dist/store/attachment-store.d.ts.map +1 -1
- package/dist/store/attachment-store.js +20 -3
- package/dist/store/attachment-store.js.map +1 -1
- package/dist/store/background-jobs.d.ts +426 -105
- package/dist/store/background-jobs.d.ts.map +1 -1
- package/dist/store/background-jobs.js +1208 -252
- package/dist/store/background-jobs.js.map +1 -1
- package/dist/store/background-ops.d.ts +145 -8
- package/dist/store/background-ops.d.ts.map +1 -1
- package/dist/store/background-ops.js +459 -15
- package/dist/store/background-ops.js.map +1 -1
- package/dist/store/backup-inspect.d.ts +48 -4
- package/dist/store/backup-inspect.d.ts.map +1 -1
- package/dist/store/backup-inspect.js +384 -4
- package/dist/store/backup-inspect.js.map +1 -1
- package/dist/store/converters.d.ts.map +1 -1
- package/dist/store/converters.js +19 -2
- package/dist/store/converters.js.map +1 -1
- package/dist/store/data-accessor.d.ts +9 -1
- package/dist/store/data-accessor.d.ts.map +1 -1
- package/dist/store/data-accessor.js +22 -5
- package/dist/store/data-accessor.js.map +1 -1
- package/dist/store/data-safety-central.d.ts.map +1 -1
- package/dist/store/data-safety-central.js +272 -232
- package/dist/store/data-safety-central.js.map +1 -1
- package/dist/store/db-helpers.d.ts +19 -3
- package/dist/store/db-helpers.d.ts.map +1 -1
- package/dist/store/db-helpers.js +42 -58
- package/dist/store/db-helpers.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts +63 -4
- package/dist/store/dual-scope-db.d.ts.map +1 -1
- package/dist/store/dual-scope-db.js +166 -19
- package/dist/store/dual-scope-db.js.map +1 -1
- package/dist/store/exodus/archive.d.ts +21 -7
- package/dist/store/exodus/archive.d.ts.map +1 -1
- package/dist/store/exodus/archive.js +60 -18
- package/dist/store/exodus/archive.js.map +1 -1
- package/dist/store/exodus/migrate.d.ts.map +1 -1
- package/dist/store/exodus/migrate.js +27 -23
- package/dist/store/exodus/migrate.js.map +1 -1
- package/dist/store/exodus/on-open.d.ts +16 -27
- package/dist/store/exodus/on-open.d.ts.map +1 -1
- package/dist/store/exodus/on-open.js +121 -169
- package/dist/store/exodus/on-open.js.map +1 -1
- package/dist/store/exodus/recovery.d.ts +90 -0
- package/dist/store/exodus/recovery.d.ts.map +1 -0
- package/dist/store/exodus/recovery.js +434 -0
- package/dist/store/exodus/recovery.js.map +1 -0
- package/dist/store/exodus/types.d.ts +15 -0
- package/dist/store/exodus/types.d.ts.map +1 -1
- package/dist/store/memory-accessor.d.ts +52 -3
- package/dist/store/memory-accessor.d.ts.map +1 -1
- package/dist/store/memory-accessor.js +122 -7
- package/dist/store/memory-accessor.js.map +1 -1
- package/dist/store/nexus-sqlite.d.ts +24 -6
- package/dist/store/nexus-sqlite.d.ts.map +1 -1
- package/dist/store/nexus-sqlite.js +39 -20
- package/dist/store/nexus-sqlite.js.map +1 -1
- package/dist/store/ports/domain-binding.d.ts.map +1 -1
- package/dist/store/ports/domain-binding.js +27 -5
- package/dist/store/ports/domain-binding.js.map +1 -1
- package/dist/store/schema/background-jobs.d.ts +181 -2
- package/dist/store/schema/background-jobs.d.ts.map +1 -1
- package/dist/store/schema/background-jobs.js +27 -3
- package/dist/store/schema/background-jobs.js.map +1 -1
- package/dist/store/schema/cleo-global/skills.d.ts +2 -2
- package/dist/store/schema/cleo-project/lifecycle.d.ts +2 -2
- package/dist/store/schema/cleo-project/runtime.d.ts +1 -1
- package/dist/store/schema/cleo-project/tasks-core.d.ts +1 -1
- package/dist/store/schema/lifecycle.d.ts +2 -2
- package/dist/store/schema/skills-schema.d.ts +2 -2
- package/dist/store/schema/tasks.d.ts +1 -1
- package/dist/store/session-store.d.ts +3 -1
- package/dist/store/session-store.d.ts.map +1 -1
- package/dist/store/session-store.js +252 -207
- package/dist/store/session-store.js.map +1 -1
- package/dist/store/sqlite-data-accessor.d.ts +39 -4
- package/dist/store/sqlite-data-accessor.d.ts.map +1 -1
- package/dist/store/sqlite-data-accessor.js +689 -527
- package/dist/store/sqlite-data-accessor.js.map +1 -1
- package/dist/store/tasks-sqlite.d.ts +3 -1
- package/dist/store/tasks-sqlite.d.ts.map +1 -1
- package/dist/store/tasks-sqlite.js +309 -279
- package/dist/store/tasks-sqlite.js.map +1 -1
- package/dist/store/validation-schemas.d.ts +8 -8
- package/dist/store/writer-lease.d.ts +80 -8
- package/dist/store/writer-lease.d.ts.map +1 -1
- package/dist/store/writer-lease.js +503 -134
- package/dist/store/writer-lease.js.map +1 -1
- package/dist/system/audit.d.ts +2 -1
- package/dist/system/audit.d.ts.map +1 -1
- package/dist/system/audit.js +118 -71
- package/dist/system/audit.js.map +1 -1
- package/dist/system/backup.d.ts.map +1 -1
- package/dist/system/backup.js +5 -5
- package/dist/system/backup.js.map +1 -1
- package/dist/system/inject-generate.js +1 -1
- package/dist/task-work/index.d.ts +3 -0
- package/dist/task-work/index.d.ts.map +1 -1
- package/dist/task-work/index.js +34 -37
- 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 +4 -0
- package/dist/tasks/ac-coverage-gate.js.map +1 -1
- package/dist/tasks/ac-immutability.d.ts +7 -4
- package/dist/tasks/ac-immutability.d.ts.map +1 -1
- package/dist/tasks/ac-immutability.js +19 -17
- package/dist/tasks/ac-immutability.js.map +1 -1
- package/dist/tasks/ac-table.d.ts +5 -5
- package/dist/tasks/ac-table.d.ts.map +1 -1
- package/dist/tasks/ac-table.js +26 -12
- package/dist/tasks/ac-table.js.map +1 -1
- package/dist/tasks/acceptance-input.d.ts +52 -0
- package/dist/tasks/acceptance-input.d.ts.map +1 -0
- package/dist/tasks/acceptance-input.js +259 -0
- package/dist/tasks/acceptance-input.js.map +1 -0
- package/dist/tasks/add.d.ts +67 -29
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +255 -97
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/complete.d.ts +16 -1
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +152 -55
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/decompose.d.ts +103 -0
- package/dist/tasks/decompose.d.ts.map +1 -0
- package/dist/tasks/decompose.js +224 -0
- package/dist/tasks/decompose.js.map +1 -0
- package/dist/tasks/delete.d.ts +5 -8
- package/dist/tasks/delete.d.ts.map +1 -1
- package/dist/tasks/delete.js +4 -3
- package/dist/tasks/delete.js.map +1 -1
- package/dist/tasks/dependency-check.d.ts +59 -0
- package/dist/tasks/dependency-check.d.ts.map +1 -1
- package/dist/tasks/dependency-check.js +73 -0
- package/dist/tasks/dependency-check.js.map +1 -1
- package/dist/tasks/deps-ready.d.ts +13 -1
- package/dist/tasks/deps-ready.d.ts.map +1 -1
- package/dist/tasks/deps-ready.js +16 -5
- package/dist/tasks/deps-ready.js.map +1 -1
- package/dist/tasks/engine-converters.d.ts +7 -0
- package/dist/tasks/engine-converters.d.ts.map +1 -1
- package/dist/tasks/engine-converters.js +8 -1
- package/dist/tasks/engine-converters.js.map +1 -1
- package/dist/tasks/evidence.d.ts +88 -27
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +344 -43
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/find.d.ts +16 -12
- package/dist/tasks/find.d.ts.map +1 -1
- package/dist/tasks/find.js +107 -93
- package/dist/tasks/find.js.map +1 -1
- package/dist/tasks/gate-preview.d.ts +73 -0
- package/dist/tasks/gate-preview.d.ts.map +1 -0
- package/dist/tasks/gate-preview.js +119 -0
- package/dist/tasks/gate-preview.js.map +1 -0
- package/dist/tasks/gate-runner.d.ts +88 -14
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +719 -250
- package/dist/tasks/gate-runner.js.map +1 -1
- package/dist/tasks/hierarchy-policy.d.ts +8 -0
- package/dist/tasks/hierarchy-policy.d.ts.map +1 -1
- package/dist/tasks/hierarchy-policy.js +9 -2
- package/dist/tasks/hierarchy-policy.js.map +1 -1
- package/dist/tasks/hierarchy.d.ts +67 -1
- package/dist/tasks/hierarchy.d.ts.map +1 -1
- package/dist/tasks/hierarchy.js +81 -1
- package/dist/tasks/hierarchy.js.map +1 -1
- package/dist/tasks/index.d.ts +3 -0
- package/dist/tasks/index.d.ts.map +1 -1
- package/dist/tasks/index.js +3 -0
- package/dist/tasks/index.js.map +1 -1
- package/dist/tasks/infer-add-params.d.ts +1 -20
- package/dist/tasks/infer-add-params.d.ts.map +1 -1
- package/dist/tasks/infer-add-params.js +2 -203
- package/dist/tasks/infer-add-params.js.map +1 -1
- package/dist/tasks/list.d.ts +7 -2
- package/dist/tasks/list.d.ts.map +1 -1
- package/dist/tasks/list.js +24 -36
- package/dist/tasks/list.js.map +1 -1
- package/dist/tasks/ops.d.ts +6 -61
- package/dist/tasks/ops.d.ts.map +1 -1
- package/dist/tasks/ops.js +5 -53
- package/dist/tasks/ops.js.map +1 -1
- package/dist/tasks/plan.d.ts +15 -1
- package/dist/tasks/plan.d.ts.map +1 -1
- package/dist/tasks/plan.js +23 -25
- package/dist/tasks/plan.js.map +1 -1
- package/dist/tasks/population.d.ts +46 -0
- package/dist/tasks/population.d.ts.map +1 -0
- package/dist/tasks/population.js +88 -0
- package/dist/tasks/population.js.map +1 -0
- package/dist/tasks/reconcile-scope.d.ts +157 -0
- package/dist/tasks/reconcile-scope.d.ts.map +1 -0
- package/dist/tasks/reconcile-scope.js +242 -0
- package/dist/tasks/reconcile-scope.js.map +1 -0
- package/dist/tasks/req.d.ts +51 -12
- package/dist/tasks/req.d.ts.map +1 -1
- package/dist/tasks/req.js +125 -69
- package/dist/tasks/req.js.map +1 -1
- package/dist/tasks/session-scope.d.ts +6 -31
- package/dist/tasks/session-scope.d.ts.map +1 -1
- package/dist/tasks/session-scope.js +3 -17
- package/dist/tasks/session-scope.js.map +1 -1
- package/dist/tasks/severity-attestation.d.ts +39 -10
- package/dist/tasks/severity-attestation.d.ts.map +1 -1
- package/dist/tasks/severity-attestation.js +75 -36
- package/dist/tasks/severity-attestation.js.map +1 -1
- package/dist/tasks/task-next.d.ts +5 -0
- package/dist/tasks/task-next.d.ts.map +1 -1
- package/dist/tasks/task-next.js +10 -9
- package/dist/tasks/task-next.js.map +1 -1
- package/dist/tasks/task-reparent.d.ts.map +1 -1
- package/dist/tasks/task-reparent.js +3 -13
- package/dist/tasks/task-reparent.js.map +1 -1
- package/dist/tasks/update.d.ts +20 -43
- package/dist/tasks/update.d.ts.map +1 -1
- package/dist/tasks/update.js +64 -49
- package/dist/tasks/update.js.map +1 -1
- package/dist/validation/engine-ops.d.ts +17 -1
- package/dist/validation/engine-ops.d.ts.map +1 -1
- package/dist/validation/engine-ops.js +149 -11
- package/dist/validation/engine-ops.js.map +1 -1
- package/dist/workgraph/reparent-preflight.d.ts +1 -1
- package/dist/workgraph/reparent-preflight.d.ts.map +1 -1
- package/dist/workgraph/reparent-preflight.js +6 -1
- package/dist/workgraph/reparent-preflight.js.map +1 -1
- package/dist/workgraph/scaffold-apply.d.ts.map +1 -1
- package/dist/workgraph/scaffold-apply.js +81 -76
- package/dist/workgraph/scaffold-apply.js.map +1 -1
- package/dist/workgraph/structure-validation.d.ts +1 -1
- package/dist/workgraph/structure-validation.d.ts.map +1 -1
- package/dist/workgraph/structure-validation.js +6 -1
- package/dist/workgraph/structure-validation.js.map +1 -1
- package/migrations/drizzle-tasks/20260919180000_t12263-job-ownership-fences/migration.sql +34 -0
- package/migrations/drizzle-tasks/20260919184500_t12265-durable-pending-proposals/migration.sql +4 -0
- package/package.json +18 -13
- package/schemas/config.schema.json +2 -2
- package/schemas/project-context.schema.json +12 -0
- package/templates/CLEO-INJECTION.md +114 -101
package/dist/tasks/find.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Lexical task search with explicit fuzzy opt-in and match provenance.
|
|
3
3
|
* @task T4460
|
|
4
4
|
* @epic T4454
|
|
5
5
|
*/
|
|
6
6
|
import { ExitCode } from '@cleocode/contracts';
|
|
7
|
+
import { discloseProjection } from '../dispatch/mvi-projection.js';
|
|
7
8
|
import { engineSuccess } from '../engine-result.js';
|
|
8
9
|
import { CleoError } from '../errors.js';
|
|
9
10
|
import { cleoErrorToEngineResult } from '../errors-to-engine.js';
|
|
10
11
|
import { taskListItemNext } from '../mvi-helpers.js';
|
|
11
|
-
import { resolveSagaMemberIds } from '../sagas/storage.js';
|
|
12
12
|
import { getTaskAccessor } from '../store/data-accessor.js';
|
|
13
13
|
import { taskToRecord } from './engine-converters.js';
|
|
14
|
+
import { paginateTaskPopulation, readTaskPopulation } from './population.js';
|
|
14
15
|
/**
|
|
15
16
|
* Predicate for the unified urgency surface (T9905).
|
|
16
17
|
*
|
|
@@ -40,7 +41,7 @@ export function isUrgentTask(task) {
|
|
|
40
41
|
* number of English sentences, so this tier is noise whenever anything
|
|
41
42
|
* better exists.
|
|
42
43
|
*
|
|
43
|
-
* {@link findTasks} keeps the weak tier only when NO strong match was found,
|
|
44
|
+
* With explicit fuzzy opt-in, {@link findTasks} keeps the weak tier only when NO strong match was found,
|
|
44
45
|
* which preserves typo tolerance for genuinely obscure queries without
|
|
45
46
|
* letting the weak tier flood a normal search.
|
|
46
47
|
*
|
|
@@ -224,11 +225,11 @@ export function extractInlineFilters(options) {
|
|
|
224
225
|
return next;
|
|
225
226
|
}
|
|
226
227
|
/**
|
|
227
|
-
* Search tasks by fuzzy matching, ID
|
|
228
|
+
* Search tasks lexically, by explicit fuzzy matching, ID, exact title, or filters.
|
|
228
229
|
* Returns minimal fields only (context-efficient).
|
|
229
230
|
*
|
|
230
231
|
* Accepts any of:
|
|
231
|
-
* - positional `query` for
|
|
232
|
+
* - positional `query` for lexical title/description search (`fuzzy` opts in)
|
|
232
233
|
* - `id` prefix
|
|
233
234
|
* - `status` / `kind` filter (any of these alone is sufficient — no
|
|
234
235
|
* query required, returns all matches)
|
|
@@ -240,6 +241,16 @@ export function extractInlineFilters(options) {
|
|
|
240
241
|
*/
|
|
241
242
|
export async function findTasks(rawOptions, cwd, accessor) {
|
|
242
243
|
const options = extractInlineFilters(rawOptions);
|
|
244
|
+
const supportedFields = ['title', 'description', 'notes', 'id'];
|
|
245
|
+
if (options.field && !supportedFields.includes(options.field)) {
|
|
246
|
+
throw new CleoError(ExitCode.INVALID_INPUT, `Unsupported search field '${options.field}'; use title, description, notes, or id`);
|
|
247
|
+
}
|
|
248
|
+
if (options.exact && (options.fuzzy || (options.field && options.field !== 'title'))) {
|
|
249
|
+
throw new CleoError(ExitCode.INVALID_INPUT, 'Exact title search cannot be combined with fuzzy or another field');
|
|
250
|
+
}
|
|
251
|
+
const fields = options.field
|
|
252
|
+
? [options.field]
|
|
253
|
+
: ['title', 'description'];
|
|
243
254
|
// T10108: an empty-string or whitespace-only `query` is the same as no
|
|
244
255
|
// query — without this, `fuzzyScore('', '<any title>')` returns 80 for
|
|
245
256
|
// every task (the empty string is a substring of every string), bypassing
|
|
@@ -256,66 +267,13 @@ export async function findTasks(rawOptions, cwd, accessor) {
|
|
|
256
267
|
});
|
|
257
268
|
}
|
|
258
269
|
const acc = accessor ?? (await getTaskAccessor(cwd));
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
let
|
|
266
|
-
if (options.parent) {
|
|
267
|
-
sagaMemberIds = await resolveSagaMemberIds(acc, options.parent);
|
|
268
|
-
}
|
|
269
|
-
// Use targeted query with status/label/parent filters when available —
|
|
270
|
-
// push them into the accessor so SQLite-backed accessors benefit from the
|
|
271
|
-
// existing query predicates. T9904 (label) / T10108 (parent).
|
|
272
|
-
const filters = {};
|
|
273
|
-
if (options.status) {
|
|
274
|
-
filters.status = options.status;
|
|
275
|
-
}
|
|
276
|
-
if (options.label) {
|
|
277
|
-
filters.label = options.label;
|
|
278
|
-
}
|
|
279
|
-
// T10108: skip the raw parentId filter when routing through the Saga helper;
|
|
280
|
-
// the member-set intersection below restricts the result in-memory instead.
|
|
281
|
-
if (options.parent && sagaMemberIds === null) {
|
|
282
|
-
filters.parentId = options.parent;
|
|
283
|
-
}
|
|
284
|
-
const queryResult = await acc.queryTasks(filters);
|
|
285
|
-
let allTasks = [...queryResult.tasks];
|
|
286
|
-
// T10108: Saga path — restrict the queried set to the saga's member IDs.
|
|
287
|
-
if (sagaMemberIds !== null) {
|
|
288
|
-
const memberOrder = new Map();
|
|
289
|
-
for (let idx = 0; idx < sagaMemberIds.length; idx++) {
|
|
290
|
-
const id = sagaMemberIds[idx];
|
|
291
|
-
if (id !== undefined)
|
|
292
|
-
memberOrder.set(id, idx);
|
|
293
|
-
}
|
|
294
|
-
const memberSet = new Set(sagaMemberIds);
|
|
295
|
-
allTasks = allTasks
|
|
296
|
-
.filter((t) => memberSet.has(t.id))
|
|
297
|
-
.sort((a, b) => (memberOrder.get(a.id) ?? 0) - (memberOrder.get(b.id) ?? 0));
|
|
298
|
-
}
|
|
299
|
-
// Include archive if requested
|
|
300
|
-
if (options.includeArchive) {
|
|
301
|
-
const archive = await acc.loadArchive();
|
|
302
|
-
if (archive?.archivedTasks) {
|
|
303
|
-
let archivedTasks = archive.archivedTasks;
|
|
304
|
-
if (options.status) {
|
|
305
|
-
archivedTasks = archivedTasks.filter((t) => t.status === options.status);
|
|
306
|
-
}
|
|
307
|
-
if (options.label) {
|
|
308
|
-
// T9904 — archive doesn't flow through queryTasks; apply the label
|
|
309
|
-
// predicate here so includeArchive composes correctly.
|
|
310
|
-
archivedTasks = archivedTasks.filter((t) => (t.labels ?? []).includes(options.label));
|
|
311
|
-
}
|
|
312
|
-
allTasks = [...allTasks, ...archivedTasks];
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
// T944/T9072: kind filter — applied after status/archive resolution
|
|
316
|
-
if (options.kind) {
|
|
317
|
-
allTasks = allTasks.filter((t) => t.kind === options.kind);
|
|
318
|
-
}
|
|
270
|
+
const filters = {
|
|
271
|
+
status: options.status,
|
|
272
|
+
label: options.label,
|
|
273
|
+
parentId: options.parent,
|
|
274
|
+
kind: options.kind,
|
|
275
|
+
};
|
|
276
|
+
let allTasks = await readTaskPopulation(acc, filters, options.includeArchive);
|
|
319
277
|
// T9905: unified urgency filter. Disjunctive across the two orthogonal axes:
|
|
320
278
|
// priority IN ('critical','high') OR severity IN ('P0','P1')
|
|
321
279
|
if (options.urgent) {
|
|
@@ -341,6 +299,12 @@ export async function findTasks(rawOptions, cwd, accessor) {
|
|
|
341
299
|
depends: t.depends ?? [],
|
|
342
300
|
size: t.size ?? undefined,
|
|
343
301
|
severity: t.severity ?? undefined,
|
|
302
|
+
match: {
|
|
303
|
+
kind: 'id',
|
|
304
|
+
fields: ['id'],
|
|
305
|
+
terms: [idQuery],
|
|
306
|
+
reason: 'Case-insensitive ID equality, prefix, or substring',
|
|
307
|
+
},
|
|
344
308
|
score: t.id.toUpperCase() === idQuery ? 100 : t.id.toUpperCase().startsWith(idQuery) ? 80 : 50,
|
|
345
309
|
}));
|
|
346
310
|
}
|
|
@@ -361,12 +325,18 @@ export async function findTasks(rawOptions, cwd, accessor) {
|
|
|
361
325
|
size: t.size ?? undefined,
|
|
362
326
|
severity: t.severity ?? undefined,
|
|
363
327
|
score: 100,
|
|
328
|
+
match: {
|
|
329
|
+
kind: 'exact',
|
|
330
|
+
fields: ['title'],
|
|
331
|
+
terms: [queryStr],
|
|
332
|
+
reason: 'Exact case-sensitive title equality',
|
|
333
|
+
},
|
|
364
334
|
}));
|
|
365
335
|
}
|
|
366
336
|
else if (options.query == null) {
|
|
367
337
|
// Filter-only mode — return every task the status/kind filter already
|
|
368
338
|
// matched. All-equal score=50 so pagination is stable. T1187-followup.
|
|
369
|
-
searchType = '
|
|
339
|
+
searchType = 'filter';
|
|
370
340
|
queryStr = '';
|
|
371
341
|
results = allTasks.map((t) => ({
|
|
372
342
|
id: t.id,
|
|
@@ -379,17 +349,49 @@ export async function findTasks(rawOptions, cwd, accessor) {
|
|
|
379
349
|
size: t.size ?? undefined,
|
|
380
350
|
severity: t.severity ?? undefined,
|
|
381
351
|
score: 50,
|
|
352
|
+
match: {
|
|
353
|
+
kind: 'filter',
|
|
354
|
+
fields: [],
|
|
355
|
+
terms: [],
|
|
356
|
+
reason: 'Matched explicit task filters; no text query',
|
|
357
|
+
},
|
|
382
358
|
}));
|
|
383
359
|
}
|
|
384
360
|
else {
|
|
385
|
-
//
|
|
386
|
-
searchType = 'fuzzy';
|
|
361
|
+
// Lexical by default; subsequence matching requires explicit opt-in.
|
|
362
|
+
searchType = options.fuzzy ? 'fuzzy' : 'lexical';
|
|
387
363
|
queryStr = options.query;
|
|
388
364
|
const scored = [];
|
|
389
365
|
for (const t of allTasks) {
|
|
390
|
-
const
|
|
391
|
-
|
|
392
|
-
|
|
366
|
+
const texts = {
|
|
367
|
+
title: t.title,
|
|
368
|
+
description: t.description ?? '',
|
|
369
|
+
notes: (t.notes ?? []).join('\n'),
|
|
370
|
+
id: t.id,
|
|
371
|
+
};
|
|
372
|
+
const terms = queryStr.toLowerCase().trim().split(/\s+/);
|
|
373
|
+
const candidates = fields
|
|
374
|
+
.map((field) => {
|
|
375
|
+
const text = texts[field];
|
|
376
|
+
const literalTerms = terms.filter((term) => text.toLowerCase().includes(term));
|
|
377
|
+
const score = options.fuzzy || literalTerms.length > 0
|
|
378
|
+
? fuzzyScore(queryStr, text) * (field === 'description' ? 0.7 : 1)
|
|
379
|
+
: 0;
|
|
380
|
+
return { field, score, literalTerms };
|
|
381
|
+
})
|
|
382
|
+
.filter((candidate) => candidate.score > 0);
|
|
383
|
+
const score = Math.max(0, ...candidates.map((candidate) => candidate.score));
|
|
384
|
+
const literalTerms = [...new Set(candidates.flatMap((candidate) => candidate.literalTerms))];
|
|
385
|
+
const match = {
|
|
386
|
+
kind: literalTerms.length ? 'lexical' : 'fuzzy',
|
|
387
|
+
fields: candidates
|
|
388
|
+
.filter((candidate) => !literalTerms.length || candidate.literalTerms.length > 0)
|
|
389
|
+
.map((candidate) => candidate.field),
|
|
390
|
+
terms: literalTerms,
|
|
391
|
+
reason: literalTerms.length
|
|
392
|
+
? 'Case-insensitive literal query terms in the named fields'
|
|
393
|
+
: 'Explicit fuzzy opt-in: character subsequence, not literal query terms',
|
|
394
|
+
};
|
|
393
395
|
if (score > 0) {
|
|
394
396
|
scored.push({
|
|
395
397
|
id: t.id,
|
|
@@ -402,6 +404,7 @@ export async function findTasks(rawOptions, cwd, accessor) {
|
|
|
402
404
|
size: t.size ?? undefined,
|
|
403
405
|
severity: t.severity ?? undefined,
|
|
404
406
|
score: Math.round(score),
|
|
407
|
+
match,
|
|
405
408
|
});
|
|
406
409
|
}
|
|
407
410
|
}
|
|
@@ -411,29 +414,24 @@ export async function findTasks(rawOptions, cwd, accessor) {
|
|
|
411
414
|
// makes `total` useless as a signal. When nothing matches strongly the
|
|
412
415
|
// weak tier is all there is, so keep it rather than return nothing.
|
|
413
416
|
const hasStrong = scored.some((r) => r.score >= RELEVANCE_STRONG_MIN);
|
|
414
|
-
const relevant = hasStrong ? scored.filter((r) => r.score >= RELEVANCE_STRONG_MIN) : scored;
|
|
417
|
+
const relevant = options.fuzzy && hasStrong ? scored.filter((r) => r.score >= RELEVANCE_STRONG_MIN) : scored;
|
|
415
418
|
results = relevant.sort((a, b) => b.score - a.score);
|
|
416
419
|
}
|
|
417
420
|
const total = results.length;
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
// GH #1302 — `limit === 0` means NO LIMIT here, as it always has in
|
|
421
|
-
// `listTasks`. It previously meant `slice(offset, offset + 0)`, i.e. ZERO
|
|
422
|
-
// rows, so the same flag spelled the same way returned everything on
|
|
423
|
-
// `cleo list` and nothing on `cleo find`. The envelope made that worse rather
|
|
424
|
-
// than obvious: `{"results": [], "total": 260}` with a message reading "No
|
|
425
|
-
// matching tasks found" — the answer and its own refutation in one object.
|
|
426
|
-
const limit = options.limit ?? 20;
|
|
427
|
-
const offset = options.offset ?? 0;
|
|
428
|
-
results = limit === 0 ? results.slice(offset) : results.slice(offset, offset + limit);
|
|
421
|
+
const { rows, population } = paginateTaskPopulation(results, options.limit ?? 20, options.offset ?? 0, options.status === 'archived' ? 'only' : options.includeArchive ? 'included' : 'excluded');
|
|
422
|
+
results = rows;
|
|
429
423
|
// Enrich each result with _next progressive disclosure directives
|
|
430
|
-
const
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
424
|
+
const sourceById = new Map(allTasks.map((task) => [task.id, task]));
|
|
425
|
+
const enrichedResults = results.map((r) => {
|
|
426
|
+
const source = sourceById.get(r.id);
|
|
427
|
+
if (!source)
|
|
428
|
+
throw new CleoError(ExitCode.GENERAL_ERROR, `Search source missing for ${r.id}`);
|
|
429
|
+
return discloseProjection({ ...source }, { ...r, _next: taskListItemNext(r.id) });
|
|
430
|
+
});
|
|
434
431
|
return {
|
|
435
432
|
results: enrichedResults,
|
|
436
433
|
total,
|
|
434
|
+
population,
|
|
437
435
|
query: queryStr,
|
|
438
436
|
searchType,
|
|
439
437
|
};
|
|
@@ -442,7 +440,7 @@ export async function findTasks(rawOptions, cwd, accessor) {
|
|
|
442
440
|
// EngineResult-returning wrapper (T1568 / ADR-057 / ADR-058)
|
|
443
441
|
// ---------------------------------------------------------------------------
|
|
444
442
|
/**
|
|
445
|
-
*
|
|
443
|
+
* Search tasks with explicit matching provenance, wrapped in EngineResult.
|
|
446
444
|
*
|
|
447
445
|
* @param projectRoot - Absolute path to the project root
|
|
448
446
|
* @param query - Search string to match against title, description, or ID
|
|
@@ -460,6 +458,8 @@ export async function taskFind(projectRoot, query, limit, options) {
|
|
|
460
458
|
query,
|
|
461
459
|
id: options?.id,
|
|
462
460
|
exact: options?.exact,
|
|
461
|
+
fuzzy: options?.fuzzy,
|
|
462
|
+
field: options?.field,
|
|
463
463
|
status: options?.status,
|
|
464
464
|
includeArchive: options?.includeArchive,
|
|
465
465
|
limit: limit ?? 20,
|
|
@@ -473,13 +473,21 @@ export async function taskFind(projectRoot, query, limit, options) {
|
|
|
473
473
|
const fullResults = [];
|
|
474
474
|
for (const r of findResult.results) {
|
|
475
475
|
const task = await accessor.loadSingleTask(r.id);
|
|
476
|
-
if (task)
|
|
477
|
-
|
|
476
|
+
if (!task)
|
|
477
|
+
throw new CleoError(ExitCode.GENERAL_ERROR, `Task ${r.id} disappeared during search projection; retry the query`);
|
|
478
|
+
fullResults.push({ ...taskToRecord(task), match: r.match });
|
|
478
479
|
}
|
|
479
|
-
return engineSuccess({
|
|
480
|
+
return engineSuccess({
|
|
481
|
+
results: fullResults,
|
|
482
|
+
total: findResult.total,
|
|
483
|
+
population: findResult.population,
|
|
484
|
+
query: findResult.query,
|
|
485
|
+
searchType: findResult.searchType,
|
|
486
|
+
});
|
|
480
487
|
}
|
|
481
|
-
const results = findResult.results.map((r) => ({
|
|
488
|
+
const results = findResult.results.map((r) => discloseProjection({ ...r }, {
|
|
482
489
|
id: r.id,
|
|
490
|
+
match: r.match,
|
|
483
491
|
title: r.title,
|
|
484
492
|
status: r.status,
|
|
485
493
|
priority: r.priority,
|
|
@@ -492,7 +500,13 @@ export async function taskFind(projectRoot, query, limit, options) {
|
|
|
492
500
|
// `cleo show` per row.
|
|
493
501
|
...(r.severity != null ? { severity: r.severity } : {}),
|
|
494
502
|
}));
|
|
495
|
-
return engineSuccess({
|
|
503
|
+
return engineSuccess({
|
|
504
|
+
results,
|
|
505
|
+
total: findResult.total,
|
|
506
|
+
population: findResult.population,
|
|
507
|
+
query: findResult.query,
|
|
508
|
+
searchType: findResult.searchType,
|
|
509
|
+
});
|
|
496
510
|
}
|
|
497
511
|
catch (err) {
|
|
498
512
|
// T9940: preserve CleoError LAFS codes; non-CleoError → E_INTERNAL,
|
package/dist/tasks/find.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/tasks/find.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"find.js","sourceRoot":"","sources":["../../src/tasks/find.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed-gate PREVIEW — run a task's `AcceptanceGate[]` and report the results
|
|
3
|
+
* without recording anything.
|
|
4
|
+
*
|
|
5
|
+
* ## Why this exists (T12308)
|
|
6
|
+
*
|
|
7
|
+
* Typed gates had exactly one way to execute: as a side effect of
|
|
8
|
+
* `cleo verify <id> --gate <g> --evidence <atoms>`. Every typed gate on the
|
|
9
|
+
* task ran, implicitly, during a call whose stated purpose was to ATTEST a
|
|
10
|
+
* different gate — and the only way to discover whether they would pass was to
|
|
11
|
+
* make that attestation.
|
|
12
|
+
*
|
|
13
|
+
* The explicit driver had been documented since T768 and is still emitted into
|
|
14
|
+
* every validation-stage spawn prompt ("Run `cleo verify <id> --run` and
|
|
15
|
+
* capture output"), but the flag was dropped from the command, so an agent
|
|
16
|
+
* following CLEO's own instruction got `Unknown flag` and had no supported way
|
|
17
|
+
* to ask the question. Restoring it as a read-only operation is what makes the
|
|
18
|
+
* two surfaces agree: `--run` observes, `--evidence` attests.
|
|
19
|
+
*
|
|
20
|
+
* Nothing here persists. No verification record, no receipt, no gate state —
|
|
21
|
+
* which is also why it does not need the criterion bindings `runTaskGates`
|
|
22
|
+
* builds: a result that is never stored cannot be mistaken for evidence later.
|
|
23
|
+
*
|
|
24
|
+
* @task T12308
|
|
25
|
+
*/
|
|
26
|
+
import type { AcceptanceGateResult, ValidateGateParams } from '@cleocode/contracts';
|
|
27
|
+
/** Outcome of a typed-gate preview run. */
|
|
28
|
+
export interface TaskGatePreview {
|
|
29
|
+
/** Task whose gates were run. */
|
|
30
|
+
taskId: string;
|
|
31
|
+
/** Number of typed gates found on the task's acceptance array. */
|
|
32
|
+
gateCount: number;
|
|
33
|
+
/** One result per typed gate, in acceptance-array order. */
|
|
34
|
+
results: AcceptanceGateResult[];
|
|
35
|
+
/**
|
|
36
|
+
* True when no gate returned `fail` or `error`.
|
|
37
|
+
*
|
|
38
|
+
* `warn` (a failed advisory gate) and `skipped` (a manual gate) do not
|
|
39
|
+
* withhold it — they carry their own meaning in `results`.
|
|
40
|
+
*/
|
|
41
|
+
passed: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Always `false`, and present on purpose.
|
|
44
|
+
*
|
|
45
|
+
* The caller is reading gate outcomes outside the attestation path, and the
|
|
46
|
+
* response has to say so in its own data rather than relying on the reader
|
|
47
|
+
* knowing which verb they used.
|
|
48
|
+
*/
|
|
49
|
+
persisted: false;
|
|
50
|
+
/** Present when the task carries no typed gates, explaining the empty result. */
|
|
51
|
+
note?: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Run every typed gate on a task and return the results, persisting nothing.
|
|
55
|
+
*
|
|
56
|
+
* Signature follows ADR-057: `(projectRoot, params)`, uniform with every other
|
|
57
|
+
* core function behind a dispatch operation.
|
|
58
|
+
*
|
|
59
|
+
* @param projectRoot - Absolute CLEO store root.
|
|
60
|
+
* @param params - Dispatch params; `taskId` selects the task, `agent` attributes the results.
|
|
61
|
+
* @returns Per-gate results plus an aggregate verdict.
|
|
62
|
+
* @throws When the task does not exist, or the project has no stable identity.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts
|
|
66
|
+
* const preview = await previewTaskGates(projectRoot, { taskId: 'T489' });
|
|
67
|
+
* if (!preview.passed) console.error(preview.results);
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* @task T12308
|
|
71
|
+
*/
|
|
72
|
+
export declare function previewTaskGates(projectRoot: string, params: ValidateGateParams): Promise<TaskGatePreview>;
|
|
73
|
+
//# sourceMappingURL=gate-preview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-preview.d.ts","sourceRoot":"","sources":["../../src/tasks/gate-preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAEV,oBAAoB,EAEpB,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAY7B,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,OAAO,EAAE,oBAAoB,EAAE,CAAC;IAChC;;;;;OAKG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,SAAS,EAAE,KAAK,CAAC;IACjB,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,gBAAgB,CACpC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,eAAe,CAAC,CAsD1B"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed-gate PREVIEW — run a task's `AcceptanceGate[]` and report the results
|
|
3
|
+
* without recording anything.
|
|
4
|
+
*
|
|
5
|
+
* ## Why this exists (T12308)
|
|
6
|
+
*
|
|
7
|
+
* Typed gates had exactly one way to execute: as a side effect of
|
|
8
|
+
* `cleo verify <id> --gate <g> --evidence <atoms>`. Every typed gate on the
|
|
9
|
+
* task ran, implicitly, during a call whose stated purpose was to ATTEST a
|
|
10
|
+
* different gate — and the only way to discover whether they would pass was to
|
|
11
|
+
* make that attestation.
|
|
12
|
+
*
|
|
13
|
+
* The explicit driver had been documented since T768 and is still emitted into
|
|
14
|
+
* every validation-stage spawn prompt ("Run `cleo verify <id> --run` and
|
|
15
|
+
* capture output"), but the flag was dropped from the command, so an agent
|
|
16
|
+
* following CLEO's own instruction got `Unknown flag` and had no supported way
|
|
17
|
+
* to ask the question. Restoring it as a read-only operation is what makes the
|
|
18
|
+
* two surfaces agree: `--run` observes, `--evidence` attests.
|
|
19
|
+
*
|
|
20
|
+
* Nothing here persists. No verification record, no receipt, no gate state —
|
|
21
|
+
* which is also why it does not need the criterion bindings `runTaskGates`
|
|
22
|
+
* builds: a result that is never stored cannot be mistaken for evidence later.
|
|
23
|
+
*
|
|
24
|
+
* @task T12308
|
|
25
|
+
*/
|
|
26
|
+
import { randomUUID } from 'node:crypto';
|
|
27
|
+
import { join, resolve } from 'node:path';
|
|
28
|
+
import { readProjectInfoAtDirectorySync } from '../project-scope.js';
|
|
29
|
+
import { createOperationExecutionContext } from '../store/background-ops.js';
|
|
30
|
+
import { getTaskAccessor } from '../store/data-accessor.js';
|
|
31
|
+
import { extractTypedGates, runGates } from './gate-runner.js';
|
|
32
|
+
/** Default per-gate ceiling, mirroring the gate runner's own default. */
|
|
33
|
+
const DEFAULT_GATE_TIMEOUT_MS = Number(process.env['CLEO_GATE_TIMEOUT_MS'] ?? 60_000);
|
|
34
|
+
/** Slack added to the summed per-gate budget for spawn and teardown overhead. */
|
|
35
|
+
const PREVIEW_OVERHEAD_MS = 5_000;
|
|
36
|
+
/**
|
|
37
|
+
* Wall-clock budget for the whole preview: every gate's own ceiling, plus slack.
|
|
38
|
+
*
|
|
39
|
+
* The gate runner's default batch deadline is two seconds, which is right for
|
|
40
|
+
* verification admitted inside a mutation but cannot host a real test suite.
|
|
41
|
+
* Deriving the budget from the gates themselves keeps the bound honest without
|
|
42
|
+
* inventing a number.
|
|
43
|
+
*
|
|
44
|
+
* @param gates - Gates that will run.
|
|
45
|
+
*/
|
|
46
|
+
function previewBudgetMs(gates) {
|
|
47
|
+
const total = gates.reduce((sum, gate) => sum + (gate.timeoutMs ?? DEFAULT_GATE_TIMEOUT_MS), PREVIEW_OVERHEAD_MS);
|
|
48
|
+
return Math.min(total, Number.MAX_SAFE_INTEGER);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Run every typed gate on a task and return the results, persisting nothing.
|
|
52
|
+
*
|
|
53
|
+
* Signature follows ADR-057: `(projectRoot, params)`, uniform with every other
|
|
54
|
+
* core function behind a dispatch operation.
|
|
55
|
+
*
|
|
56
|
+
* @param projectRoot - Absolute CLEO store root.
|
|
57
|
+
* @param params - Dispatch params; `taskId` selects the task, `agent` attributes the results.
|
|
58
|
+
* @returns Per-gate results plus an aggregate verdict.
|
|
59
|
+
* @throws When the task does not exist, or the project has no stable identity.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```ts
|
|
63
|
+
* const preview = await previewTaskGates(projectRoot, { taskId: 'T489' });
|
|
64
|
+
* if (!preview.passed) console.error(preview.results);
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* @task T12308
|
|
68
|
+
*/
|
|
69
|
+
export async function previewTaskGates(projectRoot, params) {
|
|
70
|
+
const { taskId } = params;
|
|
71
|
+
const root = resolve(projectRoot);
|
|
72
|
+
const accessor = await getTaskAccessor(root);
|
|
73
|
+
const task = await accessor.loadSingleTask(taskId);
|
|
74
|
+
if (!task)
|
|
75
|
+
throw new Error(`Task not found: ${taskId}`);
|
|
76
|
+
const typed = extractTypedGates(task.acceptance ?? []);
|
|
77
|
+
if (typed.length === 0) {
|
|
78
|
+
return {
|
|
79
|
+
taskId,
|
|
80
|
+
gateCount: 0,
|
|
81
|
+
results: [],
|
|
82
|
+
passed: true,
|
|
83
|
+
persisted: false,
|
|
84
|
+
note: `${taskId} has no typed acceptance gates — its criteria are free text, which ` +
|
|
85
|
+
`cannot be executed. Add one with \`cleo req add ${taskId} --gate '<json>'\`.`,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
const gates = typed.map((entry) => entry.gate);
|
|
89
|
+
const identity = readProjectInfoAtDirectorySync(root, join(root, '.cleo'));
|
|
90
|
+
if (!identity.projectId)
|
|
91
|
+
throw new Error('Typed gate execution requires a stable project identity');
|
|
92
|
+
const execution = createOperationExecutionContext({
|
|
93
|
+
projectId: identity.projectId,
|
|
94
|
+
projectRoot: root,
|
|
95
|
+
actor: params.agent ?? process.env['CLEO_AGENT_ID'] ?? 'cleo-verify',
|
|
96
|
+
operation: 'check.gate.verify',
|
|
97
|
+
idempotencyKey: `${taskId}:preview:${randomUUID()}`,
|
|
98
|
+
}, { budgetMs: previewBudgetMs(gates) });
|
|
99
|
+
try {
|
|
100
|
+
const observed = await runGates(gates, { projectRoot: root, execution });
|
|
101
|
+
// Restore the acceptance-array index the runner reports positionally, so a
|
|
102
|
+
// result lines up with the criterion the reader sees in `cleo show`.
|
|
103
|
+
const results = observed.map((result, i) => ({
|
|
104
|
+
...result,
|
|
105
|
+
index: typed[i]?.originalIndex ?? result.index,
|
|
106
|
+
}));
|
|
107
|
+
return {
|
|
108
|
+
taskId,
|
|
109
|
+
gateCount: results.length,
|
|
110
|
+
results,
|
|
111
|
+
passed: !results.some((r) => r.result === 'fail' || r.result === 'error'),
|
|
112
|
+
persisted: false,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
execution.close();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=gate-preview.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gate-preview.js","sourceRoot":"","sources":["../../src/tasks/gate-preview.ts"],"names":[],"mappings":"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"}
|