@cleocode/core 2026.9.8 → 2026.9.9
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/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 +5100 -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 +64 -0
- package/dist/git/work-tree.d.ts.map +1 -0
- package/dist/git/work-tree.js +111 -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 +2 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +2 -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 +4018 -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 +16 -41
- 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 +16 -3
- package/dist/release/pr-evidence.d.ts.map +1 -1
- package/dist/release/pr-evidence.js +53 -7
- 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 +4026 -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 +6 -2
- 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 +54 -26
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +292 -40
- 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-runner.d.ts +88 -14
- package/dist/tasks/gate-runner.d.ts.map +1 -1
- package/dist/tasks/gate-runner.js +596 -253
- 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/templates/CLEO-INJECTION.md +103 -101
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical task acceptance input normalization, shared by CLI parsing and writes.
|
|
3
|
+
* @task T12197
|
|
4
|
+
*/
|
|
5
|
+
import { ExitCode } from '@cleocode/contracts';
|
|
6
|
+
import { CleoError } from '../errors.js';
|
|
7
|
+
/**
|
|
8
|
+
* Validate and normalize an explicitly supplied acceptance array.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* Absent input remains undefined. String entries are trimmed and blank strings
|
|
12
|
+
* are dropped; an explicitly empty result remains [] so update can clear it.
|
|
13
|
+
* Entries stay literal, including pipes and quoted unions. Nonstring entries
|
|
14
|
+
* reject the entire input before any task mutation.
|
|
15
|
+
*
|
|
16
|
+
* @param acceptance - Optional array of literal string criteria supplied by the caller.
|
|
17
|
+
* @returns Trimmed nonblank criteria, including an explicit empty array; undefined for absent input.
|
|
18
|
+
* @throws CleoError when the input is not an array or includes a nonstring entry.
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const criteria = [' literal a|b ', '', ' verify output '];
|
|
22
|
+
* normalizeAcceptance(criteria);
|
|
23
|
+
* // ['literal a|b', 'verify output']
|
|
24
|
+
* normalizeAcceptance([]); // [] requests an explicit clear on update
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export function normalizeAcceptance(acceptance) {
|
|
28
|
+
if (acceptance === undefined)
|
|
29
|
+
return undefined;
|
|
30
|
+
if (!Array.isArray(acceptance)) {
|
|
31
|
+
throw new CleoError(ExitCode.VALIDATION_ERROR, 'Acceptance criteria must be an array of strings');
|
|
32
|
+
}
|
|
33
|
+
const normalized = [];
|
|
34
|
+
for (const [index, criterion] of acceptance.entries()) {
|
|
35
|
+
if (typeof criterion !== 'string') {
|
|
36
|
+
throw new CleoError(ExitCode.VALIDATION_ERROR, `Acceptance criterion ${index + 1} must be a string`);
|
|
37
|
+
}
|
|
38
|
+
const text = criterion.trim();
|
|
39
|
+
if (text)
|
|
40
|
+
normalized.push(text);
|
|
41
|
+
}
|
|
42
|
+
return normalized;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Find the previous non-whitespace character in `s` searching backwards from
|
|
46
|
+
* the end. Returns the empty string when `s` is empty or all-whitespace.
|
|
47
|
+
*
|
|
48
|
+
* Used by `splitAcceptance` to detect the string-union continuation rule
|
|
49
|
+
* (gh-409): a `|` between a closing quote and an opening quote is NOT a split.
|
|
50
|
+
*
|
|
51
|
+
* @internal
|
|
52
|
+
*/
|
|
53
|
+
function lastNonWsChar(s) {
|
|
54
|
+
for (let k = s.length - 1; k >= 0; k--) {
|
|
55
|
+
const c = s[k];
|
|
56
|
+
if (c !== ' ' && c !== '\t' && c !== '\n' && c !== '\r')
|
|
57
|
+
return c;
|
|
58
|
+
}
|
|
59
|
+
return '';
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Find the next non-whitespace character in `s` starting at index `start`.
|
|
63
|
+
* Returns the empty string when no non-whitespace remains.
|
|
64
|
+
*
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
function nextNonWsChar(s, start) {
|
|
68
|
+
for (let k = start; k < s.length; k++) {
|
|
69
|
+
const c = s[k];
|
|
70
|
+
if (c !== ' ' && c !== '\t' && c !== '\n' && c !== '\r')
|
|
71
|
+
return c;
|
|
72
|
+
}
|
|
73
|
+
return '';
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Bracket+quote+escape-aware tokenizer for pipe-delimited acceptance criteria.
|
|
77
|
+
*
|
|
78
|
+
* Splits `input` on the top-level `delim` character ONLY — pipes inside
|
|
79
|
+
* brackets/parens/braces or inside single-/double-quoted strings are preserved
|
|
80
|
+
* as part of the current token. A backslash at depth 0 (outside any quote)
|
|
81
|
+
* immediately preceding a delimiter escapes it (treats it as a literal
|
|
82
|
+
* character in the current token).
|
|
83
|
+
*
|
|
84
|
+
* Used by `parseAcceptanceCriteria` to fix the data-corruption bug where
|
|
85
|
+
* naive `String.split('|')` shredded criteria containing `ENUM (a|b|c)` or
|
|
86
|
+
* quoted string-unions like `'realtime-token'|'batch'`.
|
|
87
|
+
*
|
|
88
|
+
* Rules:
|
|
89
|
+
* - Quotes: `"` and `'` open a quote-context; the matching close char ends it.
|
|
90
|
+
* Inside a quote, `|`, brackets, and escape sequences are passed through
|
|
91
|
+
* literally (the only thing that exits the quote is the matching close).
|
|
92
|
+
* - Brackets: `(`, `[`, `{` increase depth; `)`, `]`, `}` decrease (clamped
|
|
93
|
+
* at 0 — unbalanced closing brackets are tolerated, never throw).
|
|
94
|
+
* - Escape: `\|` at depth 0 with no active quote → literal `|` in the token.
|
|
95
|
+
* - Delimiter: `|` is a split point ONLY when depth === 0 AND no active quote
|
|
96
|
+
* AND it does NOT join two quoted spans. A `|` whose preceding non-whitespace
|
|
97
|
+
* char in `buf` is a closing quote AND whose next non-whitespace char in
|
|
98
|
+
* `input` is an opening quote is treated as a continuation (the entire
|
|
99
|
+
* `'a'|'b'` or `"a"|"b"` expression stays as one token). This is the
|
|
100
|
+
* gh-409 "string-union" rule used by T239.
|
|
101
|
+
* - Trim: each emitted token is trimmed; empty tokens (after trim) are dropped.
|
|
102
|
+
* - Defensive: unbalanced opening brackets do NOT throw; the unterminated
|
|
103
|
+
* tail is emitted as a single trailing token (no infinite loop possible —
|
|
104
|
+
* the loop is bounded by `input.length`).
|
|
105
|
+
*
|
|
106
|
+
* @param input - Raw delimiter-separated string
|
|
107
|
+
* @param delim - Delimiter character (single char; default `|`)
|
|
108
|
+
* @returns Array of trimmed, non-empty tokens
|
|
109
|
+
*
|
|
110
|
+
* @internal
|
|
111
|
+
* @bug https://github.com/kryptobaseddev/cleo/issues/409
|
|
112
|
+
* @task T9839
|
|
113
|
+
*/
|
|
114
|
+
function splitAcceptance(input, delim = '|') {
|
|
115
|
+
const out = [];
|
|
116
|
+
let buf = '';
|
|
117
|
+
let depth = 0;
|
|
118
|
+
let quote = null;
|
|
119
|
+
let i = 0;
|
|
120
|
+
while (i < input.length) {
|
|
121
|
+
const ch = input[i];
|
|
122
|
+
// Escape: \| at depth 0 with no active quote → literal | in the token.
|
|
123
|
+
if (ch === '\\' && input[i + 1] === delim && depth === 0 && quote === null) {
|
|
124
|
+
buf += delim;
|
|
125
|
+
i += 2;
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
if (quote !== null) {
|
|
129
|
+
// Inside a quote: only the matching close char exits.
|
|
130
|
+
if (ch === quote)
|
|
131
|
+
quote = null;
|
|
132
|
+
buf += ch;
|
|
133
|
+
}
|
|
134
|
+
else if ((ch === '"' || ch === "'") &&
|
|
135
|
+
input.indexOf(ch, i + 1) !== -1 &&
|
|
136
|
+
// An apostrophe INSIDE or AFTER a word is never a quote opener. `doesn't`
|
|
137
|
+
// and `user's` are prose; `'batch'` is a quoted span. The discriminator is
|
|
138
|
+
// the preceding character, and it must be an ALLOWLIST rather than "not
|
|
139
|
+
// alphanumeric": `stash@{2}'s correction` is possessive even though `}` is
|
|
140
|
+
// not a letter or digit, and the not-alphanumeric form admitted it as a
|
|
141
|
+
// quote opener. With a second such possessive later in the string the
|
|
142
|
+
// quotes balance, the lookahead below is satisfied, and the whole span
|
|
143
|
+
// between them merges — supplied 5, parsed 4 (gh#1339).
|
|
144
|
+
//
|
|
145
|
+
// A quote that really opens a span sits at a token boundary: start of
|
|
146
|
+
// input, whitespace, the delimiter itself, or an opening bracket. Nothing
|
|
147
|
+
// else. A closing bracket, a letter, a digit or a period before it means
|
|
148
|
+
// prose.
|
|
149
|
+
/^$|[\s|([{,=:]$/.test(buf.slice(-1))) {
|
|
150
|
+
// gh#1321 — enter a quote context ONLY when a matching close exists later.
|
|
151
|
+
//
|
|
152
|
+
// An UNMATCHED quote used to open a context that nothing could close, so
|
|
153
|
+
// every remaining delimiter was absorbed and the rest of the input became
|
|
154
|
+
// one token. The common trigger is not exotic input — it is a prose
|
|
155
|
+
// apostrophe:
|
|
156
|
+
//
|
|
157
|
+
// "ac one|the user doesn't care|ac three" -> 2 tokens, not 3
|
|
158
|
+
// "ac one|the user's token|ac three" -> 2 tokens, not 3
|
|
159
|
+
//
|
|
160
|
+
// Measured: 804 characters of clean input split correctly, so the
|
|
161
|
+
// length hypothesis in the report was a correlation — an unmatched quote
|
|
162
|
+
// swallows the REMAINDER, so longer input loses more criteria. Length
|
|
163
|
+
// governs severity, not occurrence.
|
|
164
|
+
//
|
|
165
|
+
// The lookahead preserves every gh#409 case, because those quotes are
|
|
166
|
+
// balanced by construction (`'realtime-token'|'batch'`). An unmatched
|
|
167
|
+
// quote is now what it almost always is in prose: a literal character.
|
|
168
|
+
quote = ch;
|
|
169
|
+
buf += ch;
|
|
170
|
+
}
|
|
171
|
+
else if ((ch === '(' || ch === '[' || ch === '{') &&
|
|
172
|
+
// gh#1321 — only enter a bracket context when its partner exists later.
|
|
173
|
+
// An unbalanced `(` used to absorb the remainder exactly as an unmatched
|
|
174
|
+
// quote did: `"a|see (note|c|d|e"` became 2 tokens instead of 5. The old
|
|
175
|
+
// docblock promised the tail was "emitted as a single trailing token",
|
|
176
|
+
// which described the corruption rather than preventing it.
|
|
177
|
+
input.indexOf(ch === '(' ? ')' : ch === '[' ? ']' : '}', i + 1) !== -1) {
|
|
178
|
+
depth++;
|
|
179
|
+
buf += ch;
|
|
180
|
+
}
|
|
181
|
+
else if (ch === ')' || ch === ']' || ch === '}') {
|
|
182
|
+
depth = Math.max(0, depth - 1);
|
|
183
|
+
buf += ch;
|
|
184
|
+
}
|
|
185
|
+
else if (ch === delim && depth === 0) {
|
|
186
|
+
// gh-409 string-union rule: `'a'|'b'` and `"a"|"b"` stay as one token.
|
|
187
|
+
// If the previous non-ws char in buf is a closing quote AND the next
|
|
188
|
+
// non-ws char in input is an opening quote, treat this `|` as part of
|
|
189
|
+
// the current token (continuation), not as a split point.
|
|
190
|
+
const prev = lastNonWsChar(buf);
|
|
191
|
+
const next = nextNonWsChar(input, i + 1);
|
|
192
|
+
const isUnionContinuation = (prev === "'" || prev === '"') && (next === "'" || next === '"');
|
|
193
|
+
if (isUnionContinuation) {
|
|
194
|
+
buf += ch;
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
const trimmed = buf.trim();
|
|
198
|
+
if (trimmed)
|
|
199
|
+
out.push(trimmed);
|
|
200
|
+
buf = '';
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
else {
|
|
204
|
+
buf += ch;
|
|
205
|
+
}
|
|
206
|
+
i++;
|
|
207
|
+
}
|
|
208
|
+
// Flush trailing buffer (also handles unbalanced opens gracefully).
|
|
209
|
+
const trimmed = buf.trim();
|
|
210
|
+
if (trimmed)
|
|
211
|
+
out.push(trimmed);
|
|
212
|
+
return out;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Parse acceptance criteria from a raw CLI string.
|
|
216
|
+
*
|
|
217
|
+
* @remarks
|
|
218
|
+
* Supports two formats:
|
|
219
|
+
* - JSON array: `'["AC1","AC2","AC3"]'` (literal entries, normalized whitespace)
|
|
220
|
+
* - Pipe-separated: `"AC1|AC2|AC3"` (tokenized via `splitAcceptance`)
|
|
221
|
+
*
|
|
222
|
+
* The pipe-separated form uses a bracket+quote+escape-aware tokenizer so
|
|
223
|
+
* criteria containing `ENUM (hot|cold|batch|embed)`, quoted string-unions
|
|
224
|
+
* like `mode: 'realtime-token'|'batch'`, or escaped literals (`\|`) are
|
|
225
|
+
* preserved as single tokens rather than being shredded.
|
|
226
|
+
*
|
|
227
|
+
* @param raw - Raw string from `--acceptance` flag
|
|
228
|
+
* @returns Array of trimmed, non-empty acceptance criteria strings
|
|
229
|
+
* @throws CleoError for malformed explicit JSON arrays or nonstring JSON elements.
|
|
230
|
+
* @example
|
|
231
|
+
* ```typescript
|
|
232
|
+
* parseAcceptanceCriteria('first|ENUM (hot|cold)|third');
|
|
233
|
+
* // ['first', 'ENUM (hot|cold)', 'third']
|
|
234
|
+
* const raw = '["literal a|b", " verified "]';
|
|
235
|
+
* parseAcceptanceCriteria(raw);
|
|
236
|
+
* // ['literal a|b', 'verified']
|
|
237
|
+
* ```
|
|
238
|
+
*
|
|
239
|
+
* @bug https://github.com/kryptobaseddev/cleo/issues/409
|
|
240
|
+
* @task T1490
|
|
241
|
+
* @task T9839
|
|
242
|
+
*/
|
|
243
|
+
export function parseAcceptanceCriteria(raw) {
|
|
244
|
+
// A bracketed prose fragment is not necessarily JSON. Preserve existing
|
|
245
|
+
// delimiter behavior unless the first element has explicit JSON syntax.
|
|
246
|
+
const jsonArray = /^\s*\[\s*(?:["[\]{}]|-?\d|true\b|false\b|null\b)/.test(raw);
|
|
247
|
+
if (jsonArray) {
|
|
248
|
+
let parsed;
|
|
249
|
+
try {
|
|
250
|
+
parsed = JSON.parse(raw);
|
|
251
|
+
}
|
|
252
|
+
catch {
|
|
253
|
+
throw new CleoError(ExitCode.VALIDATION_ERROR, 'Invalid JSON acceptance array');
|
|
254
|
+
}
|
|
255
|
+
return normalizeAcceptance(parsed) ?? [];
|
|
256
|
+
}
|
|
257
|
+
return normalizeAcceptance(splitAcceptance(raw, '|')) ?? [];
|
|
258
|
+
}
|
|
259
|
+
//# sourceMappingURL=acceptance-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acceptance-input.js","sourceRoot":"","sources":["../../src/tasks/acceptance-input.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/add.d.ts
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* @epic T4454
|
|
5
5
|
* @task T1633 — BRAIN-powered duplicate detection
|
|
6
6
|
*/
|
|
7
|
-
import type { Task, TaskKind, TaskPriority, TaskScope, TaskSeverity, TaskSize, TaskStatus, TaskType, TaskVerification } from '@cleocode/contracts';
|
|
7
|
+
import type { Task, TaskKind, TaskPriority, TaskScope, TaskSeverity, TaskSize, TaskStatus, TasksAddParams, TaskType, TaskVerification } from '@cleocode/contracts';
|
|
8
8
|
import type { DataAccessor } from '../store/data-accessor.js';
|
|
9
|
+
export { normalizeAcceptance } from './acceptance-input.js';
|
|
9
10
|
/**
|
|
10
11
|
* Options for creating a task.
|
|
11
12
|
*
|
|
@@ -43,6 +44,8 @@ export interface AddTaskOptions {
|
|
|
43
44
|
files?: string[];
|
|
44
45
|
acceptance?: string[];
|
|
45
46
|
depends?: string[];
|
|
47
|
+
/** Critical-priority justification committed with task_created audit provenance. */
|
|
48
|
+
dependsWaiver?: string;
|
|
46
49
|
notes?: string;
|
|
47
50
|
position?: number;
|
|
48
51
|
addPhase?: boolean;
|
|
@@ -91,9 +94,48 @@ export interface AddTaskOptions {
|
|
|
91
94
|
* @task T11811
|
|
92
95
|
*/
|
|
93
96
|
skipContainmentInvariant?: boolean;
|
|
97
|
+
/**
|
|
98
|
+
* Suppress ONLY the PM-Core V2 design-point 3 guard (a `task`/`subtask`
|
|
99
|
+
* holding free-text ACs may not gain a child). Every other check still runs.
|
|
100
|
+
*
|
|
101
|
+
* MUST be set ONLY by {@link decomposeTask}, and there only on its `dryRun`
|
|
102
|
+
* preflight: that preflight asks "would this child be placeable?" while the
|
|
103
|
+
* parent still holds the criteria it is about to hand over, so design-point 3
|
|
104
|
+
* is the one rule that is legitimately not yet satisfied. The real write that
|
|
105
|
+
* follows sets nothing — by then the parent has been stripped and the guard
|
|
106
|
+
* passes honestly. Agent-facing `cleo add` / `add-batch` MUST NOT set this.
|
|
107
|
+
*
|
|
108
|
+
* @task T12281
|
|
109
|
+
*/
|
|
110
|
+
skipMixedAcParentGuard?: boolean;
|
|
111
|
+
/**
|
|
112
|
+
* Resolve PM-Core V2 design-point 3 in-line instead of refusing.
|
|
113
|
+
*
|
|
114
|
+
* When the parent is a `task`/`subtask` carrying free-text ACs, run
|
|
115
|
+
* {@link decomposeTask} first — lifting those criteria onto a new first child
|
|
116
|
+
* so the parent becomes a pure container — and then proceed with this add.
|
|
117
|
+
*
|
|
118
|
+
* OPT-IN by design. Without it the guard still fires unchanged, because
|
|
119
|
+
* decomposing rewrites a task the caller only named as `--parent`, and doing
|
|
120
|
+
* that silently would mutate a row nobody asked about. The result reports
|
|
121
|
+
* what moved in {@link AddTaskResult.autoDecomposed}.
|
|
122
|
+
*
|
|
123
|
+
* @task T12298
|
|
124
|
+
*/
|
|
125
|
+
autoDecompose?: boolean;
|
|
94
126
|
}
|
|
95
127
|
/** Result of adding a task. */
|
|
96
128
|
export interface AddTaskResult {
|
|
129
|
+
/**
|
|
130
|
+
* Set when `autoDecompose` resolved design-point 3 before this add: the
|
|
131
|
+
* parent's criteria were lifted onto this child first. Absent otherwise.
|
|
132
|
+
*
|
|
133
|
+
* @task T12298
|
|
134
|
+
*/
|
|
135
|
+
autoDecomposed?: {
|
|
136
|
+
childId: string;
|
|
137
|
+
movedAcceptance: string[];
|
|
138
|
+
};
|
|
97
139
|
task: Task;
|
|
98
140
|
duplicate?: boolean;
|
|
99
141
|
dryRun?: boolean;
|
|
@@ -113,8 +155,30 @@ export interface AddTaskResult {
|
|
|
113
155
|
*/
|
|
114
156
|
reopenedAncestors?: string[];
|
|
115
157
|
}
|
|
116
|
-
/**
|
|
117
|
-
|
|
158
|
+
/**
|
|
159
|
+
* Translate canonical creation input into core options without dropping fields.
|
|
160
|
+
* @param params - Canonical task creation input.
|
|
161
|
+
* @returns Core options with the parent alias and enum boundaries resolved.
|
|
162
|
+
* @remarks Entry points share this boundary; CLI parsing does not establish authorization.
|
|
163
|
+
* @example
|
|
164
|
+
* ```ts
|
|
165
|
+
* toTaskAddOptions({ title: 'Fix persistence', description: 'Verify durable task writes' });
|
|
166
|
+
* ```
|
|
167
|
+
*/
|
|
168
|
+
export declare function toTaskAddOptions(params: TasksAddParams): AddTaskOptions;
|
|
169
|
+
/**
|
|
170
|
+
* Enforce the established explicit-critical dependency policy before mutation.
|
|
171
|
+
* @param priority - Explicit requested priority; waivers require critical.
|
|
172
|
+
* @param justification - Original reason, retained verbatim in transaction audit details.
|
|
173
|
+
* @param dependencies - Effective dependencies after applying the requested changes.
|
|
174
|
+
* @throws CleoError for invalid waivers or critical mutations without dependencies.
|
|
175
|
+
* @remarks Entry points share this boundary; CLI parsing does not establish authorization.
|
|
176
|
+
* @example
|
|
177
|
+
* ```ts
|
|
178
|
+
* validateDependencyWaiver('critical', 'Independent restoration', []);
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
export declare function validateDependencyWaiver(priority: string | undefined, justification: string | undefined, dependencies: readonly string[]): void;
|
|
118
182
|
/**
|
|
119
183
|
* Build the default verification metadata applied to every new task.
|
|
120
184
|
* Gates are initialized to false (not yet passed). `passed` starts false
|
|
@@ -240,32 +304,6 @@ export declare function validateParent(parentId: string, tasks: Task[], maxDepth
|
|
|
240
304
|
* ```
|
|
241
305
|
*/
|
|
242
306
|
export declare function getTaskDepth(taskId: string, tasks: Task[]): number;
|
|
243
|
-
/**
|
|
244
|
-
* Infer task type from parent context.
|
|
245
|
-
* @task T4460
|
|
246
|
-
*
|
|
247
|
-
* @example
|
|
248
|
-
* ```ts
|
|
249
|
-
* const now = new Date().toISOString();
|
|
250
|
-
* const tasks = [
|
|
251
|
-
* { id: 'T001', title: 'My Epic', description: '', type: 'epic',
|
|
252
|
-
* status: 'pending', priority: 'medium', size: 'medium', parentId: null,
|
|
253
|
-
* position: 1, positionVersion: 0, createdAt: now, updatedAt: now },
|
|
254
|
-
* { id: 'T002', title: 'Child Task', description: '', type: 'task',
|
|
255
|
-
* status: 'pending', priority: 'medium', size: 'medium', parentId: 'T001',
|
|
256
|
-
* position: 1, positionVersion: 0, createdAt: now, updatedAt: now },
|
|
257
|
-
* ] as Task[];
|
|
258
|
-
*
|
|
259
|
-
* // No parent → standalone task
|
|
260
|
-
* console.assert(inferTaskType(null, tasks) === 'task', 'no parent → task');
|
|
261
|
-
*
|
|
262
|
-
* // Epic parent → child is a task
|
|
263
|
-
* console.assert(inferTaskType('T001', tasks) === 'task', 'epic parent → task');
|
|
264
|
-
*
|
|
265
|
-
* // Task parent → child is a subtask
|
|
266
|
-
* console.assert(inferTaskType('T002', tasks) === 'subtask', 'task parent → subtask');
|
|
267
|
-
* ```
|
|
268
|
-
*/
|
|
269
307
|
export declare function inferTaskType(parentId: string | null | undefined, tasks: Task[]): TaskType;
|
|
270
308
|
/**
|
|
271
309
|
* Get the next position for a task within a parent scope.
|
package/dist/tasks/add.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/tasks/add.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAEV,IAAI,EACJ,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAc7B,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/tasks/add.ts"],"names":[],"mappings":"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"}
|