@cleocode/cleo 2026.2.5 → 2026.2.7

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.
Files changed (1698) hide show
  1. package/LICENSE +0 -0
  2. package/README.md +111 -73
  3. package/completions/bash-completion.sh +0 -0
  4. package/completions/zsh-completion.zsh +0 -0
  5. package/dist/cli/index.js +21924 -20032
  6. package/dist/cli/index.js.map +4 -4
  7. package/dist/mcp/index.js +17101 -13563
  8. package/dist/mcp/index.js.map +4 -4
  9. package/drizzle/20260224040019_baseline/migration.sql +156 -0
  10. package/drizzle/20260224040019_baseline/snapshot.json +1480 -0
  11. package/drizzle/20260224040238_add-audit-log/migration.sql +14 -0
  12. package/drizzle/20260224040238_add-audit-log/snapshot.json +1615 -0
  13. package/drizzle/20260224144602_closed_grim_reaper/migration.sql +185 -0
  14. package/drizzle/20260224144602_closed_grim_reaper/snapshot.json +1702 -0
  15. package/drizzle/20260225024442_sync-lifecycle-enums-and-arch-decisions/migration.sql +61 -0
  16. package/drizzle/20260225024442_sync-lifecycle-enums-and-arch-decisions/snapshot.json +1855 -0
  17. package/drizzle/20260227014821_adr-system-and-status-registry/migration.sql +93 -0
  18. package/drizzle/20260227014821_adr-system-and-status-registry/snapshot.json +2160 -0
  19. package/drizzle/20260227021231_add-cancelled-pipeline-status/migration.sql +28 -0
  20. package/drizzle/20260227021231_add-cancelled-pipeline-status/snapshot.json +2160 -0
  21. package/drizzle/20260227022417_adr-cognitive-search-fields/migration.sql +3 -0
  22. package/drizzle/20260227022417_adr-cognitive-search-fields/snapshot.json +2190 -0
  23. package/drizzle/20260227172236_freezing_grey_gargoyle/migration.sql +8 -0
  24. package/drizzle/20260227172236_freezing_grey_gargoyle/snapshot.json +2278 -0
  25. package/drizzle/20260227183444_fix-orphaned-parent-ids/migration.sql +5 -0
  26. package/drizzle/20260227183444_fix-orphaned-parent-ids/snapshot.json +2278 -0
  27. package/drizzle/20260227183521_parent-id-on-delete-set-null/migration.sql +55 -0
  28. package/drizzle/20260227183521_parent-id-on-delete-set-null/snapshot.json +2278 -0
  29. package/drizzle/20260227200430_numerous_mysterio/migration.sql +3 -0
  30. package/drizzle/20260227200430_numerous_mysterio/snapshot.json +2323 -0
  31. package/drizzle/20260227235745_add-audit-log-dispatch-columns/migration.sql +40 -0
  32. package/drizzle/20260227235745_add-audit-log-dispatch-columns/snapshot.json +2323 -0
  33. package/package.json +20 -14
  34. package/packages/ct-skills/dispatch-config.json +404 -0
  35. package/packages/ct-skills/index.d.ts +178 -0
  36. package/packages/ct-skills/index.js +405 -0
  37. package/packages/ct-skills/package.json +16 -0
  38. package/packages/ct-skills/profiles/core.json +7 -0
  39. package/packages/ct-skills/profiles/full.json +11 -0
  40. package/packages/ct-skills/profiles/minimal.json +7 -0
  41. package/packages/ct-skills/profiles/recommended.json +7 -0
  42. package/packages/ct-skills/protocols/agent-protocol.md +260 -0
  43. package/packages/ct-skills/protocols/artifact-publish.md +587 -0
  44. package/packages/ct-skills/protocols/consensus.md +309 -0
  45. package/packages/ct-skills/protocols/contribution.md +375 -0
  46. package/packages/ct-skills/protocols/decomposition.md +352 -0
  47. package/packages/ct-skills/protocols/implementation.md +344 -0
  48. package/packages/ct-skills/protocols/provenance.md +600 -0
  49. package/packages/ct-skills/protocols/release.md +635 -0
  50. package/packages/ct-skills/protocols/research.md +248 -0
  51. package/packages/ct-skills/protocols/specification.md +287 -0
  52. package/packages/ct-skills/protocols/testing.md +346 -0
  53. package/packages/ct-skills/protocols/validation.md +229 -0
  54. package/packages/ct-skills/skills/_shared/cleo-style-guide.md +84 -0
  55. package/packages/ct-skills/skills/_shared/manifest-operations.md +810 -0
  56. package/packages/ct-skills/skills/_shared/placeholders.json +433 -0
  57. package/packages/ct-skills/skills/_shared/skill-chaining-patterns.md +240 -0
  58. package/packages/ct-skills/skills/_shared/subagent-protocol-base.md +221 -0
  59. package/packages/ct-skills/skills/_shared/task-system-integration.md +232 -0
  60. package/packages/ct-skills/skills/_shared/testing-framework-config.md +110 -0
  61. package/packages/ct-skills/skills/ct-cleo/SKILL.md +169 -0
  62. package/packages/ct-skills/skills/ct-cleo/references/anti-patterns.md +19 -0
  63. package/packages/ct-skills/skills/ct-cleo/references/orchestrator-constraints.md +55 -0
  64. package/packages/ct-skills/skills/ct-cleo/references/rcsd-lifecycle.md +127 -0
  65. package/packages/ct-skills/skills/ct-cleo/references/session-protocol.md +162 -0
  66. package/packages/ct-skills/skills/ct-contribution/SKILL.md +521 -0
  67. package/packages/ct-skills/skills/ct-contribution/templates/contribution-init.json +21 -0
  68. package/packages/ct-skills/skills/ct-dev-workflow/SKILL.md +423 -0
  69. package/packages/ct-skills/skills/ct-docs-lookup/SKILL.md +66 -0
  70. package/packages/ct-skills/skills/ct-docs-review/SKILL.md +175 -0
  71. package/packages/ct-skills/skills/ct-docs-write/SKILL.md +108 -0
  72. package/packages/ct-skills/skills/ct-documentor/SKILL.md +231 -0
  73. package/packages/ct-skills/skills/ct-epic-architect/SKILL.md +305 -0
  74. package/packages/ct-skills/skills/ct-epic-architect/references/bug-epic-example.md +172 -0
  75. package/packages/ct-skills/skills/ct-epic-architect/references/commands.md +201 -0
  76. package/packages/ct-skills/skills/ct-epic-architect/references/feature-epic-example.md +210 -0
  77. package/packages/ct-skills/skills/ct-epic-architect/references/migration-epic-example.md +244 -0
  78. package/packages/ct-skills/skills/ct-epic-architect/references/output-format.md +92 -0
  79. package/packages/ct-skills/skills/ct-epic-architect/references/patterns.md +284 -0
  80. package/packages/ct-skills/skills/ct-epic-architect/references/refactor-epic-example.md +412 -0
  81. package/packages/ct-skills/skills/ct-epic-architect/references/research-epic-example.md +226 -0
  82. package/packages/ct-skills/skills/ct-epic-architect/references/shell-escaping.md +86 -0
  83. package/packages/ct-skills/skills/ct-epic-architect/references/skill-aware-execution.md +195 -0
  84. package/packages/ct-skills/skills/ct-gitbook/SKILL.md +516 -0
  85. package/packages/ct-skills/skills/ct-gitbook/assets/SUMMARY.md +28 -0
  86. package/packages/ct-skills/skills/ct-gitbook/assets/gitbook.yaml +14 -0
  87. package/packages/ct-skills/skills/ct-gitbook/references/api-sdk.md +318 -0
  88. package/packages/ct-skills/skills/ct-gitbook/references/auth-sso.md +208 -0
  89. package/packages/ct-skills/skills/ct-gitbook/references/change-requests.md +169 -0
  90. package/packages/ct-skills/skills/ct-gitbook/references/content-blocks.md +230 -0
  91. package/packages/ct-skills/skills/ct-gitbook/references/docs-sites.md +202 -0
  92. package/packages/ct-skills/skills/ct-gitbook/references/git-sync.md +175 -0
  93. package/packages/ct-skills/skills/ct-gitbook/references/llm-ready.md +178 -0
  94. package/packages/ct-skills/skills/ct-gitbook/references/migration.md +263 -0
  95. package/packages/ct-skills/skills/ct-library-implementer-bash/SKILL.md +316 -0
  96. package/packages/ct-skills/skills/ct-orchestrator/INSTALL.md +61 -0
  97. package/packages/ct-skills/skills/ct-orchestrator/README.md +69 -0
  98. package/packages/ct-skills/skills/ct-orchestrator/SKILL.md +330 -0
  99. package/packages/ct-skills/skills/ct-orchestrator/references/SUBAGENT-PROTOCOL-BLOCK.md +66 -0
  100. package/packages/ct-skills/skills/ct-orchestrator/references/autonomous-operation.md +167 -0
  101. package/packages/ct-skills/skills/ct-orchestrator/references/lifecycle-gates.md +98 -0
  102. package/packages/ct-skills/skills/ct-orchestrator/references/orchestrator-compliance.md +271 -0
  103. package/packages/ct-skills/skills/ct-orchestrator/references/orchestrator-handoffs.md +85 -0
  104. package/packages/ct-skills/skills/ct-orchestrator/references/orchestrator-patterns.md +164 -0
  105. package/packages/ct-skills/skills/ct-orchestrator/references/orchestrator-recovery.md +113 -0
  106. package/packages/ct-skills/skills/ct-orchestrator/references/orchestrator-spawning.md +271 -0
  107. package/packages/ct-skills/skills/ct-orchestrator/references/orchestrator-tokens.md +180 -0
  108. package/packages/ct-skills/skills/ct-research-agent/SKILL.md +226 -0
  109. package/packages/ct-skills/skills/ct-skill-creator/SKILL.md +368 -0
  110. package/packages/ct-skills/skills/ct-skill-creator/references/output-patterns.md +86 -0
  111. package/packages/ct-skills/skills/ct-skill-creator/references/workflows.md +28 -0
  112. package/packages/ct-skills/skills/ct-skill-creator/scripts/init_skill.py +300 -0
  113. package/packages/ct-skills/skills/ct-skill-creator/scripts/package_skill.py +110 -0
  114. package/packages/ct-skills/skills/ct-skill-creator/scripts/quick_validate.py +97 -0
  115. package/packages/ct-skills/skills/ct-skill-lookup/SKILL.md +179 -0
  116. package/packages/ct-skills/skills/ct-spec-writer/SKILL.md +189 -0
  117. package/packages/ct-skills/skills/ct-task-executor/SKILL.md +296 -0
  118. package/packages/ct-skills/skills/ct-test-writer-bats/SKILL.md +347 -0
  119. package/packages/ct-skills/skills/ct-validator/SKILL.md +216 -0
  120. package/packages/ct-skills/skills/manifest.json +1199 -0
  121. package/packages/ct-skills/skills/railway-platform/SKILL.md +506 -0
  122. package/packages/ct-skills/skills/railway-platform/_shared/scripts/railway-api.sh +180 -0
  123. package/packages/ct-skills/skills/railway-platform/_shared/scripts/railway-common.sh +262 -0
  124. package/packages/ct-skills/skills/railway-platform/references/01-getting-started.md +149 -0
  125. package/packages/ct-skills/skills/railway-platform/references/02-projects.md +116 -0
  126. package/packages/ct-skills/skills/railway-platform/references/03-services.md +147 -0
  127. package/packages/ct-skills/skills/railway-platform/references/04-deployments.md +210 -0
  128. package/packages/ct-skills/skills/railway-platform/references/05-databases.md +142 -0
  129. package/packages/ct-skills/skills/railway-platform/references/06-environments.md +261 -0
  130. package/packages/ct-skills/skills/railway-platform/references/07-domains.md +139 -0
  131. package/packages/ct-skills/skills/railway-platform/references/08-volumes.md +533 -0
  132. package/packages/ct-skills/skills/railway-platform/references/09-networking.md +592 -0
  133. package/packages/ct-skills/skills/railway-platform/references/10-cron.md +488 -0
  134. package/packages/ct-skills/skills/railway-platform/references/11-functions.md +170 -0
  135. package/packages/ct-skills/skills/railway-platform/references/12-monorepo.md +294 -0
  136. package/packages/ct-skills/skills/railway-platform/references/13-troubleshooting.md +335 -0
  137. package/packages/ct-skills/skills/railway-platform/references/14-railway-metal.md +197 -0
  138. package/packages/ct-skills/skills.json +5 -0
  139. package/schemas/adr-frontmatter.schema.json +72 -0
  140. package/schemas/agent-configs.schema.json +0 -0
  141. package/schemas/agent-registry.json +0 -0
  142. package/schemas/agent-registry.schema.json +0 -0
  143. package/schemas/archive/agent-configs.schema.json +120 -0
  144. package/schemas/archive/agent-registry.schema.json +132 -0
  145. package/schemas/archive/archive.schema.json +450 -0
  146. package/schemas/archive/claudedocs-frontmatter.schema.json +162 -0
  147. package/schemas/archive/commands-index.schema.json +158 -0
  148. package/schemas/archive/contribution.schema.json +722 -0
  149. package/schemas/archive/critical-path.schema.json +246 -0
  150. package/schemas/archive/deps-cache.schema.json +97 -0
  151. package/schemas/archive/doctor-output.schema.json +283 -0
  152. package/schemas/archive/error.schema.json +161 -0
  153. package/schemas/archive/export-package.schema.json +375 -0
  154. package/schemas/archive/global-config.schema.json +219 -0
  155. package/schemas/archive/log.schema.json +250 -0
  156. package/schemas/archive/metrics.schema.json +328 -0
  157. package/schemas/archive/migrations.schema.json +150 -0
  158. package/schemas/archive/nexus-registry.schema.json +90 -0
  159. package/schemas/archive/output.schema.json +164 -0
  160. package/schemas/archive/rcsd-consensus-report.schema.json +491 -0
  161. package/schemas/archive/rcsd-hitl-resolution.schema.json +216 -0
  162. package/schemas/archive/rcsd-index.schema.json +384 -0
  163. package/schemas/archive/rcsd-manifest.schema.json +264 -0
  164. package/schemas/archive/rcsd-research-output.schema.json +564 -0
  165. package/schemas/archive/rcsd-spec-frontmatter.schema.json +225 -0
  166. package/schemas/archive/releases.schema.json +267 -0
  167. package/schemas/archive/skills-manifest.schema.json +91 -0
  168. package/schemas/archive/skillsmp.schema.json +208 -0
  169. package/schemas/archive/spec-index.schema.json +196 -0
  170. package/schemas/archive/todo.schema.json +995 -0
  171. package/schemas/archive.schema.json +0 -0
  172. package/schemas/brain-decision.schema.json +69 -0
  173. package/schemas/brain-learning.schema.json +57 -0
  174. package/schemas/brain-pattern.schema.json +72 -0
  175. package/schemas/claudedocs-frontmatter.schema.json +0 -0
  176. package/schemas/commands-index.schema.json +0 -0
  177. package/schemas/config.schema.json +33 -1
  178. package/schemas/context-state.schema.json +0 -0
  179. package/schemas/contribution.schema.json +0 -0
  180. package/schemas/critical-path.schema.json +0 -0
  181. package/schemas/deps-cache.schema.json +0 -0
  182. package/schemas/doctor-output.schema.json +0 -0
  183. package/schemas/error.schema.json +0 -0
  184. package/schemas/export-package.schema.json +0 -0
  185. package/schemas/global-config.schema.json +0 -0
  186. package/schemas/grade.schema.json +49 -0
  187. package/schemas/log.schema.json +0 -0
  188. package/schemas/metrics.schema.json +0 -0
  189. package/schemas/migrations.schema.json +0 -0
  190. package/schemas/nexus-registry.schema.json +0 -0
  191. package/schemas/output.schema.json +0 -0
  192. package/schemas/project-context.schema.json +0 -0
  193. package/schemas/project-info.schema.json +17 -7
  194. package/schemas/projects-registry.schema.json +0 -0
  195. package/schemas/protocol-frontmatter.schema.json +72 -0
  196. package/schemas/rcasd-consensus-report.schema.json +10 -0
  197. package/schemas/rcasd-evidence.schema.json +42 -0
  198. package/schemas/rcasd-gate-result.schema.json +46 -0
  199. package/schemas/rcasd-hitl-resolution.schema.json +10 -0
  200. package/schemas/rcasd-index.schema.json +10 -0
  201. package/schemas/rcasd-manifest.schema.json +10 -0
  202. package/schemas/rcasd-research-output.schema.json +10 -0
  203. package/schemas/rcasd-spec-frontmatter.schema.json +10 -0
  204. package/schemas/rcasd-stage-transition.schema.json +38 -0
  205. package/schemas/rcsd-consensus-report.schema.json +4 -1
  206. package/schemas/rcsd-hitl-resolution.schema.json +4 -1
  207. package/schemas/rcsd-index.schema.json +4 -1
  208. package/schemas/rcsd-manifest.schema.json +4 -1
  209. package/schemas/rcsd-research-output.schema.json +4 -1
  210. package/schemas/rcsd-spec-frontmatter.schema.json +0 -0
  211. package/schemas/releases.schema.json +0 -0
  212. package/schemas/research-manifest.schema.json +0 -0
  213. package/schemas/skills-manifest.schema.json +0 -0
  214. package/schemas/skillsmp.schema.json +0 -0
  215. package/schemas/spec-index.schema.json +0 -0
  216. package/schemas/todo.schema.json +0 -0
  217. package/server.json +0 -0
  218. package/skills/_shared/cleo-style-guide.md +0 -0
  219. package/skills/_shared/manifest-operations.md +1 -1
  220. package/skills/_shared/placeholders.json +3 -3
  221. package/skills/_shared/skill-chaining-patterns.md +0 -0
  222. package/skills/_shared/subagent-protocol-base.md +3 -3
  223. package/skills/_shared/task-system-integration.md +10 -10
  224. package/skills/_shared/testing-framework-config.md +0 -0
  225. package/skills/agentskills-integrate.md +0 -0
  226. package/skills/agentskills-specs.md +0 -0
  227. package/skills/agentskills-what-are-skills.md +0 -0
  228. package/skills/manifest.json +0 -0
  229. package/templates/AGENT-INJECTION.md +7 -7
  230. package/templates/CLEO-INJECTION.md +101 -393
  231. package/templates/CONTRIBUTION-INJECTION.md +0 -0
  232. package/templates/CONTRIBUTION-PROTOCOL.template.md +0 -0
  233. package/templates/README.md +2 -2
  234. package/templates/agent-registry.json +0 -0
  235. package/templates/agents/BASE-SUBAGENT-PROTOCOL.md +4 -4
  236. package/templates/agents/README.md +4 -4
  237. package/templates/agents/cleo-subagent.md +4 -4
  238. package/templates/archive.template.json +0 -0
  239. package/templates/backups/archive/.gitkeep +0 -0
  240. package/templates/backups/incremental/.gitkeep +0 -0
  241. package/templates/backups/migration/.gitkeep +0 -0
  242. package/templates/backups/safety/.gitkeep +0 -0
  243. package/templates/backups/snapshot/.gitkeep +0 -0
  244. package/templates/ci/circleci/config.yml +0 -0
  245. package/templates/ci/github-actions/release.yml +0 -0
  246. package/templates/ci/gitlab-ci/release.yml +0 -0
  247. package/templates/cleo-gitignore +4 -1
  248. package/templates/config.template.json +1 -1
  249. package/templates/git-hooks/commit-msg +187 -0
  250. package/templates/git-hooks/pre-commit +22 -0
  251. package/templates/global-config.template.json +0 -0
  252. package/templates/hooks/precompact-safestop.sh +0 -0
  253. package/templates/log.template.json +0 -0
  254. package/templates/migrations.template.json +0 -0
  255. package/templates/orchestrator-protocol/PLACEHOLDER-REGISTRY.md +0 -0
  256. package/templates/orchestrator-protocol/README.md +0 -0
  257. package/templates/sessions.template.json +0 -0
  258. package/templates/skillsmp.json.example +0 -0
  259. package/templates/skillsmp.json.example.md +0 -0
  260. package/templates/subagent-protocol/INJECT.md +0 -0
  261. package/templates/subagent-protocol/MANIFEST.jsonl +0 -0
  262. package/templates/subagent-protocol/README.md +0 -0
  263. package/templates/subagent-protocol/SUBAGENT_PROTOCOL.md +0 -0
  264. package/templates/subagent-protocol/install.sh +0 -0
  265. package/templates/todo.template.json +0 -1
  266. package/dist/cli/commands/add.d.ts +0 -12
  267. package/dist/cli/commands/add.d.ts.map +0 -1
  268. package/dist/cli/commands/add.js +0 -74
  269. package/dist/cli/commands/add.js.map +0 -1
  270. package/dist/cli/commands/analyze.d.ts +0 -12
  271. package/dist/cli/commands/analyze.d.ts.map +0 -1
  272. package/dist/cli/commands/analyze.js +0 -37
  273. package/dist/cli/commands/analyze.js.map +0 -1
  274. package/dist/cli/commands/archive-stats.d.ts +0 -26
  275. package/dist/cli/commands/archive-stats.d.ts.map +0 -1
  276. package/dist/cli/commands/archive-stats.js +0 -291
  277. package/dist/cli/commands/archive-stats.js.map +0 -1
  278. package/dist/cli/commands/archive.d.ts +0 -12
  279. package/dist/cli/commands/archive.d.ts.map +0 -1
  280. package/dist/cli/commands/archive.js +0 -43
  281. package/dist/cli/commands/archive.js.map +0 -1
  282. package/dist/cli/commands/backup.d.ts +0 -7
  283. package/dist/cli/commands/backup.d.ts.map +0 -1
  284. package/dist/cli/commands/backup.js +0 -122
  285. package/dist/cli/commands/backup.js.map +0 -1
  286. package/dist/cli/commands/blockers.d.ts +0 -7
  287. package/dist/cli/commands/blockers.d.ts.map +0 -1
  288. package/dist/cli/commands/blockers.js +0 -107
  289. package/dist/cli/commands/blockers.js.map +0 -1
  290. package/dist/cli/commands/checkpoint.d.ts +0 -13
  291. package/dist/cli/commands/checkpoint.d.ts.map +0 -1
  292. package/dist/cli/commands/checkpoint.js +0 -185
  293. package/dist/cli/commands/checkpoint.js.map +0 -1
  294. package/dist/cli/commands/claude-migrate.d.ts +0 -13
  295. package/dist/cli/commands/claude-migrate.d.ts.map +0 -1
  296. package/dist/cli/commands/claude-migrate.js +0 -355
  297. package/dist/cli/commands/claude-migrate.js.map +0 -1
  298. package/dist/cli/commands/commands.d.ts +0 -13
  299. package/dist/cli/commands/commands.d.ts.map +0 -1
  300. package/dist/cli/commands/commands.js +0 -114
  301. package/dist/cli/commands/commands.js.map +0 -1
  302. package/dist/cli/commands/complete.d.ts +0 -12
  303. package/dist/cli/commands/complete.d.ts.map +0 -1
  304. package/dist/cli/commands/complete.js +0 -45
  305. package/dist/cli/commands/complete.js.map +0 -1
  306. package/dist/cli/commands/compliance.d.ts +0 -12
  307. package/dist/cli/commands/compliance.d.ts.map +0 -1
  308. package/dist/cli/commands/compliance.js +0 -152
  309. package/dist/cli/commands/compliance.js.map +0 -1
  310. package/dist/cli/commands/config.d.ts +0 -7
  311. package/dist/cli/commands/config.d.ts.map +0 -1
  312. package/dist/cli/commands/config.js +0 -107
  313. package/dist/cli/commands/config.js.map +0 -1
  314. package/dist/cli/commands/consensus.d.ts +0 -12
  315. package/dist/cli/commands/consensus.d.ts.map +0 -1
  316. package/dist/cli/commands/consensus.js +0 -61
  317. package/dist/cli/commands/consensus.js.map +0 -1
  318. package/dist/cli/commands/context.d.ts +0 -12
  319. package/dist/cli/commands/context.d.ts.map +0 -1
  320. package/dist/cli/commands/context.js +0 -76
  321. package/dist/cli/commands/context.js.map +0 -1
  322. package/dist/cli/commands/contribution.d.ts +0 -12
  323. package/dist/cli/commands/contribution.d.ts.map +0 -1
  324. package/dist/cli/commands/contribution.js +0 -57
  325. package/dist/cli/commands/contribution.js.map +0 -1
  326. package/dist/cli/commands/current.d.ts +0 -13
  327. package/dist/cli/commands/current.d.ts.map +0 -1
  328. package/dist/cli/commands/current.js +0 -35
  329. package/dist/cli/commands/current.js.map +0 -1
  330. package/dist/cli/commands/dash.d.ts +0 -12
  331. package/dist/cli/commands/dash.d.ts.map +0 -1
  332. package/dist/cli/commands/dash.js +0 -44
  333. package/dist/cli/commands/dash.js.map +0 -1
  334. package/dist/cli/commands/decomposition.d.ts +0 -12
  335. package/dist/cli/commands/decomposition.d.ts.map +0 -1
  336. package/dist/cli/commands/decomposition.js +0 -61
  337. package/dist/cli/commands/decomposition.js.map +0 -1
  338. package/dist/cli/commands/delete.d.ts +0 -12
  339. package/dist/cli/commands/delete.d.ts.map +0 -1
  340. package/dist/cli/commands/delete.js +0 -45
  341. package/dist/cli/commands/delete.js.map +0 -1
  342. package/dist/cli/commands/deps.d.ts +0 -17
  343. package/dist/cli/commands/deps.d.ts.map +0 -1
  344. package/dist/cli/commands/deps.js +0 -139
  345. package/dist/cli/commands/deps.js.map +0 -1
  346. package/dist/cli/commands/detect-drift.d.ts +0 -8
  347. package/dist/cli/commands/detect-drift.d.ts.map +0 -1
  348. package/dist/cli/commands/detect-drift.js +0 -202
  349. package/dist/cli/commands/detect-drift.js.map +0 -1
  350. package/dist/cli/commands/docs.d.ts +0 -13
  351. package/dist/cli/commands/docs.d.ts.map +0 -1
  352. package/dist/cli/commands/docs.js +0 -167
  353. package/dist/cli/commands/docs.js.map +0 -1
  354. package/dist/cli/commands/doctor.d.ts +0 -7
  355. package/dist/cli/commands/doctor.d.ts.map +0 -1
  356. package/dist/cli/commands/doctor.js +0 -215
  357. package/dist/cli/commands/doctor.js.map +0 -1
  358. package/dist/cli/commands/env.d.ts +0 -12
  359. package/dist/cli/commands/env.d.ts.map +0 -1
  360. package/dist/cli/commands/env.js +0 -167
  361. package/dist/cli/commands/env.js.map +0 -1
  362. package/dist/cli/commands/exists.d.ts +0 -7
  363. package/dist/cli/commands/exists.d.ts.map +0 -1
  364. package/dist/cli/commands/exists.js +0 -78
  365. package/dist/cli/commands/exists.js.map +0 -1
  366. package/dist/cli/commands/export-tasks.d.ts +0 -13
  367. package/dist/cli/commands/export-tasks.d.ts.map +0 -1
  368. package/dist/cli/commands/export-tasks.js +0 -214
  369. package/dist/cli/commands/export-tasks.js.map +0 -1
  370. package/dist/cli/commands/export.d.ts +0 -7
  371. package/dist/cli/commands/export.d.ts.map +0 -1
  372. package/dist/cli/commands/export.js +0 -144
  373. package/dist/cli/commands/export.js.map +0 -1
  374. package/dist/cli/commands/extract.d.ts +0 -13
  375. package/dist/cli/commands/extract.d.ts.map +0 -1
  376. package/dist/cli/commands/extract.js +0 -208
  377. package/dist/cli/commands/extract.js.map +0 -1
  378. package/dist/cli/commands/find.d.ts +0 -14
  379. package/dist/cli/commands/find.d.ts.map +0 -1
  380. package/dist/cli/commands/find.js +0 -62
  381. package/dist/cli/commands/find.js.map +0 -1
  382. package/dist/cli/commands/focus.d.ts +0 -19
  383. package/dist/cli/commands/focus.d.ts.map +0 -1
  384. package/dist/cli/commands/focus.js +0 -95
  385. package/dist/cli/commands/focus.js.map +0 -1
  386. package/dist/cli/commands/generate-changelog.d.ts +0 -14
  387. package/dist/cli/commands/generate-changelog.d.ts.map +0 -1
  388. package/dist/cli/commands/generate-changelog.js +0 -252
  389. package/dist/cli/commands/generate-changelog.js.map +0 -1
  390. package/dist/cli/commands/history.d.ts +0 -12
  391. package/dist/cli/commands/history.d.ts.map +0 -1
  392. package/dist/cli/commands/history.js +0 -40
  393. package/dist/cli/commands/history.js.map +0 -1
  394. package/dist/cli/commands/implementation.d.ts +0 -12
  395. package/dist/cli/commands/implementation.d.ts.map +0 -1
  396. package/dist/cli/commands/implementation.js +0 -57
  397. package/dist/cli/commands/implementation.js.map +0 -1
  398. package/dist/cli/commands/import-tasks.d.ts +0 -13
  399. package/dist/cli/commands/import-tasks.d.ts.map +0 -1
  400. package/dist/cli/commands/import-tasks.js +0 -219
  401. package/dist/cli/commands/import-tasks.js.map +0 -1
  402. package/dist/cli/commands/import.d.ts +0 -7
  403. package/dist/cli/commands/import.d.ts.map +0 -1
  404. package/dist/cli/commands/import.js +0 -162
  405. package/dist/cli/commands/import.js.map +0 -1
  406. package/dist/cli/commands/init.d.ts +0 -34
  407. package/dist/cli/commands/init.d.ts.map +0 -1
  408. package/dist/cli/commands/init.js +0 -88
  409. package/dist/cli/commands/init.js.map +0 -1
  410. package/dist/cli/commands/inject.d.ts +0 -12
  411. package/dist/cli/commands/inject.d.ts.map +0 -1
  412. package/dist/cli/commands/inject.js +0 -45
  413. package/dist/cli/commands/inject.js.map +0 -1
  414. package/dist/cli/commands/issue.d.ts +0 -14
  415. package/dist/cli/commands/issue.d.ts.map +0 -1
  416. package/dist/cli/commands/issue.js +0 -256
  417. package/dist/cli/commands/issue.js.map +0 -1
  418. package/dist/cli/commands/labels.d.ts +0 -12
  419. package/dist/cli/commands/labels.d.ts.map +0 -1
  420. package/dist/cli/commands/labels.js +0 -89
  421. package/dist/cli/commands/labels.js.map +0 -1
  422. package/dist/cli/commands/lifecycle.d.ts +0 -12
  423. package/dist/cli/commands/lifecycle.d.ts.map +0 -1
  424. package/dist/cli/commands/lifecycle.js +0 -108
  425. package/dist/cli/commands/lifecycle.js.map +0 -1
  426. package/dist/cli/commands/list.d.ts +0 -14
  427. package/dist/cli/commands/list.d.ts.map +0 -1
  428. package/dist/cli/commands/list.js +0 -65
  429. package/dist/cli/commands/list.js.map +0 -1
  430. package/dist/cli/commands/log.d.ts +0 -12
  431. package/dist/cli/commands/log.d.ts.map +0 -1
  432. package/dist/cli/commands/log.js +0 -43
  433. package/dist/cli/commands/log.js.map +0 -1
  434. package/dist/cli/commands/mcp-install.d.ts +0 -17
  435. package/dist/cli/commands/mcp-install.d.ts.map +0 -1
  436. package/dist/cli/commands/mcp-install.js +0 -125
  437. package/dist/cli/commands/mcp-install.js.map +0 -1
  438. package/dist/cli/commands/migrate-storage.d.ts +0 -19
  439. package/dist/cli/commands/migrate-storage.d.ts.map +0 -1
  440. package/dist/cli/commands/migrate-storage.js +0 -494
  441. package/dist/cli/commands/migrate-storage.js.map +0 -1
  442. package/dist/cli/commands/migrate.d.ts +0 -12
  443. package/dist/cli/commands/migrate.d.ts.map +0 -1
  444. package/dist/cli/commands/migrate.js +0 -62
  445. package/dist/cli/commands/migrate.js.map +0 -1
  446. package/dist/cli/commands/next.d.ts +0 -7
  447. package/dist/cli/commands/next.d.ts.map +0 -1
  448. package/dist/cli/commands/next.js +0 -124
  449. package/dist/cli/commands/next.js.map +0 -1
  450. package/dist/cli/commands/nexus.d.ts +0 -19
  451. package/dist/cli/commands/nexus.d.ts.map +0 -1
  452. package/dist/cli/commands/nexus.js +0 -440
  453. package/dist/cli/commands/nexus.js.map +0 -1
  454. package/dist/cli/commands/orchestrate.d.ts +0 -12
  455. package/dist/cli/commands/orchestrate.d.ts.map +0 -1
  456. package/dist/cli/commands/orchestrate.js +0 -141
  457. package/dist/cli/commands/orchestrate.js.map +0 -1
  458. package/dist/cli/commands/otel.d.ts +0 -12
  459. package/dist/cli/commands/otel.d.ts.map +0 -1
  460. package/dist/cli/commands/otel.js +0 -130
  461. package/dist/cli/commands/otel.js.map +0 -1
  462. package/dist/cli/commands/phase.d.ts +0 -12
  463. package/dist/cli/commands/phase.d.ts.map +0 -1
  464. package/dist/cli/commands/phase.js +0 -161
  465. package/dist/cli/commands/phase.js.map +0 -1
  466. package/dist/cli/commands/phases.d.ts +0 -12
  467. package/dist/cli/commands/phases.d.ts.map +0 -1
  468. package/dist/cli/commands/phases.js +0 -67
  469. package/dist/cli/commands/phases.js.map +0 -1
  470. package/dist/cli/commands/promote.d.ts +0 -7
  471. package/dist/cli/commands/promote.d.ts.map +0 -1
  472. package/dist/cli/commands/promote.js +0 -64
  473. package/dist/cli/commands/promote.js.map +0 -1
  474. package/dist/cli/commands/relates.d.ts +0 -12
  475. package/dist/cli/commands/relates.d.ts.map +0 -1
  476. package/dist/cli/commands/relates.js +0 -91
  477. package/dist/cli/commands/relates.js.map +0 -1
  478. package/dist/cli/commands/release.d.ts +0 -12
  479. package/dist/cli/commands/release.d.ts.map +0 -1
  480. package/dist/cli/commands/release.js +0 -142
  481. package/dist/cli/commands/release.js.map +0 -1
  482. package/dist/cli/commands/reopen.d.ts +0 -7
  483. package/dist/cli/commands/reopen.d.ts.map +0 -1
  484. package/dist/cli/commands/reopen.js +0 -83
  485. package/dist/cli/commands/reopen.js.map +0 -1
  486. package/dist/cli/commands/reorder.d.ts +0 -7
  487. package/dist/cli/commands/reorder.d.ts.map +0 -1
  488. package/dist/cli/commands/reorder.js +0 -106
  489. package/dist/cli/commands/reorder.js.map +0 -1
  490. package/dist/cli/commands/reparent.d.ts +0 -10
  491. package/dist/cli/commands/reparent.d.ts.map +0 -1
  492. package/dist/cli/commands/reparent.js +0 -53
  493. package/dist/cli/commands/reparent.js.map +0 -1
  494. package/dist/cli/commands/research.d.ts +0 -12
  495. package/dist/cli/commands/research.d.ts.map +0 -1
  496. package/dist/cli/commands/research.js +0 -220
  497. package/dist/cli/commands/research.js.map +0 -1
  498. package/dist/cli/commands/restore.d.ts +0 -7
  499. package/dist/cli/commands/restore.d.ts.map +0 -1
  500. package/dist/cli/commands/restore.js +0 -202
  501. package/dist/cli/commands/restore.js.map +0 -1
  502. package/dist/cli/commands/roadmap.d.ts +0 -12
  503. package/dist/cli/commands/roadmap.d.ts.map +0 -1
  504. package/dist/cli/commands/roadmap.js +0 -37
  505. package/dist/cli/commands/roadmap.js.map +0 -1
  506. package/dist/cli/commands/safestop.d.ts +0 -13
  507. package/dist/cli/commands/safestop.d.ts.map +0 -1
  508. package/dist/cli/commands/safestop.js +0 -217
  509. package/dist/cli/commands/safestop.js.map +0 -1
  510. package/dist/cli/commands/self-update.d.ts +0 -15
  511. package/dist/cli/commands/self-update.d.ts.map +0 -1
  512. package/dist/cli/commands/self-update.js +0 -195
  513. package/dist/cli/commands/self-update.js.map +0 -1
  514. package/dist/cli/commands/sequence.d.ts +0 -12
  515. package/dist/cli/commands/sequence.d.ts.map +0 -1
  516. package/dist/cli/commands/sequence.js +0 -67
  517. package/dist/cli/commands/sequence.js.map +0 -1
  518. package/dist/cli/commands/session.d.ts +0 -12
  519. package/dist/cli/commands/session.d.ts.map +0 -1
  520. package/dist/cli/commands/session.js +0 -150
  521. package/dist/cli/commands/session.js.map +0 -1
  522. package/dist/cli/commands/show.d.ts +0 -13
  523. package/dist/cli/commands/show.d.ts.map +0 -1
  524. package/dist/cli/commands/show.js +0 -35
  525. package/dist/cli/commands/show.js.map +0 -1
  526. package/dist/cli/commands/skills.d.ts +0 -13
  527. package/dist/cli/commands/skills.d.ts.map +0 -1
  528. package/dist/cli/commands/skills.js +0 -215
  529. package/dist/cli/commands/skills.js.map +0 -1
  530. package/dist/cli/commands/specification.d.ts +0 -12
  531. package/dist/cli/commands/specification.d.ts.map +0 -1
  532. package/dist/cli/commands/specification.js +0 -61
  533. package/dist/cli/commands/specification.js.map +0 -1
  534. package/dist/cli/commands/start.d.ts +0 -13
  535. package/dist/cli/commands/start.d.ts.map +0 -1
  536. package/dist/cli/commands/start.js +0 -35
  537. package/dist/cli/commands/start.js.map +0 -1
  538. package/dist/cli/commands/stats.d.ts +0 -12
  539. package/dist/cli/commands/stats.d.ts.map +0 -1
  540. package/dist/cli/commands/stats.js +0 -37
  541. package/dist/cli/commands/stats.js.map +0 -1
  542. package/dist/cli/commands/stop.d.ts +0 -13
  543. package/dist/cli/commands/stop.d.ts.map +0 -1
  544. package/dist/cli/commands/stop.js +0 -35
  545. package/dist/cli/commands/stop.js.map +0 -1
  546. package/dist/cli/commands/sync.d.ts +0 -13
  547. package/dist/cli/commands/sync.d.ts.map +0 -1
  548. package/dist/cli/commands/sync.js +0 -129
  549. package/dist/cli/commands/sync.js.map +0 -1
  550. package/dist/cli/commands/testing.d.ts +0 -13
  551. package/dist/cli/commands/testing.d.ts.map +0 -1
  552. package/dist/cli/commands/testing.js +0 -160
  553. package/dist/cli/commands/testing.js.map +0 -1
  554. package/dist/cli/commands/unarchive.d.ts +0 -7
  555. package/dist/cli/commands/unarchive.d.ts.map +0 -1
  556. package/dist/cli/commands/unarchive.js +0 -93
  557. package/dist/cli/commands/unarchive.js.map +0 -1
  558. package/dist/cli/commands/uncancel.d.ts +0 -7
  559. package/dist/cli/commands/uncancel.d.ts.map +0 -1
  560. package/dist/cli/commands/uncancel.js +0 -93
  561. package/dist/cli/commands/uncancel.js.map +0 -1
  562. package/dist/cli/commands/update.d.ts +0 -12
  563. package/dist/cli/commands/update.d.ts.map +0 -1
  564. package/dist/cli/commands/update.js +0 -74
  565. package/dist/cli/commands/update.js.map +0 -1
  566. package/dist/cli/commands/upgrade.d.ts +0 -15
  567. package/dist/cli/commands/upgrade.d.ts.map +0 -1
  568. package/dist/cli/commands/upgrade.js +0 -59
  569. package/dist/cli/commands/upgrade.js.map +0 -1
  570. package/dist/cli/commands/validate.d.ts +0 -9
  571. package/dist/cli/commands/validate.d.ts.map +0 -1
  572. package/dist/cli/commands/validate.js +0 -211
  573. package/dist/cli/commands/validate.js.map +0 -1
  574. package/dist/cli/commands/verify.d.ts +0 -7
  575. package/dist/cli/commands/verify.d.ts.map +0 -1
  576. package/dist/cli/commands/verify.js +0 -153
  577. package/dist/cli/commands/verify.js.map +0 -1
  578. package/dist/cli/commands/web.d.ts +0 -13
  579. package/dist/cli/commands/web.d.ts.map +0 -1
  580. package/dist/cli/commands/web.js +0 -281
  581. package/dist/cli/commands/web.js.map +0 -1
  582. package/dist/cli/format-context.d.ts +0 -32
  583. package/dist/cli/format-context.d.ts.map +0 -1
  584. package/dist/cli/format-context.js +0 -50
  585. package/dist/cli/format-context.js.map +0 -1
  586. package/dist/cli/index.d.ts +0 -7
  587. package/dist/cli/index.d.ts.map +0 -1
  588. package/dist/cli/middleware/output-format.d.ts +0 -30
  589. package/dist/cli/middleware/output-format.d.ts.map +0 -1
  590. package/dist/cli/middleware/output-format.js +0 -35
  591. package/dist/cli/middleware/output-format.js.map +0 -1
  592. package/dist/cli/renderers/colors.d.ts +0 -41
  593. package/dist/cli/renderers/colors.d.ts.map +0 -1
  594. package/dist/cli/renderers/colors.js +0 -120
  595. package/dist/cli/renderers/colors.js.map +0 -1
  596. package/dist/cli/renderers/index.d.ts +0 -47
  597. package/dist/cli/renderers/index.d.ts.map +0 -1
  598. package/dist/cli/renderers/index.js +0 -103
  599. package/dist/cli/renderers/index.js.map +0 -1
  600. package/dist/cli/renderers/system.d.ts +0 -24
  601. package/dist/cli/renderers/system.d.ts.map +0 -1
  602. package/dist/cli/renderers/system.js +0 -317
  603. package/dist/cli/renderers/system.js.map +0 -1
  604. package/dist/cli/renderers/tasks.d.ts +0 -28
  605. package/dist/cli/renderers/tasks.d.ts.map +0 -1
  606. package/dist/cli/renderers/tasks.js +0 -307
  607. package/dist/cli/renderers/tasks.js.map +0 -1
  608. package/dist/core/caamp/adapter.d.ts +0 -141
  609. package/dist/core/caamp/adapter.d.ts.map +0 -1
  610. package/dist/core/caamp/adapter.js +0 -437
  611. package/dist/core/caamp/adapter.js.map +0 -1
  612. package/dist/core/caamp/index.d.ts +0 -11
  613. package/dist/core/caamp/index.d.ts.map +0 -1
  614. package/dist/core/caamp/index.js +0 -21
  615. package/dist/core/caamp/index.js.map +0 -1
  616. package/dist/core/compliance/index.d.ts +0 -38
  617. package/dist/core/compliance/index.d.ts.map +0 -1
  618. package/dist/core/compliance/index.js +0 -229
  619. package/dist/core/compliance/index.js.map +0 -1
  620. package/dist/core/config.d.ts +0 -20
  621. package/dist/core/config.d.ts.map +0 -1
  622. package/dist/core/config.js +0 -179
  623. package/dist/core/config.js.map +0 -1
  624. package/dist/core/context/index.d.ts +0 -20
  625. package/dist/core/context/index.d.ts.map +0 -1
  626. package/dist/core/context/index.js +0 -137
  627. package/dist/core/context/index.js.map +0 -1
  628. package/dist/core/error-registry.d.ts +0 -54
  629. package/dist/core/error-registry.d.ts.map +0 -1
  630. package/dist/core/error-registry.js +0 -109
  631. package/dist/core/error-registry.js.map +0 -1
  632. package/dist/core/errors.d.ts +0 -38
  633. package/dist/core/errors.d.ts.map +0 -1
  634. package/dist/core/errors.js +0 -105
  635. package/dist/core/errors.js.map +0 -1
  636. package/dist/core/focus/index.d.ts +0 -46
  637. package/dist/core/focus/index.d.ts.map +0 -1
  638. package/dist/core/focus/index.js +0 -118
  639. package/dist/core/focus/index.js.map +0 -1
  640. package/dist/core/index.d.ts +0 -14
  641. package/dist/core/index.d.ts.map +0 -1
  642. package/dist/core/index.js +0 -12
  643. package/dist/core/index.js.map +0 -1
  644. package/dist/core/init.d.ts +0 -76
  645. package/dist/core/init.d.ts.map +0 -1
  646. package/dist/core/init.js +0 -730
  647. package/dist/core/init.js.map +0 -1
  648. package/dist/core/inject/index.d.ts +0 -24
  649. package/dist/core/inject/index.d.ts.map +0 -1
  650. package/dist/core/inject/index.js +0 -84
  651. package/dist/core/inject/index.js.map +0 -1
  652. package/dist/core/issue/index.d.ts +0 -9
  653. package/dist/core/issue/index.d.ts.map +0 -1
  654. package/dist/core/issue/index.js +0 -8
  655. package/dist/core/issue/index.js.map +0 -1
  656. package/dist/core/issue/template-parser.d.ts +0 -45
  657. package/dist/core/issue/template-parser.d.ts.map +0 -1
  658. package/dist/core/issue/template-parser.js +0 -178
  659. package/dist/core/issue/template-parser.js.map +0 -1
  660. package/dist/core/lifecycle/index.d.ts +0 -71
  661. package/dist/core/lifecycle/index.d.ts.map +0 -1
  662. package/dist/core/lifecycle/index.js +0 -213
  663. package/dist/core/lifecycle/index.js.map +0 -1
  664. package/dist/core/log/index.d.ts +0 -15
  665. package/dist/core/log/index.d.ts.map +0 -1
  666. package/dist/core/log/index.js +0 -33
  667. package/dist/core/log/index.js.map +0 -1
  668. package/dist/core/mcp/index.d.ts +0 -37
  669. package/dist/core/mcp/index.d.ts.map +0 -1
  670. package/dist/core/mcp/index.js +0 -73
  671. package/dist/core/mcp/index.js.map +0 -1
  672. package/dist/core/metrics/ab-test.d.ts +0 -52
  673. package/dist/core/metrics/ab-test.d.ts.map +0 -1
  674. package/dist/core/metrics/ab-test.js +0 -261
  675. package/dist/core/metrics/ab-test.js.map +0 -1
  676. package/dist/core/metrics/aggregation.d.ts +0 -41
  677. package/dist/core/metrics/aggregation.d.ts.map +0 -1
  678. package/dist/core/metrics/aggregation.js +0 -353
  679. package/dist/core/metrics/aggregation.js.map +0 -1
  680. package/dist/core/metrics/common.d.ts +0 -30
  681. package/dist/core/metrics/common.d.ts.map +0 -1
  682. package/dist/core/metrics/common.js +0 -64
  683. package/dist/core/metrics/common.js.map +0 -1
  684. package/dist/core/metrics/enums.d.ts +0 -68
  685. package/dist/core/metrics/enums.d.ts.map +0 -1
  686. package/dist/core/metrics/enums.js +0 -78
  687. package/dist/core/metrics/enums.js.map +0 -1
  688. package/dist/core/metrics/index.d.ts +0 -17
  689. package/dist/core/metrics/index.d.ts.map +0 -1
  690. package/dist/core/metrics/index.js +0 -19
  691. package/dist/core/metrics/index.js.map +0 -1
  692. package/dist/core/metrics/otel-integration.d.ts +0 -49
  693. package/dist/core/metrics/otel-integration.d.ts.map +0 -1
  694. package/dist/core/metrics/otel-integration.js +0 -261
  695. package/dist/core/metrics/otel-integration.js.map +0 -1
  696. package/dist/core/metrics/token-estimation.d.ts +0 -70
  697. package/dist/core/metrics/token-estimation.d.ts.map +0 -1
  698. package/dist/core/metrics/token-estimation.js +0 -253
  699. package/dist/core/metrics/token-estimation.js.map +0 -1
  700. package/dist/core/migration/checksum.d.ts +0 -55
  701. package/dist/core/migration/checksum.d.ts.map +0 -1
  702. package/dist/core/migration/checksum.js +0 -90
  703. package/dist/core/migration/checksum.js.map +0 -1
  704. package/dist/core/migration/index.d.ts +0 -77
  705. package/dist/core/migration/index.d.ts.map +0 -1
  706. package/dist/core/migration/index.js +0 -278
  707. package/dist/core/migration/index.js.map +0 -1
  708. package/dist/core/migration/logger.d.ts +0 -161
  709. package/dist/core/migration/logger.d.ts.map +0 -1
  710. package/dist/core/migration/logger.js +0 -364
  711. package/dist/core/migration/logger.js.map +0 -1
  712. package/dist/core/migration/preflight.d.ts +0 -43
  713. package/dist/core/migration/preflight.d.ts.map +0 -1
  714. package/dist/core/migration/preflight.js +0 -164
  715. package/dist/core/migration/preflight.js.map +0 -1
  716. package/dist/core/migration/state.d.ts +0 -186
  717. package/dist/core/migration/state.d.ts.map +0 -1
  718. package/dist/core/migration/state.js +0 -419
  719. package/dist/core/migration/state.js.map +0 -1
  720. package/dist/core/migration/validate.d.ts +0 -57
  721. package/dist/core/migration/validate.d.ts.map +0 -1
  722. package/dist/core/migration/validate.js +0 -242
  723. package/dist/core/migration/validate.js.map +0 -1
  724. package/dist/core/nexus/deps.d.ts +0 -112
  725. package/dist/core/nexus/deps.d.ts.map +0 -1
  726. package/dist/core/nexus/deps.js +0 -394
  727. package/dist/core/nexus/deps.js.map +0 -1
  728. package/dist/core/nexus/index.d.ts +0 -14
  729. package/dist/core/nexus/index.d.ts.map +0 -1
  730. package/dist/core/nexus/index.js +0 -36
  731. package/dist/core/nexus/index.js.map +0 -1
  732. package/dist/core/nexus/permissions.d.ts +0 -75
  733. package/dist/core/nexus/permissions.d.ts.map +0 -1
  734. package/dist/core/nexus/permissions.js +0 -126
  735. package/dist/core/nexus/permissions.js.map +0 -1
  736. package/dist/core/nexus/query.d.ts +0 -55
  737. package/dist/core/nexus/query.d.ts.map +0 -1
  738. package/dist/core/nexus/query.js +0 -181
  739. package/dist/core/nexus/query.js.map +0 -1
  740. package/dist/core/nexus/registry.d.ts +0 -135
  741. package/dist/core/nexus/registry.d.ts.map +0 -1
  742. package/dist/core/nexus/registry.js +0 -296
  743. package/dist/core/nexus/registry.js.map +0 -1
  744. package/dist/core/orchestration/index.d.ts +0 -114
  745. package/dist/core/orchestration/index.d.ts.map +0 -1
  746. package/dist/core/orchestration/index.js +0 -295
  747. package/dist/core/orchestration/index.js.map +0 -1
  748. package/dist/core/orchestration/protocol-validators.d.ts +0 -94
  749. package/dist/core/orchestration/protocol-validators.d.ts.map +0 -1
  750. package/dist/core/orchestration/protocol-validators.js +0 -510
  751. package/dist/core/orchestration/protocol-validators.js.map +0 -1
  752. package/dist/core/otel/index.d.ts +0 -27
  753. package/dist/core/otel/index.d.ts.map +0 -1
  754. package/dist/core/otel/index.js +0 -126
  755. package/dist/core/otel/index.js.map +0 -1
  756. package/dist/core/output.d.ts +0 -64
  757. package/dist/core/output.d.ts.map +0 -1
  758. package/dist/core/output.js +0 -134
  759. package/dist/core/output.js.map +0 -1
  760. package/dist/core/pagination.d.ts +0 -45
  761. package/dist/core/pagination.d.ts.map +0 -1
  762. package/dist/core/pagination.js +0 -61
  763. package/dist/core/pagination.js.map +0 -1
  764. package/dist/core/paths.d.ts +0 -122
  765. package/dist/core/paths.d.ts.map +0 -1
  766. package/dist/core/paths.js +0 -269
  767. package/dist/core/paths.js.map +0 -1
  768. package/dist/core/phases/deps.d.ts +0 -142
  769. package/dist/core/phases/deps.d.ts.map +0 -1
  770. package/dist/core/phases/deps.js +0 -390
  771. package/dist/core/phases/deps.js.map +0 -1
  772. package/dist/core/phases/index.d.ts +0 -123
  773. package/dist/core/phases/index.d.ts.map +0 -1
  774. package/dist/core/phases/index.js +0 -409
  775. package/dist/core/phases/index.js.map +0 -1
  776. package/dist/core/platform.d.ts +0 -55
  777. package/dist/core/platform.d.ts.map +0 -1
  778. package/dist/core/platform.js +0 -117
  779. package/dist/core/platform.js.map +0 -1
  780. package/dist/core/release/artifacts.d.ts +0 -71
  781. package/dist/core/release/artifacts.d.ts.map +0 -1
  782. package/dist/core/release/artifacts.js +0 -412
  783. package/dist/core/release/artifacts.js.map +0 -1
  784. package/dist/core/release/ci.d.ts +0 -35
  785. package/dist/core/release/ci.d.ts.map +0 -1
  786. package/dist/core/release/ci.js +0 -162
  787. package/dist/core/release/ci.js.map +0 -1
  788. package/dist/core/release/guards.d.ts +0 -47
  789. package/dist/core/release/guards.d.ts.map +0 -1
  790. package/dist/core/release/guards.js +0 -110
  791. package/dist/core/release/guards.js.map +0 -1
  792. package/dist/core/release/index.d.ts +0 -97
  793. package/dist/core/release/index.d.ts.map +0 -1
  794. package/dist/core/release/index.js +0 -459
  795. package/dist/core/release/index.js.map +0 -1
  796. package/dist/core/release/provenance.d.ts +0 -75
  797. package/dist/core/release/provenance.d.ts.map +0 -1
  798. package/dist/core/release/provenance.js +0 -213
  799. package/dist/core/release/provenance.js.map +0 -1
  800. package/dist/core/release/release-config.d.ts +0 -55
  801. package/dist/core/release/release-config.d.ts.map +0 -1
  802. package/dist/core/release/release-config.js +0 -105
  803. package/dist/core/release/release-config.js.map +0 -1
  804. package/dist/core/release/version-bump.d.ts +0 -51
  805. package/dist/core/release/version-bump.d.ts.map +0 -1
  806. package/dist/core/release/version-bump.js +0 -251
  807. package/dist/core/release/version-bump.js.map +0 -1
  808. package/dist/core/research/index.d.ts +0 -129
  809. package/dist/core/research/index.d.ts.map +0 -1
  810. package/dist/core/research/index.js +0 -251
  811. package/dist/core/research/index.js.map +0 -1
  812. package/dist/core/roadmap/index.d.ts +0 -13
  813. package/dist/core/roadmap/index.d.ts.map +0 -1
  814. package/dist/core/roadmap/index.js +0 -63
  815. package/dist/core/roadmap/index.js.map +0 -1
  816. package/dist/core/schema.d.ts +0 -20
  817. package/dist/core/schema.d.ts.map +0 -1
  818. package/dist/core/schema.js +0 -75
  819. package/dist/core/schema.js.map +0 -1
  820. package/dist/core/sequence/index.d.ts +0 -21
  821. package/dist/core/sequence/index.d.ts.map +0 -1
  822. package/dist/core/sequence/index.js +0 -108
  823. package/dist/core/sequence/index.js.map +0 -1
  824. package/dist/core/sessions/context-alert.d.ts +0 -48
  825. package/dist/core/sessions/context-alert.d.ts.map +0 -1
  826. package/dist/core/sessions/context-alert.js +0 -222
  827. package/dist/core/sessions/context-alert.js.map +0 -1
  828. package/dist/core/sessions/context-monitor.d.ts +0 -31
  829. package/dist/core/sessions/context-monitor.d.ts.map +0 -1
  830. package/dist/core/sessions/context-monitor.js +0 -83
  831. package/dist/core/sessions/context-monitor.js.map +0 -1
  832. package/dist/core/sessions/hitl-warnings.d.ts +0 -58
  833. package/dist/core/sessions/hitl-warnings.d.ts.map +0 -1
  834. package/dist/core/sessions/hitl-warnings.js +0 -253
  835. package/dist/core/sessions/hitl-warnings.js.map +0 -1
  836. package/dist/core/sessions/index.d.ts +0 -65
  837. package/dist/core/sessions/index.d.ts.map +0 -1
  838. package/dist/core/sessions/index.js +0 -244
  839. package/dist/core/sessions/index.js.map +0 -1
  840. package/dist/core/sessions/session-enforcement.d.ts +0 -50
  841. package/dist/core/sessions/session-enforcement.d.ts.map +0 -1
  842. package/dist/core/sessions/session-enforcement.js +0 -139
  843. package/dist/core/sessions/session-enforcement.js.map +0 -1
  844. package/dist/core/sessions/session-migration.d.ts +0 -31
  845. package/dist/core/sessions/session-migration.d.ts.map +0 -1
  846. package/dist/core/sessions/session-migration.js +0 -122
  847. package/dist/core/sessions/session-migration.js.map +0 -1
  848. package/dist/core/sessions/statusline-setup.d.ts +0 -24
  849. package/dist/core/sessions/statusline-setup.d.ts.map +0 -1
  850. package/dist/core/sessions/statusline-setup.js +0 -82
  851. package/dist/core/sessions/statusline-setup.js.map +0 -1
  852. package/dist/core/skills/agents/config.d.ts +0 -39
  853. package/dist/core/skills/agents/config.d.ts.map +0 -1
  854. package/dist/core/skills/agents/config.js +0 -94
  855. package/dist/core/skills/agents/config.js.map +0 -1
  856. package/dist/core/skills/agents/install.d.ts +0 -33
  857. package/dist/core/skills/agents/install.d.ts.map +0 -1
  858. package/dist/core/skills/agents/install.js +0 -105
  859. package/dist/core/skills/agents/install.js.map +0 -1
  860. package/dist/core/skills/agents/registry.d.ts +0 -56
  861. package/dist/core/skills/agents/registry.d.ts.map +0 -1
  862. package/dist/core/skills/agents/registry.js +0 -161
  863. package/dist/core/skills/agents/registry.js.map +0 -1
  864. package/dist/core/skills/discovery.d.ts +0 -102
  865. package/dist/core/skills/discovery.d.ts.map +0 -1
  866. package/dist/core/skills/discovery.js +0 -331
  867. package/dist/core/skills/discovery.js.map +0 -1
  868. package/dist/core/skills/dispatch.d.ts +0 -67
  869. package/dist/core/skills/dispatch.d.ts.map +0 -1
  870. package/dist/core/skills/dispatch.js +0 -327
  871. package/dist/core/skills/dispatch.js.map +0 -1
  872. package/dist/core/skills/index.d.ts +0 -39
  873. package/dist/core/skills/index.d.ts.map +0 -1
  874. package/dist/core/skills/index.js +0 -44
  875. package/dist/core/skills/index.js.map +0 -1
  876. package/dist/core/skills/injection/subagent.d.ts +0 -47
  877. package/dist/core/skills/injection/subagent.d.ts.map +0 -1
  878. package/dist/core/skills/injection/subagent.js +0 -143
  879. package/dist/core/skills/injection/subagent.js.map +0 -1
  880. package/dist/core/skills/injection/token.d.ts +0 -121
  881. package/dist/core/skills/injection/token.d.ts.map +0 -1
  882. package/dist/core/skills/injection/token.js +0 -255
  883. package/dist/core/skills/injection/token.js.map +0 -1
  884. package/dist/core/skills/install.d.ts +0 -42
  885. package/dist/core/skills/install.d.ts.map +0 -1
  886. package/dist/core/skills/install.js +0 -129
  887. package/dist/core/skills/install.js.map +0 -1
  888. package/dist/core/skills/manifests/contribution.d.ts +0 -74
  889. package/dist/core/skills/manifests/contribution.d.ts.map +0 -1
  890. package/dist/core/skills/manifests/contribution.js +0 -180
  891. package/dist/core/skills/manifests/contribution.js.map +0 -1
  892. package/dist/core/skills/manifests/research.d.ts +0 -73
  893. package/dist/core/skills/manifests/research.d.ts.map +0 -1
  894. package/dist/core/skills/manifests/research.js +0 -264
  895. package/dist/core/skills/manifests/research.js.map +0 -1
  896. package/dist/core/skills/manifests/resolver.d.ts +0 -40
  897. package/dist/core/skills/manifests/resolver.d.ts.map +0 -1
  898. package/dist/core/skills/manifests/resolver.js +0 -146
  899. package/dist/core/skills/manifests/resolver.js.map +0 -1
  900. package/dist/core/skills/marketplace.d.ts +0 -45
  901. package/dist/core/skills/marketplace.d.ts.map +0 -1
  902. package/dist/core/skills/marketplace.js +0 -90
  903. package/dist/core/skills/marketplace.js.map +0 -1
  904. package/dist/core/skills/orchestrator/spawn.d.ts +0 -66
  905. package/dist/core/skills/orchestrator/spawn.d.ts.map +0 -1
  906. package/dist/core/skills/orchestrator/spawn.js +0 -186
  907. package/dist/core/skills/orchestrator/spawn.js.map +0 -1
  908. package/dist/core/skills/orchestrator/startup.d.ts +0 -89
  909. package/dist/core/skills/orchestrator/startup.d.ts.map +0 -1
  910. package/dist/core/skills/orchestrator/startup.js +0 -434
  911. package/dist/core/skills/orchestrator/startup.js.map +0 -1
  912. package/dist/core/skills/orchestrator/validator.d.ts +0 -40
  913. package/dist/core/skills/orchestrator/validator.d.ts.map +0 -1
  914. package/dist/core/skills/orchestrator/validator.js +0 -297
  915. package/dist/core/skills/orchestrator/validator.js.map +0 -1
  916. package/dist/core/skills/skill-paths.d.ts +0 -79
  917. package/dist/core/skills/skill-paths.d.ts.map +0 -1
  918. package/dist/core/skills/skill-paths.js +0 -220
  919. package/dist/core/skills/skill-paths.js.map +0 -1
  920. package/dist/core/skills/test-utility.d.ts +0 -39
  921. package/dist/core/skills/test-utility.d.ts.map +0 -1
  922. package/dist/core/skills/test-utility.js +0 -55
  923. package/dist/core/skills/test-utility.js.map +0 -1
  924. package/dist/core/skills/types.d.ts +0 -290
  925. package/dist/core/skills/types.d.ts.map +0 -1
  926. package/dist/core/skills/types.js +0 -86
  927. package/dist/core/skills/types.js.map +0 -1
  928. package/dist/core/skills/validation.d.ts +0 -46
  929. package/dist/core/skills/validation.d.ts.map +0 -1
  930. package/dist/core/skills/validation.js +0 -176
  931. package/dist/core/skills/validation.js.map +0 -1
  932. package/dist/core/skills/version.d.ts +0 -87
  933. package/dist/core/skills/version.d.ts.map +0 -1
  934. package/dist/core/skills/version.js +0 -241
  935. package/dist/core/skills/version.js.map +0 -1
  936. package/dist/core/stats/index.d.ts +0 -30
  937. package/dist/core/stats/index.d.ts.map +0 -1
  938. package/dist/core/stats/index.js +0 -152
  939. package/dist/core/stats/index.js.map +0 -1
  940. package/dist/core/task-work/index.d.ts +0 -66
  941. package/dist/core/task-work/index.d.ts.map +0 -1
  942. package/dist/core/task-work/index.js +0 -148
  943. package/dist/core/task-work/index.js.map +0 -1
  944. package/dist/core/tasks/add.d.ts +0 -125
  945. package/dist/core/tasks/add.d.ts.map +0 -1
  946. package/dist/core/tasks/add.js +0 -489
  947. package/dist/core/tasks/add.js.map +0 -1
  948. package/dist/core/tasks/analyze.d.ts +0 -49
  949. package/dist/core/tasks/analyze.d.ts.map +0 -1
  950. package/dist/core/tasks/analyze.js +0 -94
  951. package/dist/core/tasks/analyze.js.map +0 -1
  952. package/dist/core/tasks/archive.d.ts +0 -31
  953. package/dist/core/tasks/archive.d.ts.map +0 -1
  954. package/dist/core/tasks/archive.js +0 -126
  955. package/dist/core/tasks/archive.js.map +0 -1
  956. package/dist/core/tasks/cancel-ops.d.ts +0 -42
  957. package/dist/core/tasks/cancel-ops.d.ts.map +0 -1
  958. package/dist/core/tasks/cancel-ops.js +0 -83
  959. package/dist/core/tasks/cancel-ops.js.map +0 -1
  960. package/dist/core/tasks/complete.d.ts +0 -25
  961. package/dist/core/tasks/complete.d.ts.map +0 -1
  962. package/dist/core/tasks/complete.js +0 -109
  963. package/dist/core/tasks/complete.js.map +0 -1
  964. package/dist/core/tasks/crossref-extract.d.ts +0 -39
  965. package/dist/core/tasks/crossref-extract.d.ts.map +0 -1
  966. package/dist/core/tasks/crossref-extract.js +0 -75
  967. package/dist/core/tasks/crossref-extract.js.map +0 -1
  968. package/dist/core/tasks/delete-preview.d.ts +0 -69
  969. package/dist/core/tasks/delete-preview.d.ts.map +0 -1
  970. package/dist/core/tasks/delete-preview.js +0 -192
  971. package/dist/core/tasks/delete-preview.js.map +0 -1
  972. package/dist/core/tasks/delete.d.ts +0 -24
  973. package/dist/core/tasks/delete.d.ts.map +0 -1
  974. package/dist/core/tasks/delete.js +0 -130
  975. package/dist/core/tasks/delete.js.map +0 -1
  976. package/dist/core/tasks/deletion-strategy.d.ts +0 -46
  977. package/dist/core/tasks/deletion-strategy.d.ts.map +0 -1
  978. package/dist/core/tasks/deletion-strategy.js +0 -200
  979. package/dist/core/tasks/deletion-strategy.js.map +0 -1
  980. package/dist/core/tasks/dependency-check.d.ts +0 -70
  981. package/dist/core/tasks/dependency-check.d.ts.map +0 -1
  982. package/dist/core/tasks/dependency-check.js +0 -226
  983. package/dist/core/tasks/dependency-check.js.map +0 -1
  984. package/dist/core/tasks/find.d.ts +0 -48
  985. package/dist/core/tasks/find.d.ts.map +0 -1
  986. package/dist/core/tasks/find.js +0 -155
  987. package/dist/core/tasks/find.js.map +0 -1
  988. package/dist/core/tasks/graph-cache.d.ts +0 -70
  989. package/dist/core/tasks/graph-cache.d.ts.map +0 -1
  990. package/dist/core/tasks/graph-cache.js +0 -127
  991. package/dist/core/tasks/graph-cache.js.map +0 -1
  992. package/dist/core/tasks/graph-ops.d.ts +0 -36
  993. package/dist/core/tasks/graph-ops.d.ts.map +0 -1
  994. package/dist/core/tasks/graph-ops.js +0 -173
  995. package/dist/core/tasks/graph-ops.js.map +0 -1
  996. package/dist/core/tasks/graph-rag.d.ts +0 -49
  997. package/dist/core/tasks/graph-rag.d.ts.map +0 -1
  998. package/dist/core/tasks/graph-rag.js +0 -253
  999. package/dist/core/tasks/graph-rag.js.map +0 -1
  1000. package/dist/core/tasks/hierarchy.d.ts +0 -82
  1001. package/dist/core/tasks/hierarchy.d.ts.map +0 -1
  1002. package/dist/core/tasks/hierarchy.js +0 -188
  1003. package/dist/core/tasks/hierarchy.js.map +0 -1
  1004. package/dist/core/tasks/index.d.ts +0 -15
  1005. package/dist/core/tasks/index.d.ts.map +0 -1
  1006. package/dist/core/tasks/index.js +0 -15
  1007. package/dist/core/tasks/index.js.map +0 -1
  1008. package/dist/core/tasks/labels.d.ts +0 -19
  1009. package/dist/core/tasks/labels.d.ts.map +0 -1
  1010. package/dist/core/tasks/labels.js +0 -56
  1011. package/dist/core/tasks/labels.js.map +0 -1
  1012. package/dist/core/tasks/list.d.ts +0 -36
  1013. package/dist/core/tasks/list.d.ts.map +0 -1
  1014. package/dist/core/tasks/list.js +0 -72
  1015. package/dist/core/tasks/list.js.map +0 -1
  1016. package/dist/core/tasks/phase-tracking.d.ts +0 -61
  1017. package/dist/core/tasks/phase-tracking.d.ts.map +0 -1
  1018. package/dist/core/tasks/phase-tracking.js +0 -133
  1019. package/dist/core/tasks/phase-tracking.js.map +0 -1
  1020. package/dist/core/tasks/relates.d.ts +0 -18
  1021. package/dist/core/tasks/relates.d.ts.map +0 -1
  1022. package/dist/core/tasks/relates.js +0 -115
  1023. package/dist/core/tasks/relates.js.map +0 -1
  1024. package/dist/core/tasks/show.d.ts +0 -25
  1025. package/dist/core/tasks/show.d.ts.map +0 -1
  1026. package/dist/core/tasks/show.js +0 -79
  1027. package/dist/core/tasks/show.js.map +0 -1
  1028. package/dist/core/tasks/size-weighting.d.ts +0 -38
  1029. package/dist/core/tasks/size-weighting.d.ts.map +0 -1
  1030. package/dist/core/tasks/size-weighting.js +0 -86
  1031. package/dist/core/tasks/size-weighting.js.map +0 -1
  1032. package/dist/core/tasks/staleness.d.ts +0 -56
  1033. package/dist/core/tasks/staleness.d.ts.map +0 -1
  1034. package/dist/core/tasks/staleness.js +0 -91
  1035. package/dist/core/tasks/staleness.js.map +0 -1
  1036. package/dist/core/tasks/todowrite-integration.d.ts +0 -46
  1037. package/dist/core/tasks/todowrite-integration.d.ts.map +0 -1
  1038. package/dist/core/tasks/todowrite-integration.js +0 -172
  1039. package/dist/core/tasks/todowrite-integration.js.map +0 -1
  1040. package/dist/core/tasks/update.d.ts +0 -41
  1041. package/dist/core/tasks/update.d.ts.map +0 -1
  1042. package/dist/core/tasks/update.js +0 -178
  1043. package/dist/core/tasks/update.js.map +0 -1
  1044. package/dist/core/ui/aliases.d.ts +0 -43
  1045. package/dist/core/ui/aliases.d.ts.map +0 -1
  1046. package/dist/core/ui/aliases.js +0 -150
  1047. package/dist/core/ui/aliases.js.map +0 -1
  1048. package/dist/core/ui/changelog.d.ts +0 -58
  1049. package/dist/core/ui/changelog.d.ts.map +0 -1
  1050. package/dist/core/ui/changelog.js +0 -195
  1051. package/dist/core/ui/changelog.js.map +0 -1
  1052. package/dist/core/ui/command-registry.d.ts +0 -44
  1053. package/dist/core/ui/command-registry.d.ts.map +0 -1
  1054. package/dist/core/ui/command-registry.js +0 -156
  1055. package/dist/core/ui/command-registry.js.map +0 -1
  1056. package/dist/core/ui/flags.d.ts +0 -34
  1057. package/dist/core/ui/flags.d.ts.map +0 -1
  1058. package/dist/core/ui/flags.js +0 -94
  1059. package/dist/core/ui/flags.js.map +0 -1
  1060. package/dist/core/ui/index.d.ts +0 -18
  1061. package/dist/core/ui/index.d.ts.map +0 -1
  1062. package/dist/core/ui/index.js +0 -28
  1063. package/dist/core/ui/index.js.map +0 -1
  1064. package/dist/core/ui/injection-legacy.d.ts +0 -26
  1065. package/dist/core/ui/injection-legacy.d.ts.map +0 -1
  1066. package/dist/core/ui/injection-legacy.js +0 -42
  1067. package/dist/core/ui/injection-legacy.js.map +0 -1
  1068. package/dist/core/ui/injection-registry.d.ts +0 -56
  1069. package/dist/core/ui/injection-registry.d.ts.map +0 -1
  1070. package/dist/core/ui/injection-registry.js +0 -68
  1071. package/dist/core/ui/injection-registry.js.map +0 -1
  1072. package/dist/core/ui/injection.d.ts +0 -51
  1073. package/dist/core/ui/injection.d.ts.map +0 -1
  1074. package/dist/core/ui/injection.js +0 -125
  1075. package/dist/core/ui/injection.js.map +0 -1
  1076. package/dist/core/ui/mcp-config.d.ts +0 -40
  1077. package/dist/core/ui/mcp-config.d.ts.map +0 -1
  1078. package/dist/core/ui/mcp-config.js +0 -173
  1079. package/dist/core/ui/mcp-config.js.map +0 -1
  1080. package/dist/core/ui/version-check.d.ts +0 -31
  1081. package/dist/core/ui/version-check.d.ts.map +0 -1
  1082. package/dist/core/ui/version-check.js +0 -121
  1083. package/dist/core/ui/version-check.js.map +0 -1
  1084. package/dist/core/upgrade.d.ts +0 -59
  1085. package/dist/core/upgrade.d.ts.map +0 -1
  1086. package/dist/core/upgrade.js +0 -649
  1087. package/dist/core/upgrade.js.map +0 -1
  1088. package/dist/core/validation/compliance.d.ts +0 -94
  1089. package/dist/core/validation/compliance.d.ts.map +0 -1
  1090. package/dist/core/validation/compliance.js +0 -157
  1091. package/dist/core/validation/compliance.js.map +0 -1
  1092. package/dist/core/validation/docs-sync.d.ts +0 -66
  1093. package/dist/core/validation/docs-sync.d.ts.map +0 -1
  1094. package/dist/core/validation/docs-sync.js +0 -204
  1095. package/dist/core/validation/docs-sync.js.map +0 -1
  1096. package/dist/core/validation/doctor/checks.d.ts +0 -61
  1097. package/dist/core/validation/doctor/checks.d.ts.map +0 -1
  1098. package/dist/core/validation/doctor/checks.js +0 -457
  1099. package/dist/core/validation/doctor/checks.js.map +0 -1
  1100. package/dist/core/validation/doctor/index.d.ts +0 -9
  1101. package/dist/core/validation/doctor/index.d.ts.map +0 -1
  1102. package/dist/core/validation/doctor/index.js +0 -9
  1103. package/dist/core/validation/doctor/index.js.map +0 -1
  1104. package/dist/core/validation/doctor/project-cache.d.ts +0 -79
  1105. package/dist/core/validation/doctor/project-cache.d.ts.map +0 -1
  1106. package/dist/core/validation/doctor/project-cache.js +0 -164
  1107. package/dist/core/validation/doctor/project-cache.js.map +0 -1
  1108. package/dist/core/validation/doctor/utils.d.ts +0 -68
  1109. package/dist/core/validation/doctor/utils.d.ts.map +0 -1
  1110. package/dist/core/validation/doctor/utils.js +0 -162
  1111. package/dist/core/validation/doctor/utils.js.map +0 -1
  1112. package/dist/core/validation/engine.d.ts +0 -172
  1113. package/dist/core/validation/engine.d.ts.map +0 -1
  1114. package/dist/core/validation/engine.js +0 -791
  1115. package/dist/core/validation/engine.js.map +0 -1
  1116. package/dist/core/validation/gap-check.d.ts +0 -74
  1117. package/dist/core/validation/gap-check.d.ts.map +0 -1
  1118. package/dist/core/validation/gap-check.js +0 -175
  1119. package/dist/core/validation/gap-check.js.map +0 -1
  1120. package/dist/core/validation/index.d.ts +0 -17
  1121. package/dist/core/validation/index.d.ts.map +0 -1
  1122. package/dist/core/validation/index.js +0 -25
  1123. package/dist/core/validation/index.js.map +0 -1
  1124. package/dist/core/validation/manifest.d.ts +0 -81
  1125. package/dist/core/validation/manifest.d.ts.map +0 -1
  1126. package/dist/core/validation/manifest.js +0 -225
  1127. package/dist/core/validation/manifest.js.map +0 -1
  1128. package/dist/core/validation/protocol-common.d.ts +0 -77
  1129. package/dist/core/validation/protocol-common.d.ts.map +0 -1
  1130. package/dist/core/validation/protocol-common.js +0 -240
  1131. package/dist/core/validation/protocol-common.js.map +0 -1
  1132. package/dist/core/validation/protocols/consensus.d.ts +0 -28
  1133. package/dist/core/validation/protocols/consensus.d.ts.map +0 -1
  1134. package/dist/core/validation/protocols/consensus.js +0 -70
  1135. package/dist/core/validation/protocols/consensus.js.map +0 -1
  1136. package/dist/core/validation/protocols/contribution.d.ts +0 -26
  1137. package/dist/core/validation/protocols/contribution.d.ts.map +0 -1
  1138. package/dist/core/validation/protocols/contribution.js +0 -58
  1139. package/dist/core/validation/protocols/contribution.js.map +0 -1
  1140. package/dist/core/validation/protocols/decomposition.d.ts +0 -28
  1141. package/dist/core/validation/protocols/decomposition.d.ts.map +0 -1
  1142. package/dist/core/validation/protocols/decomposition.js +0 -58
  1143. package/dist/core/validation/protocols/decomposition.js.map +0 -1
  1144. package/dist/core/validation/protocols/implementation.d.ts +0 -26
  1145. package/dist/core/validation/protocols/implementation.d.ts.map +0 -1
  1146. package/dist/core/validation/protocols/implementation.js +0 -58
  1147. package/dist/core/validation/protocols/implementation.js.map +0 -1
  1148. package/dist/core/validation/protocols/specification.d.ts +0 -28
  1149. package/dist/core/validation/protocols/specification.d.ts.map +0 -1
  1150. package/dist/core/validation/protocols/specification.js +0 -83
  1151. package/dist/core/validation/protocols/specification.js.map +0 -1
  1152. package/dist/core/validation/verification.d.ts +0 -153
  1153. package/dist/core/validation/verification.d.ts.map +0 -1
  1154. package/dist/core/validation/verification.js +0 -311
  1155. package/dist/core/validation/verification.js.map +0 -1
  1156. package/dist/dispatch/dispatcher.d.ts +0 -23
  1157. package/dist/dispatch/dispatcher.d.ts.map +0 -1
  1158. package/dist/dispatch/dispatcher.js +0 -90
  1159. package/dist/dispatch/dispatcher.js.map +0 -1
  1160. package/dist/dispatch/domains/_meta.d.ts +0 -23
  1161. package/dist/dispatch/domains/_meta.d.ts.map +0 -1
  1162. package/dist/dispatch/domains/_meta.js +0 -25
  1163. package/dist/dispatch/domains/_meta.js.map +0 -1
  1164. package/dist/dispatch/domains/admin.d.ts +0 -29
  1165. package/dist/dispatch/domains/admin.d.ts.map +0 -1
  1166. package/dist/dispatch/domains/admin.js +0 -200
  1167. package/dist/dispatch/domains/admin.js.map +0 -1
  1168. package/dist/dispatch/domains/check.d.ts +0 -28
  1169. package/dist/dispatch/domains/check.d.ts.map +0 -1
  1170. package/dist/dispatch/domains/check.js +0 -170
  1171. package/dist/dispatch/domains/check.js.map +0 -1
  1172. package/dist/dispatch/domains/index.d.ts +0 -26
  1173. package/dist/dispatch/domains/index.d.ts.map +0 -1
  1174. package/dist/dispatch/domains/index.js +0 -36
  1175. package/dist/dispatch/domains/index.js.map +0 -1
  1176. package/dist/dispatch/domains/memory.d.ts +0 -27
  1177. package/dist/dispatch/domains/memory.d.ts.map +0 -1
  1178. package/dist/dispatch/domains/memory.js +0 -169
  1179. package/dist/dispatch/domains/memory.js.map +0 -1
  1180. package/dist/dispatch/domains/nexus.d.ts +0 -18
  1181. package/dist/dispatch/domains/nexus.d.ts.map +0 -1
  1182. package/dist/dispatch/domains/nexus.js +0 -34
  1183. package/dist/dispatch/domains/nexus.js.map +0 -1
  1184. package/dist/dispatch/domains/orchestrate.d.ts +0 -24
  1185. package/dist/dispatch/domains/orchestrate.d.ts.map +0 -1
  1186. package/dist/dispatch/domains/orchestrate.js +0 -199
  1187. package/dist/dispatch/domains/orchestrate.js.map +0 -1
  1188. package/dist/dispatch/domains/pipeline.d.ts +0 -31
  1189. package/dist/dispatch/domains/pipeline.d.ts.map +0 -1
  1190. package/dist/dispatch/domains/pipeline.js +0 -284
  1191. package/dist/dispatch/domains/pipeline.js.map +0 -1
  1192. package/dist/dispatch/domains/session.d.ts +0 -27
  1193. package/dist/dispatch/domains/session.d.ts.map +0 -1
  1194. package/dist/dispatch/domains/session.js +0 -180
  1195. package/dist/dispatch/domains/session.js.map +0 -1
  1196. package/dist/dispatch/domains/tools.d.ts +0 -39
  1197. package/dist/dispatch/domains/tools.d.ts.map +0 -1
  1198. package/dist/dispatch/domains/tools.js +0 -314
  1199. package/dist/dispatch/domains/tools.js.map +0 -1
  1200. package/dist/dispatch/index.d.ts +0 -20
  1201. package/dist/dispatch/index.d.ts.map +0 -1
  1202. package/dist/dispatch/index.js +0 -19
  1203. package/dist/dispatch/index.js.map +0 -1
  1204. package/dist/dispatch/lib/meta.d.ts +0 -24
  1205. package/dist/dispatch/lib/meta.d.ts.map +0 -1
  1206. package/dist/dispatch/lib/meta.js +0 -34
  1207. package/dist/dispatch/lib/meta.js.map +0 -1
  1208. package/dist/dispatch/middleware/audit.d.ts +0 -123
  1209. package/dist/dispatch/middleware/audit.d.ts.map +0 -1
  1210. package/dist/dispatch/middleware/audit.js +0 -345
  1211. package/dist/dispatch/middleware/audit.js.map +0 -1
  1212. package/dist/dispatch/middleware/pipeline.d.ts +0 -20
  1213. package/dist/dispatch/middleware/pipeline.d.ts.map +0 -1
  1214. package/dist/dispatch/middleware/pipeline.js +0 -47
  1215. package/dist/dispatch/middleware/pipeline.js.map +0 -1
  1216. package/dist/dispatch/middleware/protocol-enforcement.d.ts +0 -6
  1217. package/dist/dispatch/middleware/protocol-enforcement.d.ts.map +0 -1
  1218. package/dist/dispatch/middleware/protocol-enforcement.js +0 -12
  1219. package/dist/dispatch/middleware/protocol-enforcement.js.map +0 -1
  1220. package/dist/dispatch/middleware/rate-limiter.d.ts +0 -30
  1221. package/dist/dispatch/middleware/rate-limiter.d.ts.map +0 -1
  1222. package/dist/dispatch/middleware/rate-limiter.js +0 -101
  1223. package/dist/dispatch/middleware/rate-limiter.js.map +0 -1
  1224. package/dist/dispatch/middleware/sanitizer.d.ts +0 -10
  1225. package/dist/dispatch/middleware/sanitizer.d.ts.map +0 -1
  1226. package/dist/dispatch/middleware/sanitizer.js +0 -39
  1227. package/dist/dispatch/middleware/sanitizer.js.map +0 -1
  1228. package/dist/dispatch/middleware/verification-gates.d.ts +0 -3
  1229. package/dist/dispatch/middleware/verification-gates.d.ts.map +0 -1
  1230. package/dist/dispatch/middleware/verification-gates.js +0 -40
  1231. package/dist/dispatch/middleware/verification-gates.js.map +0 -1
  1232. package/dist/dispatch/registry.d.ts +0 -89
  1233. package/dist/dispatch/registry.d.ts.map +0 -1
  1234. package/dist/dispatch/registry.js +0 -1591
  1235. package/dist/dispatch/registry.js.map +0 -1
  1236. package/dist/dispatch/types.d.ts +0 -137
  1237. package/dist/dispatch/types.d.ts.map +0 -1
  1238. package/dist/dispatch/types.js +0 -24
  1239. package/dist/dispatch/types.js.map +0 -1
  1240. package/dist/index.d.ts +0 -22
  1241. package/dist/index.d.ts.map +0 -1
  1242. package/dist/index.js +0 -30
  1243. package/dist/index.js.map +0 -1
  1244. package/dist/mcp/domains/index.d.ts +0 -19
  1245. package/dist/mcp/domains/index.d.ts.map +0 -1
  1246. package/dist/mcp/domains/index.js +0 -19
  1247. package/dist/mcp/domains/index.js.map +0 -1
  1248. package/dist/mcp/domains/issues.d.ts +0 -69
  1249. package/dist/mcp/domains/issues.d.ts.map +0 -1
  1250. package/dist/mcp/domains/issues.js +0 -260
  1251. package/dist/mcp/domains/issues.js.map +0 -1
  1252. package/dist/mcp/domains/lifecycle.d.ts +0 -154
  1253. package/dist/mcp/domains/lifecycle.d.ts.map +0 -1
  1254. package/dist/mcp/domains/lifecycle.js +0 -508
  1255. package/dist/mcp/domains/lifecycle.js.map +0 -1
  1256. package/dist/mcp/domains/orchestrate.d.ts +0 -140
  1257. package/dist/mcp/domains/orchestrate.d.ts.map +0 -1
  1258. package/dist/mcp/domains/orchestrate.js +0 -542
  1259. package/dist/mcp/domains/orchestrate.js.map +0 -1
  1260. package/dist/mcp/domains/providers.d.ts +0 -28
  1261. package/dist/mcp/domains/providers.d.ts.map +0 -1
  1262. package/dist/mcp/domains/providers.js +0 -108
  1263. package/dist/mcp/domains/providers.js.map +0 -1
  1264. package/dist/mcp/domains/release.d.ts +0 -121
  1265. package/dist/mcp/domains/release.d.ts.map +0 -1
  1266. package/dist/mcp/domains/release.js +0 -486
  1267. package/dist/mcp/domains/release.js.map +0 -1
  1268. package/dist/mcp/domains/research.d.ts +0 -158
  1269. package/dist/mcp/domains/research.d.ts.map +0 -1
  1270. package/dist/mcp/domains/research.js +0 -698
  1271. package/dist/mcp/domains/research.js.map +0 -1
  1272. package/dist/mcp/domains/session.d.ts +0 -136
  1273. package/dist/mcp/domains/session.d.ts.map +0 -1
  1274. package/dist/mcp/domains/session.js +0 -583
  1275. package/dist/mcp/domains/session.js.map +0 -1
  1276. package/dist/mcp/domains/skills.d.ts +0 -129
  1277. package/dist/mcp/domains/skills.d.ts.map +0 -1
  1278. package/dist/mcp/domains/skills.js +0 -691
  1279. package/dist/mcp/domains/skills.js.map +0 -1
  1280. package/dist/mcp/domains/system.d.ts +0 -166
  1281. package/dist/mcp/domains/system.d.ts.map +0 -1
  1282. package/dist/mcp/domains/system.js +0 -1000
  1283. package/dist/mcp/domains/system.js.map +0 -1
  1284. package/dist/mcp/domains/tasks.d.ts +0 -241
  1285. package/dist/mcp/domains/tasks.d.ts.map +0 -1
  1286. package/dist/mcp/domains/tasks.js +0 -1152
  1287. package/dist/mcp/domains/tasks.js.map +0 -1
  1288. package/dist/mcp/domains/validate.d.ts +0 -163
  1289. package/dist/mcp/domains/validate.d.ts.map +0 -1
  1290. package/dist/mcp/domains/validate.js +0 -787
  1291. package/dist/mcp/domains/validate.js.map +0 -1
  1292. package/dist/mcp/engine/caamp-adapter.d.ts +0 -12
  1293. package/dist/mcp/engine/caamp-adapter.d.ts.map +0 -1
  1294. package/dist/mcp/engine/caamp-adapter.js +0 -23
  1295. package/dist/mcp/engine/caamp-adapter.js.map +0 -1
  1296. package/dist/mcp/engine/caamp-verify.d.ts +0 -2
  1297. package/dist/mcp/engine/caamp-verify.d.ts.map +0 -1
  1298. package/dist/mcp/engine/caamp-verify.js +0 -15
  1299. package/dist/mcp/engine/caamp-verify.js.map +0 -1
  1300. package/dist/mcp/engine/capability-matrix.d.ts +0 -67
  1301. package/dist/mcp/engine/capability-matrix.d.ts.map +0 -1
  1302. package/dist/mcp/engine/capability-matrix.js +0 -243
  1303. package/dist/mcp/engine/capability-matrix.js.map +0 -1
  1304. package/dist/mcp/engine/config-engine.d.ts +0 -29
  1305. package/dist/mcp/engine/config-engine.d.ts.map +0 -1
  1306. package/dist/mcp/engine/config-engine.js +0 -110
  1307. package/dist/mcp/engine/config-engine.js.map +0 -1
  1308. package/dist/mcp/engine/id-generator.d.ts +0 -34
  1309. package/dist/mcp/engine/id-generator.d.ts.map +0 -1
  1310. package/dist/mcp/engine/id-generator.js +0 -91
  1311. package/dist/mcp/engine/id-generator.js.map +0 -1
  1312. package/dist/mcp/engine/index.d.ts +0 -25
  1313. package/dist/mcp/engine/index.d.ts.map +0 -1
  1314. package/dist/mcp/engine/index.js +0 -42
  1315. package/dist/mcp/engine/index.js.map +0 -1
  1316. package/dist/mcp/engine/init-engine.d.ts +0 -52
  1317. package/dist/mcp/engine/init-engine.d.ts.map +0 -1
  1318. package/dist/mcp/engine/init-engine.js +0 -222
  1319. package/dist/mcp/engine/init-engine.js.map +0 -1
  1320. package/dist/mcp/engine/lifecycle-engine.d.ts +0 -119
  1321. package/dist/mcp/engine/lifecycle-engine.d.ts.map +0 -1
  1322. package/dist/mcp/engine/lifecycle-engine.js +0 -564
  1323. package/dist/mcp/engine/lifecycle-engine.js.map +0 -1
  1324. package/dist/mcp/engine/orchestrate-engine.d.ts +0 -127
  1325. package/dist/mcp/engine/orchestrate-engine.d.ts.map +0 -1
  1326. package/dist/mcp/engine/orchestrate-engine.js +0 -1233
  1327. package/dist/mcp/engine/orchestrate-engine.js.map +0 -1
  1328. package/dist/mcp/engine/release-engine.d.ts +0 -71
  1329. package/dist/mcp/engine/release-engine.d.ts.map +0 -1
  1330. package/dist/mcp/engine/release-engine.js +0 -515
  1331. package/dist/mcp/engine/release-engine.js.map +0 -1
  1332. package/dist/mcp/engine/research-engine.d.ts +0 -182
  1333. package/dist/mcp/engine/research-engine.d.ts.map +0 -1
  1334. package/dist/mcp/engine/research-engine.js +0 -747
  1335. package/dist/mcp/engine/research-engine.js.map +0 -1
  1336. package/dist/mcp/engine/schema-validator.d.ts +0 -47
  1337. package/dist/mcp/engine/schema-validator.d.ts.map +0 -1
  1338. package/dist/mcp/engine/schema-validator.js +0 -219
  1339. package/dist/mcp/engine/schema-validator.js.map +0 -1
  1340. package/dist/mcp/engine/session-engine.d.ts +0 -340
  1341. package/dist/mcp/engine/session-engine.d.ts.map +0 -1
  1342. package/dist/mcp/engine/session-engine.js +0 -1355
  1343. package/dist/mcp/engine/session-engine.js.map +0 -1
  1344. package/dist/mcp/engine/store.d.ts +0 -86
  1345. package/dist/mcp/engine/store.d.ts.map +0 -1
  1346. package/dist/mcp/engine/store.js +0 -393
  1347. package/dist/mcp/engine/store.js.map +0 -1
  1348. package/dist/mcp/engine/system-engine.d.ts +0 -458
  1349. package/dist/mcp/engine/system-engine.d.ts.map +0 -1
  1350. package/dist/mcp/engine/system-engine.js +0 -1568
  1351. package/dist/mcp/engine/system-engine.js.map +0 -1
  1352. package/dist/mcp/engine/task-engine.d.ts +0 -501
  1353. package/dist/mcp/engine/task-engine.d.ts.map +0 -1
  1354. package/dist/mcp/engine/task-engine.js +0 -1840
  1355. package/dist/mcp/engine/task-engine.js.map +0 -1
  1356. package/dist/mcp/engine/template-parser.d.ts +0 -83
  1357. package/dist/mcp/engine/template-parser.d.ts.map +0 -1
  1358. package/dist/mcp/engine/template-parser.js +0 -255
  1359. package/dist/mcp/engine/template-parser.js.map +0 -1
  1360. package/dist/mcp/engine/validate-engine.d.ts +0 -120
  1361. package/dist/mcp/engine/validate-engine.d.ts.map +0 -1
  1362. package/dist/mcp/engine/validate-engine.js +0 -828
  1363. package/dist/mcp/engine/validate-engine.js.map +0 -1
  1364. package/dist/mcp/engine/validation-rules.d.ts +0 -85
  1365. package/dist/mcp/engine/validation-rules.d.ts.map +0 -1
  1366. package/dist/mcp/engine/validation-rules.js +0 -220
  1367. package/dist/mcp/engine/validation-rules.js.map +0 -1
  1368. package/dist/mcp/gateways/mutate.d.ts +0 -100
  1369. package/dist/mcp/gateways/mutate.d.ts.map +0 -1
  1370. package/dist/mcp/gateways/mutate.js +0 -1070
  1371. package/dist/mcp/gateways/mutate.js.map +0 -1
  1372. package/dist/mcp/gateways/query.d.ts +0 -91
  1373. package/dist/mcp/gateways/query.d.ts.map +0 -1
  1374. package/dist/mcp/gateways/query.js +0 -278
  1375. package/dist/mcp/gateways/query.js.map +0 -1
  1376. package/dist/mcp/index.d.ts +0 -20
  1377. package/dist/mcp/index.d.ts.map +0 -1
  1378. package/dist/mcp/lib/audit.d.ts +0 -118
  1379. package/dist/mcp/lib/audit.d.ts.map +0 -1
  1380. package/dist/mcp/lib/audit.js +0 -310
  1381. package/dist/mcp/lib/audit.js.map +0 -1
  1382. package/dist/mcp/lib/background-jobs.d.ts +0 -86
  1383. package/dist/mcp/lib/background-jobs.d.ts.map +0 -1
  1384. package/dist/mcp/lib/background-jobs.js +0 -183
  1385. package/dist/mcp/lib/background-jobs.js.map +0 -1
  1386. package/dist/mcp/lib/budget.d.ts +0 -35
  1387. package/dist/mcp/lib/budget.d.ts.map +0 -1
  1388. package/dist/mcp/lib/budget.js +0 -101
  1389. package/dist/mcp/lib/budget.js.map +0 -1
  1390. package/dist/mcp/lib/cache.d.ts +0 -78
  1391. package/dist/mcp/lib/cache.d.ts.map +0 -1
  1392. package/dist/mcp/lib/cache.js +0 -204
  1393. package/dist/mcp/lib/cache.js.map +0 -1
  1394. package/dist/mcp/lib/command-builder.d.ts +0 -52
  1395. package/dist/mcp/lib/command-builder.d.ts.map +0 -1
  1396. package/dist/mcp/lib/command-builder.js +0 -269
  1397. package/dist/mcp/lib/command-builder.js.map +0 -1
  1398. package/dist/mcp/lib/config.d.ts +0 -42
  1399. package/dist/mcp/lib/config.d.ts.map +0 -1
  1400. package/dist/mcp/lib/config.js +0 -248
  1401. package/dist/mcp/lib/config.js.map +0 -1
  1402. package/dist/mcp/lib/defaults.d.ts +0 -115
  1403. package/dist/mcp/lib/defaults.d.ts.map +0 -1
  1404. package/dist/mcp/lib/defaults.js +0 -61
  1405. package/dist/mcp/lib/defaults.js.map +0 -1
  1406. package/dist/mcp/lib/error-handler.d.ts +0 -101
  1407. package/dist/mcp/lib/error-handler.d.ts.map +0 -1
  1408. package/dist/mcp/lib/error-handler.js +0 -277
  1409. package/dist/mcp/lib/error-handler.js.map +0 -1
  1410. package/dist/mcp/lib/executor.d.ts +0 -122
  1411. package/dist/mcp/lib/executor.d.ts.map +0 -1
  1412. package/dist/mcp/lib/executor.js +0 -391
  1413. package/dist/mcp/lib/executor.js.map +0 -1
  1414. package/dist/mcp/lib/exit-codes.d.ts +0 -192
  1415. package/dist/mcp/lib/exit-codes.d.ts.map +0 -1
  1416. package/dist/mcp/lib/exit-codes.js +0 -1029
  1417. package/dist/mcp/lib/exit-codes.js.map +0 -1
  1418. package/dist/mcp/lib/formatter.d.ts +0 -196
  1419. package/dist/mcp/lib/formatter.d.ts.map +0 -1
  1420. package/dist/mcp/lib/formatter.js +0 -260
  1421. package/dist/mcp/lib/formatter.js.map +0 -1
  1422. package/dist/mcp/lib/gate-validators.d.ts +0 -104
  1423. package/dist/mcp/lib/gate-validators.d.ts.map +0 -1
  1424. package/dist/mcp/lib/gate-validators.js +0 -709
  1425. package/dist/mcp/lib/gate-validators.js.map +0 -1
  1426. package/dist/mcp/lib/gateway-meta.d.ts +0 -37
  1427. package/dist/mcp/lib/gateway-meta.d.ts.map +0 -1
  1428. package/dist/mcp/lib/gateway-meta.js +0 -50
  1429. package/dist/mcp/lib/gateway-meta.js.map +0 -1
  1430. package/dist/mcp/lib/manifest-parser.d.ts +0 -61
  1431. package/dist/mcp/lib/manifest-parser.d.ts.map +0 -1
  1432. package/dist/mcp/lib/manifest-parser.js +0 -338
  1433. package/dist/mcp/lib/manifest-parser.js.map +0 -1
  1434. package/dist/mcp/lib/manifest.d.ts +0 -177
  1435. package/dist/mcp/lib/manifest.d.ts.map +0 -1
  1436. package/dist/mcp/lib/manifest.js +0 -301
  1437. package/dist/mcp/lib/manifest.js.map +0 -1
  1438. package/dist/mcp/lib/mode-detector.d.ts +0 -71
  1439. package/dist/mcp/lib/mode-detector.d.ts.map +0 -1
  1440. package/dist/mcp/lib/mode-detector.js +0 -184
  1441. package/dist/mcp/lib/mode-detector.js.map +0 -1
  1442. package/dist/mcp/lib/protocol-enforcement.d.ts +0 -105
  1443. package/dist/mcp/lib/protocol-enforcement.d.ts.map +0 -1
  1444. package/dist/mcp/lib/protocol-enforcement.js +0 -331
  1445. package/dist/mcp/lib/protocol-enforcement.js.map +0 -1
  1446. package/dist/mcp/lib/protocol-rules.d.ts +0 -55
  1447. package/dist/mcp/lib/protocol-rules.d.ts.map +0 -1
  1448. package/dist/mcp/lib/protocol-rules.js +0 -760
  1449. package/dist/mcp/lib/protocol-rules.js.map +0 -1
  1450. package/dist/mcp/lib/rate-limiter.d.ts +0 -110
  1451. package/dist/mcp/lib/rate-limiter.d.ts.map +0 -1
  1452. package/dist/mcp/lib/rate-limiter.js +0 -208
  1453. package/dist/mcp/lib/rate-limiter.js.map +0 -1
  1454. package/dist/mcp/lib/router.d.ts +0 -136
  1455. package/dist/mcp/lib/router.d.ts.map +0 -1
  1456. package/dist/mcp/lib/router.js +0 -298
  1457. package/dist/mcp/lib/router.js.map +0 -1
  1458. package/dist/mcp/lib/schema.d.ts +0 -55
  1459. package/dist/mcp/lib/schema.d.ts.map +0 -1
  1460. package/dist/mcp/lib/schema.js +0 -70
  1461. package/dist/mcp/lib/schema.js.map +0 -1
  1462. package/dist/mcp/lib/security.d.ts +0 -158
  1463. package/dist/mcp/lib/security.d.ts.map +0 -1
  1464. package/dist/mcp/lib/security.js +0 -353
  1465. package/dist/mcp/lib/security.js.map +0 -1
  1466. package/dist/mcp/lib/verification-gates.d.ts +0 -287
  1467. package/dist/mcp/lib/verification-gates.d.ts.map +0 -1
  1468. package/dist/mcp/lib/verification-gates.js +0 -547
  1469. package/dist/mcp/lib/verification-gates.js.map +0 -1
  1470. package/dist/mcp/types/domain.d.ts +0 -29
  1471. package/dist/mcp/types/domain.d.ts.map +0 -1
  1472. package/dist/mcp/types/domain.js +0 -7
  1473. package/dist/mcp/types/domain.js.map +0 -1
  1474. package/dist/mcp/types/error.d.ts +0 -101
  1475. package/dist/mcp/types/error.d.ts.map +0 -1
  1476. package/dist/mcp/types/error.js +0 -148
  1477. package/dist/mcp/types/error.js.map +0 -1
  1478. package/dist/mcp/types/gateway.d.ts +0 -78
  1479. package/dist/mcp/types/gateway.d.ts.map +0 -1
  1480. package/dist/mcp/types/gateway.js +0 -7
  1481. package/dist/mcp/types/gateway.js.map +0 -1
  1482. package/dist/mcp/types/index.d.ts +0 -23
  1483. package/dist/mcp/types/index.d.ts.map +0 -1
  1484. package/dist/mcp/types/index.js +0 -11
  1485. package/dist/mcp/types/index.js.map +0 -1
  1486. package/dist/mcp/types/operations/issues.d.ts +0 -3
  1487. package/dist/mcp/types/operations/issues.d.ts.map +0 -1
  1488. package/dist/mcp/types/operations/issues.js +0 -3
  1489. package/dist/mcp/types/operations/issues.js.map +0 -1
  1490. package/dist/mcp/types/operations/lifecycle.d.ts +0 -3
  1491. package/dist/mcp/types/operations/lifecycle.d.ts.map +0 -1
  1492. package/dist/mcp/types/operations/lifecycle.js +0 -3
  1493. package/dist/mcp/types/operations/lifecycle.js.map +0 -1
  1494. package/dist/mcp/types/operations/orchestrate.d.ts +0 -3
  1495. package/dist/mcp/types/operations/orchestrate.d.ts.map +0 -1
  1496. package/dist/mcp/types/operations/orchestrate.js +0 -3
  1497. package/dist/mcp/types/operations/orchestrate.js.map +0 -1
  1498. package/dist/mcp/types/operations/release.d.ts +0 -3
  1499. package/dist/mcp/types/operations/release.d.ts.map +0 -1
  1500. package/dist/mcp/types/operations/release.js +0 -3
  1501. package/dist/mcp/types/operations/release.js.map +0 -1
  1502. package/dist/mcp/types/operations/research.d.ts +0 -3
  1503. package/dist/mcp/types/operations/research.d.ts.map +0 -1
  1504. package/dist/mcp/types/operations/research.js +0 -3
  1505. package/dist/mcp/types/operations/research.js.map +0 -1
  1506. package/dist/mcp/types/operations/session.d.ts +0 -3
  1507. package/dist/mcp/types/operations/session.d.ts.map +0 -1
  1508. package/dist/mcp/types/operations/session.js +0 -3
  1509. package/dist/mcp/types/operations/session.js.map +0 -1
  1510. package/dist/mcp/types/operations/skills.d.ts +0 -3
  1511. package/dist/mcp/types/operations/skills.d.ts.map +0 -1
  1512. package/dist/mcp/types/operations/skills.js +0 -3
  1513. package/dist/mcp/types/operations/skills.js.map +0 -1
  1514. package/dist/mcp/types/operations/system.d.ts +0 -3
  1515. package/dist/mcp/types/operations/system.d.ts.map +0 -1
  1516. package/dist/mcp/types/operations/system.js +0 -3
  1517. package/dist/mcp/types/operations/system.js.map +0 -1
  1518. package/dist/mcp/types/operations/tasks.d.ts +0 -3
  1519. package/dist/mcp/types/operations/tasks.d.ts.map +0 -1
  1520. package/dist/mcp/types/operations/tasks.js +0 -3
  1521. package/dist/mcp/types/operations/tasks.js.map +0 -1
  1522. package/dist/mcp/types/operations/validate.d.ts +0 -3
  1523. package/dist/mcp/types/operations/validate.d.ts.map +0 -1
  1524. package/dist/mcp/types/operations/validate.js +0 -3
  1525. package/dist/mcp/types/operations/validate.js.map +0 -1
  1526. package/dist/scripts/migrate-todo-to-tasks.d.ts +0 -46
  1527. package/dist/scripts/migrate-todo-to-tasks.d.ts.map +0 -1
  1528. package/dist/scripts/migrate-todo-to-tasks.js +0 -379
  1529. package/dist/scripts/migrate-todo-to-tasks.js.map +0 -1
  1530. package/dist/store/atomic.d.ts +0 -75
  1531. package/dist/store/atomic.d.ts.map +0 -1
  1532. package/dist/store/atomic.js +0 -167
  1533. package/dist/store/atomic.js.map +0 -1
  1534. package/dist/store/backup.d.ts +0 -21
  1535. package/dist/store/backup.d.ts.map +0 -1
  1536. package/dist/store/backup.js +0 -94
  1537. package/dist/store/backup.js.map +0 -1
  1538. package/dist/store/cache.d.ts +0 -67
  1539. package/dist/store/cache.d.ts.map +0 -1
  1540. package/dist/store/cache.js +0 -168
  1541. package/dist/store/cache.js.map +0 -1
  1542. package/dist/store/data-accessor.d.ts +0 -77
  1543. package/dist/store/data-accessor.d.ts.map +0 -1
  1544. package/dist/store/data-accessor.js +0 -149
  1545. package/dist/store/data-accessor.js.map +0 -1
  1546. package/dist/store/data-safety-central.d.ts +0 -103
  1547. package/dist/store/data-safety-central.d.ts.map +0 -1
  1548. package/dist/store/data-safety-central.js +0 -291
  1549. package/dist/store/data-safety-central.js.map +0 -1
  1550. package/dist/store/data-safety.d.ts +0 -93
  1551. package/dist/store/data-safety.d.ts.map +0 -1
  1552. package/dist/store/data-safety.js +0 -298
  1553. package/dist/store/data-safety.js.map +0 -1
  1554. package/dist/store/export.d.ts +0 -87
  1555. package/dist/store/export.d.ts.map +0 -1
  1556. package/dist/store/export.js +0 -153
  1557. package/dist/store/export.js.map +0 -1
  1558. package/dist/store/git-checkpoint.d.ts +0 -65
  1559. package/dist/store/git-checkpoint.d.ts.map +0 -1
  1560. package/dist/store/git-checkpoint.js +0 -304
  1561. package/dist/store/git-checkpoint.js.map +0 -1
  1562. package/dist/store/import-logging.d.ts +0 -58
  1563. package/dist/store/import-logging.d.ts.map +0 -1
  1564. package/dist/store/import-logging.js +0 -139
  1565. package/dist/store/import-logging.js.map +0 -1
  1566. package/dist/store/import-remap.d.ts +0 -50
  1567. package/dist/store/import-remap.d.ts.map +0 -1
  1568. package/dist/store/import-remap.js +0 -145
  1569. package/dist/store/import-remap.js.map +0 -1
  1570. package/dist/store/import-sort.d.ts +0 -35
  1571. package/dist/store/import-sort.d.ts.map +0 -1
  1572. package/dist/store/import-sort.js +0 -123
  1573. package/dist/store/import-sort.js.map +0 -1
  1574. package/dist/store/index.d.ts +0 -28
  1575. package/dist/store/index.d.ts.map +0 -1
  1576. package/dist/store/index.js +0 -28
  1577. package/dist/store/index.js.map +0 -1
  1578. package/dist/store/json-data-accessor.d.ts +0 -16
  1579. package/dist/store/json-data-accessor.d.ts.map +0 -1
  1580. package/dist/store/json-data-accessor.js +0 -68
  1581. package/dist/store/json-data-accessor.js.map +0 -1
  1582. package/dist/store/json-provider.d.ts +0 -23
  1583. package/dist/store/json-provider.d.ts.map +0 -1
  1584. package/dist/store/json-provider.js +0 -263
  1585. package/dist/store/json-provider.js.map +0 -1
  1586. package/dist/store/json.d.ts +0 -57
  1587. package/dist/store/json.d.ts.map +0 -1
  1588. package/dist/store/json.js +0 -198
  1589. package/dist/store/json.js.map +0 -1
  1590. package/dist/store/lock.d.ts +0 -29
  1591. package/dist/store/lock.d.ts.map +0 -1
  1592. package/dist/store/lock.js +0 -70
  1593. package/dist/store/lock.js.map +0 -1
  1594. package/dist/store/migration-sqlite.d.ts +0 -68
  1595. package/dist/store/migration-sqlite.d.ts.map +0 -1
  1596. package/dist/store/migration-sqlite.js +0 -742
  1597. package/dist/store/migration-sqlite.js.map +0 -1
  1598. package/dist/store/project-detect.d.ts +0 -24
  1599. package/dist/store/project-detect.d.ts.map +0 -1
  1600. package/dist/store/project-detect.js +0 -93
  1601. package/dist/store/project-detect.js.map +0 -1
  1602. package/dist/store/project-registry.d.ts +0 -113
  1603. package/dist/store/project-registry.d.ts.map +0 -1
  1604. package/dist/store/project-registry.js +0 -194
  1605. package/dist/store/project-registry.js.map +0 -1
  1606. package/dist/store/provider.d.ts +0 -162
  1607. package/dist/store/provider.d.ts.map +0 -1
  1608. package/dist/store/provider.js +0 -319
  1609. package/dist/store/provider.js.map +0 -1
  1610. package/dist/store/safety-data-accessor.d.ts +0 -99
  1611. package/dist/store/safety-data-accessor.d.ts.map +0 -1
  1612. package/dist/store/safety-data-accessor.js +0 -167
  1613. package/dist/store/safety-data-accessor.js.map +0 -1
  1614. package/dist/store/schema.d.ts +0 -1094
  1615. package/dist/store/schema.d.ts.map +0 -1
  1616. package/dist/store/schema.js +0 -114
  1617. package/dist/store/schema.js.map +0 -1
  1618. package/dist/store/session-store.d.ts +0 -42
  1619. package/dist/store/session-store.d.ts.map +0 -1
  1620. package/dist/store/session-store.js +0 -227
  1621. package/dist/store/session-store.js.map +0 -1
  1622. package/dist/store/sqlite-data-accessor.d.ts +0 -24
  1623. package/dist/store/sqlite-data-accessor.d.ts.map +0 -1
  1624. package/dist/store/sqlite-data-accessor.js +0 -564
  1625. package/dist/store/sqlite-data-accessor.js.map +0 -1
  1626. package/dist/store/sqlite.d.ts +0 -51
  1627. package/dist/store/sqlite.d.ts.map +0 -1
  1628. package/dist/store/sqlite.js +0 -235
  1629. package/dist/store/sqlite.js.map +0 -1
  1630. package/dist/store/task-store.d.ts +0 -70
  1631. package/dist/store/task-store.d.ts.map +0 -1
  1632. package/dist/store/task-store.js +0 -401
  1633. package/dist/store/task-store.js.map +0 -1
  1634. package/dist/types/config.d.ts +0 -59
  1635. package/dist/types/config.d.ts.map +0 -1
  1636. package/dist/types/config.js +0 -8
  1637. package/dist/types/config.js.map +0 -1
  1638. package/dist/types/exit-codes.d.ts +0 -102
  1639. package/dist/types/exit-codes.d.ts.map +0 -1
  1640. package/dist/types/exit-codes.js +0 -150
  1641. package/dist/types/exit-codes.js.map +0 -1
  1642. package/dist/types/index.d.ts +0 -11
  1643. package/dist/types/index.d.ts.map +0 -1
  1644. package/dist/types/index.js +0 -11
  1645. package/dist/types/index.js.map +0 -1
  1646. package/dist/types/lafs.d.ts +0 -77
  1647. package/dist/types/lafs.d.ts.map +0 -1
  1648. package/dist/types/lafs.js +0 -28
  1649. package/dist/types/lafs.js.map +0 -1
  1650. package/dist/types/operations/issues.d.ts +0 -75
  1651. package/dist/types/operations/issues.d.ts.map +0 -1
  1652. package/dist/types/operations/issues.js +0 -10
  1653. package/dist/types/operations/issues.js.map +0 -1
  1654. package/dist/types/operations/lifecycle.d.ts +0 -140
  1655. package/dist/types/operations/lifecycle.d.ts.map +0 -1
  1656. package/dist/types/operations/lifecycle.js +0 -8
  1657. package/dist/types/operations/lifecycle.js.map +0 -1
  1658. package/dist/types/operations/orchestrate.d.ts +0 -187
  1659. package/dist/types/operations/orchestrate.d.ts.map +0 -1
  1660. package/dist/types/operations/orchestrate.js +0 -8
  1661. package/dist/types/operations/orchestrate.js.map +0 -1
  1662. package/dist/types/operations/release.d.ts +0 -97
  1663. package/dist/types/operations/release.d.ts.map +0 -1
  1664. package/dist/types/operations/release.js +0 -7
  1665. package/dist/types/operations/release.js.map +0 -1
  1666. package/dist/types/operations/research.d.ts +0 -122
  1667. package/dist/types/operations/research.d.ts.map +0 -1
  1668. package/dist/types/operations/research.js +0 -8
  1669. package/dist/types/operations/research.js.map +0 -1
  1670. package/dist/types/operations/session.d.ts +0 -93
  1671. package/dist/types/operations/session.d.ts.map +0 -1
  1672. package/dist/types/operations/session.js +0 -12
  1673. package/dist/types/operations/session.js.map +0 -1
  1674. package/dist/types/operations/skills.d.ts +0 -182
  1675. package/dist/types/operations/skills.d.ts.map +0 -1
  1676. package/dist/types/operations/skills.js +0 -10
  1677. package/dist/types/operations/skills.js.map +0 -1
  1678. package/dist/types/operations/system.d.ts +0 -147
  1679. package/dist/types/operations/system.d.ts.map +0 -1
  1680. package/dist/types/operations/system.js +0 -8
  1681. package/dist/types/operations/system.js.map +0 -1
  1682. package/dist/types/operations/tasks.d.ts +0 -219
  1683. package/dist/types/operations/tasks.d.ts.map +0 -1
  1684. package/dist/types/operations/tasks.js +0 -13
  1685. package/dist/types/operations/tasks.js.map +0 -1
  1686. package/dist/types/operations/validate.d.ts +0 -170
  1687. package/dist/types/operations/validate.d.ts.map +0 -1
  1688. package/dist/types/operations/validate.js +0 -8
  1689. package/dist/types/operations/validate.js.map +0 -1
  1690. package/dist/types/session.d.ts +0 -48
  1691. package/dist/types/session.d.ts.map +0 -1
  1692. package/dist/types/session.js +0 -8
  1693. package/dist/types/session.js.map +0 -1
  1694. package/dist/types/task.d.ts +0 -160
  1695. package/dist/types/task.d.ts.map +0 -1
  1696. package/dist/types/task.js +0 -7
  1697. package/dist/types/task.js.map +0 -1
  1698. package/schemas/sessions.schema.json +0 -406
@@ -1,1840 +0,0 @@
1
- /**
2
- * Task Engine
3
- *
4
- * Native TypeScript implementation of core task CRUD operations.
5
- * Uses StoreProvider (via getStore()) for task/session data access,
6
- * falling back to direct JSON for config and specialized operations.
7
- *
8
- * Supports: show, get, list, find, exists, create/add, update, complete, delete, archive
9
- *
10
- * @task T4657
11
- * @epic T4654
12
- */
13
- import { readJsonFile, readLogFileEntries, getDataPath } from './store.js';
14
- import { getAccessor } from '../../store/data-accessor.js';
15
- // validation-rules.js still used by other engines; core modules handle their own validation
16
- // Core module imports for accessor-based operations
17
- import { addTask as coreAddTask } from '../../core/tasks/add.js';
18
- import { updateTask as coreUpdateTask } from '../../core/tasks/update.js';
19
- import { deleteTask as coreDeleteTask } from '../../core/tasks/delete.js';
20
- import { archiveTasks as coreArchiveTasks } from '../../core/tasks/archive.js';
21
- import { showTask as coreShowTask } from '../../core/tasks/show.js';
22
- import { listTasks as coreListTasks } from '../../core/tasks/list.js';
23
- import { findTasks as coreFindTasks } from '../../core/tasks/find.js';
24
- /**
25
- * Read hierarchy limits from .cleo/config.json.
26
- * Falls back to defaults if config is missing or unset.
27
- */
28
- function getHierarchyLimits(projectRoot) {
29
- const configPath = getDataPath(projectRoot, 'config.json');
30
- const config = readJsonFile(configPath);
31
- let maxDepth = 3;
32
- let maxSiblings = 7;
33
- if (config) {
34
- const hierarchy = config.hierarchy;
35
- if (hierarchy) {
36
- if (typeof hierarchy.maxDepth === 'number')
37
- maxDepth = hierarchy.maxDepth;
38
- if (typeof hierarchy.maxSiblings === 'number')
39
- maxSiblings = hierarchy.maxSiblings;
40
- }
41
- }
42
- return { maxDepth, maxSiblings };
43
- }
44
- /**
45
- * Load all tasks via DataAccessor.
46
- * Returns Task[] from the accessor abstraction layer.
47
- *
48
- * @task T4657
49
- * @epic T4654
50
- */
51
- async function loadAllTasksAsync(projectRoot) {
52
- const accessor = await getAccessor(projectRoot);
53
- const data = await accessor.loadTodoFile();
54
- return data.tasks;
55
- }
56
- /**
57
- * Convert a core Task to a TaskRecord for backward compatibility.
58
- * TaskRecord has string-typed status/priority; Task has union types.
59
- *
60
- * @task T4657
61
- * @epic T4654
62
- */
63
- function taskToRecord(task) {
64
- return task;
65
- }
66
- /**
67
- * Convert an array of core Tasks to TaskRecords.
68
- *
69
- * @task T4657
70
- * @epic T4654
71
- */
72
- function tasksToRecords(tasks) {
73
- return tasks;
74
- }
75
- // loadTodoFile and saveTodoFile removed — all operations now use DataAccessor.
76
- // Config reads (hierarchy limits, phase meta) still use readJsonFile directly
77
- // since they are NOT domain data (they don't go through the accessor).
78
- // Priority normalization moved to core/tasks/add.ts (normalizePriority)
79
- // ===== Query Operations =====
80
- /**
81
- * Get a single task by ID
82
- * @task T4657
83
- * @epic T4654
84
- */
85
- export async function taskShow(projectRoot, taskId) {
86
- try {
87
- const accessor = await getAccessor(projectRoot);
88
- const detail = await coreShowTask(taskId, projectRoot, accessor);
89
- return { success: true, data: taskToRecord(detail) };
90
- }
91
- catch (err) {
92
- const code = err?.code;
93
- if (code === 5 /* NOT_FOUND */) {
94
- return {
95
- success: false,
96
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
97
- };
98
- }
99
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
100
- }
101
- }
102
- /**
103
- * List tasks with optional filters
104
- * @task T4657
105
- * @epic T4654
106
- */
107
- export async function taskList(projectRoot, params) {
108
- try {
109
- const accessor = await getAccessor(projectRoot);
110
- const result = await coreListTasks({
111
- parentId: params?.parent ?? undefined,
112
- status: params?.status,
113
- limit: params?.limit,
114
- }, projectRoot, accessor);
115
- return { success: true, data: tasksToRecords(result.tasks) };
116
- }
117
- catch {
118
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
119
- }
120
- }
121
- /**
122
- * Fuzzy search tasks by title/description/ID
123
- * @task T4657
124
- * @epic T4654
125
- */
126
- export async function taskFind(projectRoot, query, limit) {
127
- try {
128
- const accessor = await getAccessor(projectRoot);
129
- const findResult = await coreFindTasks({
130
- query,
131
- limit: limit ?? 20,
132
- }, projectRoot, accessor);
133
- const results = findResult.results.map((r) => ({
134
- id: r.id,
135
- title: r.title,
136
- status: r.status,
137
- priority: r.priority,
138
- parentId: r.parentId,
139
- }));
140
- return { success: true, data: results };
141
- }
142
- catch {
143
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
144
- }
145
- }
146
- /**
147
- * Check if a task exists
148
- * @task T4657
149
- * @epic T4654
150
- */
151
- export async function taskExists(projectRoot, taskId) {
152
- try {
153
- const accessor = await getAccessor(projectRoot);
154
- const data = await accessor.loadTodoFile();
155
- const exists = data.tasks.some((t) => t.id === taskId);
156
- return { success: true, data: { exists, taskId } };
157
- }
158
- catch {
159
- return { success: true, data: { exists: false, taskId } };
160
- }
161
- }
162
- // ===== Mutate Operations =====
163
- /**
164
- * Create a new task
165
- */
166
- export async function taskCreate(projectRoot, params) {
167
- try {
168
- const accessor = await getAccessor(projectRoot);
169
- const result = await coreAddTask({
170
- title: params.title,
171
- description: params.description,
172
- parentId: params.parent || null,
173
- depends: params.depends,
174
- priority: params.priority || 'medium',
175
- labels: params.labels,
176
- type: params.type || undefined,
177
- }, projectRoot, accessor);
178
- if (result.duplicate) {
179
- return {
180
- success: true,
181
- data: taskToRecord(result.task),
182
- };
183
- }
184
- return { success: true, data: taskToRecord(result.task) };
185
- }
186
- catch (err) {
187
- const cleoErr = err;
188
- // Map CleoError exit codes to engine error codes
189
- if (cleoErr.code === 7 /* PARENT_NOT_FOUND */) {
190
- return { success: false, error: { code: 'E_PARENT_NOT_FOUND', message: cleoErr.message ?? 'Parent task not found' } };
191
- }
192
- if (cleoErr.code === 9 /* DEPTH_EXCEEDED */) {
193
- return { success: false, error: { code: 'E_DEPTH_EXCEEDED', message: cleoErr.message ?? 'Max hierarchy depth exceeded' } };
194
- }
195
- if (cleoErr.code === 10 /* SIBLING_LIMIT */) {
196
- return { success: false, error: { code: 'E_SIBLING_LIMIT', message: cleoErr.message ?? 'Max siblings exceeded' } };
197
- }
198
- if (cleoErr.code === 4 /* VALIDATION_ERROR */ || cleoErr.code === 3 /* INVALID_INPUT */) {
199
- return { success: false, error: { code: 'E_VALIDATION_FAILED', message: cleoErr.message ?? 'Validation failed' } };
200
- }
201
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: cleoErr.message ?? 'No valid todo.json found' } };
202
- }
203
- }
204
- /**
205
- * Update a task
206
- */
207
- export async function taskUpdate(projectRoot, taskId, updates) {
208
- try {
209
- const accessor = await getAccessor(projectRoot);
210
- const result = await coreUpdateTask({
211
- taskId,
212
- title: updates.title,
213
- description: updates.description,
214
- status: updates.status,
215
- priority: updates.priority,
216
- notes: updates.notes,
217
- labels: updates.labels,
218
- addLabels: updates.addLabels,
219
- removeLabels: updates.removeLabels,
220
- depends: updates.depends,
221
- addDepends: updates.addDepends,
222
- removeDepends: updates.removeDepends,
223
- acceptance: updates.acceptance,
224
- parentId: updates.parent,
225
- type: updates.type,
226
- size: updates.size,
227
- }, projectRoot, accessor);
228
- return { success: true, data: taskToRecord(result.task) };
229
- }
230
- catch (err) {
231
- const cleoErr = err;
232
- if (cleoErr.code === 5 /* NOT_FOUND */) {
233
- return { success: false, error: { code: 'E_NOT_FOUND', message: cleoErr.message ?? `Task '${taskId}' not found` } };
234
- }
235
- if (cleoErr.code === 4 /* VALIDATION_ERROR */ || cleoErr.code === 3 /* INVALID_INPUT */) {
236
- return { success: false, error: { code: 'E_VALIDATION_FAILED', message: cleoErr.message ?? 'Validation failed' } };
237
- }
238
- if (cleoErr.code === 50 /* NO_CHANGE */) {
239
- return { success: false, error: { code: 'E_NO_CHANGE', message: cleoErr.message ?? 'No changes specified' } };
240
- }
241
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: cleoErr.message ?? 'No valid todo.json found' } };
242
- }
243
- }
244
- /**
245
- * Complete a task (set status to done)
246
- */
247
- export async function taskComplete(projectRoot, taskId, notes) {
248
- return taskUpdate(projectRoot, taskId, {
249
- status: 'done',
250
- notes: notes || undefined,
251
- });
252
- }
253
- /**
254
- * Delete a task
255
- */
256
- export async function taskDelete(projectRoot, taskId, force) {
257
- try {
258
- const accessor = await getAccessor(projectRoot);
259
- await coreDeleteTask({
260
- taskId,
261
- force: force ?? false,
262
- cascade: force ?? false,
263
- }, projectRoot, accessor);
264
- return { success: true, data: { deleted: true, taskId } };
265
- }
266
- catch (err) {
267
- const cleoErr = err;
268
- if (cleoErr.code === 5 /* NOT_FOUND */) {
269
- return { success: false, error: { code: 'E_NOT_FOUND', message: cleoErr.message ?? `Task '${taskId}' not found` } };
270
- }
271
- if (cleoErr.code === 11 /* HAS_CHILDREN */) {
272
- return { success: false, error: { code: 'E_HAS_CHILDREN', message: cleoErr.message ?? `Task '${taskId}' has children` } };
273
- }
274
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: cleoErr.message ?? 'No valid todo.json found' } };
275
- }
276
- }
277
- /**
278
- * Archive completed tasks.
279
- * Moves done/cancelled tasks from todo.json to todo-archive.json.
280
- */
281
- export async function taskArchive(projectRoot, taskId, before) {
282
- try {
283
- const accessor = await getAccessor(projectRoot);
284
- const result = await coreArchiveTasks({
285
- taskIds: taskId ? [taskId] : undefined,
286
- before,
287
- }, projectRoot, accessor);
288
- return {
289
- success: true,
290
- data: { archived: result.archived.length, taskIds: result.archived },
291
- };
292
- }
293
- catch (err) {
294
- const cleoErr = err;
295
- if (cleoErr.code === 5 /* NOT_FOUND */) {
296
- return { success: false, error: { code: 'E_NOT_FOUND', message: cleoErr.message ?? `Task not found` } };
297
- }
298
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: cleoErr.message ?? 'No valid todo.json found' } };
299
- }
300
- }
301
- // ===== Scoring & Analysis Operations =====
302
- /**
303
- * Priority score weights for task scoring
304
- */
305
- const PRIORITY_SCORE = {
306
- critical: 100,
307
- high: 75,
308
- medium: 50,
309
- low: 25,
310
- };
311
- /**
312
- * Check if all dependencies of a task are satisfied (done/cancelled).
313
- */
314
- function depsReady(task, taskMap) {
315
- if (!task.depends || task.depends.length === 0)
316
- return true;
317
- return task.depends.every((depId) => {
318
- const dep = taskMap.get(depId);
319
- return dep && (dep.status === 'done' || dep.status === 'cancelled');
320
- });
321
- }
322
- /**
323
- * Suggest next task to work on based on priority, phase alignment, age, and dependency readiness.
324
- * @task T4657
325
- * @epic T4654
326
- */
327
- export async function taskNext(projectRoot, params) {
328
- let allTasks;
329
- try {
330
- const tasks = await loadAllTasksAsync(projectRoot);
331
- allTasks = tasksToRecords(tasks);
332
- }
333
- catch {
334
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
335
- }
336
- const taskMap = new Map(allTasks.map((t) => [t.id, t]));
337
- // Read current phase from config (not domain data - keep as direct JSON)
338
- const todoPath = getDataPath(projectRoot, 'todo.json');
339
- const todoMeta = readJsonFile(todoPath);
340
- const currentPhase = todoMeta?.project?.currentPhase;
341
- // Filter candidates: pending, deps ready
342
- const candidates = allTasks.filter((t) => t.status === 'pending' && depsReady(t, taskMap));
343
- if (candidates.length === 0) {
344
- return {
345
- success: true,
346
- data: {
347
- suggestions: [],
348
- totalCandidates: 0,
349
- },
350
- };
351
- }
352
- // Score each candidate
353
- const scored = candidates.map((task) => {
354
- const reasons = [];
355
- let score = 0;
356
- // Priority score
357
- score += PRIORITY_SCORE[task.priority] ?? 50;
358
- reasons.push(`priority: ${task.priority} (+${PRIORITY_SCORE[task.priority] ?? 50})`);
359
- // Phase alignment bonus
360
- if (currentPhase && task.phase === currentPhase) {
361
- score += 20;
362
- reasons.push(`phase alignment: ${currentPhase} (+20)`);
363
- }
364
- // Dependencies ready bonus
365
- if (depsReady(task, taskMap)) {
366
- score += 10;
367
- reasons.push('all dependencies satisfied (+10)');
368
- }
369
- // Age bonus (older tasks get slight priority)
370
- if (task.createdAt) {
371
- const ageMs = Date.now() - new Date(task.createdAt).getTime();
372
- const ageDays = ageMs / (1000 * 60 * 60 * 24);
373
- if (ageDays > 7) {
374
- const ageBonus = Math.min(15, Math.floor(ageDays / 7));
375
- score += ageBonus;
376
- reasons.push(`age: ${Math.floor(ageDays)} days (+${ageBonus})`);
377
- }
378
- }
379
- return { task, score, reasons };
380
- }).sort((a, b) => b.score - a.score);
381
- const count = Math.min(params?.count || 1, scored.length);
382
- const explain = params?.explain ?? false;
383
- const suggestions = scored.slice(0, count).map(({ task, score, reasons }) => ({
384
- id: task.id,
385
- title: task.title,
386
- priority: task.priority,
387
- phase: task.phase ?? null,
388
- score,
389
- ...(explain && { reasons }),
390
- }));
391
- return {
392
- success: true,
393
- data: {
394
- suggestions,
395
- totalCandidates: candidates.length,
396
- },
397
- };
398
- }
399
- // ===== Blocking Chain Operations =====
400
- /**
401
- * Build blocking chain for a task recursively.
402
- */
403
- function buildBlockingChain(task, taskMap, visited = new Set()) {
404
- const chain = [];
405
- if (visited.has(task.id))
406
- return chain;
407
- visited.add(task.id);
408
- if (task.depends) {
409
- for (const depId of task.depends) {
410
- const dep = taskMap.get(depId);
411
- if (dep && dep.status !== 'done' && dep.status !== 'cancelled') {
412
- chain.push(depId);
413
- chain.push(...buildBlockingChain(dep, taskMap, visited));
414
- }
415
- }
416
- }
417
- return chain;
418
- }
419
- /**
420
- * Show blocked tasks and analyze blocking chains.
421
- * @task T4657
422
- * @epic T4654
423
- */
424
- export async function taskBlockers(projectRoot, params) {
425
- let allTasks;
426
- try {
427
- const tasks = await loadAllTasksAsync(projectRoot);
428
- allTasks = tasksToRecords(tasks);
429
- }
430
- catch {
431
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
432
- }
433
- const taskMap = new Map(allTasks.map((t) => [t.id, t]));
434
- const analyze = params?.analyze ?? false;
435
- // Find tasks with status 'blocked'
436
- const blockedTasks = allTasks.filter((t) => t.status === 'blocked');
437
- // Find pending tasks with unsatisfied dependencies
438
- const depBlockedTasks = allTasks.filter((t) => t.status === 'pending' &&
439
- t.depends &&
440
- t.depends.length > 0 &&
441
- t.depends.some((depId) => {
442
- const dep = taskMap.get(depId);
443
- return dep && dep.status !== 'done' && dep.status !== 'cancelled';
444
- }));
445
- const blockerInfos = [
446
- ...blockedTasks.map((t) => ({
447
- id: t.id,
448
- title: t.title,
449
- status: t.status,
450
- depends: t.depends,
451
- blockingChain: analyze ? buildBlockingChain(t, taskMap) : [],
452
- })),
453
- ...depBlockedTasks
454
- .filter((t) => !blockedTasks.some((bt) => bt.id === t.id))
455
- .map((t) => ({
456
- id: t.id,
457
- title: t.title,
458
- status: t.status,
459
- depends: t.depends,
460
- blockingChain: analyze ? buildBlockingChain(t, taskMap) : [],
461
- })),
462
- ];
463
- // Find critical blockers (tasks that block the most others)
464
- const blockerCounts = new Map();
465
- for (const info of blockerInfos) {
466
- for (const depId of info.blockingChain) {
467
- blockerCounts.set(depId, (blockerCounts.get(depId) ?? 0) + 1);
468
- }
469
- }
470
- const criticalBlockers = [...blockerCounts.entries()]
471
- .sort((a, b) => b[1] - a[1])
472
- .slice(0, 5)
473
- .map(([id, count]) => {
474
- const task = taskMap.get(id);
475
- return { id, title: task?.title ?? 'Unknown', blocksCount: count };
476
- });
477
- return {
478
- success: true,
479
- data: {
480
- blockedTasks: blockerInfos,
481
- criticalBlockers,
482
- summary: blockerInfos.length === 0
483
- ? 'No blocked tasks found'
484
- : `${blockerInfos.length} blocked task(s)`,
485
- },
486
- };
487
- }
488
- /**
489
- * Build a tree node recursively from a task
490
- */
491
- function buildTreeNode(task, childrenMap) {
492
- const children = (childrenMap.get(task.id) ?? []).map((child) => buildTreeNode(child, childrenMap));
493
- return {
494
- id: task.id,
495
- title: task.title,
496
- status: task.status,
497
- type: task.type,
498
- children,
499
- };
500
- }
501
- /**
502
- * Build hierarchy tree. If taskId is provided, build subtree rooted at that task.
503
- * Otherwise, build full tree from all root tasks.
504
- * @task T4657
505
- * @epic T4654
506
- */
507
- export async function taskTree(projectRoot, taskId) {
508
- let allTasks;
509
- try {
510
- const tasks = await loadAllTasksAsync(projectRoot);
511
- allTasks = tasksToRecords(tasks);
512
- }
513
- catch {
514
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
515
- }
516
- if (taskId) {
517
- const task = allTasks.find((t) => t.id === taskId);
518
- if (!task) {
519
- return {
520
- success: false,
521
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
522
- };
523
- }
524
- }
525
- // Build children lookup
526
- const childrenMap = new Map();
527
- for (const task of allTasks) {
528
- const parentKey = task.parentId ?? '__root__';
529
- if (!childrenMap.has(parentKey)) {
530
- childrenMap.set(parentKey, []);
531
- }
532
- childrenMap.get(parentKey).push(task);
533
- }
534
- let roots;
535
- if (taskId) {
536
- const rootTask = allTasks.find((t) => t.id === taskId);
537
- roots = [rootTask];
538
- }
539
- else {
540
- roots = childrenMap.get('__root__') ?? [];
541
- }
542
- const tree = roots.map((root) => buildTreeNode(root, childrenMap));
543
- // Count total nodes
544
- function countNodes(nodes) {
545
- let count = nodes.length;
546
- for (const node of nodes) {
547
- count += countNodes(node.children);
548
- }
549
- return count;
550
- }
551
- return {
552
- success: true,
553
- data: { tree, totalNodes: countNodes(tree) },
554
- };
555
- }
556
- // ===== Dependency Operations =====
557
- /**
558
- * Show dependencies for a task - both what it depends on and what depends on it.
559
- * @task T4657
560
- * @epic T4654
561
- */
562
- export async function taskDeps(projectRoot, taskId) {
563
- let allTasks;
564
- try {
565
- const tasks = await loadAllTasksAsync(projectRoot);
566
- allTasks = tasksToRecords(tasks);
567
- }
568
- catch {
569
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
570
- }
571
- const task = allTasks.find((t) => t.id === taskId);
572
- if (!task) {
573
- return {
574
- success: false,
575
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
576
- };
577
- }
578
- const taskMap = new Map(allTasks.map((t) => [t.id, t]));
579
- const completedIds = new Set(allTasks.filter((t) => t.status === 'done' || t.status === 'cancelled').map((t) => t.id));
580
- // What this task depends on
581
- const dependsOn = (task.depends ?? [])
582
- .map((depId) => {
583
- const dep = taskMap.get(depId);
584
- return dep ? { id: dep.id, title: dep.title, status: dep.status } : null;
585
- })
586
- .filter((d) => d !== null);
587
- // What depends on this task
588
- const dependedOnBy = allTasks
589
- .filter((t) => t.depends?.includes(taskId))
590
- .map((t) => ({ id: t.id, title: t.title, status: t.status }));
591
- // Unresolved deps
592
- const unresolvedDeps = (task.depends ?? []).filter((depId) => !completedIds.has(depId));
593
- return {
594
- success: true,
595
- data: {
596
- taskId,
597
- dependsOn,
598
- dependedOnBy,
599
- unresolvedDeps,
600
- allDepsReady: unresolvedDeps.length === 0,
601
- },
602
- };
603
- }
604
- // ===== Relation Operations =====
605
- /**
606
- * Show task relations (existing relates entries).
607
- * @task T4657
608
- * @epic T4654
609
- */
610
- export async function taskRelates(projectRoot, taskId) {
611
- let allTasks;
612
- try {
613
- const tasks = await loadAllTasksAsync(projectRoot);
614
- allTasks = tasksToRecords(tasks);
615
- }
616
- catch {
617
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
618
- }
619
- const task = allTasks.find((t) => t.id === taskId);
620
- if (!task) {
621
- return {
622
- success: false,
623
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
624
- };
625
- }
626
- const relations = task.relates ?? [];
627
- return {
628
- success: true,
629
- data: {
630
- taskId,
631
- relations,
632
- count: relations.length,
633
- },
634
- };
635
- }
636
- /**
637
- * Add a relation between two tasks.
638
- */
639
- export async function taskRelatesAdd(projectRoot, taskId, relatedId, type, reason) {
640
- try {
641
- const accessor = await getAccessor(projectRoot);
642
- const current = await accessor.loadTodoFile();
643
- if (!current || !current.tasks) {
644
- return {
645
- success: false,
646
- error: { code: 'E_NOT_INITIALIZED', message: 'No valid todo.json found' },
647
- };
648
- }
649
- const fromTask = current.tasks.find((t) => t.id === taskId);
650
- if (!fromTask) {
651
- return {
652
- success: false,
653
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
654
- };
655
- }
656
- const toTask = current.tasks.find((t) => t.id === relatedId);
657
- if (!toTask) {
658
- return {
659
- success: false,
660
- error: { code: 'E_NOT_FOUND', message: `Task '${relatedId}' not found` },
661
- };
662
- }
663
- if (!fromTask.relates) {
664
- fromTask.relates = [];
665
- }
666
- fromTask.relates.push({
667
- taskId: relatedId,
668
- type,
669
- reason: reason || undefined,
670
- });
671
- fromTask.updatedAt = new Date().toISOString();
672
- await accessor.saveTodoFile(current);
673
- return {
674
- success: true,
675
- data: { from: taskId, to: relatedId, type, added: true },
676
- };
677
- }
678
- catch {
679
- return {
680
- success: false,
681
- error: { code: 'E_NOT_INITIALIZED', message: 'Failed to update task relations' },
682
- };
683
- }
684
- }
685
- // ===== Analysis Operations =====
686
- /**
687
- * Analyze a task for description quality, missing fields, and dependency health.
688
- * @task T4657
689
- * @epic T4654
690
- */
691
- export async function taskAnalyze(projectRoot, taskId) {
692
- let allTasks;
693
- try {
694
- const loaded = await loadAllTasksAsync(projectRoot);
695
- allTasks = tasksToRecords(loaded);
696
- }
697
- catch {
698
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
699
- }
700
- const tasks = taskId
701
- ? allTasks.filter((t) => t.id === taskId || t.parentId === taskId)
702
- : allTasks;
703
- // Build dependency graph: who blocks whom
704
- const blocksMap = {};
705
- for (const task of tasks) {
706
- if (task.depends) {
707
- for (const dep of task.depends) {
708
- if (!blocksMap[dep])
709
- blocksMap[dep] = [];
710
- blocksMap[dep].push(task.id);
711
- }
712
- }
713
- }
714
- // Calculate leverage for each task
715
- const leverageMap = {};
716
- for (const task of tasks) {
717
- leverageMap[task.id] = (blocksMap[task.id] ?? []).length;
718
- }
719
- // Actionable tasks (pending or active)
720
- const actionable = tasks.filter((t) => t.status === 'pending' || t.status === 'active');
721
- const blocked = tasks.filter((t) => t.status === 'blocked');
722
- // Bottlenecks: tasks blocking the most others
723
- const bottlenecks = tasks
724
- .filter((t) => (blocksMap[t.id]?.length ?? 0) > 0 && t.status !== 'done')
725
- .map((t) => ({ id: t.id, title: t.title, blocksCount: blocksMap[t.id].length }))
726
- .sort((a, b) => b.blocksCount - a.blocksCount)
727
- .slice(0, 5);
728
- // Score and tier actionable tasks
729
- const scored = actionable.map((t) => ({
730
- id: t.id,
731
- title: t.title,
732
- leverage: leverageMap[t.id] ?? 0,
733
- priority: t.priority,
734
- }));
735
- scored.sort((a, b) => {
736
- const priorityWeight = { critical: 100, high: 50, medium: 20, low: 5 };
737
- const aScore = (priorityWeight[a.priority ?? 'medium'] ?? 20) + a.leverage * 10;
738
- const bScore = (priorityWeight[b.priority ?? 'medium'] ?? 20) + b.leverage * 10;
739
- return bScore - aScore;
740
- });
741
- const critical = scored.filter((t) => t.priority === 'critical');
742
- const high = scored.filter((t) => t.priority === 'high');
743
- const normal = scored.filter((t) => t.priority !== 'critical' && t.priority !== 'high');
744
- const recommended = scored.length > 0
745
- ? {
746
- id: scored[0].id,
747
- title: scored[0].title,
748
- leverage: scored[0].leverage,
749
- reason: 'Highest combined priority and leverage score',
750
- }
751
- : null;
752
- const totalLeverage = Object.values(leverageMap).reduce((s, v) => s + v, 0);
753
- const avgLeverage = tasks.length > 0
754
- ? Math.round((totalLeverage / tasks.length) * 100) / 100
755
- : 0;
756
- return {
757
- success: true,
758
- data: {
759
- recommended,
760
- bottlenecks,
761
- tiers: {
762
- critical: critical.map(({ id, title, leverage }) => ({ id, title, leverage })),
763
- high: high.map(({ id, title, leverage }) => ({ id, title, leverage })),
764
- normal: normal.slice(0, 10).map(({ id, title, leverage }) => ({ id, title, leverage })),
765
- },
766
- metrics: {
767
- totalTasks: tasks.length,
768
- actionable: actionable.length,
769
- blocked: blocked.length,
770
- avgLeverage,
771
- },
772
- },
773
- };
774
- }
775
- // ===== Status Restoration Operations =====
776
- /**
777
- * Restore a cancelled task back to pending.
778
- */
779
- export async function taskRestore(projectRoot, taskId, params) {
780
- try {
781
- const accessor = await getAccessor(projectRoot);
782
- const current = await accessor.loadTodoFile();
783
- if (!current || !current.tasks) {
784
- return {
785
- success: false,
786
- error: { code: 'E_NOT_INITIALIZED', message: 'No valid todo.json found' },
787
- };
788
- }
789
- const task = current.tasks.find((t) => t.id === taskId);
790
- if (!task) {
791
- return {
792
- success: false,
793
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
794
- };
795
- }
796
- if (task.status !== 'cancelled') {
797
- return {
798
- success: false,
799
- error: {
800
- code: 'E_INVALID_STATUS',
801
- message: `Task '${taskId}' is not cancelled (status: ${task.status}). Only cancelled tasks can be restored.`,
802
- },
803
- };
804
- }
805
- // Collect tasks to restore (cast to TaskRecord for mutation)
806
- const tasksToRestore = [task];
807
- if (params?.cascade) {
808
- const findCancelledChildren = (parentId) => {
809
- const children = current.tasks.filter((t) => t.parentId === parentId && t.status === 'cancelled');
810
- for (const child of children) {
811
- tasksToRestore.push(child);
812
- findCancelledChildren(child.id);
813
- }
814
- };
815
- findCancelledChildren(taskId);
816
- }
817
- const now = new Date().toISOString();
818
- const restored = [];
819
- for (const t of tasksToRestore) {
820
- t.status = 'pending';
821
- t.cancelledAt = null;
822
- t.cancellationReason = undefined;
823
- t.updatedAt = now;
824
- if (!t.notes)
825
- t.notes = [];
826
- t.notes.push(`[${now}] Restored from cancelled${params?.notes ? ': ' + params.notes : ''}`);
827
- restored.push(t.id);
828
- }
829
- await accessor.saveTodoFile(current);
830
- return {
831
- success: true,
832
- data: { task: taskId, restored, count: restored.length },
833
- };
834
- }
835
- catch {
836
- return {
837
- success: false,
838
- error: { code: 'E_NOT_INITIALIZED', message: 'Failed to restore task' },
839
- };
840
- }
841
- }
842
- /**
843
- * Move an archived task back to todo.json with status 'done' (or specified status).
844
- */
845
- export async function taskUnarchive(projectRoot, taskId, params) {
846
- try {
847
- const accessor = await getAccessor(projectRoot);
848
- const todo = await accessor.loadTodoFile();
849
- if (!todo || !todo.tasks) {
850
- return {
851
- success: false,
852
- error: { code: 'E_NOT_INITIALIZED', message: 'No valid todo.json found' },
853
- };
854
- }
855
- const archive = await accessor.loadArchive();
856
- if (!archive || !archive.archivedTasks) {
857
- return {
858
- success: false,
859
- error: { code: 'E_NOT_FOUND', message: 'No archive file found' },
860
- };
861
- }
862
- const taskIndex = archive.archivedTasks.findIndex((t) => t.id === taskId);
863
- if (taskIndex === -1) {
864
- return {
865
- success: false,
866
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found in archive` },
867
- };
868
- }
869
- // Check for ID collision
870
- if (todo.tasks.some((t) => t.id === taskId)) {
871
- return {
872
- success: false,
873
- error: { code: 'E_ID_COLLISION', message: `Task '${taskId}' already exists in todo.json` },
874
- };
875
- }
876
- const task = archive.archivedTasks[taskIndex];
877
- // Remove archive metadata
878
- delete task._archive;
879
- // Set status
880
- if (!params?.preserveStatus) {
881
- const targetStatus = params?.status || 'pending';
882
- task.status = targetStatus;
883
- if (targetStatus !== 'done') {
884
- task.completedAt = null;
885
- }
886
- }
887
- task.updatedAt = new Date().toISOString();
888
- // Add to todo.json
889
- todo.tasks.push(task);
890
- // Remove from archive
891
- archive.archivedTasks.splice(taskIndex, 1);
892
- // Save both files via accessor
893
- await accessor.saveTodoFile(todo);
894
- await accessor.saveArchive(archive);
895
- return {
896
- success: true,
897
- data: {
898
- task: taskId,
899
- unarchived: true,
900
- title: task.title,
901
- status: task.status,
902
- },
903
- };
904
- }
905
- catch {
906
- return {
907
- success: false,
908
- error: { code: 'E_NOT_INITIALIZED', message: 'Failed to unarchive task' },
909
- };
910
- }
911
- }
912
- // ===== Hierarchy Mutation Operations =====
913
- /**
914
- * Change task position within its sibling group.
915
- */
916
- export async function taskReorder(projectRoot, taskId, position) {
917
- try {
918
- const accessor = await getAccessor(projectRoot);
919
- const current = await accessor.loadTodoFile();
920
- if (!current || !current.tasks) {
921
- return {
922
- success: false,
923
- error: { code: 'E_NOT_INITIALIZED', message: 'No valid todo.json found' },
924
- };
925
- }
926
- const task = current.tasks.find((t) => t.id === taskId);
927
- if (!task) {
928
- return {
929
- success: false,
930
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
931
- };
932
- }
933
- // Get all siblings (same parent, including self), sorted by position
934
- const allSiblings = current.tasks
935
- .filter((t) => t.parentId === task.parentId)
936
- .sort((a, b) => (a.position ?? 0) - (b.position ?? 0));
937
- const currentIndex = allSiblings.findIndex((t) => t.id === taskId);
938
- const newIndex = Math.max(0, Math.min(position - 1, allSiblings.length - 1));
939
- // Remove from current position and insert at new position
940
- allSiblings.splice(currentIndex, 1);
941
- allSiblings.splice(newIndex, 0, task);
942
- // Update positions on the actual tasks in current.tasks
943
- const now = new Date().toISOString();
944
- for (let i = 0; i < allSiblings.length; i++) {
945
- const sibling = current.tasks.find((t) => t.id === allSiblings[i].id);
946
- if (sibling) {
947
- sibling.position = i + 1;
948
- sibling.positionVersion = (sibling.positionVersion ?? 0) + 1;
949
- sibling.updatedAt = now;
950
- }
951
- }
952
- await accessor.saveTodoFile(current);
953
- return {
954
- success: true,
955
- data: {
956
- task: taskId,
957
- reordered: true,
958
- newPosition: newIndex + 1,
959
- totalSiblings: allSiblings.length,
960
- },
961
- };
962
- }
963
- catch {
964
- return {
965
- success: false,
966
- error: { code: 'E_NOT_INITIALIZED', message: 'Failed to reorder task' },
967
- };
968
- }
969
- }
970
- /**
971
- * Move task under a different parent.
972
- * Pass null or empty string for newParentId to make it a root task.
973
- */
974
- export async function taskReparent(projectRoot, taskId, newParentId) {
975
- try {
976
- const accessor = await getAccessor(projectRoot);
977
- const current = await accessor.loadTodoFile();
978
- if (!current || !current.tasks) {
979
- return {
980
- success: false,
981
- error: { code: 'E_NOT_INITIALIZED', message: 'No valid todo.json found' },
982
- };
983
- }
984
- const taskMap = new Map(current.tasks.map((t) => [t.id, t]));
985
- const task = taskMap.get(taskId);
986
- if (!task) {
987
- return {
988
- success: false,
989
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
990
- };
991
- }
992
- const effectiveParentId = newParentId || null;
993
- // Promote to root
994
- if (!effectiveParentId) {
995
- const oldParent = task.parentId ?? null;
996
- task.parentId = null;
997
- if (task.type === 'subtask')
998
- task.type = 'task';
999
- task.updatedAt = new Date().toISOString();
1000
- await accessor.saveTodoFile(current);
1001
- return {
1002
- success: true,
1003
- data: {
1004
- task: taskId,
1005
- reparented: true,
1006
- oldParent,
1007
- newParent: null,
1008
- newType: task.type,
1009
- },
1010
- };
1011
- }
1012
- const newParent = taskMap.get(effectiveParentId);
1013
- if (!newParent) {
1014
- return {
1015
- success: false,
1016
- error: { code: 'E_PARENT_NOT_FOUND', message: `Parent task '${effectiveParentId}' not found` },
1017
- };
1018
- }
1019
- // Cannot parent under a subtask
1020
- if (newParent.type === 'subtask') {
1021
- return {
1022
- success: false,
1023
- error: { code: 'E_INVALID_PARENT_TYPE', message: `Cannot parent under subtask '${effectiveParentId}'` },
1024
- };
1025
- }
1026
- // Check circular reference: walk newParent's ancestors to ensure taskId is not among them
1027
- let ancestor = newParent;
1028
- while (ancestor) {
1029
- if (ancestor.id === taskId) {
1030
- return {
1031
- success: false,
1032
- error: { code: 'E_CIRCULAR_REFERENCE', message: `Moving '${taskId}' under '${effectiveParentId}' would create circular reference` },
1033
- };
1034
- }
1035
- if (!ancestor.parentId)
1036
- break;
1037
- ancestor = taskMap.get(ancestor.parentId);
1038
- if (!ancestor)
1039
- break;
1040
- }
1041
- // Check depth limit (max 3: epic -> task -> subtask)
1042
- let parentDepth = 0;
1043
- let cur = newParent;
1044
- while (cur?.parentId) {
1045
- parentDepth++;
1046
- cur = taskMap.get(cur.parentId);
1047
- if (!cur || parentDepth > 10)
1048
- break;
1049
- }
1050
- const reparentLimits = getHierarchyLimits(projectRoot);
1051
- if (parentDepth + 1 >= reparentLimits.maxDepth) {
1052
- return {
1053
- success: false,
1054
- error: { code: 'E_DEPTH_EXCEEDED', message: `Move would exceed max depth of ${reparentLimits.maxDepth}` },
1055
- };
1056
- }
1057
- // Check sibling limit
1058
- const siblingCount = current.tasks.filter((t) => t.parentId === effectiveParentId && t.id !== taskId).length;
1059
- if (siblingCount >= reparentLimits.maxSiblings) {
1060
- return {
1061
- success: false,
1062
- error: { code: 'E_SIBLING_LIMIT', message: `Cannot add child to ${effectiveParentId}: max siblings (${reparentLimits.maxSiblings}) exceeded` },
1063
- };
1064
- }
1065
- const oldParent = task.parentId ?? null;
1066
- task.parentId = effectiveParentId;
1067
- // Update type based on new depth
1068
- const newDepth = parentDepth + 1;
1069
- if (newDepth === 1)
1070
- task.type = 'task';
1071
- else if (newDepth >= 2)
1072
- task.type = 'subtask';
1073
- task.updatedAt = new Date().toISOString();
1074
- await accessor.saveTodoFile(current);
1075
- return {
1076
- success: true,
1077
- data: {
1078
- task: taskId,
1079
- reparented: true,
1080
- oldParent,
1081
- newParent: effectiveParentId,
1082
- newType: task.type,
1083
- },
1084
- };
1085
- }
1086
- catch {
1087
- return {
1088
- success: false,
1089
- error: { code: 'E_NOT_INITIALIZED', message: 'Failed to reparent task' },
1090
- };
1091
- }
1092
- }
1093
- /**
1094
- * Promote a subtask to task or task to root (remove parent).
1095
- */
1096
- export async function taskPromote(projectRoot, taskId) {
1097
- try {
1098
- const accessor = await getAccessor(projectRoot);
1099
- const current = await accessor.loadTodoFile();
1100
- if (!current || !current.tasks) {
1101
- return {
1102
- success: false,
1103
- error: { code: 'E_NOT_INITIALIZED', message: 'No valid todo.json found' },
1104
- };
1105
- }
1106
- const task = current.tasks.find((t) => t.id === taskId);
1107
- if (!task) {
1108
- return {
1109
- success: false,
1110
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
1111
- };
1112
- }
1113
- if (!task.parentId) {
1114
- return {
1115
- success: true,
1116
- data: { task: taskId, promoted: false, previousParent: null, typeChanged: false },
1117
- };
1118
- }
1119
- const oldParent = task.parentId;
1120
- task.parentId = null;
1121
- task.updatedAt = new Date().toISOString();
1122
- let typeChanged = false;
1123
- if (task.type === 'subtask') {
1124
- task.type = 'task';
1125
- typeChanged = true;
1126
- }
1127
- await accessor.saveTodoFile(current);
1128
- return {
1129
- success: true,
1130
- data: { task: taskId, promoted: true, previousParent: oldParent, typeChanged },
1131
- };
1132
- }
1133
- catch {
1134
- return {
1135
- success: false,
1136
- error: { code: 'E_NOT_INITIALIZED', message: 'Failed to promote task' },
1137
- };
1138
- }
1139
- }
1140
- /**
1141
- * Reopen a completed task (set status back to pending).
1142
- */
1143
- export async function taskReopen(projectRoot, taskId, params) {
1144
- try {
1145
- const accessor = await getAccessor(projectRoot);
1146
- const current = await accessor.loadTodoFile();
1147
- if (!current || !current.tasks) {
1148
- return {
1149
- success: false,
1150
- error: { code: 'E_NOT_INITIALIZED', message: 'No valid todo.json found' },
1151
- };
1152
- }
1153
- const task = current.tasks.find((t) => t.id === taskId);
1154
- if (!task) {
1155
- return {
1156
- success: false,
1157
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
1158
- };
1159
- }
1160
- if (task.status !== 'done') {
1161
- return {
1162
- success: false,
1163
- error: {
1164
- code: 'E_INVALID_STATUS',
1165
- message: `Task '${taskId}' is not completed (status: ${task.status}). Only done tasks can be reopened.`,
1166
- },
1167
- };
1168
- }
1169
- const targetStatus = params?.status || 'pending';
1170
- if (targetStatus !== 'pending' && targetStatus !== 'active') {
1171
- return {
1172
- success: false,
1173
- error: {
1174
- code: 'E_INVALID_INPUT',
1175
- message: `Invalid target status: ${targetStatus}. Must be 'pending' or 'active'.`,
1176
- },
1177
- };
1178
- }
1179
- const previousStatus = task.status;
1180
- task.status = targetStatus;
1181
- task.completedAt = null;
1182
- task.updatedAt = new Date().toISOString();
1183
- // Add note about reopening
1184
- if (!task.notes)
1185
- task.notes = [];
1186
- const reason = params?.reason;
1187
- task.notes.push(`[${task.updatedAt}] Reopened from ${previousStatus}${reason ? ': ' + reason : ''}`);
1188
- await accessor.saveTodoFile(current);
1189
- return {
1190
- success: true,
1191
- data: {
1192
- task: taskId,
1193
- reopened: true,
1194
- previousStatus,
1195
- newStatus: targetStatus,
1196
- },
1197
- };
1198
- }
1199
- catch {
1200
- return {
1201
- success: false,
1202
- error: { code: 'E_NOT_INITIALIZED', message: 'Failed to reopen task' },
1203
- };
1204
- }
1205
- }
1206
- /**
1207
- * Walk the dependency chain recursively and return the maximum depth.
1208
- */
1209
- function measureDependencyDepth(taskId, taskMap, visited = new Set()) {
1210
- if (visited.has(taskId))
1211
- return 0;
1212
- visited.add(taskId);
1213
- const task = taskMap.get(taskId);
1214
- if (!task || !task.depends || task.depends.length === 0)
1215
- return 0;
1216
- let maxDepth = 0;
1217
- for (const depId of task.depends) {
1218
- const depth = 1 + measureDependencyDepth(depId, taskMap, visited);
1219
- if (depth > maxDepth)
1220
- maxDepth = depth;
1221
- }
1222
- return maxDepth;
1223
- }
1224
- /**
1225
- * Deterministic complexity scoring from task metadata.
1226
- * NOT a time estimate. Produces a size classification (small/medium/large)
1227
- * based on description length, acceptance criteria count, dependency depth,
1228
- * subtask count, and file reference count.
1229
- */
1230
- /**
1231
- * @task T4657
1232
- * @epic T4654
1233
- */
1234
- export async function taskComplexityEstimate(projectRoot, params) {
1235
- let allTasks;
1236
- try {
1237
- const loaded = await loadAllTasksAsync(projectRoot);
1238
- allTasks = tasksToRecords(loaded);
1239
- }
1240
- catch {
1241
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
1242
- }
1243
- const task = allTasks.find((t) => t.id === params.taskId);
1244
- if (!task) {
1245
- return {
1246
- success: false,
1247
- error: { code: 'E_NOT_FOUND', message: `Task '${params.taskId}' not found` },
1248
- };
1249
- }
1250
- const factors = [];
1251
- let score = 0;
1252
- // Factor 1: Description length
1253
- const descLen = (task.description || '').length;
1254
- let descScore;
1255
- let descLabel;
1256
- if (descLen < 100) {
1257
- descScore = 1;
1258
- descLabel = 'short';
1259
- }
1260
- else if (descLen < 500) {
1261
- descScore = 2;
1262
- descLabel = 'medium';
1263
- }
1264
- else {
1265
- descScore = 3;
1266
- descLabel = 'long';
1267
- }
1268
- score += descScore;
1269
- factors.push({ name: 'descriptionLength', value: descScore, detail: `${descLabel} (${descLen} chars)` });
1270
- // Factor 2: Acceptance criteria count
1271
- const acceptanceCount = task.acceptance?.length ?? 0;
1272
- const acceptanceScore = Math.min(acceptanceCount, 3);
1273
- score += acceptanceScore;
1274
- factors.push({ name: 'acceptanceCriteria', value: acceptanceScore, detail: `${acceptanceCount} criteria` });
1275
- // Factor 3: Dependency depth (recursive walk)
1276
- const taskMap = new Map(allTasks.map((t) => [t.id, t]));
1277
- const dependencyDepth = measureDependencyDepth(params.taskId, taskMap);
1278
- const depthScore = Math.min(dependencyDepth, 3);
1279
- score += depthScore;
1280
- factors.push({ name: 'dependencyDepth', value: depthScore, detail: `depth ${dependencyDepth}` });
1281
- // Factor 4: Subtask count (direct children)
1282
- const subtaskCount = allTasks.filter((t) => t.parentId === params.taskId).length;
1283
- const subtaskScore = Math.min(subtaskCount, 3);
1284
- score += subtaskScore;
1285
- factors.push({ name: 'subtaskCount', value: subtaskScore, detail: `${subtaskCount} subtasks` });
1286
- // Factor 5: File reference count
1287
- const fileCount = task.files?.length ?? 0;
1288
- const fileScore = Math.min(fileCount, 3);
1289
- score += fileScore;
1290
- factors.push({ name: 'fileReferences', value: fileScore, detail: `${fileCount} files` });
1291
- // Size classification
1292
- let size;
1293
- if (score <= 3) {
1294
- size = 'small';
1295
- }
1296
- else if (score <= 7) {
1297
- size = 'medium';
1298
- }
1299
- else {
1300
- size = 'large';
1301
- }
1302
- return {
1303
- success: true,
1304
- data: {
1305
- size,
1306
- score,
1307
- factors,
1308
- dependencyDepth,
1309
- subtaskCount,
1310
- fileCount,
1311
- },
1312
- };
1313
- }
1314
- // ===== Dependency Query Operations =====
1315
- /**
1316
- * List dependencies for a task in a given direction.
1317
- * 'upstream' = what this task depends on
1318
- * 'downstream' = what depends on this task
1319
- * 'both' = both directions
1320
- */
1321
- /**
1322
- * @task T4657
1323
- * @epic T4654
1324
- */
1325
- export async function taskDepends(projectRoot, taskId, direction = 'both') {
1326
- let allTasks;
1327
- try {
1328
- const loaded = await loadAllTasksAsync(projectRoot);
1329
- allTasks = tasksToRecords(loaded);
1330
- }
1331
- catch {
1332
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
1333
- }
1334
- const task = allTasks.find((t) => t.id === taskId);
1335
- if (!task) {
1336
- return {
1337
- success: false,
1338
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
1339
- };
1340
- }
1341
- const taskMap = new Map(allTasks.map((t) => [t.id, t]));
1342
- // Upstream: tasks this task depends on
1343
- const upstream = [];
1344
- if (direction === 'upstream' || direction === 'both') {
1345
- for (const depId of task.depends ?? []) {
1346
- const dep = taskMap.get(depId);
1347
- if (dep) {
1348
- upstream.push({ id: dep.id, title: dep.title, status: dep.status });
1349
- }
1350
- }
1351
- }
1352
- // Downstream: tasks that depend on this task
1353
- const downstream = [];
1354
- if (direction === 'downstream' || direction === 'both') {
1355
- for (const t of allTasks) {
1356
- if (t.depends?.includes(taskId)) {
1357
- downstream.push({ id: t.id, title: t.title, status: t.status });
1358
- }
1359
- }
1360
- }
1361
- return {
1362
- success: true,
1363
- data: { taskId, direction, upstream, downstream },
1364
- };
1365
- }
1366
- // ===== Statistics Operations =====
1367
- /**
1368
- * Compute task statistics, optionally scoped to an epic.
1369
- */
1370
- /**
1371
- * @task T4657
1372
- * @epic T4654
1373
- */
1374
- export async function taskStats(projectRoot, epicId) {
1375
- let allTasks;
1376
- try {
1377
- const loaded = await loadAllTasksAsync(projectRoot);
1378
- allTasks = tasksToRecords(loaded);
1379
- }
1380
- catch {
1381
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
1382
- }
1383
- let tasks = allTasks;
1384
- // Scope to epic if provided
1385
- if (epicId) {
1386
- const epicIds = new Set();
1387
- epicIds.add(epicId);
1388
- // Collect all descendants
1389
- const collectChildren = (parentId) => {
1390
- for (const t of allTasks) {
1391
- if (t.parentId === parentId && !epicIds.has(t.id)) {
1392
- epicIds.add(t.id);
1393
- collectChildren(t.id);
1394
- }
1395
- }
1396
- };
1397
- collectChildren(epicId);
1398
- tasks = allTasks.filter((t) => epicIds.has(t.id));
1399
- }
1400
- const byStatus = {};
1401
- const byPriority = {};
1402
- const byType = {};
1403
- for (const task of tasks) {
1404
- byStatus[task.status] = (byStatus[task.status] ?? 0) + 1;
1405
- byPriority[task.priority] = (byPriority[task.priority] ?? 0) + 1;
1406
- const taskType = task.type ?? 'task';
1407
- byType[taskType] = (byType[taskType] ?? 0) + 1;
1408
- }
1409
- return {
1410
- success: true,
1411
- data: {
1412
- total: tasks.length,
1413
- pending: byStatus['pending'] ?? 0,
1414
- active: byStatus['active'] ?? 0,
1415
- blocked: byStatus['blocked'] ?? 0,
1416
- done: byStatus['done'] ?? 0,
1417
- cancelled: byStatus['cancelled'] ?? 0,
1418
- byPriority,
1419
- byType,
1420
- },
1421
- };
1422
- }
1423
- // ===== Export Operations =====
1424
- /**
1425
- * Export tasks as JSON or CSV.
1426
- */
1427
- /**
1428
- * @task T4657
1429
- * @epic T4654
1430
- */
1431
- export async function taskExport(projectRoot, params) {
1432
- let allTasks;
1433
- try {
1434
- const loaded = await loadAllTasksAsync(projectRoot);
1435
- allTasks = tasksToRecords(loaded);
1436
- }
1437
- catch {
1438
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
1439
- }
1440
- let tasks = allTasks;
1441
- if (params?.status) {
1442
- tasks = tasks.filter((t) => t.status === params.status);
1443
- }
1444
- if (params?.parent) {
1445
- // Collect parent + all descendants
1446
- const parentIds = new Set();
1447
- parentIds.add(params.parent);
1448
- const collectChildren = (parentId) => {
1449
- for (const t of allTasks) {
1450
- if (t.parentId === parentId && !parentIds.has(t.id)) {
1451
- parentIds.add(t.id);
1452
- collectChildren(t.id);
1453
- }
1454
- }
1455
- };
1456
- collectChildren(params.parent);
1457
- tasks = tasks.filter((t) => parentIds.has(t.id));
1458
- }
1459
- if (params?.format === 'csv') {
1460
- // Build CSV output
1461
- const headers = ['id', 'title', 'status', 'priority', 'type', 'parentId', 'createdAt'];
1462
- const rows = tasks.map((t) => [
1463
- t.id,
1464
- `"${(t.title || '').replace(/"/g, '""')}"`,
1465
- t.status,
1466
- t.priority,
1467
- t.type ?? 'task',
1468
- t.parentId ?? '',
1469
- t.createdAt,
1470
- ].join(','));
1471
- const csv = [headers.join(','), ...rows].join('\n');
1472
- return { success: true, data: { format: 'csv', content: csv, taskCount: tasks.length } };
1473
- }
1474
- // Default: JSON format
1475
- return {
1476
- success: true,
1477
- data: {
1478
- format: 'json',
1479
- tasks,
1480
- taskCount: tasks.length,
1481
- },
1482
- };
1483
- }
1484
- // ===== History Operations =====
1485
- /**
1486
- * Get task history from the log file.
1487
- */
1488
- /**
1489
- * @task T4657
1490
- * @epic T4654
1491
- */
1492
- export async function taskHistory(projectRoot, taskId, limit) {
1493
- const logPath = getDataPath(projectRoot, 'todo-log.jsonl');
1494
- const entries = readLogFileEntries(logPath);
1495
- // Filter entries that reference this task
1496
- const taskEntries = entries.filter((entry) => {
1497
- // Check multiple fields where task ID might appear
1498
- if (entry.taskId === taskId)
1499
- return true;
1500
- if (entry.id === taskId)
1501
- return true;
1502
- if (typeof entry.details === 'string' && entry.details.includes(taskId))
1503
- return true;
1504
- if (typeof entry.message === 'string' && entry.message.includes(taskId))
1505
- return true;
1506
- return false;
1507
- });
1508
- // Sort by timestamp descending (most recent first)
1509
- taskEntries.sort((a, b) => {
1510
- const timeA = String(a.timestamp ?? a.date ?? '');
1511
- const timeB = String(b.timestamp ?? b.date ?? '');
1512
- return timeB.localeCompare(timeA);
1513
- });
1514
- const result = limit && limit > 0 ? taskEntries.slice(0, limit) : taskEntries;
1515
- return { success: true, data: result };
1516
- }
1517
- // ===== Lint Operations =====
1518
- /**
1519
- * Lint tasks for common issues.
1520
- */
1521
- /**
1522
- * @task T4657
1523
- * @epic T4654
1524
- */
1525
- export async function taskLint(projectRoot, taskId) {
1526
- let allTasks;
1527
- try {
1528
- const loaded = await loadAllTasksAsync(projectRoot);
1529
- allTasks = tasksToRecords(loaded);
1530
- }
1531
- catch {
1532
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
1533
- }
1534
- const tasks = taskId
1535
- ? allTasks.filter((t) => t.id === taskId)
1536
- : allTasks;
1537
- if (taskId && tasks.length === 0) {
1538
- return {
1539
- success: false,
1540
- error: { code: 'E_NOT_FOUND', message: `Task '${taskId}' not found` },
1541
- };
1542
- }
1543
- const issues = [];
1544
- const allDescriptions = new Set();
1545
- const allIds = new Set();
1546
- for (const task of allTasks) {
1547
- // Check ID uniqueness
1548
- if (allIds.has(task.id)) {
1549
- issues.push({
1550
- taskId: task.id,
1551
- severity: 'error',
1552
- rule: 'unique-id',
1553
- message: `Duplicate task ID: ${task.id}`,
1554
- });
1555
- }
1556
- allIds.add(task.id);
1557
- // Only lint targeted tasks
1558
- if (taskId && task.id !== taskId) {
1559
- if (task.description)
1560
- allDescriptions.add(task.description.toLowerCase());
1561
- continue;
1562
- }
1563
- // Check title present
1564
- if (!task.title || task.title.trim().length === 0) {
1565
- issues.push({
1566
- taskId: task.id,
1567
- severity: 'error',
1568
- rule: 'title-required',
1569
- message: 'Task is missing a title',
1570
- });
1571
- }
1572
- // Check description present
1573
- if (!task.description || task.description.trim().length === 0) {
1574
- issues.push({
1575
- taskId: task.id,
1576
- severity: 'warning',
1577
- rule: 'description-required',
1578
- message: 'Task is missing a description',
1579
- });
1580
- }
1581
- // Check title != description
1582
- if (task.title && task.description && task.title.trim() === task.description.trim()) {
1583
- issues.push({
1584
- taskId: task.id,
1585
- severity: 'warning',
1586
- rule: 'title-description-different',
1587
- message: 'Title and description should not be identical',
1588
- });
1589
- }
1590
- // Check duplicate descriptions
1591
- if (task.description) {
1592
- const descLower = task.description.toLowerCase();
1593
- if (allDescriptions.has(descLower)) {
1594
- issues.push({
1595
- taskId: task.id,
1596
- severity: 'warning',
1597
- rule: 'unique-description',
1598
- message: 'Duplicate task description found',
1599
- });
1600
- }
1601
- allDescriptions.add(descLower);
1602
- }
1603
- // Check valid status
1604
- const validStatuses = ['pending', 'active', 'blocked', 'done', 'cancelled'];
1605
- if (!validStatuses.includes(task.status)) {
1606
- issues.push({
1607
- taskId: task.id,
1608
- severity: 'error',
1609
- rule: 'valid-status',
1610
- message: `Invalid status: ${task.status}`,
1611
- });
1612
- }
1613
- // Check future timestamps
1614
- const now = new Date();
1615
- if (task.createdAt && new Date(task.createdAt) > now) {
1616
- issues.push({
1617
- taskId: task.id,
1618
- severity: 'warning',
1619
- rule: 'no-future-timestamps',
1620
- message: 'createdAt is in the future',
1621
- });
1622
- }
1623
- // Check orphaned parent references
1624
- if (task.parentId && !allTasks.some((t) => t.id === task.parentId)) {
1625
- issues.push({
1626
- taskId: task.id,
1627
- severity: 'error',
1628
- rule: 'valid-parent',
1629
- message: `Parent task '${task.parentId}' does not exist`,
1630
- });
1631
- }
1632
- // Check orphaned dependency references
1633
- for (const depId of task.depends ?? []) {
1634
- if (!allTasks.some((t) => t.id === depId)) {
1635
- issues.push({
1636
- taskId: task.id,
1637
- severity: 'warning',
1638
- rule: 'valid-dependency',
1639
- message: `Dependency '${depId}' does not exist`,
1640
- });
1641
- }
1642
- }
1643
- }
1644
- return { success: true, data: issues };
1645
- }
1646
- // ===== Batch Validate Operations =====
1647
- /**
1648
- * Validate multiple tasks at once.
1649
- */
1650
- /**
1651
- * @task T4657
1652
- * @epic T4654
1653
- */
1654
- export async function taskBatchValidate(projectRoot, taskIds, checkMode = 'full') {
1655
- let allTasks;
1656
- try {
1657
- const loaded = await loadAllTasksAsync(projectRoot);
1658
- allTasks = tasksToRecords(loaded);
1659
- }
1660
- catch {
1661
- return { success: false, error: { code: 'E_NOT_INITIALIZED', message: 'No todo.json found' } };
1662
- }
1663
- const results = {};
1664
- let totalErrors = 0;
1665
- let totalWarnings = 0;
1666
- for (const id of taskIds) {
1667
- const task = allTasks.find((t) => t.id === id);
1668
- if (!task) {
1669
- results[id] = [{ severity: 'error', rule: 'exists', message: `Task '${id}' not found` }];
1670
- totalErrors++;
1671
- continue;
1672
- }
1673
- const taskIssues = [];
1674
- // Quick mode: basic checks
1675
- if (!task.title || task.title.trim().length === 0) {
1676
- taskIssues.push({ severity: 'error', rule: 'title-required', message: 'Missing title' });
1677
- }
1678
- if (!task.description || task.description.trim().length === 0) {
1679
- taskIssues.push({ severity: 'warning', rule: 'description-required', message: 'Missing description' });
1680
- }
1681
- const validStatuses = ['pending', 'active', 'blocked', 'done', 'cancelled'];
1682
- if (!validStatuses.includes(task.status)) {
1683
- taskIssues.push({ severity: 'error', rule: 'valid-status', message: `Invalid status: ${task.status}` });
1684
- }
1685
- // Full mode: additional checks
1686
- if (checkMode === 'full') {
1687
- if (task.title && task.description && task.title.trim() === task.description.trim()) {
1688
- taskIssues.push({ severity: 'warning', rule: 'title-description-different', message: 'Title equals description' });
1689
- }
1690
- if (task.parentId && !allTasks.some((t) => t.id === task.parentId)) {
1691
- taskIssues.push({ severity: 'error', rule: 'valid-parent', message: `Parent '${task.parentId}' not found` });
1692
- }
1693
- for (const depId of task.depends ?? []) {
1694
- if (!allTasks.some((t) => t.id === depId)) {
1695
- taskIssues.push({ severity: 'warning', rule: 'valid-dependency', message: `Dependency '${depId}' not found` });
1696
- }
1697
- }
1698
- const now = new Date();
1699
- if (task.createdAt && new Date(task.createdAt) > now) {
1700
- taskIssues.push({ severity: 'warning', rule: 'no-future-timestamps', message: 'createdAt in future' });
1701
- }
1702
- }
1703
- results[id] = taskIssues;
1704
- totalErrors += taskIssues.filter((i) => i.severity === 'error').length;
1705
- totalWarnings += taskIssues.filter((i) => i.severity === 'warning').length;
1706
- }
1707
- const invalidTasks = Object.values(results).filter((issues) => issues.some((i) => i.severity === 'error')).length;
1708
- return {
1709
- success: true,
1710
- data: {
1711
- results,
1712
- summary: {
1713
- totalTasks: taskIds.length,
1714
- validTasks: taskIds.length - invalidTasks,
1715
- invalidTasks,
1716
- totalIssues: totalErrors + totalWarnings,
1717
- errors: totalErrors,
1718
- warnings: totalWarnings,
1719
- },
1720
- },
1721
- };
1722
- }
1723
- // ===== Import Operations =====
1724
- /**
1725
- * Import tasks from a JSON source string or export package.
1726
- */
1727
- export async function taskImport(projectRoot, source, overwrite) {
1728
- try {
1729
- const accessor = await getAccessor(projectRoot);
1730
- const current = await accessor.loadTodoFile();
1731
- if (!current || !current.tasks) {
1732
- return {
1733
- success: false,
1734
- error: { code: 'E_NOT_INITIALIZED', message: 'No valid todo.json found' },
1735
- };
1736
- }
1737
- // Parse the source JSON
1738
- let importData;
1739
- try {
1740
- importData = JSON.parse(source);
1741
- }
1742
- catch {
1743
- return {
1744
- success: false,
1745
- error: { code: 'E_INVALID_INPUT', message: 'Invalid JSON in import source' },
1746
- };
1747
- }
1748
- // Extract tasks from various formats
1749
- let importTasks = [];
1750
- if (Array.isArray(importData)) {
1751
- importTasks = importData;
1752
- }
1753
- else if (typeof importData === 'object' && importData !== null) {
1754
- const data = importData;
1755
- if (Array.isArray(data.tasks)) {
1756
- importTasks = data.tasks;
1757
- }
1758
- else if (data._meta && Array.isArray(data.tasks)) {
1759
- // Export package format
1760
- importTasks = data.tasks;
1761
- }
1762
- }
1763
- if (importTasks.length === 0) {
1764
- return {
1765
- success: true,
1766
- data: { imported: 0, skipped: 0, errors: ['No tasks found in import source'] },
1767
- };
1768
- }
1769
- const existingIds = new Set(current.tasks.map((t) => t.id));
1770
- const allIds = new Set(current.tasks.map((t) => t.id));
1771
- const errors = [];
1772
- let imported = 0;
1773
- let skipped = 0;
1774
- const remapTable = {};
1775
- // Generate new IDs for imported tasks
1776
- let nextIdNum = 0;
1777
- for (const t of current.tasks) {
1778
- const num = parseInt(t.id.replace('T', ''), 10);
1779
- if (!isNaN(num) && num > nextIdNum)
1780
- nextIdNum = num;
1781
- }
1782
- const tasksList = current.tasks;
1783
- for (const importTask of importTasks) {
1784
- if (!importTask.id || !importTask.title) {
1785
- errors.push(`Skipped task with missing id or title`);
1786
- skipped++;
1787
- continue;
1788
- }
1789
- if (existingIds.has(importTask.id) && !overwrite) {
1790
- skipped++;
1791
- continue;
1792
- }
1793
- // Generate new ID if collision
1794
- let newId = importTask.id;
1795
- if (allIds.has(importTask.id) && !overwrite) {
1796
- nextIdNum++;
1797
- newId = `T${String(nextIdNum).padStart(3, '0')}`;
1798
- remapTable[importTask.id] = newId;
1799
- }
1800
- const now = new Date().toISOString();
1801
- const newTask = {
1802
- ...importTask,
1803
- id: newId,
1804
- createdAt: importTask.createdAt || now,
1805
- updatedAt: now,
1806
- };
1807
- if (overwrite && existingIds.has(importTask.id)) {
1808
- // Replace existing
1809
- const idx = tasksList.findIndex((t) => t.id === importTask.id);
1810
- if (idx !== -1) {
1811
- tasksList[idx] = newTask;
1812
- }
1813
- }
1814
- else {
1815
- tasksList.push(newTask);
1816
- }
1817
- allIds.add(newId);
1818
- imported++;
1819
- }
1820
- if (imported > 0) {
1821
- await accessor.saveTodoFile(current);
1822
- }
1823
- return {
1824
- success: true,
1825
- data: {
1826
- imported,
1827
- skipped,
1828
- errors,
1829
- ...(Object.keys(remapTable).length > 0 ? { remapTable } : {}),
1830
- },
1831
- };
1832
- }
1833
- catch {
1834
- return {
1835
- success: false,
1836
- error: { code: 'E_NOT_INITIALIZED', message: 'Failed to import tasks' },
1837
- };
1838
- }
1839
- }
1840
- //# sourceMappingURL=task-engine.js.map