@cleocode/cleo 2026.4.10 → 2026.4.12
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/cli/commander-shim.d.ts +112 -0
- package/dist/cli/commander-shim.d.ts.map +1 -0
- package/dist/cli/commander-shim.js +233 -0
- package/dist/cli/commander-shim.js.map +1 -0
- package/dist/cli/commands/add.d.ts +12 -0
- package/dist/cli/commands/add.d.ts.map +1 -0
- package/dist/cli/commands/add.js +202 -0
- package/dist/cli/commands/add.js.map +1 -0
- package/dist/cli/commands/admin.d.ts +12 -0
- package/dist/cli/commands/admin.d.ts.map +1 -0
- package/dist/cli/commands/admin.js +59 -0
- package/dist/cli/commands/admin.js.map +1 -0
- package/dist/cli/commands/adr.d.ts +27 -0
- package/dist/cli/commands/adr.d.ts.map +1 -0
- package/dist/cli/commands/adr.js +79 -0
- package/dist/cli/commands/adr.js.map +1 -0
- package/dist/cli/commands/agent-profile-status.d.ts +98 -0
- package/dist/cli/commands/agent-profile-status.d.ts.map +1 -0
- package/dist/cli/commands/agent-profile-status.js +71 -0
- package/dist/cli/commands/agent-profile-status.js.map +1 -0
- package/dist/cli/commands/agent.d.ts +38 -0
- package/dist/cli/commands/agent.d.ts.map +1 -0
- package/dist/cli/commands/agent.js +1169 -0
- package/dist/cli/commands/agent.js.map +1 -0
- package/dist/cli/commands/agents.d.ts +17 -0
- package/dist/cli/commands/agents.d.ts.map +1 -0
- package/dist/cli/commands/agents.js +20 -0
- package/dist/cli/commands/agents.js.map +1 -0
- package/dist/cli/commands/analyze.d.ts +12 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +20 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/archive-stats.d.ts +18 -0
- package/dist/cli/commands/archive-stats.d.ts.map +1 -0
- package/dist/cli/commands/archive-stats.js +49 -0
- package/dist/cli/commands/archive-stats.js.map +1 -0
- package/dist/cli/commands/archive.d.ts +12 -0
- package/dist/cli/commands/archive.d.ts.map +1 -0
- package/dist/cli/commands/archive.js +32 -0
- package/dist/cli/commands/archive.js.map +1 -0
- package/dist/cli/commands/backfill.d.ts +38 -0
- package/dist/cli/commands/backfill.d.ts.map +1 -0
- package/dist/cli/commands/backfill.js +147 -0
- package/dist/cli/commands/backfill.js.map +1 -0
- package/dist/cli/commands/backup.d.ts +9 -0
- package/dist/cli/commands/backup.d.ts.map +1 -0
- package/dist/cli/commands/backup.js +41 -0
- package/dist/cli/commands/backup.js.map +1 -0
- package/dist/cli/commands/blockers.d.ts +7 -0
- package/dist/cli/commands/blockers.d.ts.map +1 -0
- package/dist/cli/commands/blockers.js +16 -0
- package/dist/cli/commands/blockers.js.map +1 -0
- package/dist/cli/commands/brain.d.ts +29 -0
- package/dist/cli/commands/brain.d.ts.map +1 -0
- package/dist/cli/commands/brain.js +107 -0
- package/dist/cli/commands/brain.js.map +1 -0
- package/dist/cli/commands/briefing.d.ts +22 -0
- package/dist/cli/commands/briefing.d.ts.map +1 -0
- package/dist/cli/commands/briefing.js +45 -0
- package/dist/cli/commands/briefing.js.map +1 -0
- package/dist/cli/commands/bug.d.ts +12 -0
- package/dist/cli/commands/bug.d.ts.map +1 -0
- package/dist/cli/commands/bug.js +81 -0
- package/dist/cli/commands/bug.js.map +1 -0
- package/dist/cli/commands/cant.d.ts +32 -0
- package/dist/cli/commands/cant.d.ts.map +1 -0
- package/dist/cli/commands/cant.js +281 -0
- package/dist/cli/commands/cant.js.map +1 -0
- package/dist/cli/commands/check.d.ts +22 -0
- package/dist/cli/commands/check.d.ts.map +1 -0
- package/dist/cli/commands/check.js +164 -0
- package/dist/cli/commands/check.js.map +1 -0
- package/dist/cli/commands/checkpoint.d.ts +15 -0
- package/dist/cli/commands/checkpoint.d.ts.map +1 -0
- package/dist/cli/commands/checkpoint.js +91 -0
- package/dist/cli/commands/checkpoint.js.map +1 -0
- package/dist/cli/commands/code.d.ts +11 -0
- package/dist/cli/commands/code.d.ts.map +1 -0
- package/dist/cli/commands/code.js +114 -0
- package/dist/cli/commands/code.js.map +1 -0
- package/dist/cli/commands/commands.d.ts +13 -0
- package/dist/cli/commands/commands.d.ts.map +1 -0
- package/dist/cli/commands/commands.js +29 -0
- package/dist/cli/commands/commands.js.map +1 -0
- package/dist/cli/commands/complete.d.ts +12 -0
- package/dist/cli/commands/complete.d.ts.map +1 -0
- package/dist/cli/commands/complete.js +92 -0
- package/dist/cli/commands/complete.js.map +1 -0
- package/dist/cli/commands/compliance.d.ts +8 -0
- package/dist/cli/commands/compliance.d.ts.map +1 -0
- package/dist/cli/commands/compliance.js +85 -0
- package/dist/cli/commands/compliance.js.map +1 -0
- package/dist/cli/commands/config.d.ts +10 -0
- package/dist/cli/commands/config.d.ts.map +1 -0
- package/dist/cli/commands/config.js +69 -0
- package/dist/cli/commands/config.js.map +1 -0
- package/dist/cli/commands/consensus.d.ts +13 -0
- package/dist/cli/commands/consensus.d.ts.map +1 -0
- package/dist/cli/commands/consensus.js +45 -0
- package/dist/cli/commands/consensus.js.map +1 -0
- package/dist/cli/commands/context.d.ts +8 -0
- package/dist/cli/commands/context.d.ts.map +1 -0
- package/dist/cli/commands/context.js +40 -0
- package/dist/cli/commands/context.js.map +1 -0
- package/dist/cli/commands/contribution.d.ts +13 -0
- package/dist/cli/commands/contribution.d.ts.map +1 -0
- package/dist/cli/commands/contribution.js +41 -0
- package/dist/cli/commands/contribution.js.map +1 -0
- package/dist/cli/commands/current.d.ts +13 -0
- package/dist/cli/commands/current.d.ts.map +1 -0
- package/dist/cli/commands/current.js +20 -0
- package/dist/cli/commands/current.js.map +1 -0
- package/dist/cli/commands/dash.d.ts +12 -0
- package/dist/cli/commands/dash.d.ts.map +1 -0
- package/dist/cli/commands/dash.js +24 -0
- package/dist/cli/commands/dash.js.map +1 -0
- package/dist/cli/commands/decomposition.d.ts +13 -0
- package/dist/cli/commands/decomposition.d.ts.map +1 -0
- package/dist/cli/commands/decomposition.js +45 -0
- package/dist/cli/commands/decomposition.js.map +1 -0
- package/dist/cli/commands/delete.d.ts +12 -0
- package/dist/cli/commands/delete.d.ts.map +1 -0
- package/dist/cli/commands/delete.js +37 -0
- package/dist/cli/commands/delete.js.map +1 -0
- package/dist/cli/commands/deps.d.ts +24 -0
- package/dist/cli/commands/deps.d.ts.map +1 -0
- package/dist/cli/commands/deps.js +98 -0
- package/dist/cli/commands/deps.js.map +1 -0
- package/dist/cli/commands/detect-drift.d.ts +15 -0
- package/dist/cli/commands/detect-drift.d.ts.map +1 -0
- package/dist/cli/commands/detect-drift.js +424 -0
- package/dist/cli/commands/detect-drift.js.map +1 -0
- package/dist/cli/commands/detect.d.ts +10 -0
- package/dist/cli/commands/detect.d.ts.map +1 -0
- package/dist/cli/commands/detect.js +24 -0
- package/dist/cli/commands/detect.js.map +1 -0
- package/dist/cli/commands/docs.d.ts +13 -0
- package/dist/cli/commands/docs.d.ts.map +1 -0
- package/dist/cli/commands/docs.js +169 -0
- package/dist/cli/commands/docs.js.map +1 -0
- package/dist/cli/commands/doctor.d.ts +15 -0
- package/dist/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cli/commands/doctor.js +133 -0
- package/dist/cli/commands/doctor.js.map +1 -0
- package/dist/cli/commands/dynamic.d.ts +24 -0
- package/dist/cli/commands/dynamic.d.ts.map +1 -0
- package/dist/cli/commands/dynamic.js +27 -0
- package/dist/cli/commands/dynamic.js.map +1 -0
- package/dist/cli/commands/env.d.ts +12 -0
- package/dist/cli/commands/env.d.ts.map +1 -0
- package/dist/cli/commands/env.js +44 -0
- package/dist/cli/commands/env.js.map +1 -0
- package/dist/cli/commands/exists.d.ts +22 -0
- package/dist/cli/commands/exists.d.ts.map +1 -0
- package/dist/cli/commands/exists.js +51 -0
- package/dist/cli/commands/exists.js.map +1 -0
- package/dist/cli/commands/export-tasks.d.ts +10 -0
- package/dist/cli/commands/export-tasks.d.ts.map +1 -0
- package/dist/cli/commands/export-tasks.js +47 -0
- package/dist/cli/commands/export-tasks.js.map +1 -0
- package/dist/cli/commands/export.d.ts +9 -0
- package/dist/cli/commands/export.d.ts.map +1 -0
- package/dist/cli/commands/export.js +46 -0
- package/dist/cli/commands/export.js.map +1 -0
- package/dist/cli/commands/find.d.ts +14 -0
- package/dist/cli/commands/find.d.ts.map +1 -0
- package/dist/cli/commands/find.js +134 -0
- package/dist/cli/commands/find.js.map +1 -0
- package/dist/cli/commands/generate-changelog.d.ts +14 -0
- package/dist/cli/commands/generate-changelog.d.ts.map +1 -0
- package/dist/cli/commands/generate-changelog.js +252 -0
- package/dist/cli/commands/generate-changelog.js.map +1 -0
- package/dist/cli/commands/grade.d.ts +13 -0
- package/dist/cli/commands/grade.d.ts.map +1 -0
- package/dist/cli/commands/grade.js +26 -0
- package/dist/cli/commands/grade.js.map +1 -0
- package/dist/cli/commands/history.d.ts +9 -0
- package/dist/cli/commands/history.d.ts.map +1 -0
- package/dist/cli/commands/history.js +30 -0
- package/dist/cli/commands/history.js.map +1 -0
- package/dist/cli/commands/implementation.d.ts +13 -0
- package/dist/cli/commands/implementation.d.ts.map +1 -0
- package/dist/cli/commands/implementation.js +41 -0
- package/dist/cli/commands/implementation.js.map +1 -0
- package/dist/cli/commands/import-tasks.d.ts +10 -0
- package/dist/cli/commands/import-tasks.d.ts.map +1 -0
- package/dist/cli/commands/import-tasks.js +38 -0
- package/dist/cli/commands/import-tasks.js.map +1 -0
- package/dist/cli/commands/import.d.ts +9 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +28 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/init.d.ts +34 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +96 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/inject.d.ts +8 -0
- package/dist/cli/commands/inject.d.ts.map +1 -0
- package/dist/cli/commands/inject.js +28 -0
- package/dist/cli/commands/inject.js.map +1 -0
- package/dist/cli/commands/issue.d.ts +17 -0
- package/dist/cli/commands/issue.d.ts.map +1 -0
- package/dist/cli/commands/issue.js +107 -0
- package/dist/cli/commands/issue.js.map +1 -0
- package/dist/cli/commands/labels.d.ts +13 -0
- package/dist/cli/commands/labels.d.ts.map +1 -0
- package/dist/cli/commands/labels.js +44 -0
- package/dist/cli/commands/labels.js.map +1 -0
- package/dist/cli/commands/lifecycle.d.ts +8 -0
- package/dist/cli/commands/lifecycle.d.ts.map +1 -0
- package/dist/cli/commands/lifecycle.js +84 -0
- package/dist/cli/commands/lifecycle.js.map +1 -0
- package/dist/cli/commands/list.d.ts +14 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +143 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/log.d.ts +12 -0
- package/dist/cli/commands/log.d.ts.map +1 -0
- package/dist/cli/commands/log.js +30 -0
- package/dist/cli/commands/log.js.map +1 -0
- package/dist/cli/commands/map.d.ts +10 -0
- package/dist/cli/commands/map.d.ts.map +1 -0
- package/dist/cli/commands/map.js +23 -0
- package/dist/cli/commands/map.js.map +1 -0
- package/dist/cli/commands/memory-brain.d.ts +14 -0
- package/dist/cli/commands/memory-brain.d.ts.map +1 -0
- package/dist/cli/commands/memory-brain.js +157 -0
- package/dist/cli/commands/memory-brain.js.map +1 -0
- package/dist/cli/commands/migrate-claude-mem.d.ts +18 -0
- package/dist/cli/commands/migrate-claude-mem.d.ts.map +1 -0
- package/dist/cli/commands/migrate-claude-mem.js +60 -0
- package/dist/cli/commands/migrate-claude-mem.js.map +1 -0
- package/dist/cli/commands/next.d.ts +9 -0
- package/dist/cli/commands/next.d.ts.map +1 -0
- package/dist/cli/commands/next.js +20 -0
- package/dist/cli/commands/next.js.map +1 -0
- package/dist/cli/commands/nexus.d.ts +16 -0
- package/dist/cli/commands/nexus.d.ts.map +1 -0
- package/dist/cli/commands/nexus.js +155 -0
- package/dist/cli/commands/nexus.js.map +1 -0
- package/dist/cli/commands/observe.d.ts +12 -0
- package/dist/cli/commands/observe.d.ts.map +1 -0
- package/dist/cli/commands/observe.js +42 -0
- package/dist/cli/commands/observe.js.map +1 -0
- package/dist/cli/commands/ops.d.ts +10 -0
- package/dist/cli/commands/ops.d.ts.map +1 -0
- package/dist/cli/commands/ops.js +19 -0
- package/dist/cli/commands/ops.js.map +1 -0
- package/dist/cli/commands/orchestrate.d.ts +8 -0
- package/dist/cli/commands/orchestrate.d.ts.map +1 -0
- package/dist/cli/commands/orchestrate.js +58 -0
- package/dist/cli/commands/orchestrate.js.map +1 -0
- package/dist/cli/commands/otel.d.ts +12 -0
- package/dist/cli/commands/otel.d.ts.map +1 -0
- package/dist/cli/commands/otel.js +128 -0
- package/dist/cli/commands/otel.js.map +1 -0
- package/dist/cli/commands/phase.d.ts +12 -0
- package/dist/cli/commands/phase.d.ts.map +1 -0
- package/dist/cli/commands/phase.js +91 -0
- package/dist/cli/commands/phase.js.map +1 -0
- package/dist/cli/commands/phases.d.ts +12 -0
- package/dist/cli/commands/phases.d.ts.map +1 -0
- package/dist/cli/commands/phases.js +37 -0
- package/dist/cli/commands/phases.js.map +1 -0
- package/dist/cli/commands/plan.d.ts +8 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +15 -0
- package/dist/cli/commands/plan.js.map +1 -0
- package/dist/cli/commands/promote.d.ts +7 -0
- package/dist/cli/commands/promote.d.ts.map +1 -0
- package/dist/cli/commands/promote.js +15 -0
- package/dist/cli/commands/promote.js.map +1 -0
- package/dist/cli/commands/reason.d.ts +35 -0
- package/dist/cli/commands/reason.d.ts.map +1 -0
- package/dist/cli/commands/reason.js +104 -0
- package/dist/cli/commands/reason.js.map +1 -0
- package/dist/cli/commands/refresh-memory.d.ts +9 -0
- package/dist/cli/commands/refresh-memory.d.ts.map +1 -0
- package/dist/cli/commands/refresh-memory.js +24 -0
- package/dist/cli/commands/refresh-memory.js.map +1 -0
- package/dist/cli/commands/relates.d.ts +12 -0
- package/dist/cli/commands/relates.d.ts.map +1 -0
- package/dist/cli/commands/relates.js +53 -0
- package/dist/cli/commands/relates.js.map +1 -0
- package/dist/cli/commands/release.d.ts +8 -0
- package/dist/cli/commands/release.d.ts.map +1 -0
- package/dist/cli/commands/release.js +72 -0
- package/dist/cli/commands/release.js.map +1 -0
- package/dist/cli/commands/remote.d.ts +12 -0
- package/dist/cli/commands/remote.d.ts.map +1 -0
- package/dist/cli/commands/remote.js +207 -0
- package/dist/cli/commands/remote.js.map +1 -0
- package/dist/cli/commands/reorder.d.ts +7 -0
- package/dist/cli/commands/reorder.d.ts.map +1 -0
- package/dist/cli/commands/reorder.js +20 -0
- package/dist/cli/commands/reorder.js.map +1 -0
- package/dist/cli/commands/reparent.d.ts +10 -0
- package/dist/cli/commands/reparent.d.ts.map +1 -0
- package/dist/cli/commands/reparent.js +19 -0
- package/dist/cli/commands/reparent.js.map +1 -0
- package/dist/cli/commands/research.d.ts +8 -0
- package/dist/cli/commands/research.d.ts.map +1 -0
- package/dist/cli/commands/research.js +129 -0
- package/dist/cli/commands/research.js.map +1 -0
- package/dist/cli/commands/restore.d.ts +12 -0
- package/dist/cli/commands/restore.d.ts.map +1 -0
- package/dist/cli/commands/restore.js +228 -0
- package/dist/cli/commands/restore.js.map +1 -0
- package/dist/cli/commands/roadmap.d.ts +8 -0
- package/dist/cli/commands/roadmap.d.ts.map +1 -0
- package/dist/cli/commands/roadmap.js +21 -0
- package/dist/cli/commands/roadmap.js.map +1 -0
- package/dist/cli/commands/safestop.d.ts +14 -0
- package/dist/cli/commands/safestop.d.ts.map +1 -0
- package/dist/cli/commands/safestop.js +32 -0
- package/dist/cli/commands/safestop.js.map +1 -0
- package/dist/cli/commands/schema.d.ts +27 -0
- package/dist/cli/commands/schema.d.ts.map +1 -0
- package/dist/cli/commands/schema.js +160 -0
- package/dist/cli/commands/schema.js.map +1 -0
- package/dist/cli/commands/self-update.d.ts +15 -0
- package/dist/cli/commands/self-update.d.ts.map +1 -0
- package/dist/cli/commands/self-update.js +329 -0
- package/dist/cli/commands/self-update.js.map +1 -0
- package/dist/cli/commands/sequence.d.ts +8 -0
- package/dist/cli/commands/sequence.d.ts.map +1 -0
- package/dist/cli/commands/sequence.js +30 -0
- package/dist/cli/commands/sequence.js.map +1 -0
- package/dist/cli/commands/session.d.ts +12 -0
- package/dist/cli/commands/session.d.ts.map +1 -0
- package/dist/cli/commands/session.js +175 -0
- package/dist/cli/commands/session.js.map +1 -0
- package/dist/cli/commands/show.d.ts +13 -0
- package/dist/cli/commands/show.d.ts.map +1 -0
- package/dist/cli/commands/show.js +40 -0
- package/dist/cli/commands/show.js.map +1 -0
- package/dist/cli/commands/skills.d.ts +13 -0
- package/dist/cli/commands/skills.d.ts.map +1 -0
- package/dist/cli/commands/skills.js +131 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/snapshot.d.ts +9 -0
- package/dist/cli/commands/snapshot.d.ts.map +1 -0
- package/dist/cli/commands/snapshot.js +50 -0
- package/dist/cli/commands/snapshot.js.map +1 -0
- package/dist/cli/commands/specification.d.ts +13 -0
- package/dist/cli/commands/specification.d.ts.map +1 -0
- package/dist/cli/commands/specification.js +45 -0
- package/dist/cli/commands/specification.js.map +1 -0
- package/dist/cli/commands/start.d.ts +13 -0
- package/dist/cli/commands/start.d.ts.map +1 -0
- package/dist/cli/commands/start.js +20 -0
- package/dist/cli/commands/start.js.map +1 -0
- package/dist/cli/commands/stats.d.ts +12 -0
- package/dist/cli/commands/stats.d.ts.map +1 -0
- package/dist/cli/commands/stats.js +35 -0
- package/dist/cli/commands/stats.js.map +1 -0
- package/dist/cli/commands/sticky.d.ts +16 -0
- package/dist/cli/commands/sticky.d.ts.map +1 -0
- package/dist/cli/commands/sticky.js +211 -0
- package/dist/cli/commands/sticky.js.map +1 -0
- package/dist/cli/commands/stop.d.ts +13 -0
- package/dist/cli/commands/stop.d.ts.map +1 -0
- package/dist/cli/commands/stop.js +20 -0
- package/dist/cli/commands/stop.js.map +1 -0
- package/dist/cli/commands/testing.d.ts +13 -0
- package/dist/cli/commands/testing.d.ts.map +1 -0
- package/dist/cli/commands/testing.js +64 -0
- package/dist/cli/commands/testing.js.map +1 -0
- package/dist/cli/commands/token.d.ts +10 -0
- package/dist/cli/commands/token.d.ts.map +1 -0
- package/dist/cli/commands/token.js +135 -0
- package/dist/cli/commands/token.js.map +1 -0
- package/dist/cli/commands/update.d.ts +12 -0
- package/dist/cli/commands/update.d.ts.map +1 -0
- package/dist/cli/commands/update.js +83 -0
- package/dist/cli/commands/update.js.map +1 -0
- package/dist/cli/commands/upgrade.d.ts +18 -0
- package/dist/cli/commands/upgrade.d.ts.map +1 -0
- package/dist/cli/commands/upgrade.js +103 -0
- package/dist/cli/commands/upgrade.js.map +1 -0
- package/dist/cli/commands/validate.d.ts +12 -0
- package/dist/cli/commands/validate.d.ts.map +1 -0
- package/dist/cli/commands/validate.js +23 -0
- package/dist/cli/commands/validate.js.map +1 -0
- package/dist/cli/commands/verify.d.ts +8 -0
- package/dist/cli/commands/verify.d.ts.map +1 -0
- package/dist/cli/commands/verify.js +28 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/commands/web.d.ts +13 -0
- package/dist/cli/commands/web.d.ts.map +1 -0
- package/dist/cli/commands/web.js +277 -0
- package/dist/cli/commands/web.js.map +1 -0
- package/dist/cli/field-context.d.ts +32 -0
- package/dist/cli/field-context.d.ts.map +1 -0
- package/dist/cli/field-context.js +47 -0
- package/dist/cli/field-context.js.map +1 -0
- package/dist/cli/format-context.d.ts +32 -0
- package/dist/cli/format-context.d.ts.map +1 -0
- package/dist/cli/format-context.js +50 -0
- package/dist/cli/format-context.js.map +1 -0
- package/dist/cli/help-generator.d.ts +74 -0
- package/dist/cli/help-generator.d.ts.map +1 -0
- package/dist/cli/help-generator.js +229 -0
- package/dist/cli/help-generator.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +342 -107611
- package/dist/cli/index.js.map +1 -7
- package/dist/cli/logger-bootstrap.d.ts +6 -0
- package/dist/cli/logger-bootstrap.d.ts.map +1 -0
- package/dist/cli/logger-bootstrap.js +10 -0
- package/dist/cli/logger-bootstrap.js.map +1 -0
- package/dist/cli/middleware/output-format.d.ts +30 -0
- package/dist/cli/middleware/output-format.d.ts.map +1 -0
- package/dist/cli/middleware/output-format.js +35 -0
- package/dist/cli/middleware/output-format.js.map +1 -0
- package/dist/cli/progress.d.ts +84 -0
- package/dist/cli/progress.d.ts.map +1 -0
- package/dist/cli/progress.js +169 -0
- package/dist/cli/progress.js.map +1 -0
- package/dist/cli/renderers/colors.d.ts +32 -0
- package/dist/cli/renderers/colors.d.ts.map +1 -0
- package/dist/cli/renderers/colors.js +141 -0
- package/dist/cli/renderers/colors.js.map +1 -0
- package/dist/cli/renderers/error.d.ts +13 -0
- package/dist/cli/renderers/error.d.ts.map +1 -0
- package/dist/cli/renderers/error.js +42 -0
- package/dist/cli/renderers/error.js.map +1 -0
- package/dist/cli/renderers/index.d.ts +87 -0
- package/dist/cli/renderers/index.d.ts.map +1 -0
- package/dist/cli/renderers/index.js +262 -0
- package/dist/cli/renderers/index.js.map +1 -0
- package/dist/cli/renderers/lafs-validator.d.ts +91 -0
- package/dist/cli/renderers/lafs-validator.d.ts.map +1 -0
- package/dist/cli/renderers/lafs-validator.js +176 -0
- package/dist/cli/renderers/lafs-validator.js.map +1 -0
- package/dist/cli/renderers/normalizer.d.ts +21 -0
- package/dist/cli/renderers/normalizer.d.ts.map +1 -0
- package/dist/cli/renderers/normalizer.js +106 -0
- package/dist/cli/renderers/normalizer.js.map +1 -0
- package/dist/cli/renderers/system.d.ts +25 -0
- package/dist/cli/renderers/system.d.ts.map +1 -0
- package/dist/cli/renderers/system.js +416 -0
- package/dist/cli/renderers/system.js.map +1 -0
- package/dist/cli/renderers/tasks.d.ts +28 -0
- package/dist/cli/renderers/tasks.d.ts.map +1 -0
- package/dist/cli/renderers/tasks.js +306 -0
- package/dist/cli/renderers/tasks.js.map +1 -0
- package/dist/dispatch/adapters/cli.d.ts +67 -0
- package/dist/dispatch/adapters/cli.d.ts.map +1 -0
- package/dist/dispatch/adapters/cli.js +276 -0
- package/dist/dispatch/adapters/cli.js.map +1 -0
- package/dist/dispatch/context/session-context.d.ts +54 -0
- package/dist/dispatch/context/session-context.d.ts.map +1 -0
- package/dist/dispatch/context/session-context.js +61 -0
- package/dist/dispatch/context/session-context.js.map +1 -0
- package/dist/dispatch/dispatcher.d.ts +23 -0
- package/dist/dispatch/dispatcher.d.ts.map +1 -0
- package/dist/dispatch/dispatcher.js +84 -0
- package/dist/dispatch/dispatcher.js.map +1 -0
- package/dist/dispatch/domains/_base.d.ts +59 -0
- package/dist/dispatch/domains/_base.d.ts.map +1 -0
- package/dist/dispatch/domains/_base.js +77 -0
- package/dist/dispatch/domains/_base.js.map +1 -0
- package/dist/dispatch/domains/_meta.d.ts +23 -0
- package/dist/dispatch/domains/_meta.d.ts.map +1 -0
- package/dist/dispatch/domains/_meta.js +25 -0
- package/dist/dispatch/domains/_meta.js.map +1 -0
- package/dist/dispatch/domains/_routing.d.ts +8 -0
- package/dist/dispatch/domains/_routing.d.ts.map +1 -0
- package/dist/dispatch/domains/_routing.js +20 -0
- package/dist/dispatch/domains/_routing.js.map +1 -0
- package/dist/dispatch/domains/admin.d.ts +25 -0
- package/dist/dispatch/domains/admin.d.ts.map +1 -0
- package/dist/dispatch/domains/admin.js +719 -0
- package/dist/dispatch/domains/admin.js.map +1 -0
- package/dist/dispatch/domains/check.d.ts +22 -0
- package/dist/dispatch/domains/check.d.ts.map +1 -0
- package/dist/dispatch/domains/check.js +360 -0
- package/dist/dispatch/domains/check.js.map +1 -0
- package/dist/dispatch/domains/conduit.d.ts +38 -0
- package/dist/dispatch/domains/conduit.d.ts.map +1 -0
- package/dist/dispatch/domains/conduit.js +247 -0
- package/dist/dispatch/domains/conduit.js.map +1 -0
- package/dist/dispatch/domains/index.d.ts +27 -0
- package/dist/dispatch/domains/index.d.ts.map +1 -0
- package/dist/dispatch/domains/index.js +40 -0
- package/dist/dispatch/domains/index.js.map +1 -0
- package/dist/dispatch/domains/memory.d.ts +22 -0
- package/dist/dispatch/domains/memory.d.ts.map +1 -0
- package/dist/dispatch/domains/memory.js +303 -0
- package/dist/dispatch/domains/memory.js.map +1 -0
- package/dist/dispatch/domains/nexus.d.ts +22 -0
- package/dist/dispatch/domains/nexus.d.ts.map +1 -0
- package/dist/dispatch/domains/nexus.js +286 -0
- package/dist/dispatch/domains/nexus.js.map +1 -0
- package/dist/dispatch/domains/orchestrate.d.ts +19 -0
- package/dist/dispatch/domains/orchestrate.d.ts.map +1 -0
- package/dist/dispatch/domains/orchestrate.js +259 -0
- package/dist/dispatch/domains/orchestrate.js.map +1 -0
- package/dist/dispatch/domains/pipeline.d.ts +35 -0
- package/dist/dispatch/domains/pipeline.d.ts.map +1 -0
- package/dist/dispatch/domains/pipeline.js +593 -0
- package/dist/dispatch/domains/pipeline.js.map +1 -0
- package/dist/dispatch/domains/session.d.ts +22 -0
- package/dist/dispatch/domains/session.d.ts.map +1 -0
- package/dist/dispatch/domains/session.js +257 -0
- package/dist/dispatch/domains/session.js.map +1 -0
- package/dist/dispatch/domains/sticky.d.ts +20 -0
- package/dist/dispatch/domains/sticky.d.ts.map +1 -0
- package/dist/dispatch/domains/sticky.js +164 -0
- package/dist/dispatch/domains/sticky.js.map +1 -0
- package/dist/dispatch/domains/tasks.d.ts +25 -0
- package/dist/dispatch/domains/tasks.d.ts.map +1 -0
- package/dist/dispatch/domains/tasks.js +361 -0
- package/dist/dispatch/domains/tasks.js.map +1 -0
- package/dist/dispatch/domains/tools.d.ts +37 -0
- package/dist/dispatch/domains/tools.d.ts.map +1 -0
- package/dist/dispatch/domains/tools.js +481 -0
- package/dist/dispatch/domains/tools.js.map +1 -0
- package/dist/dispatch/engines/_error.d.ts +119 -0
- package/dist/dispatch/engines/_error.d.ts.map +1 -0
- package/dist/dispatch/engines/_error.js +288 -0
- package/dist/dispatch/engines/_error.js.map +1 -0
- package/dist/dispatch/engines/code-engine.d.ts +18 -0
- package/dist/dispatch/engines/code-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/code-engine.js +71 -0
- package/dist/dispatch/engines/code-engine.js.map +1 -0
- package/dist/dispatch/engines/codebase-map-engine.d.ts +31 -0
- package/dist/dispatch/engines/codebase-map-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/codebase-map-engine.js +43 -0
- package/dist/dispatch/engines/codebase-map-engine.js.map +1 -0
- package/dist/dispatch/engines/config-engine.d.ts +32 -0
- package/dist/dispatch/engines/config-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/config-engine.js +70 -0
- package/dist/dispatch/engines/config-engine.js.map +1 -0
- package/dist/dispatch/engines/hooks-engine.d.ts +96 -0
- package/dist/dispatch/engines/hooks-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/hooks-engine.js +144 -0
- package/dist/dispatch/engines/hooks-engine.js.map +1 -0
- package/dist/dispatch/engines/init-engine.d.ts +56 -0
- package/dist/dispatch/engines/init-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/init-engine.js +78 -0
- package/dist/dispatch/engines/init-engine.js.map +1 -0
- package/dist/dispatch/engines/lifecycle-engine.d.ts +66 -0
- package/dist/dispatch/engines/lifecycle-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/lifecycle-engine.js +224 -0
- package/dist/dispatch/engines/lifecycle-engine.js.map +1 -0
- package/dist/dispatch/engines/memory-engine.d.ts +10 -0
- package/dist/dispatch/engines/memory-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/memory-engine.js +10 -0
- package/dist/dispatch/engines/memory-engine.js.map +1 -0
- package/dist/dispatch/engines/nexus-engine.d.ts +167 -0
- package/dist/dispatch/engines/nexus-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/nexus-engine.js +356 -0
- package/dist/dispatch/engines/nexus-engine.js.map +1 -0
- package/dist/dispatch/engines/orchestrate-engine.d.ts +133 -0
- package/dist/dispatch/engines/orchestrate-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/orchestrate-engine.js +769 -0
- package/dist/dispatch/engines/orchestrate-engine.js.map +1 -0
- package/dist/dispatch/engines/pipeline-engine.d.ts +51 -0
- package/dist/dispatch/engines/pipeline-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/pipeline-engine.js +191 -0
- package/dist/dispatch/engines/pipeline-engine.js.map +1 -0
- package/dist/dispatch/engines/release-engine.d.ts +94 -0
- package/dist/dispatch/engines/release-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/release-engine.js +763 -0
- package/dist/dispatch/engines/release-engine.js.map +1 -0
- package/dist/dispatch/engines/session-engine.d.ts +383 -0
- package/dist/dispatch/engines/session-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/session-engine.js +910 -0
- package/dist/dispatch/engines/session-engine.js.map +1 -0
- package/dist/dispatch/engines/sticky-engine.d.ts +100 -0
- package/dist/dispatch/engines/sticky-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/sticky-engine.js +181 -0
- package/dist/dispatch/engines/sticky-engine.js.map +1 -0
- package/dist/dispatch/engines/system-engine.d.ts +539 -0
- package/dist/dispatch/engines/system-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/system-engine.js +1258 -0
- package/dist/dispatch/engines/system-engine.js.map +1 -0
- package/dist/dispatch/engines/task-engine.d.ts +1055 -0
- package/dist/dispatch/engines/task-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/task-engine.js +1193 -0
- package/dist/dispatch/engines/task-engine.js.map +1 -0
- package/dist/dispatch/engines/template-parser.d.ts +85 -0
- package/dist/dispatch/engines/template-parser.d.ts.map +1 -0
- package/dist/dispatch/engines/template-parser.js +108 -0
- package/dist/dispatch/engines/template-parser.js.map +1 -0
- package/dist/dispatch/engines/tools-engine.d.ts +270 -0
- package/dist/dispatch/engines/tools-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/tools-engine.js +636 -0
- package/dist/dispatch/engines/tools-engine.js.map +1 -0
- package/dist/dispatch/engines/validate-engine.d.ts +218 -0
- package/dist/dispatch/engines/validate-engine.d.ts.map +1 -0
- package/dist/dispatch/engines/validate-engine.js +737 -0
- package/dist/dispatch/engines/validate-engine.js.map +1 -0
- package/dist/dispatch/index.d.ts +20 -0
- package/dist/dispatch/index.d.ts.map +1 -0
- package/dist/dispatch/index.js +19 -0
- package/dist/dispatch/index.js.map +1 -0
- package/dist/dispatch/lib/background-jobs.d.ts +86 -0
- package/dist/dispatch/lib/background-jobs.d.ts.map +1 -0
- package/dist/dispatch/lib/background-jobs.js +183 -0
- package/dist/dispatch/lib/background-jobs.js.map +1 -0
- package/dist/dispatch/lib/budget.d.ts +36 -0
- package/dist/dispatch/lib/budget.d.ts.map +1 -0
- package/dist/dispatch/lib/budget.js +109 -0
- package/dist/dispatch/lib/budget.js.map +1 -0
- package/dist/dispatch/lib/capability-matrix.d.ts +11 -0
- package/dist/dispatch/lib/capability-matrix.d.ts.map +1 -0
- package/dist/dispatch/lib/capability-matrix.js +10 -0
- package/dist/dispatch/lib/capability-matrix.js.map +1 -0
- package/dist/dispatch/lib/config-loader.d.ts +42 -0
- package/dist/dispatch/lib/config-loader.d.ts.map +1 -0
- package/dist/dispatch/lib/config-loader.js +217 -0
- package/dist/dispatch/lib/config-loader.js.map +1 -0
- package/dist/dispatch/lib/config.d.ts +11 -0
- package/dist/dispatch/lib/config.d.ts.map +1 -0
- package/dist/dispatch/lib/config.js +10 -0
- package/dist/dispatch/lib/config.js.map +1 -0
- package/dist/dispatch/lib/defaults.d.ts +115 -0
- package/dist/dispatch/lib/defaults.d.ts.map +1 -0
- package/dist/dispatch/lib/defaults.js +61 -0
- package/dist/dispatch/lib/defaults.js.map +1 -0
- package/dist/dispatch/lib/engine.d.ts +26 -0
- package/dist/dispatch/lib/engine.d.ts.map +1 -0
- package/dist/dispatch/lib/engine.js +46 -0
- package/dist/dispatch/lib/engine.js.map +1 -0
- package/dist/dispatch/lib/exit-codes.d.ts +35 -0
- package/dist/dispatch/lib/exit-codes.d.ts.map +1 -0
- package/dist/dispatch/lib/exit-codes.js +60 -0
- package/dist/dispatch/lib/exit-codes.js.map +1 -0
- package/dist/dispatch/lib/gateway-meta.d.ts +37 -0
- package/dist/dispatch/lib/gateway-meta.d.ts.map +1 -0
- package/dist/dispatch/lib/gateway-meta.js +50 -0
- package/dist/dispatch/lib/gateway-meta.js.map +1 -0
- package/dist/dispatch/lib/job-manager-accessor.d.ts +9 -0
- package/dist/dispatch/lib/job-manager-accessor.d.ts.map +1 -0
- package/dist/dispatch/lib/job-manager-accessor.js +13 -0
- package/dist/dispatch/lib/job-manager-accessor.js.map +1 -0
- package/dist/dispatch/lib/meta.d.ts +26 -0
- package/dist/dispatch/lib/meta.d.ts.map +1 -0
- package/dist/dispatch/lib/meta.js +37 -0
- package/dist/dispatch/lib/meta.js.map +1 -0
- package/dist/dispatch/lib/param-utils.d.ts +11 -0
- package/dist/dispatch/lib/param-utils.d.ts.map +1 -0
- package/dist/dispatch/lib/param-utils.js +10 -0
- package/dist/dispatch/lib/param-utils.js.map +1 -0
- package/dist/dispatch/lib/projections.d.ts +56 -0
- package/dist/dispatch/lib/projections.d.ts.map +1 -0
- package/dist/dispatch/lib/projections.js +65 -0
- package/dist/dispatch/lib/projections.js.map +1 -0
- package/dist/dispatch/lib/proto-envelope.d.ts +56 -0
- package/dist/dispatch/lib/proto-envelope.d.ts.map +1 -0
- package/dist/dispatch/lib/proto-envelope.js +17 -0
- package/dist/dispatch/lib/proto-envelope.js.map +1 -0
- package/dist/dispatch/lib/schema-utils.d.ts +39 -0
- package/dist/dispatch/lib/schema-utils.d.ts.map +1 -0
- package/dist/dispatch/lib/schema-utils.js +88 -0
- package/dist/dispatch/lib/schema-utils.js.map +1 -0
- package/dist/dispatch/lib/security.d.ts +11 -0
- package/dist/dispatch/lib/security.d.ts.map +1 -0
- package/dist/dispatch/lib/security.js +10 -0
- package/dist/dispatch/lib/security.js.map +1 -0
- package/dist/dispatch/middleware/audit.d.ts +23 -0
- package/dist/dispatch/middleware/audit.d.ts.map +1 -0
- package/dist/dispatch/middleware/audit.js +169 -0
- package/dist/dispatch/middleware/audit.js.map +1 -0
- package/dist/dispatch/middleware/field-filter.d.ts +25 -0
- package/dist/dispatch/middleware/field-filter.d.ts.map +1 -0
- package/dist/dispatch/middleware/field-filter.js +70 -0
- package/dist/dispatch/middleware/field-filter.js.map +1 -0
- package/dist/dispatch/middleware/pipeline.d.ts +33 -0
- package/dist/dispatch/middleware/pipeline.d.ts.map +1 -0
- package/dist/dispatch/middleware/pipeline.js +60 -0
- package/dist/dispatch/middleware/pipeline.js.map +1 -0
- package/dist/dispatch/middleware/projection.d.ts +35 -0
- package/dist/dispatch/middleware/projection.d.ts.map +1 -0
- package/dist/dispatch/middleware/projection.js +146 -0
- package/dist/dispatch/middleware/projection.js.map +1 -0
- package/dist/dispatch/middleware/protocol-enforcement.d.ts +30 -0
- package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +1 -0
- package/dist/dispatch/middleware/protocol-enforcement.js +56 -0
- package/dist/dispatch/middleware/protocol-enforcement.js.map +1 -0
- package/dist/dispatch/middleware/rate-limiter.d.ts +72 -0
- package/dist/dispatch/middleware/rate-limiter.d.ts.map +1 -0
- package/dist/dispatch/middleware/rate-limiter.js +127 -0
- package/dist/dispatch/middleware/rate-limiter.js.map +1 -0
- package/dist/dispatch/middleware/sanitizer.d.ts +24 -0
- package/dist/dispatch/middleware/sanitizer.d.ts.map +1 -0
- package/dist/dispatch/middleware/sanitizer.js +56 -0
- package/dist/dispatch/middleware/sanitizer.js.map +1 -0
- package/dist/dispatch/middleware/session-resolver.d.ts +26 -0
- package/dist/dispatch/middleware/session-resolver.d.ts.map +1 -0
- package/dist/dispatch/middleware/session-resolver.js +65 -0
- package/dist/dispatch/middleware/session-resolver.js.map +1 -0
- package/dist/dispatch/middleware/verification-gates.d.ts +22 -0
- package/dist/dispatch/middleware/verification-gates.d.ts.map +1 -0
- package/dist/dispatch/middleware/verification-gates.js +59 -0
- package/dist/dispatch/middleware/verification-gates.js.map +1 -0
- package/dist/dispatch/registry.d.ts +91 -0
- package/dist/dispatch/registry.d.ts.map +1 -0
- package/dist/dispatch/registry.js +3133 -0
- package/dist/dispatch/registry.js.map +1 -0
- package/dist/dispatch/types.d.ts +206 -0
- package/dist/dispatch/types.d.ts.map +1 -0
- package/dist/dispatch/types.js +26 -0
- package/dist/dispatch/types.js.map +1 -0
- package/package.json +7 -7
- package/templates/cleoos-hub/pi-extensions/cleo-cant-bridge.ts +180 -0
|
@@ -0,0 +1,737 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validate Engine
|
|
3
|
+
*
|
|
4
|
+
* Thin wrapper layer around core validation operations.
|
|
5
|
+
* Delegates all business logic to src/core/validation/validate-ops.ts.
|
|
6
|
+
*
|
|
7
|
+
* @task T4477
|
|
8
|
+
* @task T4659
|
|
9
|
+
* @task T4786
|
|
10
|
+
* @epic T4654
|
|
11
|
+
*/
|
|
12
|
+
import { coreBatchValidate, coreCoherenceCheck, coreComplianceRecord, coreComplianceSummary, coreComplianceViolations, coreTestCoverage, coreTestRun, coreTestStatus, coreValidateManifest, coreValidateOutput, coreValidateProtocol, coreValidateSchema, coreValidateTask, resolveProjectRoot, } from '@cleocode/core/internal';
|
|
13
|
+
import { engineError } from './_error.js';
|
|
14
|
+
/**
|
|
15
|
+
* validate.schema - JSON Schema validation
|
|
16
|
+
* @task T4477
|
|
17
|
+
*/
|
|
18
|
+
export function validateSchemaOp(type, data, projectRoot) {
|
|
19
|
+
try {
|
|
20
|
+
const root = projectRoot || resolveProjectRoot();
|
|
21
|
+
const result = coreValidateSchema(type, data, root);
|
|
22
|
+
return { success: true, data: result };
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
26
|
+
const code = message.includes('not found')
|
|
27
|
+
? 'E_NOT_FOUND'
|
|
28
|
+
: message.includes('Unknown schema')
|
|
29
|
+
? 'E_INVALID_TYPE'
|
|
30
|
+
: message.includes('required')
|
|
31
|
+
? 'E_INVALID_INPUT'
|
|
32
|
+
: 'E_VALIDATION_ERROR';
|
|
33
|
+
return engineError(code, message);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* validate.task - Anti-hallucination task validation
|
|
38
|
+
* @task T4477
|
|
39
|
+
*/
|
|
40
|
+
export async function validateTask(taskId, projectRoot) {
|
|
41
|
+
try {
|
|
42
|
+
const root = projectRoot || resolveProjectRoot();
|
|
43
|
+
const result = await coreValidateTask(taskId, root);
|
|
44
|
+
return { success: true, data: result };
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
48
|
+
const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_INVALID_INPUT';
|
|
49
|
+
return engineError(code, message);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* validate.protocol - Protocol compliance check
|
|
54
|
+
* @task T4477
|
|
55
|
+
*/
|
|
56
|
+
export async function validateProtocol(taskId, protocolType, projectRoot) {
|
|
57
|
+
try {
|
|
58
|
+
const root = projectRoot || resolveProjectRoot();
|
|
59
|
+
const result = await coreValidateProtocol(taskId, protocolType, root);
|
|
60
|
+
return { success: true, data: result };
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
64
|
+
const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_INVALID_INPUT';
|
|
65
|
+
return engineError(code, message);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* validate.manifest - Manifest entry validation
|
|
70
|
+
* @task T4477
|
|
71
|
+
*/
|
|
72
|
+
export function validateManifest(projectRoot) {
|
|
73
|
+
try {
|
|
74
|
+
const root = projectRoot || resolveProjectRoot();
|
|
75
|
+
const result = coreValidateManifest(root);
|
|
76
|
+
return { success: true, data: result };
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
return engineError('E_FILE_ERROR', err instanceof Error ? err.message : String(err));
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* validate.output - Output file validation
|
|
84
|
+
* @task T4477
|
|
85
|
+
*/
|
|
86
|
+
export function validateOutput(filePath, taskId, projectRoot) {
|
|
87
|
+
try {
|
|
88
|
+
const root = projectRoot || resolveProjectRoot();
|
|
89
|
+
const result = coreValidateOutput(filePath, taskId, root);
|
|
90
|
+
return { success: true, data: result };
|
|
91
|
+
}
|
|
92
|
+
catch (err) {
|
|
93
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
94
|
+
const code = message.includes('not found') ? 'E_NOT_FOUND' : 'E_INVALID_INPUT';
|
|
95
|
+
return engineError(code, message);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* validate.compliance.summary - Aggregated compliance metrics
|
|
100
|
+
* @task T4477
|
|
101
|
+
*/
|
|
102
|
+
export function validateComplianceSummary(projectRoot) {
|
|
103
|
+
try {
|
|
104
|
+
const root = projectRoot || resolveProjectRoot();
|
|
105
|
+
const result = coreComplianceSummary(root);
|
|
106
|
+
return { success: true, data: result };
|
|
107
|
+
}
|
|
108
|
+
catch (err) {
|
|
109
|
+
return engineError('E_FILE_ERROR', err instanceof Error ? err.message : String(err));
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* validate.compliance.violations - List compliance violations
|
|
114
|
+
* @task T4477
|
|
115
|
+
*/
|
|
116
|
+
export function validateComplianceViolations(limit, projectRoot) {
|
|
117
|
+
try {
|
|
118
|
+
const root = projectRoot || resolveProjectRoot();
|
|
119
|
+
const result = coreComplianceViolations(limit, root);
|
|
120
|
+
return { success: true, data: result };
|
|
121
|
+
}
|
|
122
|
+
catch (err) {
|
|
123
|
+
return engineError('E_FILE_ERROR', err instanceof Error ? err.message : String(err));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* validate.compliance.record - Record compliance check result
|
|
128
|
+
* @task T4477
|
|
129
|
+
*/
|
|
130
|
+
export function validateComplianceRecord(taskId, result, protocol, violations, projectRoot) {
|
|
131
|
+
try {
|
|
132
|
+
const root = projectRoot || resolveProjectRoot();
|
|
133
|
+
const data = coreComplianceRecord(taskId, result, protocol, violations, root);
|
|
134
|
+
return { success: true, data };
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
return engineError('E_INVALID_INPUT', err instanceof Error ? err.message : String(err));
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* validate.test.status - Test suite status
|
|
142
|
+
* @task T4477
|
|
143
|
+
*/
|
|
144
|
+
export function validateTestStatus(projectRoot) {
|
|
145
|
+
try {
|
|
146
|
+
const root = projectRoot || resolveProjectRoot();
|
|
147
|
+
const result = coreTestStatus(root);
|
|
148
|
+
return { success: true, data: result };
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
return engineError('E_GENERAL', err instanceof Error ? err.message : String(err));
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* validate.coherence-check - Cross-validate task graph for consistency
|
|
156
|
+
* @task T4477
|
|
157
|
+
*/
|
|
158
|
+
export async function validateCoherenceCheck(projectRoot) {
|
|
159
|
+
try {
|
|
160
|
+
const root = projectRoot || resolveProjectRoot();
|
|
161
|
+
const result = await coreCoherenceCheck(root);
|
|
162
|
+
return { success: true, data: result };
|
|
163
|
+
}
|
|
164
|
+
catch (err) {
|
|
165
|
+
return engineError('E_NOT_INITIALIZED', err instanceof Error ? err.message : String(err));
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* validate.test.run - Execute test suite via subprocess
|
|
170
|
+
* @task T4632
|
|
171
|
+
*/
|
|
172
|
+
export function validateTestRun(params, projectRoot) {
|
|
173
|
+
try {
|
|
174
|
+
const root = projectRoot || resolveProjectRoot();
|
|
175
|
+
const result = coreTestRun(params, root);
|
|
176
|
+
return { success: true, data: result };
|
|
177
|
+
}
|
|
178
|
+
catch (err) {
|
|
179
|
+
return engineError('E_GENERAL', err instanceof Error ? err.message : String(err));
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* validate.batch-validate - Batch validate all tasks against schema and rules
|
|
184
|
+
* @task T4632
|
|
185
|
+
*/
|
|
186
|
+
export async function validateBatchValidate(projectRoot) {
|
|
187
|
+
try {
|
|
188
|
+
const root = projectRoot || resolveProjectRoot();
|
|
189
|
+
const result = await coreBatchValidate(root);
|
|
190
|
+
return { success: true, data: result };
|
|
191
|
+
}
|
|
192
|
+
catch (err) {
|
|
193
|
+
return engineError('E_NOT_FOUND', err instanceof Error ? err.message : String(err));
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* validate.test.coverage - Coverage metrics
|
|
198
|
+
* @task T4477
|
|
199
|
+
*/
|
|
200
|
+
export function validateTestCoverage(projectRoot) {
|
|
201
|
+
try {
|
|
202
|
+
const root = projectRoot || resolveProjectRoot();
|
|
203
|
+
const result = coreTestCoverage(root);
|
|
204
|
+
return { success: true, data: result };
|
|
205
|
+
}
|
|
206
|
+
catch (err) {
|
|
207
|
+
return engineError('E_FILE_ERROR', err instanceof Error ? err.message : String(err));
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
// ============================================================================
|
|
211
|
+
// Protocol Validation Operations (T5327)
|
|
212
|
+
// ============================================================================
|
|
213
|
+
import { checkArchitectureDecisionManifest, checkArtifactPublishManifest, checkConsensusManifest, checkContributionManifest, checkDecompositionManifest, checkImplementationManifest, checkProvenanceManifest, checkReleaseManifest, checkResearchManifest, checkSpecificationManifest, checkTestingManifest, checkValidationManifest, validateArchitectureDecisionTask, validateArtifactPublishTask, validateConsensusTask, validateContributionProtocol as validateContributionTask, validateDecompositionTask, validateImplementationTask, validateProvenanceTask, validateReleaseTask, validateResearchTask, validateSpecificationTask, validateTestingTask, validateValidationTask, } from '@cleocode/core/internal';
|
|
214
|
+
/**
|
|
215
|
+
* Shared catch handler for protocol validation ops.
|
|
216
|
+
*
|
|
217
|
+
* @task T260
|
|
218
|
+
*/
|
|
219
|
+
function protocolCatch(err) {
|
|
220
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
221
|
+
const code = message.includes('not found')
|
|
222
|
+
? 'E_NOT_FOUND'
|
|
223
|
+
: message.includes('violations')
|
|
224
|
+
? 'E_PROTOCOL_VIOLATION'
|
|
225
|
+
: 'E_VALIDATION_ERROR';
|
|
226
|
+
return engineError(code, message);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* check.protocol.consensus - Validate consensus protocol compliance
|
|
230
|
+
* @task T5327
|
|
231
|
+
*/
|
|
232
|
+
export async function validateProtocolConsensus(params, _projectRoot) {
|
|
233
|
+
try {
|
|
234
|
+
const { mode, strict, votingMatrixFile } = params;
|
|
235
|
+
if (mode === 'task') {
|
|
236
|
+
if (!params.taskId) {
|
|
237
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
238
|
+
}
|
|
239
|
+
const result = await validateConsensusTask(params.taskId, {
|
|
240
|
+
strict,
|
|
241
|
+
votingMatrixFile,
|
|
242
|
+
});
|
|
243
|
+
return { success: true, data: result };
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
if (!params.manifestFile) {
|
|
247
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
248
|
+
}
|
|
249
|
+
const result = await checkConsensusManifest(params.manifestFile, {
|
|
250
|
+
strict,
|
|
251
|
+
votingMatrixFile,
|
|
252
|
+
});
|
|
253
|
+
return { success: true, data: result };
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
258
|
+
const code = message.includes('not found')
|
|
259
|
+
? 'E_NOT_FOUND'
|
|
260
|
+
: message.includes('violations')
|
|
261
|
+
? 'E_PROTOCOL_VIOLATION'
|
|
262
|
+
: 'E_VALIDATION_ERROR';
|
|
263
|
+
return engineError(code, message);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* check.protocol.contribution - Validate contribution protocol compliance
|
|
268
|
+
* @task T5327
|
|
269
|
+
*/
|
|
270
|
+
export async function validateProtocolContribution(params, _projectRoot) {
|
|
271
|
+
try {
|
|
272
|
+
const { mode, strict } = params;
|
|
273
|
+
if (mode === 'task') {
|
|
274
|
+
if (!params.taskId) {
|
|
275
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
276
|
+
}
|
|
277
|
+
const result = await validateContributionTask(params.taskId, { strict });
|
|
278
|
+
return { success: true, data: result };
|
|
279
|
+
}
|
|
280
|
+
else {
|
|
281
|
+
if (!params.manifestFile) {
|
|
282
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
283
|
+
}
|
|
284
|
+
const result = await checkContributionManifest(params.manifestFile, { strict });
|
|
285
|
+
return { success: true, data: result };
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
catch (err) {
|
|
289
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
290
|
+
const code = message.includes('not found')
|
|
291
|
+
? 'E_NOT_FOUND'
|
|
292
|
+
: message.includes('violations')
|
|
293
|
+
? 'E_PROTOCOL_VIOLATION'
|
|
294
|
+
: 'E_VALIDATION_ERROR';
|
|
295
|
+
return engineError(code, message);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* check.protocol.decomposition - Validate decomposition protocol compliance
|
|
300
|
+
* @task T5327
|
|
301
|
+
*/
|
|
302
|
+
export async function validateProtocolDecomposition(params, _projectRoot) {
|
|
303
|
+
try {
|
|
304
|
+
const { mode, strict, epicId } = params;
|
|
305
|
+
if (mode === 'task') {
|
|
306
|
+
if (!params.taskId) {
|
|
307
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
308
|
+
}
|
|
309
|
+
const result = await validateDecompositionTask(params.taskId, { strict, epicId });
|
|
310
|
+
return { success: true, data: result };
|
|
311
|
+
}
|
|
312
|
+
else {
|
|
313
|
+
if (!params.manifestFile) {
|
|
314
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
315
|
+
}
|
|
316
|
+
const result = await checkDecompositionManifest(params.manifestFile, { strict, epicId });
|
|
317
|
+
return { success: true, data: result };
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
catch (err) {
|
|
321
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
322
|
+
const code = message.includes('not found')
|
|
323
|
+
? 'E_NOT_FOUND'
|
|
324
|
+
: message.includes('violations')
|
|
325
|
+
? 'E_PROTOCOL_VIOLATION'
|
|
326
|
+
: 'E_VALIDATION_ERROR';
|
|
327
|
+
return engineError(code, message);
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* check.protocol.implementation - Validate implementation protocol compliance
|
|
332
|
+
* @task T5327
|
|
333
|
+
*/
|
|
334
|
+
export async function validateProtocolImplementation(params, _projectRoot) {
|
|
335
|
+
try {
|
|
336
|
+
const { mode, strict } = params;
|
|
337
|
+
if (mode === 'task') {
|
|
338
|
+
if (!params.taskId) {
|
|
339
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
340
|
+
}
|
|
341
|
+
const result = await validateImplementationTask(params.taskId, { strict });
|
|
342
|
+
return { success: true, data: result };
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
if (!params.manifestFile) {
|
|
346
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
347
|
+
}
|
|
348
|
+
const result = await checkImplementationManifest(params.manifestFile, { strict });
|
|
349
|
+
return { success: true, data: result };
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
catch (err) {
|
|
353
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
354
|
+
const code = message.includes('not found')
|
|
355
|
+
? 'E_NOT_FOUND'
|
|
356
|
+
: message.includes('violations')
|
|
357
|
+
? 'E_PROTOCOL_VIOLATION'
|
|
358
|
+
: 'E_VALIDATION_ERROR';
|
|
359
|
+
return engineError(code, message);
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* check.protocol.specification - Validate specification protocol compliance
|
|
364
|
+
* @task T5327
|
|
365
|
+
*/
|
|
366
|
+
export async function validateProtocolSpecification(params, _projectRoot) {
|
|
367
|
+
try {
|
|
368
|
+
const { mode, strict, specFile } = params;
|
|
369
|
+
if (mode === 'task') {
|
|
370
|
+
if (!params.taskId) {
|
|
371
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
372
|
+
}
|
|
373
|
+
const result = await validateSpecificationTask(params.taskId, { strict, specFile });
|
|
374
|
+
return { success: true, data: result };
|
|
375
|
+
}
|
|
376
|
+
else {
|
|
377
|
+
if (!params.manifestFile) {
|
|
378
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
379
|
+
}
|
|
380
|
+
const result = await checkSpecificationManifest(params.manifestFile, { strict, specFile });
|
|
381
|
+
return { success: true, data: result };
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
catch (err) {
|
|
385
|
+
return protocolCatch(err);
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* check.protocol.research - Validate research protocol compliance
|
|
390
|
+
* @task T260
|
|
391
|
+
*/
|
|
392
|
+
export async function validateProtocolResearch(params, _projectRoot) {
|
|
393
|
+
try {
|
|
394
|
+
const { mode, strict, hasCodeChanges } = params;
|
|
395
|
+
if (mode === 'task') {
|
|
396
|
+
if (!params.taskId) {
|
|
397
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
398
|
+
}
|
|
399
|
+
const result = await validateResearchTask(params.taskId, { strict, hasCodeChanges });
|
|
400
|
+
return { success: true, data: result };
|
|
401
|
+
}
|
|
402
|
+
if (!params.manifestFile) {
|
|
403
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
404
|
+
}
|
|
405
|
+
const result = await checkResearchManifest(params.manifestFile, { strict, hasCodeChanges });
|
|
406
|
+
return { success: true, data: result };
|
|
407
|
+
}
|
|
408
|
+
catch (err) {
|
|
409
|
+
return protocolCatch(err);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* check.protocol.architecture-decision - Validate ADR protocol compliance
|
|
414
|
+
* @task T260
|
|
415
|
+
*/
|
|
416
|
+
export async function validateProtocolArchitectureDecision(params, _projectRoot) {
|
|
417
|
+
try {
|
|
418
|
+
const { mode, strict, adrContent, status, hitlReviewed, downstreamFlagged, persistedInDb } = params;
|
|
419
|
+
const adrOpts = { strict, adrContent, status, hitlReviewed, downstreamFlagged, persistedInDb };
|
|
420
|
+
if (mode === 'task') {
|
|
421
|
+
if (!params.taskId) {
|
|
422
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
423
|
+
}
|
|
424
|
+
const result = await validateArchitectureDecisionTask(params.taskId, adrOpts);
|
|
425
|
+
return { success: true, data: result };
|
|
426
|
+
}
|
|
427
|
+
if (!params.manifestFile) {
|
|
428
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
429
|
+
}
|
|
430
|
+
const result = await checkArchitectureDecisionManifest(params.manifestFile, adrOpts);
|
|
431
|
+
return { success: true, data: result };
|
|
432
|
+
}
|
|
433
|
+
catch (err) {
|
|
434
|
+
return protocolCatch(err);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
/**
|
|
438
|
+
* check.protocol.validation - Validate validation-stage protocol compliance
|
|
439
|
+
* @task T260
|
|
440
|
+
*/
|
|
441
|
+
export async function validateProtocolValidation(params, _projectRoot) {
|
|
442
|
+
try {
|
|
443
|
+
const { mode, strict, specMatchConfirmed, testSuitePassed, protocolComplianceChecked } = params;
|
|
444
|
+
const validationOpts = {
|
|
445
|
+
strict,
|
|
446
|
+
specMatchConfirmed,
|
|
447
|
+
testSuitePassed,
|
|
448
|
+
protocolComplianceChecked,
|
|
449
|
+
};
|
|
450
|
+
if (mode === 'task') {
|
|
451
|
+
if (!params.taskId) {
|
|
452
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
453
|
+
}
|
|
454
|
+
const result = await validateValidationTask(params.taskId, validationOpts);
|
|
455
|
+
return { success: true, data: result };
|
|
456
|
+
}
|
|
457
|
+
if (!params.manifestFile) {
|
|
458
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
459
|
+
}
|
|
460
|
+
const result = await checkValidationManifest(params.manifestFile, validationOpts);
|
|
461
|
+
return { success: true, data: result };
|
|
462
|
+
}
|
|
463
|
+
catch (err) {
|
|
464
|
+
return protocolCatch(err);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* check.protocol.testing - Validate testing-stage protocol compliance (IVT loop)
|
|
469
|
+
* @task T260
|
|
470
|
+
*/
|
|
471
|
+
export async function validateProtocolTesting(params, _projectRoot) {
|
|
472
|
+
try {
|
|
473
|
+
const { mode, strict, framework, testsRun, testsPassed, testsFailed, coveragePercent, coverageThreshold, ivtLoopConverged, ivtLoopIterations, } = params;
|
|
474
|
+
const testingOpts = {
|
|
475
|
+
strict,
|
|
476
|
+
framework: framework,
|
|
477
|
+
testsRun,
|
|
478
|
+
testsPassed,
|
|
479
|
+
testsFailed,
|
|
480
|
+
coveragePercent,
|
|
481
|
+
coverageThreshold,
|
|
482
|
+
ivtLoopConverged,
|
|
483
|
+
ivtLoopIterations,
|
|
484
|
+
};
|
|
485
|
+
if (mode === 'task') {
|
|
486
|
+
if (!params.taskId) {
|
|
487
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
488
|
+
}
|
|
489
|
+
const result = await validateTestingTask(params.taskId, testingOpts);
|
|
490
|
+
return { success: true, data: result };
|
|
491
|
+
}
|
|
492
|
+
if (!params.manifestFile) {
|
|
493
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
494
|
+
}
|
|
495
|
+
const result = await checkTestingManifest(params.manifestFile, testingOpts);
|
|
496
|
+
return { success: true, data: result };
|
|
497
|
+
}
|
|
498
|
+
catch (err) {
|
|
499
|
+
return protocolCatch(err);
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
/**
|
|
503
|
+
* check.protocol.release - Validate release protocol compliance
|
|
504
|
+
* @task T260
|
|
505
|
+
*/
|
|
506
|
+
export async function validateProtocolRelease(params, _projectRoot) {
|
|
507
|
+
try {
|
|
508
|
+
const { mode, strict, version, hasChangelog } = params;
|
|
509
|
+
const releaseOpts = { strict, version, hasChangelog };
|
|
510
|
+
if (mode === 'task') {
|
|
511
|
+
if (!params.taskId) {
|
|
512
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
513
|
+
}
|
|
514
|
+
const result = await validateReleaseTask(params.taskId, releaseOpts);
|
|
515
|
+
return { success: true, data: result };
|
|
516
|
+
}
|
|
517
|
+
if (!params.manifestFile) {
|
|
518
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
519
|
+
}
|
|
520
|
+
const result = await checkReleaseManifest(params.manifestFile, releaseOpts);
|
|
521
|
+
return { success: true, data: result };
|
|
522
|
+
}
|
|
523
|
+
catch (err) {
|
|
524
|
+
return protocolCatch(err);
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
/**
|
|
528
|
+
* check.protocol.artifact-publish - Validate artifact-publish protocol compliance
|
|
529
|
+
* @task T260
|
|
530
|
+
*/
|
|
531
|
+
export async function validateProtocolArtifactPublish(params, _projectRoot) {
|
|
532
|
+
try {
|
|
533
|
+
const { mode, strict, artifactType, buildPassed } = params;
|
|
534
|
+
const artifactOpts = { strict, artifactType, buildPassed };
|
|
535
|
+
if (mode === 'task') {
|
|
536
|
+
if (!params.taskId) {
|
|
537
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
538
|
+
}
|
|
539
|
+
const result = await validateArtifactPublishTask(params.taskId, artifactOpts);
|
|
540
|
+
return { success: true, data: result };
|
|
541
|
+
}
|
|
542
|
+
if (!params.manifestFile) {
|
|
543
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
544
|
+
}
|
|
545
|
+
const result = await checkArtifactPublishManifest(params.manifestFile, artifactOpts);
|
|
546
|
+
return { success: true, data: result };
|
|
547
|
+
}
|
|
548
|
+
catch (err) {
|
|
549
|
+
return protocolCatch(err);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* check.protocol.provenance - Validate provenance protocol compliance
|
|
554
|
+
* @task T260
|
|
555
|
+
*/
|
|
556
|
+
export async function validateProtocolProvenance(params, _projectRoot) {
|
|
557
|
+
try {
|
|
558
|
+
const { mode, strict, hasAttestation, hasSbom } = params;
|
|
559
|
+
const provenanceOpts = { strict, hasAttestation, hasSbom };
|
|
560
|
+
if (mode === 'task') {
|
|
561
|
+
if (!params.taskId) {
|
|
562
|
+
return engineError('E_INVALID_INPUT', 'taskId is required for task mode');
|
|
563
|
+
}
|
|
564
|
+
const result = await validateProvenanceTask(params.taskId, provenanceOpts);
|
|
565
|
+
return { success: true, data: result };
|
|
566
|
+
}
|
|
567
|
+
if (!params.manifestFile) {
|
|
568
|
+
return engineError('E_INVALID_INPUT', 'manifestFile is required for manifest mode');
|
|
569
|
+
}
|
|
570
|
+
const result = await checkProvenanceManifest(params.manifestFile, provenanceOpts);
|
|
571
|
+
return { success: true, data: result };
|
|
572
|
+
}
|
|
573
|
+
catch (err) {
|
|
574
|
+
return protocolCatch(err);
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
import { getAccessor } from '@cleocode/core/internal';
|
|
578
|
+
const VALID_GATES = [
|
|
579
|
+
'implemented',
|
|
580
|
+
'testsPassed',
|
|
581
|
+
'qaPassed',
|
|
582
|
+
'cleanupDone',
|
|
583
|
+
'securityPassed',
|
|
584
|
+
'documented',
|
|
585
|
+
];
|
|
586
|
+
const DEFAULT_REQUIRED_GATES = [
|
|
587
|
+
'implemented',
|
|
588
|
+
'testsPassed',
|
|
589
|
+
'qaPassed',
|
|
590
|
+
'securityPassed',
|
|
591
|
+
'documented',
|
|
592
|
+
];
|
|
593
|
+
function initVerification() {
|
|
594
|
+
return {
|
|
595
|
+
passed: false,
|
|
596
|
+
round: 0,
|
|
597
|
+
gates: {},
|
|
598
|
+
lastAgent: null,
|
|
599
|
+
lastUpdated: null,
|
|
600
|
+
failureLog: [],
|
|
601
|
+
};
|
|
602
|
+
}
|
|
603
|
+
function computePassed(verification, requiredGates = DEFAULT_REQUIRED_GATES) {
|
|
604
|
+
for (const gate of requiredGates) {
|
|
605
|
+
if (verification.gates[gate] !== true)
|
|
606
|
+
return false;
|
|
607
|
+
}
|
|
608
|
+
return true;
|
|
609
|
+
}
|
|
610
|
+
function getMissingGates(verification, requiredGates = DEFAULT_REQUIRED_GATES) {
|
|
611
|
+
return requiredGates.filter((g) => verification.gates[g] !== true);
|
|
612
|
+
}
|
|
613
|
+
/** Load required gates from project config, falling back to hardcoded defaults. */
|
|
614
|
+
async function loadRequiredGates(projectRoot) {
|
|
615
|
+
try {
|
|
616
|
+
const { loadConfig } = await import('@cleocode/core/internal');
|
|
617
|
+
const config = await loadConfig(projectRoot);
|
|
618
|
+
const cfgGates = config.verification?.requiredGates;
|
|
619
|
+
if (Array.isArray(cfgGates) && cfgGates.length > 0) {
|
|
620
|
+
return cfgGates.filter((g) => DEFAULT_REQUIRED_GATES.includes(g));
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
catch {
|
|
624
|
+
// fallback
|
|
625
|
+
}
|
|
626
|
+
return [...DEFAULT_REQUIRED_GATES];
|
|
627
|
+
}
|
|
628
|
+
/**
|
|
629
|
+
* check.gate.verify - View or modify verification gates for a task
|
|
630
|
+
* @task T5327
|
|
631
|
+
*/
|
|
632
|
+
export async function validateGateVerify(params, projectRoot) {
|
|
633
|
+
try {
|
|
634
|
+
const root = projectRoot || resolveProjectRoot();
|
|
635
|
+
const { taskId, gate, value = true, agent, all, reset } = params;
|
|
636
|
+
// Validate task ID format
|
|
637
|
+
const idPattern = /^T\d{3,}$/;
|
|
638
|
+
if (!idPattern.test(taskId)) {
|
|
639
|
+
return engineError('E_INVALID_INPUT', `Invalid task ID format: ${taskId}`);
|
|
640
|
+
}
|
|
641
|
+
const accessor = await getAccessor(root);
|
|
642
|
+
const task = await accessor.loadSingleTask(taskId);
|
|
643
|
+
if (!task) {
|
|
644
|
+
return engineError('E_NOT_FOUND', `Task ${taskId} not found`);
|
|
645
|
+
}
|
|
646
|
+
const configGates = await loadRequiredGates(root);
|
|
647
|
+
// View mode (no modifications)
|
|
648
|
+
if (!gate && !all && !reset) {
|
|
649
|
+
const verification = task.verification ?? initVerification();
|
|
650
|
+
const missing = getMissingGates(verification, configGates);
|
|
651
|
+
return {
|
|
652
|
+
success: true,
|
|
653
|
+
data: {
|
|
654
|
+
taskId,
|
|
655
|
+
title: task.title,
|
|
656
|
+
status: task.status,
|
|
657
|
+
type: task.type ?? 'task',
|
|
658
|
+
verification,
|
|
659
|
+
verificationStatus: verification.passed ? 'passed' : 'pending',
|
|
660
|
+
passed: verification.passed,
|
|
661
|
+
round: verification.round,
|
|
662
|
+
requiredGates: configGates,
|
|
663
|
+
missingGates: missing,
|
|
664
|
+
action: 'view',
|
|
665
|
+
},
|
|
666
|
+
};
|
|
667
|
+
}
|
|
668
|
+
// Modification mode
|
|
669
|
+
let verification = task.verification ?? initVerification();
|
|
670
|
+
const now = new Date().toISOString();
|
|
671
|
+
let action = 'view';
|
|
672
|
+
if (reset) {
|
|
673
|
+
verification = initVerification();
|
|
674
|
+
action = 'reset';
|
|
675
|
+
}
|
|
676
|
+
else if (all) {
|
|
677
|
+
for (const g of configGates) {
|
|
678
|
+
verification.gates[g] = true;
|
|
679
|
+
}
|
|
680
|
+
if (agent) {
|
|
681
|
+
verification.lastAgent = agent;
|
|
682
|
+
}
|
|
683
|
+
verification.lastUpdated = now;
|
|
684
|
+
action = 'set_all';
|
|
685
|
+
}
|
|
686
|
+
else if (gate) {
|
|
687
|
+
if (!VALID_GATES.includes(gate)) {
|
|
688
|
+
return engineError('E_INVALID_INPUT', `Invalid gate: ${gate}. Valid: ${VALID_GATES.join(', ')}`);
|
|
689
|
+
}
|
|
690
|
+
verification.gates[gate] = value;
|
|
691
|
+
if (agent) {
|
|
692
|
+
verification.lastAgent = agent;
|
|
693
|
+
}
|
|
694
|
+
verification.lastUpdated = now;
|
|
695
|
+
if (!value) {
|
|
696
|
+
verification.round++;
|
|
697
|
+
verification.failureLog.push({
|
|
698
|
+
round: verification.round,
|
|
699
|
+
agent: agent ?? 'unknown',
|
|
700
|
+
reason: `Gate ${gate} set to false`,
|
|
701
|
+
timestamp: now,
|
|
702
|
+
});
|
|
703
|
+
}
|
|
704
|
+
action = 'set_gate';
|
|
705
|
+
}
|
|
706
|
+
verification.passed = computePassed(verification, configGates);
|
|
707
|
+
task.verification = verification;
|
|
708
|
+
task.updatedAt = now;
|
|
709
|
+
await accessor.upsertSingleTask(task);
|
|
710
|
+
const missing = getMissingGates(verification, configGates);
|
|
711
|
+
const result = {
|
|
712
|
+
taskId,
|
|
713
|
+
title: task.title,
|
|
714
|
+
status: task.status,
|
|
715
|
+
type: task.type ?? 'task',
|
|
716
|
+
verification,
|
|
717
|
+
verificationStatus: verification.passed ? 'passed' : 'pending',
|
|
718
|
+
passed: verification.passed,
|
|
719
|
+
round: verification.round,
|
|
720
|
+
requiredGates: configGates,
|
|
721
|
+
missingGates: missing,
|
|
722
|
+
action,
|
|
723
|
+
};
|
|
724
|
+
if (action === 'set_gate') {
|
|
725
|
+
result.gateSet = gate;
|
|
726
|
+
}
|
|
727
|
+
else if (action === 'set_all') {
|
|
728
|
+
result.gatesSet = configGates;
|
|
729
|
+
}
|
|
730
|
+
return { success: true, data: result };
|
|
731
|
+
}
|
|
732
|
+
catch (err) {
|
|
733
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
734
|
+
return engineError('E_GENERAL', message);
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
//# sourceMappingURL=validate-engine.js.map
|