@ai-is-gonna/get-tasks-done 0.2.0

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 (1517) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +249 -0
  3. package/agents/gtd-advisor-researcher.md +127 -0
  4. package/agents/gtd-ai-researcher.md +133 -0
  5. package/agents/gtd-assumptions-analyzer.md +105 -0
  6. package/agents/gtd-code-fixer.md +668 -0
  7. package/agents/gtd-code-reviewer.md +387 -0
  8. package/agents/gtd-codebase-mapper.md +853 -0
  9. package/agents/gtd-debug-session-manager.md +314 -0
  10. package/agents/gtd-debugger.md +1452 -0
  11. package/agents/gtd-doc-classifier.md +168 -0
  12. package/agents/gtd-doc-synthesizer.md +204 -0
  13. package/agents/gtd-doc-verifier.md +217 -0
  14. package/agents/gtd-doc-writer.md +615 -0
  15. package/agents/gtd-domain-researcher.md +153 -0
  16. package/agents/gtd-eval-auditor.md +191 -0
  17. package/agents/gtd-eval-planner.md +154 -0
  18. package/agents/gtd-framework-selector.md +160 -0
  19. package/agents/gtd-integration-checker.md +470 -0
  20. package/agents/gtd-intel-updater.md +342 -0
  21. package/agents/gtd-nyquist-auditor.md +203 -0
  22. package/agents/gtd-pattern-mapper.md +335 -0
  23. package/agents/gtd-phase-researcher.md +928 -0
  24. package/agents/gtd-plan-checker.md +1000 -0
  25. package/agents/gtd-planner.md +926 -0
  26. package/agents/gtd-project-researcher.md +677 -0
  27. package/agents/gtd-research-synthesizer.md +247 -0
  28. package/agents/gtd-roadmapper.md +688 -0
  29. package/agents/gtd-security-auditor.md +155 -0
  30. package/agents/gtd-task-executor.md +166 -0
  31. package/agents/gtd-ui-auditor.md +495 -0
  32. package/agents/gtd-ui-checker.md +309 -0
  33. package/agents/gtd-ui-researcher.md +380 -0
  34. package/agents/gtd-user-profiler.md +171 -0
  35. package/agents/gtd-verifier.md +917 -0
  36. package/bin/gtd-sdk.js +37 -0
  37. package/bin/install.js +11358 -0
  38. package/commands/gtd/add-tests.md +42 -0
  39. package/commands/gtd/ai-integration-phase.md +37 -0
  40. package/commands/gtd/audit-fix.md +34 -0
  41. package/commands/gtd/audit-milestone.md +37 -0
  42. package/commands/gtd/audit-uat.md +24 -0
  43. package/commands/gtd/autonomous.md +46 -0
  44. package/commands/gtd/capture.md +62 -0
  45. package/commands/gtd/cleanup.md +24 -0
  46. package/commands/gtd/code-review.md +59 -0
  47. package/commands/gtd/complete-milestone.md +143 -0
  48. package/commands/gtd/config.md +58 -0
  49. package/commands/gtd/debug.md +52 -0
  50. package/commands/gtd/discuss-phase.md +76 -0
  51. package/commands/gtd/docs-update.md +49 -0
  52. package/commands/gtd/eval-review.md +33 -0
  53. package/commands/gtd/explore.md +27 -0
  54. package/commands/gtd/export-phase-issues.md +43 -0
  55. package/commands/gtd/extract-learnings.md +23 -0
  56. package/commands/gtd/fast.md +31 -0
  57. package/commands/gtd/forensics.md +57 -0
  58. package/commands/gtd/graphify.md +199 -0
  59. package/commands/gtd/health.md +31 -0
  60. package/commands/gtd/help.md +28 -0
  61. package/commands/gtd/import.md +35 -0
  62. package/commands/gtd/inbox.md +39 -0
  63. package/commands/gtd/ingest-docs.md +42 -0
  64. package/commands/gtd/manager.md +45 -0
  65. package/commands/gtd/map-codebase.md +83 -0
  66. package/commands/gtd/milestone-summary.md +51 -0
  67. package/commands/gtd/mvp-phase.md +45 -0
  68. package/commands/gtd/new-milestone.md +45 -0
  69. package/commands/gtd/new-project.md +47 -0
  70. package/commands/gtd/ns-context.md +23 -0
  71. package/commands/gtd/ns-ideate.md +24 -0
  72. package/commands/gtd/ns-manage.md +28 -0
  73. package/commands/gtd/ns-project.md +22 -0
  74. package/commands/gtd/ns-review.md +26 -0
  75. package/commands/gtd/ns-workflow.md +30 -0
  76. package/commands/gtd/orchestrate-tasks.md +83 -0
  77. package/commands/gtd/pause-work.md +43 -0
  78. package/commands/gtd/phase.md +56 -0
  79. package/commands/gtd/plan-phase.md +62 -0
  80. package/commands/gtd/plan-review-convergence.md +59 -0
  81. package/commands/gtd/pr-branch.md +26 -0
  82. package/commands/gtd/profile-user.md +46 -0
  83. package/commands/gtd/progress.md +46 -0
  84. package/commands/gtd/quick.md +174 -0
  85. package/commands/gtd/resume-work.md +30 -0
  86. package/commands/gtd/review-backlog.md +63 -0
  87. package/commands/gtd/review.md +41 -0
  88. package/commands/gtd/secure-phase.md +36 -0
  89. package/commands/gtd/settings.md +29 -0
  90. package/commands/gtd/sketch.md +60 -0
  91. package/commands/gtd/spec-phase.md +63 -0
  92. package/commands/gtd/spike.md +57 -0
  93. package/commands/gtd/stats.md +19 -0
  94. package/commands/gtd/surface.md +130 -0
  95. package/commands/gtd/thread.md +24 -0
  96. package/commands/gtd/ui-phase.md +35 -0
  97. package/commands/gtd/ui-review.md +33 -0
  98. package/commands/gtd/ultraplan-phase.md +34 -0
  99. package/commands/gtd/undo.md +35 -0
  100. package/commands/gtd/update.md +48 -0
  101. package/commands/gtd/validate-phase.md +36 -0
  102. package/commands/gtd/verify-work.md +39 -0
  103. package/commands/gtd/work-task-issue.md +45 -0
  104. package/commands/gtd/workspace.md +52 -0
  105. package/commands/gtd/workstreams.md +70 -0
  106. package/get-tasks-done/bin/check-latest-version.cjs +104 -0
  107. package/get-tasks-done/bin/gtd-tools.cjs +1264 -0
  108. package/get-tasks-done/bin/lib/active-workstream-store.cjs +85 -0
  109. package/get-tasks-done/bin/lib/adr-parser.cjs +394 -0
  110. package/get-tasks-done/bin/lib/artifacts.cjs +53 -0
  111. package/get-tasks-done/bin/lib/audit.cjs +755 -0
  112. package/get-tasks-done/bin/lib/cjs-command-router-adapter.cjs +39 -0
  113. package/get-tasks-done/bin/lib/clusters.cjs +147 -0
  114. package/get-tasks-done/bin/lib/command-aliases.generated.cjs +830 -0
  115. package/get-tasks-done/bin/lib/commands.cjs +1031 -0
  116. package/get-tasks-done/bin/lib/config-schema.cjs +31 -0
  117. package/get-tasks-done/bin/lib/config.cjs +621 -0
  118. package/get-tasks-done/bin/lib/configuration.generated.cjs +253 -0
  119. package/get-tasks-done/bin/lib/context-utilization.cjs +47 -0
  120. package/get-tasks-done/bin/lib/core.cjs +1921 -0
  121. package/get-tasks-done/bin/lib/decisions.cjs +48 -0
  122. package/get-tasks-done/bin/lib/docs.cjs +270 -0
  123. package/get-tasks-done/bin/lib/drift.cjs +388 -0
  124. package/get-tasks-done/bin/lib/export-phase-issues.cjs +1862 -0
  125. package/get-tasks-done/bin/lib/fallow-runner.cjs +109 -0
  126. package/get-tasks-done/bin/lib/frontmatter.cjs +389 -0
  127. package/get-tasks-done/bin/lib/gap-checker.cjs +197 -0
  128. package/get-tasks-done/bin/lib/github-api-client.cjs +97 -0
  129. package/get-tasks-done/bin/lib/github-repo.cjs +154 -0
  130. package/get-tasks-done/bin/lib/graphify.cjs +592 -0
  131. package/get-tasks-done/bin/lib/gtd2-import.cjs +514 -0
  132. package/get-tasks-done/bin/lib/init-command-router.cjs +65 -0
  133. package/get-tasks-done/bin/lib/init.cjs +1898 -0
  134. package/get-tasks-done/bin/lib/install-profiles.cjs +589 -0
  135. package/get-tasks-done/bin/lib/installer-migration-authoring.cjs +117 -0
  136. package/get-tasks-done/bin/lib/installer-migration-report.cjs +354 -0
  137. package/get-tasks-done/bin/lib/installer-migrations/000-first-time-baseline.cjs +220 -0
  138. package/get-tasks-done/bin/lib/installer-migrations/001-legacy-orphan-files.cjs +41 -0
  139. package/get-tasks-done/bin/lib/installer-migrations/002-codex-legacy-hooks-json.cjs +80 -0
  140. package/get-tasks-done/bin/lib/installer-migrations/003-legacy-acronym-install-cleanup.cjs +135 -0
  141. package/get-tasks-done/bin/lib/installer-migrations.cjs +703 -0
  142. package/get-tasks-done/bin/lib/intel.cjs +643 -0
  143. package/get-tasks-done/bin/lib/learnings.cjs +379 -0
  144. package/get-tasks-done/bin/lib/milestone.cjs +314 -0
  145. package/get-tasks-done/bin/lib/model-catalog.cjs +143 -0
  146. package/get-tasks-done/bin/lib/model-profiles.cjs +27 -0
  147. package/get-tasks-done/bin/lib/orchestrate-tasks.cjs +2166 -0
  148. package/get-tasks-done/bin/lib/phase-command-router.cjs +96 -0
  149. package/get-tasks-done/bin/lib/phase.cjs +1422 -0
  150. package/get-tasks-done/bin/lib/phases-command-router.cjs +39 -0
  151. package/get-tasks-done/bin/lib/plan-scan.cjs +138 -0
  152. package/get-tasks-done/bin/lib/planning-workspace.cjs +361 -0
  153. package/get-tasks-done/bin/lib/profile-output.cjs +1132 -0
  154. package/get-tasks-done/bin/lib/profile-pipeline.cjs +539 -0
  155. package/get-tasks-done/bin/lib/project-root.generated.cjs +117 -0
  156. package/get-tasks-done/bin/lib/review-reviewer-selection.cjs +125 -0
  157. package/get-tasks-done/bin/lib/roadmap-command-router.cjs +23 -0
  158. package/get-tasks-done/bin/lib/roadmap.cjs +621 -0
  159. package/get-tasks-done/bin/lib/runtime-homes.cjs +178 -0
  160. package/get-tasks-done/bin/lib/runtime-slash.cjs +109 -0
  161. package/get-tasks-done/bin/lib/schema-detect.cjs +238 -0
  162. package/get-tasks-done/bin/lib/secrets.cjs +33 -0
  163. package/get-tasks-done/bin/lib/security.cjs +504 -0
  164. package/get-tasks-done/bin/lib/shell-command-projection.cjs +548 -0
  165. package/get-tasks-done/bin/lib/state-command-router.cjs +318 -0
  166. package/get-tasks-done/bin/lib/state-document.cjs +12 -0
  167. package/get-tasks-done/bin/lib/state-document.generated.cjs +127 -0
  168. package/get-tasks-done/bin/lib/state.cjs +1917 -0
  169. package/get-tasks-done/bin/lib/surface.cjs +398 -0
  170. package/get-tasks-done/bin/lib/task-issue-shared.cjs +64 -0
  171. package/get-tasks-done/bin/lib/template.cjs +228 -0
  172. package/get-tasks-done/bin/lib/uat.cjs +289 -0
  173. package/get-tasks-done/bin/lib/validate-command-router.cjs +57 -0
  174. package/get-tasks-done/bin/lib/verify-command-router.cjs +34 -0
  175. package/get-tasks-done/bin/lib/verify.cjs +1557 -0
  176. package/get-tasks-done/bin/lib/work-task-issue.cjs +3429 -0
  177. package/get-tasks-done/bin/lib/workstream-inventory-builder.generated.cjs +79 -0
  178. package/get-tasks-done/bin/lib/workstream-inventory.cjs +132 -0
  179. package/get-tasks-done/bin/lib/workstream-name-policy.cjs +33 -0
  180. package/get-tasks-done/bin/lib/workstream.cjs +374 -0
  181. package/get-tasks-done/bin/lib/worktree-safety.cjs +563 -0
  182. package/get-tasks-done/bin/verify-reapply-patches.cjs +247 -0
  183. package/get-tasks-done/contexts/dev.md +21 -0
  184. package/get-tasks-done/contexts/research.md +22 -0
  185. package/get-tasks-done/contexts/review.md +23 -0
  186. package/get-tasks-done/references/agent-contracts.md +79 -0
  187. package/get-tasks-done/references/ai-evals.md +156 -0
  188. package/get-tasks-done/references/ai-frameworks.md +186 -0
  189. package/get-tasks-done/references/artifact-types.md +131 -0
  190. package/get-tasks-done/references/autonomous-smart-discuss.md +277 -0
  191. package/get-tasks-done/references/checkpoints.md +814 -0
  192. package/get-tasks-done/references/common-bug-patterns.md +114 -0
  193. package/get-tasks-done/references/context-budget.md +85 -0
  194. package/get-tasks-done/references/continuation-format.md +253 -0
  195. package/get-tasks-done/references/debugger-philosophy.md +76 -0
  196. package/get-tasks-done/references/decimal-phase-calculation.md +64 -0
  197. package/get-tasks-done/references/doc-conflict-engine.md +91 -0
  198. package/get-tasks-done/references/domain-probes.md +125 -0
  199. package/get-tasks-done/references/execute-mvp-tdd.md +81 -0
  200. package/get-tasks-done/references/executor-examples.md +110 -0
  201. package/get-tasks-done/references/few-shot-examples/plan-checker.md +73 -0
  202. package/get-tasks-done/references/few-shot-examples/verifier.md +109 -0
  203. package/get-tasks-done/references/gate-prompts.md +100 -0
  204. package/get-tasks-done/references/gates.md +70 -0
  205. package/get-tasks-done/references/git-integration.md +298 -0
  206. package/get-tasks-done/references/git-planning-commit.md +40 -0
  207. package/get-tasks-done/references/ios-scaffold.md +123 -0
  208. package/get-tasks-done/references/mandatory-initial-read.md +2 -0
  209. package/get-tasks-done/references/model-profile-resolution.md +38 -0
  210. package/get-tasks-done/references/model-profiles.md +245 -0
  211. package/get-tasks-done/references/mvp-concepts.md +49 -0
  212. package/get-tasks-done/references/phase-argument-parsing.md +61 -0
  213. package/get-tasks-done/references/plan-checker-task-atomicity.md +73 -0
  214. package/get-tasks-done/references/planner-antipatterns.md +89 -0
  215. package/get-tasks-done/references/planner-chunked.md +49 -0
  216. package/get-tasks-done/references/planner-execution-flow.md +85 -0
  217. package/get-tasks-done/references/planner-gap-closure.md +71 -0
  218. package/get-tasks-done/references/planner-graphify-auto-update.md +67 -0
  219. package/get-tasks-done/references/planner-human-verify-mode.md +57 -0
  220. package/get-tasks-done/references/planner-mvp-mode.md +53 -0
  221. package/get-tasks-done/references/planner-reviews.md +39 -0
  222. package/get-tasks-done/references/planner-revision.md +87 -0
  223. package/get-tasks-done/references/planner-source-audit.md +73 -0
  224. package/get-tasks-done/references/planning-config.md +463 -0
  225. package/get-tasks-done/references/project-skills-discovery.md +19 -0
  226. package/get-tasks-done/references/questioning.md +162 -0
  227. package/get-tasks-done/references/revision-loop.md +97 -0
  228. package/get-tasks-done/references/scout-codebase.md +51 -0
  229. package/get-tasks-done/references/skeleton-template.md +48 -0
  230. package/get-tasks-done/references/sketch-interactivity.md +41 -0
  231. package/get-tasks-done/references/sketch-theme-system.md +94 -0
  232. package/get-tasks-done/references/sketch-tooling.md +45 -0
  233. package/get-tasks-done/references/sketch-variant-patterns.md +81 -0
  234. package/get-tasks-done/references/spidr-splitting.md +69 -0
  235. package/get-tasks-done/references/tdd.md +330 -0
  236. package/get-tasks-done/references/thinking-models-debug.md +44 -0
  237. package/get-tasks-done/references/thinking-models-execution.md +50 -0
  238. package/get-tasks-done/references/thinking-models-planning.md +62 -0
  239. package/get-tasks-done/references/thinking-models-research.md +50 -0
  240. package/get-tasks-done/references/thinking-models-verification.md +55 -0
  241. package/get-tasks-done/references/thinking-partner.md +96 -0
  242. package/get-tasks-done/references/ui-brand.md +160 -0
  243. package/get-tasks-done/references/universal-anti-patterns.md +63 -0
  244. package/get-tasks-done/references/user-profiling.md +681 -0
  245. package/get-tasks-done/references/user-story-template.md +58 -0
  246. package/get-tasks-done/references/verification-overrides.md +227 -0
  247. package/get-tasks-done/references/verification-patterns.md +612 -0
  248. package/get-tasks-done/references/verify-mvp-mode.md +85 -0
  249. package/get-tasks-done/references/workstream-flag.md +111 -0
  250. package/get-tasks-done/references/worktree-path-safety.md +89 -0
  251. package/get-tasks-done/templates/AI-SPEC.md +246 -0
  252. package/get-tasks-done/templates/DEBUG.md +169 -0
  253. package/get-tasks-done/templates/README.md +77 -0
  254. package/get-tasks-done/templates/SECURITY.md +61 -0
  255. package/get-tasks-done/templates/UAT.md +265 -0
  256. package/get-tasks-done/templates/UI-SPEC.md +100 -0
  257. package/get-tasks-done/templates/VALIDATION.md +76 -0
  258. package/get-tasks-done/templates/claude-md.md +147 -0
  259. package/get-tasks-done/templates/codebase/architecture.md +255 -0
  260. package/get-tasks-done/templates/codebase/concerns.md +310 -0
  261. package/get-tasks-done/templates/codebase/conventions.md +307 -0
  262. package/get-tasks-done/templates/codebase/integrations.md +280 -0
  263. package/get-tasks-done/templates/codebase/stack.md +186 -0
  264. package/get-tasks-done/templates/codebase/structure.md +285 -0
  265. package/get-tasks-done/templates/codebase/testing.md +480 -0
  266. package/get-tasks-done/templates/config.json +55 -0
  267. package/get-tasks-done/templates/context.md +352 -0
  268. package/get-tasks-done/templates/continue-here.md +78 -0
  269. package/get-tasks-done/templates/copilot-instructions.md +8 -0
  270. package/get-tasks-done/templates/debug-subagent-prompt.md +91 -0
  271. package/get-tasks-done/templates/dev-preferences.md +21 -0
  272. package/get-tasks-done/templates/discovery.md +146 -0
  273. package/get-tasks-done/templates/discussion-log.md +63 -0
  274. package/get-tasks-done/templates/milestone-archive.md +123 -0
  275. package/get-tasks-done/templates/milestone.md +115 -0
  276. package/get-tasks-done/templates/phase-prompt.md +616 -0
  277. package/get-tasks-done/templates/planner-subagent-prompt.md +118 -0
  278. package/get-tasks-done/templates/project.md +186 -0
  279. package/get-tasks-done/templates/requirements.md +231 -0
  280. package/get-tasks-done/templates/research-project/ARCHITECTURE.md +204 -0
  281. package/get-tasks-done/templates/research-project/FEATURES.md +147 -0
  282. package/get-tasks-done/templates/research-project/PITFALLS.md +200 -0
  283. package/get-tasks-done/templates/research-project/STACK.md +120 -0
  284. package/get-tasks-done/templates/research-project/SUMMARY.md +170 -0
  285. package/get-tasks-done/templates/research.md +592 -0
  286. package/get-tasks-done/templates/retrospective.md +54 -0
  287. package/get-tasks-done/templates/roadmap.md +202 -0
  288. package/get-tasks-done/templates/spec.md +307 -0
  289. package/get-tasks-done/templates/state.md +184 -0
  290. package/get-tasks-done/templates/summary-complex.md +59 -0
  291. package/get-tasks-done/templates/summary-minimal.md +41 -0
  292. package/get-tasks-done/templates/summary-standard.md +48 -0
  293. package/get-tasks-done/templates/summary.md +248 -0
  294. package/get-tasks-done/templates/user-profile.md +146 -0
  295. package/get-tasks-done/templates/user-setup.md +311 -0
  296. package/get-tasks-done/templates/verification-report.md +322 -0
  297. package/get-tasks-done/workflows/add-backlog.md +90 -0
  298. package/get-tasks-done/workflows/add-phase.md +112 -0
  299. package/get-tasks-done/workflows/add-tests.md +354 -0
  300. package/get-tasks-done/workflows/add-todo.md +160 -0
  301. package/get-tasks-done/workflows/ai-integration-phase.md +294 -0
  302. package/get-tasks-done/workflows/analyze-dependencies.md +96 -0
  303. package/get-tasks-done/workflows/audit-fix.md +177 -0
  304. package/get-tasks-done/workflows/audit-milestone.md +357 -0
  305. package/get-tasks-done/workflows/audit-uat.md +109 -0
  306. package/get-tasks-done/workflows/autonomous.md +790 -0
  307. package/get-tasks-done/workflows/check-todos.md +179 -0
  308. package/get-tasks-done/workflows/cleanup.md +154 -0
  309. package/get-tasks-done/workflows/code-review-fix.md +501 -0
  310. package/get-tasks-done/workflows/code-review.md +613 -0
  311. package/get-tasks-done/workflows/complete-milestone.md +854 -0
  312. package/get-tasks-done/workflows/debug.md +231 -0
  313. package/get-tasks-done/workflows/diagnose-issues.md +240 -0
  314. package/get-tasks-done/workflows/discovery-phase.md +291 -0
  315. package/get-tasks-done/workflows/discuss-phase/modes/advisor.md +175 -0
  316. package/get-tasks-done/workflows/discuss-phase/modes/all.md +28 -0
  317. package/get-tasks-done/workflows/discuss-phase/modes/analyze.md +44 -0
  318. package/get-tasks-done/workflows/discuss-phase/modes/auto.md +56 -0
  319. package/get-tasks-done/workflows/discuss-phase/modes/batch.md +52 -0
  320. package/get-tasks-done/workflows/discuss-phase/modes/chain.md +97 -0
  321. package/get-tasks-done/workflows/discuss-phase/modes/default.md +141 -0
  322. package/get-tasks-done/workflows/discuss-phase/modes/power.md +44 -0
  323. package/get-tasks-done/workflows/discuss-phase/modes/text.md +55 -0
  324. package/get-tasks-done/workflows/discuss-phase/templates/checkpoint.json +18 -0
  325. package/get-tasks-done/workflows/discuss-phase/templates/context.md +136 -0
  326. package/get-tasks-done/workflows/discuss-phase/templates/discussion-log.md +50 -0
  327. package/get-tasks-done/workflows/discuss-phase-assumptions.md +674 -0
  328. package/get-tasks-done/workflows/discuss-phase-power.md +291 -0
  329. package/get-tasks-done/workflows/discuss-phase.md +499 -0
  330. package/get-tasks-done/workflows/do.md +110 -0
  331. package/get-tasks-done/workflows/docs-update.md +1161 -0
  332. package/get-tasks-done/workflows/edit-phase.md +294 -0
  333. package/get-tasks-done/workflows/eval-review.md +155 -0
  334. package/get-tasks-done/workflows/explore.md +143 -0
  335. package/get-tasks-done/workflows/export-phase-issues.md +74 -0
  336. package/get-tasks-done/workflows/extract-learnings.md +242 -0
  337. package/get-tasks-done/workflows/fast.md +105 -0
  338. package/get-tasks-done/workflows/forensics.md +278 -0
  339. package/get-tasks-done/workflows/graduation.md +195 -0
  340. package/get-tasks-done/workflows/health.md +223 -0
  341. package/get-tasks-done/workflows/help/modes/brief.md +24 -0
  342. package/get-tasks-done/workflows/help/modes/default.md +52 -0
  343. package/get-tasks-done/workflows/help/modes/full.md +813 -0
  344. package/get-tasks-done/workflows/help/modes/topic.md +74 -0
  345. package/get-tasks-done/workflows/help.md +24 -0
  346. package/get-tasks-done/workflows/import.md +253 -0
  347. package/get-tasks-done/workflows/inbox.md +87 -0
  348. package/get-tasks-done/workflows/ingest-docs.md +339 -0
  349. package/get-tasks-done/workflows/insert-phase.md +151 -0
  350. package/get-tasks-done/workflows/list-phase-assumptions.md +178 -0
  351. package/get-tasks-done/workflows/list-workspaces.md +56 -0
  352. package/get-tasks-done/workflows/manager.md +393 -0
  353. package/get-tasks-done/workflows/map-codebase.md +443 -0
  354. package/get-tasks-done/workflows/milestone-summary.md +223 -0
  355. package/get-tasks-done/workflows/mvp-phase.md +221 -0
  356. package/get-tasks-done/workflows/new-milestone.md +634 -0
  357. package/get-tasks-done/workflows/new-project.md +1443 -0
  358. package/get-tasks-done/workflows/new-workspace.md +239 -0
  359. package/get-tasks-done/workflows/next.md +220 -0
  360. package/get-tasks-done/workflows/node-repair.md +92 -0
  361. package/get-tasks-done/workflows/note.md +158 -0
  362. package/get-tasks-done/workflows/orchestrate-tasks.md +209 -0
  363. package/get-tasks-done/workflows/pause-work.md +243 -0
  364. package/get-tasks-done/workflows/plan-milestone-gaps.md +280 -0
  365. package/get-tasks-done/workflows/plan-phase.md +1756 -0
  366. package/get-tasks-done/workflows/plan-review-convergence.md +329 -0
  367. package/get-tasks-done/workflows/plant-seed.md +229 -0
  368. package/get-tasks-done/workflows/pr-branch.md +156 -0
  369. package/get-tasks-done/workflows/profile-user.md +452 -0
  370. package/get-tasks-done/workflows/progress.md +668 -0
  371. package/get-tasks-done/workflows/quick.md +1169 -0
  372. package/get-tasks-done/workflows/reapply-patches.md +390 -0
  373. package/get-tasks-done/workflows/remove-phase.md +155 -0
  374. package/get-tasks-done/workflows/remove-workspace.md +107 -0
  375. package/get-tasks-done/workflows/resume-project.md +329 -0
  376. package/get-tasks-done/workflows/review.md +459 -0
  377. package/get-tasks-done/workflows/scan.md +104 -0
  378. package/get-tasks-done/workflows/secure-phase.md +179 -0
  379. package/get-tasks-done/workflows/session-report.md +146 -0
  380. package/get-tasks-done/workflows/settings-advanced.md +532 -0
  381. package/get-tasks-done/workflows/settings-integrations.md +281 -0
  382. package/get-tasks-done/workflows/settings.md +502 -0
  383. package/get-tasks-done/workflows/sketch-wrap-up.md +285 -0
  384. package/get-tasks-done/workflows/sketch.md +360 -0
  385. package/get-tasks-done/workflows/spec-phase.md +262 -0
  386. package/get-tasks-done/workflows/spike-wrap-up.md +306 -0
  387. package/get-tasks-done/workflows/spike.md +452 -0
  388. package/get-tasks-done/workflows/stats.md +79 -0
  389. package/get-tasks-done/workflows/sync-skills.md +182 -0
  390. package/get-tasks-done/workflows/thread.md +221 -0
  391. package/get-tasks-done/workflows/transition.md +693 -0
  392. package/get-tasks-done/workflows/ui-phase.md +327 -0
  393. package/get-tasks-done/workflows/ui-review.md +192 -0
  394. package/get-tasks-done/workflows/ultraplan-phase.md +198 -0
  395. package/get-tasks-done/workflows/undo.md +314 -0
  396. package/get-tasks-done/workflows/update.md +644 -0
  397. package/get-tasks-done/workflows/validate-phase.md +178 -0
  398. package/get-tasks-done/workflows/verify-phase.md +543 -0
  399. package/get-tasks-done/workflows/verify-work.md +797 -0
  400. package/get-tasks-done/workflows/work-task-issue.md +249 -0
  401. package/hooks/dist/gtd-check-update-worker.js +117 -0
  402. package/hooks/dist/gtd-check-update.js +64 -0
  403. package/hooks/dist/gtd-context-monitor.js +192 -0
  404. package/hooks/dist/gtd-phase-boundary.sh +47 -0
  405. package/hooks/dist/gtd-prompt-guard.js +97 -0
  406. package/hooks/dist/gtd-read-guard.js +101 -0
  407. package/hooks/dist/gtd-read-injection-scanner.js +152 -0
  408. package/hooks/dist/gtd-session-state.sh +59 -0
  409. package/hooks/dist/gtd-statusline.js +537 -0
  410. package/hooks/dist/gtd-update-banner.js +134 -0
  411. package/hooks/dist/gtd-validate-commit.sh +57 -0
  412. package/hooks/dist/gtd-workflow-guard.js +94 -0
  413. package/hooks/gtd-check-update-worker.js +117 -0
  414. package/hooks/gtd-check-update.js +64 -0
  415. package/hooks/gtd-context-monitor.js +192 -0
  416. package/hooks/gtd-graphify-update.sh +152 -0
  417. package/hooks/gtd-phase-boundary.sh +47 -0
  418. package/hooks/gtd-prompt-guard.js +97 -0
  419. package/hooks/gtd-read-guard.js +101 -0
  420. package/hooks/gtd-read-injection-scanner.js +152 -0
  421. package/hooks/gtd-session-state.sh +59 -0
  422. package/hooks/gtd-statusline.js +537 -0
  423. package/hooks/gtd-update-banner.js +134 -0
  424. package/hooks/gtd-validate-commit.sh +57 -0
  425. package/hooks/gtd-workflow-guard.js +94 -0
  426. package/hooks/lib/git-cmd.js +150 -0
  427. package/hooks/lib/gtd-graphify-rebuild.sh +65 -0
  428. package/package.json +85 -0
  429. package/scripts/audit-workflow-script-paths.cjs +73 -0
  430. package/scripts/base64-scan.sh +262 -0
  431. package/scripts/build-hooks.js +187 -0
  432. package/scripts/command-contract-helpers.cjs +61 -0
  433. package/scripts/fix-slash-commands.cjs +106 -0
  434. package/scripts/lint-command-contract.cjs +108 -0
  435. package/scripts/lint-descriptions.cjs +83 -0
  436. package/scripts/lint-no-source-grep-extras.cjs +81 -0
  437. package/scripts/lint-no-source-grep.cjs +174 -0
  438. package/scripts/lint-pr-check-project-dir.cjs +94 -0
  439. package/scripts/lint-shell-command-projection-drift.cjs +57 -0
  440. package/scripts/lint-skill-deps.cjs +180 -0
  441. package/scripts/prompt-injection-scan.sh +201 -0
  442. package/scripts/run-tests.cjs +33 -0
  443. package/scripts/secret-scan.sh +227 -0
  444. package/scripts/strip-prose-atrefs.cjs +106 -0
  445. package/scripts/verify-tarball-sdk-dist.sh +69 -0
  446. package/sdk/dist/cli-transport.d.ts +19 -0
  447. package/sdk/dist/cli-transport.d.ts.map +1 -0
  448. package/sdk/dist/cli-transport.js +104 -0
  449. package/sdk/dist/cli-transport.js.map +1 -0
  450. package/sdk/dist/cli.d.ts +46 -0
  451. package/sdk/dist/cli.d.ts.map +1 -0
  452. package/sdk/dist/cli.js +511 -0
  453. package/sdk/dist/cli.js.map +1 -0
  454. package/sdk/dist/config.d.ts +107 -0
  455. package/sdk/dist/config.d.ts.map +1 -0
  456. package/sdk/dist/config.js +115 -0
  457. package/sdk/dist/config.js.map +1 -0
  458. package/sdk/dist/configuration/index.d.ts +85 -0
  459. package/sdk/dist/configuration/index.d.ts.map +1 -0
  460. package/sdk/dist/configuration/index.js +257 -0
  461. package/sdk/dist/configuration/index.js.map +1 -0
  462. package/sdk/dist/context-engine.d.ts +49 -0
  463. package/sdk/dist/context-engine.d.ts.map +1 -0
  464. package/sdk/dist/context-engine.js +142 -0
  465. package/sdk/dist/context-engine.js.map +1 -0
  466. package/sdk/dist/context-truncation.d.ts +33 -0
  467. package/sdk/dist/context-truncation.d.ts.map +1 -0
  468. package/sdk/dist/context-truncation.js +197 -0
  469. package/sdk/dist/context-truncation.js.map +1 -0
  470. package/sdk/dist/errors.d.ts +46 -0
  471. package/sdk/dist/errors.d.ts.map +1 -0
  472. package/sdk/dist/errors.js +64 -0
  473. package/sdk/dist/errors.js.map +1 -0
  474. package/sdk/dist/event-stream.d.ts +53 -0
  475. package/sdk/dist/event-stream.d.ts.map +1 -0
  476. package/sdk/dist/event-stream.js +321 -0
  477. package/sdk/dist/event-stream.js.map +1 -0
  478. package/sdk/dist/golden/capture.d.ts +15 -0
  479. package/sdk/dist/golden/capture.d.ts.map +1 -0
  480. package/sdk/dist/golden/capture.js +67 -0
  481. package/sdk/dist/golden/capture.js.map +1 -0
  482. package/sdk/dist/golden/golden-integration-covered.d.ts +6 -0
  483. package/sdk/dist/golden/golden-integration-covered.d.ts.map +1 -0
  484. package/sdk/dist/golden/golden-integration-covered.js +30 -0
  485. package/sdk/dist/golden/golden-integration-covered.js.map +1 -0
  486. package/sdk/dist/golden/golden-mutation-covered.d.ts +7 -0
  487. package/sdk/dist/golden/golden-mutation-covered.d.ts.map +1 -0
  488. package/sdk/dist/golden/golden-mutation-covered.js +17 -0
  489. package/sdk/dist/golden/golden-mutation-covered.js.map +1 -0
  490. package/sdk/dist/golden/golden-policy.d.ts +10 -0
  491. package/sdk/dist/golden/golden-policy.d.ts.map +1 -0
  492. package/sdk/dist/golden/golden-policy.js +97 -0
  493. package/sdk/dist/golden/golden-policy.js.map +1 -0
  494. package/sdk/dist/golden/init-golden-normalize.d.ts +8 -0
  495. package/sdk/dist/golden/init-golden-normalize.d.ts.map +1 -0
  496. package/sdk/dist/golden/init-golden-normalize.js +14 -0
  497. package/sdk/dist/golden/init-golden-normalize.js.map +1 -0
  498. package/sdk/dist/golden/read-only-golden-rows.d.ts +20 -0
  499. package/sdk/dist/golden/read-only-golden-rows.d.ts.map +1 -0
  500. package/sdk/dist/golden/read-only-golden-rows.js +67 -0
  501. package/sdk/dist/golden/read-only-golden-rows.js.map +1 -0
  502. package/sdk/dist/golden/registry-canonical-commands.d.ts +6 -0
  503. package/sdk/dist/golden/registry-canonical-commands.d.ts.map +1 -0
  504. package/sdk/dist/golden/registry-canonical-commands.js +30 -0
  505. package/sdk/dist/golden/registry-canonical-commands.js.map +1 -0
  506. package/sdk/dist/gtd-tools-error.d.ts +23 -0
  507. package/sdk/dist/gtd-tools-error.d.ts.map +1 -0
  508. package/sdk/dist/gtd-tools-error.js +29 -0
  509. package/sdk/dist/gtd-tools-error.js.map +1 -0
  510. package/sdk/dist/gtd-tools.d.ts +102 -0
  511. package/sdk/dist/gtd-tools.d.ts.map +1 -0
  512. package/sdk/dist/gtd-tools.js +222 -0
  513. package/sdk/dist/gtd-tools.js.map +1 -0
  514. package/sdk/dist/gtd-transport-policy.d.ts +10 -0
  515. package/sdk/dist/gtd-transport-policy.d.ts.map +1 -0
  516. package/sdk/dist/gtd-transport-policy.js +32 -0
  517. package/sdk/dist/gtd-transport-policy.js.map +1 -0
  518. package/sdk/dist/gtd-transport.d.ts +39 -0
  519. package/sdk/dist/gtd-transport.d.ts.map +1 -0
  520. package/sdk/dist/gtd-transport.js +78 -0
  521. package/sdk/dist/gtd-transport.js.map +1 -0
  522. package/sdk/dist/index.d.ts +127 -0
  523. package/sdk/dist/index.d.ts.map +1 -0
  524. package/sdk/dist/index.js +298 -0
  525. package/sdk/dist/index.js.map +1 -0
  526. package/sdk/dist/init-runner.d.ts +90 -0
  527. package/sdk/dist/init-runner.d.ts.map +1 -0
  528. package/sdk/dist/init-runner.js +613 -0
  529. package/sdk/dist/init-runner.js.map +1 -0
  530. package/sdk/dist/logger.d.ts +50 -0
  531. package/sdk/dist/logger.d.ts.map +1 -0
  532. package/sdk/dist/logger.js +70 -0
  533. package/sdk/dist/logger.js.map +1 -0
  534. package/sdk/dist/model-catalog.d.ts +33 -0
  535. package/sdk/dist/model-catalog.d.ts.map +1 -0
  536. package/sdk/dist/model-catalog.js +34 -0
  537. package/sdk/dist/model-catalog.js.map +1 -0
  538. package/sdk/dist/phase-prompt.d.ts +71 -0
  539. package/sdk/dist/phase-prompt.d.ts.map +1 -0
  540. package/sdk/dist/phase-prompt.js +208 -0
  541. package/sdk/dist/phase-prompt.js.map +1 -0
  542. package/sdk/dist/phase-runner.d.ts +145 -0
  543. package/sdk/dist/phase-runner.d.ts.map +1 -0
  544. package/sdk/dist/phase-runner.js +1206 -0
  545. package/sdk/dist/phase-runner.js.map +1 -0
  546. package/sdk/dist/plan-atomicity.d.ts +26 -0
  547. package/sdk/dist/plan-atomicity.d.ts.map +1 -0
  548. package/sdk/dist/plan-atomicity.js +116 -0
  549. package/sdk/dist/plan-atomicity.js.map +1 -0
  550. package/sdk/dist/plan-parser.d.ts +55 -0
  551. package/sdk/dist/plan-parser.d.ts.map +1 -0
  552. package/sdk/dist/plan-parser.js +391 -0
  553. package/sdk/dist/plan-parser.js.map +1 -0
  554. package/sdk/dist/planning-journal.d.ts +64 -0
  555. package/sdk/dist/planning-journal.d.ts.map +1 -0
  556. package/sdk/dist/planning-journal.js +88 -0
  557. package/sdk/dist/planning-journal.js.map +1 -0
  558. package/sdk/dist/planning-runtime.d.ts +67 -0
  559. package/sdk/dist/planning-runtime.d.ts.map +1 -0
  560. package/sdk/dist/planning-runtime.js +58 -0
  561. package/sdk/dist/planning-runtime.js.map +1 -0
  562. package/sdk/dist/project-root/index.d.ts +46 -0
  563. package/sdk/dist/project-root/index.d.ts.map +1 -0
  564. package/sdk/dist/project-root/index.js +138 -0
  565. package/sdk/dist/project-root/index.js.map +1 -0
  566. package/sdk/dist/prompt-builder.d.ts +44 -0
  567. package/sdk/dist/prompt-builder.d.ts.map +1 -0
  568. package/sdk/dist/prompt-builder.js +180 -0
  569. package/sdk/dist/prompt-builder.js.map +1 -0
  570. package/sdk/dist/prompt-sanitizer.d.ts +35 -0
  571. package/sdk/dist/prompt-sanitizer.d.ts.map +1 -0
  572. package/sdk/dist/prompt-sanitizer.js +101 -0
  573. package/sdk/dist/prompt-sanitizer.js.map +1 -0
  574. package/sdk/dist/query/active-workstream-store.d.ts +7 -0
  575. package/sdk/dist/query/active-workstream-store.d.ts.map +1 -0
  576. package/sdk/dist/query/active-workstream-store.js +56 -0
  577. package/sdk/dist/query/active-workstream-store.js.map +1 -0
  578. package/sdk/dist/query/agent-failure-classifier.d.ts +37 -0
  579. package/sdk/dist/query/agent-failure-classifier.d.ts.map +1 -0
  580. package/sdk/dist/query/agent-failure-classifier.js +82 -0
  581. package/sdk/dist/query/agent-failure-classifier.js.map +1 -0
  582. package/sdk/dist/query/audit-open.d.ts +46 -0
  583. package/sdk/dist/query/audit-open.d.ts.map +1 -0
  584. package/sdk/dist/query/audit-open.js +662 -0
  585. package/sdk/dist/query/audit-open.js.map +1 -0
  586. package/sdk/dist/query/check-auto-mode.d.ts +13 -0
  587. package/sdk/dist/query/check-auto-mode.d.ts.map +1 -0
  588. package/sdk/dist/query/check-auto-mode.js +40 -0
  589. package/sdk/dist/query/check-auto-mode.js.map +1 -0
  590. package/sdk/dist/query/check-completion.d.ts +10 -0
  591. package/sdk/dist/query/check-completion.d.ts.map +1 -0
  592. package/sdk/dist/query/check-completion.js +157 -0
  593. package/sdk/dist/query/check-completion.js.map +1 -0
  594. package/sdk/dist/query/check-decision-coverage.d.ts +33 -0
  595. package/sdk/dist/query/check-decision-coverage.d.ts.map +1 -0
  596. package/sdk/dist/query/check-decision-coverage.js +472 -0
  597. package/sdk/dist/query/check-decision-coverage.js.map +1 -0
  598. package/sdk/dist/query/check-gates.d.ts +10 -0
  599. package/sdk/dist/query/check-gates.d.ts.map +1 -0
  600. package/sdk/dist/query/check-gates.js +89 -0
  601. package/sdk/dist/query/check-gates.js.map +1 -0
  602. package/sdk/dist/query/check-verification-status.d.ts +10 -0
  603. package/sdk/dist/query/check-verification-status.d.ts.map +1 -0
  604. package/sdk/dist/query/check-verification-status.js +142 -0
  605. package/sdk/dist/query/check-verification-status.js.map +1 -0
  606. package/sdk/dist/query/command-aliases.generated.d.ts +31 -0
  607. package/sdk/dist/query/command-aliases.generated.d.ts.map +1 -0
  608. package/sdk/dist/query/command-aliases.generated.js +134 -0
  609. package/sdk/dist/query/command-aliases.generated.js.map +1 -0
  610. package/sdk/dist/query/command-catalog.d.ts +9 -0
  611. package/sdk/dist/query/command-catalog.d.ts.map +1 -0
  612. package/sdk/dist/query/command-catalog.js +17 -0
  613. package/sdk/dist/query/command-catalog.js.map +1 -0
  614. package/sdk/dist/query/command-definition.d.ts +19 -0
  615. package/sdk/dist/query/command-definition.d.ts.map +1 -0
  616. package/sdk/dist/query/command-definition.js +44 -0
  617. package/sdk/dist/query/command-definition.js.map +1 -0
  618. package/sdk/dist/query/command-family-handlers.d.ts +3 -0
  619. package/sdk/dist/query/command-family-handlers.d.ts.map +1 -0
  620. package/sdk/dist/query/command-family-handlers.js +93 -0
  621. package/sdk/dist/query/command-family-handlers.js.map +1 -0
  622. package/sdk/dist/query/command-manifest.d.ts +2 -0
  623. package/sdk/dist/query/command-manifest.d.ts.map +1 -0
  624. package/sdk/dist/query/command-manifest.init.d.ts +6 -0
  625. package/sdk/dist/query/command-manifest.init.d.ts.map +1 -0
  626. package/sdk/dist/query/command-manifest.init.js +22 -0
  627. package/sdk/dist/query/command-manifest.init.js.map +1 -0
  628. package/sdk/dist/query/command-manifest.js +17 -0
  629. package/sdk/dist/query/command-manifest.js.map +1 -0
  630. package/sdk/dist/query/command-manifest.non-family.d.ts +9 -0
  631. package/sdk/dist/query/command-manifest.non-family.d.ts.map +1 -0
  632. package/sdk/dist/query/command-manifest.non-family.js +62 -0
  633. package/sdk/dist/query/command-manifest.non-family.js.map +1 -0
  634. package/sdk/dist/query/command-manifest.phase.d.ts +6 -0
  635. package/sdk/dist/query/command-manifest.phase.d.ts.map +1 -0
  636. package/sdk/dist/query/command-manifest.phase.js +15 -0
  637. package/sdk/dist/query/command-manifest.phase.js.map +1 -0
  638. package/sdk/dist/query/command-manifest.phases.d.ts +7 -0
  639. package/sdk/dist/query/command-manifest.phases.d.ts.map +1 -0
  640. package/sdk/dist/query/command-manifest.phases.js +10 -0
  641. package/sdk/dist/query/command-manifest.phases.js.map +1 -0
  642. package/sdk/dist/query/command-manifest.roadmap.d.ts +6 -0
  643. package/sdk/dist/query/command-manifest.roadmap.d.ts.map +1 -0
  644. package/sdk/dist/query/command-manifest.roadmap.js +10 -0
  645. package/sdk/dist/query/command-manifest.roadmap.js.map +1 -0
  646. package/sdk/dist/query/command-manifest.state.d.ts +9 -0
  647. package/sdk/dist/query/command-manifest.state.d.ts.map +1 -0
  648. package/sdk/dist/query/command-manifest.state.js +30 -0
  649. package/sdk/dist/query/command-manifest.state.js.map +1 -0
  650. package/sdk/dist/query/command-manifest.types.d.ts +12 -0
  651. package/sdk/dist/query/command-manifest.types.d.ts.map +1 -0
  652. package/sdk/dist/query/command-manifest.types.js +2 -0
  653. package/sdk/dist/query/command-manifest.types.js.map +1 -0
  654. package/sdk/dist/query/command-manifest.validate.d.ts +6 -0
  655. package/sdk/dist/query/command-manifest.validate.d.ts.map +1 -0
  656. package/sdk/dist/query/command-manifest.validate.js +10 -0
  657. package/sdk/dist/query/command-manifest.validate.js.map +1 -0
  658. package/sdk/dist/query/command-manifest.verify.d.ts +6 -0
  659. package/sdk/dist/query/command-manifest.verify.d.ts.map +1 -0
  660. package/sdk/dist/query/command-manifest.verify.js +14 -0
  661. package/sdk/dist/query/command-manifest.verify.js.map +1 -0
  662. package/sdk/dist/query/command-static-catalog-domain.d.ts +3 -0
  663. package/sdk/dist/query/command-static-catalog-domain.d.ts.map +1 -0
  664. package/sdk/dist/query/command-static-catalog-domain.js +120 -0
  665. package/sdk/dist/query/command-static-catalog-domain.js.map +1 -0
  666. package/sdk/dist/query/command-static-catalog-foundation.d.ts +7 -0
  667. package/sdk/dist/query/command-static-catalog-foundation.d.ts.map +1 -0
  668. package/sdk/dist/query/command-static-catalog-foundation.js +95 -0
  669. package/sdk/dist/query/command-static-catalog-foundation.js.map +1 -0
  670. package/sdk/dist/query/command-topology.d.ts +32 -0
  671. package/sdk/dist/query/command-topology.d.ts.map +1 -0
  672. package/sdk/dist/query/command-topology.js +66 -0
  673. package/sdk/dist/query/command-topology.js.map +1 -0
  674. package/sdk/dist/query/commands-list.d.ts +14 -0
  675. package/sdk/dist/query/commands-list.d.ts.map +1 -0
  676. package/sdk/dist/query/commands-list.js +18 -0
  677. package/sdk/dist/query/commands-list.js.map +1 -0
  678. package/sdk/dist/query/commit.d.ts +79 -0
  679. package/sdk/dist/query/commit.d.ts.map +1 -0
  680. package/sdk/dist/query/commit.js +340 -0
  681. package/sdk/dist/query/commit.js.map +1 -0
  682. package/sdk/dist/query/config-gates.d.ts +12 -0
  683. package/sdk/dist/query/config-gates.d.ts.map +1 -0
  684. package/sdk/dist/query/config-gates.js +66 -0
  685. package/sdk/dist/query/config-gates.js.map +1 -0
  686. package/sdk/dist/query/config-mutation.d.ts +86 -0
  687. package/sdk/dist/query/config-mutation.d.ts.map +1 -0
  688. package/sdk/dist/query/config-mutation.js +445 -0
  689. package/sdk/dist/query/config-mutation.js.map +1 -0
  690. package/sdk/dist/query/config-query.d.ts +57 -0
  691. package/sdk/dist/query/config-query.d.ts.map +1 -0
  692. package/sdk/dist/query/config-query.js +208 -0
  693. package/sdk/dist/query/config-query.js.map +1 -0
  694. package/sdk/dist/query/config-schema.d.ts +19 -0
  695. package/sdk/dist/query/config-schema.d.ts.map +1 -0
  696. package/sdk/dist/query/config-schema.js +26 -0
  697. package/sdk/dist/query/config-schema.js.map +1 -0
  698. package/sdk/dist/query/decisions.d.ts +58 -0
  699. package/sdk/dist/query/decisions.d.ts.map +1 -0
  700. package/sdk/dist/query/decisions.js +161 -0
  701. package/sdk/dist/query/decisions.js.map +1 -0
  702. package/sdk/dist/query/detect-custom-files.d.ts +11 -0
  703. package/sdk/dist/query/detect-custom-files.d.ts.map +1 -0
  704. package/sdk/dist/query/detect-custom-files.js +89 -0
  705. package/sdk/dist/query/detect-custom-files.js.map +1 -0
  706. package/sdk/dist/query/detect-phase-type.d.ts +9 -0
  707. package/sdk/dist/query/detect-phase-type.d.ts.map +1 -0
  708. package/sdk/dist/query/detect-phase-type.js +124 -0
  709. package/sdk/dist/query/detect-phase-type.js.map +1 -0
  710. package/sdk/dist/query/docs-init.d.ts +26 -0
  711. package/sdk/dist/query/docs-init.d.ts.map +1 -0
  712. package/sdk/dist/query/docs-init.js +231 -0
  713. package/sdk/dist/query/docs-init.js.map +1 -0
  714. package/sdk/dist/query/fallow-audit.d.ts +44 -0
  715. package/sdk/dist/query/fallow-audit.d.ts.map +1 -0
  716. package/sdk/dist/query/fallow-audit.js +44 -0
  717. package/sdk/dist/query/fallow-audit.js.map +1 -0
  718. package/sdk/dist/query/frontmatter-mutation.d.ts +77 -0
  719. package/sdk/dist/query/frontmatter-mutation.d.ts.map +1 -0
  720. package/sdk/dist/query/frontmatter-mutation.js +317 -0
  721. package/sdk/dist/query/frontmatter-mutation.js.map +1 -0
  722. package/sdk/dist/query/frontmatter.d.ts +93 -0
  723. package/sdk/dist/query/frontmatter.d.ts.map +1 -0
  724. package/sdk/dist/query/frontmatter.js +365 -0
  725. package/sdk/dist/query/frontmatter.js.map +1 -0
  726. package/sdk/dist/query/helpers.d.ts +167 -0
  727. package/sdk/dist/query/helpers.d.ts.map +1 -0
  728. package/sdk/dist/query/helpers.js +495 -0
  729. package/sdk/dist/query/helpers.js.map +1 -0
  730. package/sdk/dist/query/index.d.ts +8 -0
  731. package/sdk/dist/query/index.d.ts.map +1 -0
  732. package/sdk/dist/query/index.js +6 -0
  733. package/sdk/dist/query/index.js.map +1 -0
  734. package/sdk/dist/query/init-complex.d.ts +47 -0
  735. package/sdk/dist/query/init-complex.d.ts.map +1 -0
  736. package/sdk/dist/query/init-complex.js +723 -0
  737. package/sdk/dist/query/init-complex.js.map +1 -0
  738. package/sdk/dist/query/init.d.ts +98 -0
  739. package/sdk/dist/query/init.d.ts.map +1 -0
  740. package/sdk/dist/query/init.js +1074 -0
  741. package/sdk/dist/query/init.js.map +1 -0
  742. package/sdk/dist/query/intel.d.ts +43 -0
  743. package/sdk/dist/query/intel.d.ts.map +1 -0
  744. package/sdk/dist/query/intel.js +416 -0
  745. package/sdk/dist/query/intel.js.map +1 -0
  746. package/sdk/dist/query/mutation-event-decorator.d.ts +5 -0
  747. package/sdk/dist/query/mutation-event-decorator.d.ts.map +1 -0
  748. package/sdk/dist/query/mutation-event-decorator.js +28 -0
  749. package/sdk/dist/query/mutation-event-decorator.js.map +1 -0
  750. package/sdk/dist/query/mutation-event-mapper.d.ts +4 -0
  751. package/sdk/dist/query/mutation-event-mapper.d.ts.map +1 -0
  752. package/sdk/dist/query/mutation-event-mapper.js +70 -0
  753. package/sdk/dist/query/mutation-event-mapper.js.map +1 -0
  754. package/sdk/dist/query/mvp.d.ts +113 -0
  755. package/sdk/dist/query/mvp.d.ts.map +1 -0
  756. package/sdk/dist/query/mvp.js +225 -0
  757. package/sdk/dist/query/mvp.js.map +1 -0
  758. package/sdk/dist/query/phase-filesystem-adapter.d.ts +4 -0
  759. package/sdk/dist/query/phase-filesystem-adapter.d.ts.map +1 -0
  760. package/sdk/dist/query/phase-filesystem-adapter.js +33 -0
  761. package/sdk/dist/query/phase-filesystem-adapter.js.map +1 -0
  762. package/sdk/dist/query/phase-lifecycle-policy.d.ts +34 -0
  763. package/sdk/dist/query/phase-lifecycle-policy.d.ts.map +1 -0
  764. package/sdk/dist/query/phase-lifecycle-policy.js +138 -0
  765. package/sdk/dist/query/phase-lifecycle-policy.js.map +1 -0
  766. package/sdk/dist/query/phase-lifecycle.d.ts +116 -0
  767. package/sdk/dist/query/phase-lifecycle.d.ts.map +1 -0
  768. package/sdk/dist/query/phase-lifecycle.js +1486 -0
  769. package/sdk/dist/query/phase-lifecycle.js.map +1 -0
  770. package/sdk/dist/query/phase-list-queries.d.ts +18 -0
  771. package/sdk/dist/query/phase-list-queries.d.ts.map +1 -0
  772. package/sdk/dist/query/phase-list-queries.js +129 -0
  773. package/sdk/dist/query/phase-list-queries.js.map +1 -0
  774. package/sdk/dist/query/phase-ready.d.ts +9 -0
  775. package/sdk/dist/query/phase-ready.d.ts.map +1 -0
  776. package/sdk/dist/query/phase-ready.js +132 -0
  777. package/sdk/dist/query/phase-ready.js.map +1 -0
  778. package/sdk/dist/query/phase-roadmap-mutation.d.ts +13 -0
  779. package/sdk/dist/query/phase-roadmap-mutation.d.ts.map +1 -0
  780. package/sdk/dist/query/phase-roadmap-mutation.js +65 -0
  781. package/sdk/dist/query/phase-roadmap-mutation.js.map +1 -0
  782. package/sdk/dist/query/phase.d.ts +48 -0
  783. package/sdk/dist/query/phase.d.ts.map +1 -0
  784. package/sdk/dist/query/phase.js +451 -0
  785. package/sdk/dist/query/phase.js.map +1 -0
  786. package/sdk/dist/query/pipeline.d.ts +53 -0
  787. package/sdk/dist/query/pipeline.d.ts.map +1 -0
  788. package/sdk/dist/query/pipeline.js +198 -0
  789. package/sdk/dist/query/pipeline.js.map +1 -0
  790. package/sdk/dist/query/plan-scan.d.ts +14 -0
  791. package/sdk/dist/query/plan-scan.d.ts.map +1 -0
  792. package/sdk/dist/query/plan-scan.js +70 -0
  793. package/sdk/dist/query/plan-scan.js.map +1 -0
  794. package/sdk/dist/query/plan-task-structure.d.ts +9 -0
  795. package/sdk/dist/query/plan-task-structure.d.ts.map +1 -0
  796. package/sdk/dist/query/plan-task-structure.js +59 -0
  797. package/sdk/dist/query/plan-task-structure.js.map +1 -0
  798. package/sdk/dist/query/profile-extract-messages.d.ts +40 -0
  799. package/sdk/dist/query/profile-extract-messages.d.ts.map +1 -0
  800. package/sdk/dist/query/profile-extract-messages.js +195 -0
  801. package/sdk/dist/query/profile-extract-messages.js.map +1 -0
  802. package/sdk/dist/query/profile-output.d.ts +11 -0
  803. package/sdk/dist/query/profile-output.d.ts.map +1 -0
  804. package/sdk/dist/query/profile-output.js +873 -0
  805. package/sdk/dist/query/profile-output.js.map +1 -0
  806. package/sdk/dist/query/profile-questionnaire-data.d.ts +21 -0
  807. package/sdk/dist/query/profile-questionnaire-data.d.ts.map +1 -0
  808. package/sdk/dist/query/profile-questionnaire-data.js +171 -0
  809. package/sdk/dist/query/profile-questionnaire-data.js.map +1 -0
  810. package/sdk/dist/query/profile-sample.d.ts +22 -0
  811. package/sdk/dist/query/profile-sample.d.ts.map +1 -0
  812. package/sdk/dist/query/profile-sample.js +136 -0
  813. package/sdk/dist/query/profile-sample.js.map +1 -0
  814. package/sdk/dist/query/profile-scan-sessions.d.ts +49 -0
  815. package/sdk/dist/query/profile-scan-sessions.d.ts.map +1 -0
  816. package/sdk/dist/query/profile-scan-sessions.js +137 -0
  817. package/sdk/dist/query/profile-scan-sessions.js.map +1 -0
  818. package/sdk/dist/query/profile.d.ts +61 -0
  819. package/sdk/dist/query/profile.d.ts.map +1 -0
  820. package/sdk/dist/query/profile.js +307 -0
  821. package/sdk/dist/query/profile.js.map +1 -0
  822. package/sdk/dist/query/progress.d.ts +77 -0
  823. package/sdk/dist/query/progress.d.ts.map +1 -0
  824. package/sdk/dist/query/progress.js +481 -0
  825. package/sdk/dist/query/progress.js.map +1 -0
  826. package/sdk/dist/query/query-cli-adapter.d.ts +8 -0
  827. package/sdk/dist/query/query-cli-adapter.d.ts.map +1 -0
  828. package/sdk/dist/query/query-cli-adapter.js +32 -0
  829. package/sdk/dist/query/query-cli-adapter.js.map +1 -0
  830. package/sdk/dist/query/query-cli-output.d.ts +9 -0
  831. package/sdk/dist/query/query-cli-output.d.ts.map +1 -0
  832. package/sdk/dist/query/query-cli-output.js +54 -0
  833. package/sdk/dist/query/query-cli-output.js.map +1 -0
  834. package/sdk/dist/query/query-command-diagnosis.d.ts +6 -0
  835. package/sdk/dist/query/query-command-diagnosis.d.ts.map +1 -0
  836. package/sdk/dist/query/query-command-diagnosis.js +6 -0
  837. package/sdk/dist/query/query-command-diagnosis.js.map +1 -0
  838. package/sdk/dist/query/query-command-resolution-strategy.d.ts +29 -0
  839. package/sdk/dist/query/query-command-resolution-strategy.d.ts.map +1 -0
  840. package/sdk/dist/query/query-command-resolution-strategy.js +103 -0
  841. package/sdk/dist/query/query-command-resolution-strategy.js.map +1 -0
  842. package/sdk/dist/query/query-command-semantics.d.ts +7 -0
  843. package/sdk/dist/query/query-command-semantics.d.ts.map +1 -0
  844. package/sdk/dist/query/query-command-semantics.js +7 -0
  845. package/sdk/dist/query/query-command-semantics.js.map +1 -0
  846. package/sdk/dist/query/query-dispatch-contract.d.ts +21 -0
  847. package/sdk/dist/query/query-dispatch-contract.d.ts.map +1 -0
  848. package/sdk/dist/query/query-dispatch-contract.js +2 -0
  849. package/sdk/dist/query/query-dispatch-contract.js.map +1 -0
  850. package/sdk/dist/query/query-dispatch-error-mapper.d.ts +6 -0
  851. package/sdk/dist/query/query-dispatch-error-mapper.d.ts.map +1 -0
  852. package/sdk/dist/query/query-dispatch-error-mapper.js +6 -0
  853. package/sdk/dist/query/query-dispatch-error-mapper.js.map +1 -0
  854. package/sdk/dist/query/query-dispatch-formatting.d.ts +6 -0
  855. package/sdk/dist/query/query-dispatch-formatting.d.ts.map +1 -0
  856. package/sdk/dist/query/query-dispatch-formatting.js +6 -0
  857. package/sdk/dist/query/query-dispatch-formatting.js.map +1 -0
  858. package/sdk/dist/query/query-dispatch-input-validation.d.ts +6 -0
  859. package/sdk/dist/query/query-dispatch-input-validation.d.ts.map +1 -0
  860. package/sdk/dist/query/query-dispatch-input-validation.js +6 -0
  861. package/sdk/dist/query/query-dispatch-input-validation.js.map +1 -0
  862. package/sdk/dist/query/query-dispatch-observability.d.ts +2 -0
  863. package/sdk/dist/query/query-dispatch-observability.d.ts.map +1 -0
  864. package/sdk/dist/query/query-dispatch-observability.js +7 -0
  865. package/sdk/dist/query/query-dispatch-observability.js.map +1 -0
  866. package/sdk/dist/query/query-dispatch-plan.d.ts +6 -0
  867. package/sdk/dist/query/query-dispatch-plan.d.ts.map +1 -0
  868. package/sdk/dist/query/query-dispatch-plan.js +6 -0
  869. package/sdk/dist/query/query-dispatch-plan.js.map +1 -0
  870. package/sdk/dist/query/query-dispatch-result-builder.d.ts +6 -0
  871. package/sdk/dist/query/query-dispatch-result-builder.d.ts.map +1 -0
  872. package/sdk/dist/query/query-dispatch-result-builder.js +6 -0
  873. package/sdk/dist/query/query-dispatch-result-builder.js.map +1 -0
  874. package/sdk/dist/query/query-dispatch.d.ts +48 -0
  875. package/sdk/dist/query/query-dispatch.d.ts.map +1 -0
  876. package/sdk/dist/query/query-dispatch.js +205 -0
  877. package/sdk/dist/query/query-dispatch.js.map +1 -0
  878. package/sdk/dist/query/query-error-details-schema.d.ts +19 -0
  879. package/sdk/dist/query/query-error-details-schema.d.ts.map +1 -0
  880. package/sdk/dist/query/query-error-details-schema.js +10 -0
  881. package/sdk/dist/query/query-error-details-schema.js.map +1 -0
  882. package/sdk/dist/query/query-error-taxonomy.d.ts +38 -0
  883. package/sdk/dist/query/query-error-taxonomy.d.ts.map +1 -0
  884. package/sdk/dist/query/query-error-taxonomy.js +74 -0
  885. package/sdk/dist/query/query-error-taxonomy.js.map +1 -0
  886. package/sdk/dist/query/query-fallback-bridge-adapter.d.ts +14 -0
  887. package/sdk/dist/query/query-fallback-bridge-adapter.d.ts.map +1 -0
  888. package/sdk/dist/query/query-fallback-bridge-adapter.js +33 -0
  889. package/sdk/dist/query/query-fallback-bridge-adapter.js.map +1 -0
  890. package/sdk/dist/query/query-fallback-executor.d.ts +11 -0
  891. package/sdk/dist/query/query-fallback-executor.d.ts.map +1 -0
  892. package/sdk/dist/query/query-fallback-executor.js +31 -0
  893. package/sdk/dist/query/query-fallback-executor.js.map +1 -0
  894. package/sdk/dist/query/query-fallback-output-classifier.d.ts +6 -0
  895. package/sdk/dist/query/query-fallback-output-classifier.d.ts.map +1 -0
  896. package/sdk/dist/query/query-fallback-output-classifier.js +27 -0
  897. package/sdk/dist/query/query-fallback-output-classifier.js.map +1 -0
  898. package/sdk/dist/query/query-fallback-policy.d.ts +6 -0
  899. package/sdk/dist/query/query-fallback-policy.d.ts.map +1 -0
  900. package/sdk/dist/query/query-fallback-policy.js +7 -0
  901. package/sdk/dist/query/query-fallback-policy.js.map +1 -0
  902. package/sdk/dist/query/query-native-dispatch-adapter.d.ts +7 -0
  903. package/sdk/dist/query/query-native-dispatch-adapter.d.ts.map +1 -0
  904. package/sdk/dist/query/query-native-dispatch-adapter.js +6 -0
  905. package/sdk/dist/query/query-native-dispatch-adapter.js.map +1 -0
  906. package/sdk/dist/query/query-policy-capability.d.ts +10 -0
  907. package/sdk/dist/query/query-policy-capability.d.ts.map +1 -0
  908. package/sdk/dist/query/query-policy-capability.js +17 -0
  909. package/sdk/dist/query/query-policy-capability.js.map +1 -0
  910. package/sdk/dist/query/query-runtime-context.d.ts +19 -0
  911. package/sdk/dist/query/query-runtime-context.d.ts.map +1 -0
  912. package/sdk/dist/query/query-runtime-context.js +31 -0
  913. package/sdk/dist/query/query-runtime-context.js.map +1 -0
  914. package/sdk/dist/query/query-unknown-command-hints.d.ts +2 -0
  915. package/sdk/dist/query/query-unknown-command-hints.d.ts.map +1 -0
  916. package/sdk/dist/query/query-unknown-command-hints.js +6 -0
  917. package/sdk/dist/query/query-unknown-command-hints.js.map +1 -0
  918. package/sdk/dist/query/registry-assembly-descriptor.d.ts +12 -0
  919. package/sdk/dist/query/registry-assembly-descriptor.d.ts.map +1 -0
  920. package/sdk/dist/query/registry-assembly-descriptor.js +61 -0
  921. package/sdk/dist/query/registry-assembly-descriptor.js.map +1 -0
  922. package/sdk/dist/query/registry-assembly-invariants.d.ts +30 -0
  923. package/sdk/dist/query/registry-assembly-invariants.d.ts.map +1 -0
  924. package/sdk/dist/query/registry-assembly-invariants.js +77 -0
  925. package/sdk/dist/query/registry-assembly-invariants.js.map +1 -0
  926. package/sdk/dist/query/registry-assembly.d.ts +10 -0
  927. package/sdk/dist/query/registry-assembly.d.ts.map +1 -0
  928. package/sdk/dist/query/registry-assembly.js +53 -0
  929. package/sdk/dist/query/registry-assembly.js.map +1 -0
  930. package/sdk/dist/query/registry.d.ts +90 -0
  931. package/sdk/dist/query/registry.d.ts.map +1 -0
  932. package/sdk/dist/query/registry.js +129 -0
  933. package/sdk/dist/query/registry.js.map +1 -0
  934. package/sdk/dist/query/requirements-extract-from-plans.d.ts +9 -0
  935. package/sdk/dist/query/requirements-extract-from-plans.d.ts.map +1 -0
  936. package/sdk/dist/query/requirements-extract-from-plans.js +76 -0
  937. package/sdk/dist/query/requirements-extract-from-plans.js.map +1 -0
  938. package/sdk/dist/query/roadmap-update-plan-progress.d.ts +11 -0
  939. package/sdk/dist/query/roadmap-update-plan-progress.d.ts.map +1 -0
  940. package/sdk/dist/query/roadmap-update-plan-progress.js +124 -0
  941. package/sdk/dist/query/roadmap-update-plan-progress.js.map +1 -0
  942. package/sdk/dist/query/roadmap.d.ts +137 -0
  943. package/sdk/dist/query/roadmap.d.ts.map +1 -0
  944. package/sdk/dist/query/roadmap.js +753 -0
  945. package/sdk/dist/query/roadmap.js.map +1 -0
  946. package/sdk/dist/query/route-next-action.d.ts +9 -0
  947. package/sdk/dist/query/route-next-action.d.ts.map +1 -0
  948. package/sdk/dist/query/route-next-action.js +342 -0
  949. package/sdk/dist/query/route-next-action.js.map +1 -0
  950. package/sdk/dist/query/schema-detect.d.ts +21 -0
  951. package/sdk/dist/query/schema-detect.d.ts.map +1 -0
  952. package/sdk/dist/query/schema-detect.js +146 -0
  953. package/sdk/dist/query/schema-detect.js.map +1 -0
  954. package/sdk/dist/query/secrets.d.ts +27 -0
  955. package/sdk/dist/query/secrets.d.ts.map +1 -0
  956. package/sdk/dist/query/secrets.js +42 -0
  957. package/sdk/dist/query/secrets.js.map +1 -0
  958. package/sdk/dist/query/skill-manifest.d.ts +50 -0
  959. package/sdk/dist/query/skill-manifest.d.ts.map +1 -0
  960. package/sdk/dist/query/skill-manifest.js +171 -0
  961. package/sdk/dist/query/skill-manifest.js.map +1 -0
  962. package/sdk/dist/query/skills.d.ts +27 -0
  963. package/sdk/dist/query/skills.d.ts.map +1 -0
  964. package/sdk/dist/query/skills.js +137 -0
  965. package/sdk/dist/query/skills.js.map +1 -0
  966. package/sdk/dist/query/state-document.d.ts +14 -0
  967. package/sdk/dist/query/state-document.d.ts.map +1 -0
  968. package/sdk/dist/query/state-document.js +110 -0
  969. package/sdk/dist/query/state-document.js.map +1 -0
  970. package/sdk/dist/query/state-mutation.d.ts +224 -0
  971. package/sdk/dist/query/state-mutation.d.ts.map +1 -0
  972. package/sdk/dist/query/state-mutation.js +1539 -0
  973. package/sdk/dist/query/state-mutation.js.map +1 -0
  974. package/sdk/dist/query/state-project-load.d.ts +23 -0
  975. package/sdk/dist/query/state-project-load.d.ts.map +1 -0
  976. package/sdk/dist/query/state-project-load.js +75 -0
  977. package/sdk/dist/query/state-project-load.js.map +1 -0
  978. package/sdk/dist/query/state.d.ts +78 -0
  979. package/sdk/dist/query/state.d.ts.map +1 -0
  980. package/sdk/dist/query/state.js +430 -0
  981. package/sdk/dist/query/state.js.map +1 -0
  982. package/sdk/dist/query/summary.d.ts +18 -0
  983. package/sdk/dist/query/summary.d.ts.map +1 -0
  984. package/sdk/dist/query/summary.js +249 -0
  985. package/sdk/dist/query/summary.js.map +1 -0
  986. package/sdk/dist/query/task-issues.d.ts +5 -0
  987. package/sdk/dist/query/task-issues.d.ts.map +1 -0
  988. package/sdk/dist/query/task-issues.js +72 -0
  989. package/sdk/dist/query/task-issues.js.map +1 -0
  990. package/sdk/dist/query/template.d.ts +46 -0
  991. package/sdk/dist/query/template.d.ts.map +1 -0
  992. package/sdk/dist/query/template.js +210 -0
  993. package/sdk/dist/query/template.js.map +1 -0
  994. package/sdk/dist/query/uat.d.ts +34 -0
  995. package/sdk/dist/query/uat.d.ts.map +1 -0
  996. package/sdk/dist/query/uat.js +339 -0
  997. package/sdk/dist/query/uat.js.map +1 -0
  998. package/sdk/dist/query/utils.d.ts +59 -0
  999. package/sdk/dist/query/utils.d.ts.map +1 -0
  1000. package/sdk/dist/query/utils.js +74 -0
  1001. package/sdk/dist/query/utils.js.map +1 -0
  1002. package/sdk/dist/query/validate.d.ts +67 -0
  1003. package/sdk/dist/query/validate.d.ts.map +1 -0
  1004. package/sdk/dist/query/validate.js +908 -0
  1005. package/sdk/dist/query/validate.js.map +1 -0
  1006. package/sdk/dist/query/verify.d.ts +110 -0
  1007. package/sdk/dist/query/verify.d.ts.map +1 -0
  1008. package/sdk/dist/query/verify.js +647 -0
  1009. package/sdk/dist/query/verify.js.map +1 -0
  1010. package/sdk/dist/query/websearch.d.ts +24 -0
  1011. package/sdk/dist/query/websearch.d.ts.map +1 -0
  1012. package/sdk/dist/query/websearch.js +68 -0
  1013. package/sdk/dist/query/websearch.js.map +1 -0
  1014. package/sdk/dist/query/workspace.d.ts +62 -0
  1015. package/sdk/dist/query/workspace.d.ts.map +1 -0
  1016. package/sdk/dist/query/workspace.js +104 -0
  1017. package/sdk/dist/query/workspace.js.map +1 -0
  1018. package/sdk/dist/query/workstream-inventory.d.ts +24 -0
  1019. package/sdk/dist/query/workstream-inventory.d.ts.map +1 -0
  1020. package/sdk/dist/query/workstream-inventory.js +120 -0
  1021. package/sdk/dist/query/workstream-inventory.js.map +1 -0
  1022. package/sdk/dist/query/workstream.d.ts +35 -0
  1023. package/sdk/dist/query/workstream.d.ts.map +1 -0
  1024. package/sdk/dist/query/workstream.js +298 -0
  1025. package/sdk/dist/query/workstream.js.map +1 -0
  1026. package/sdk/dist/query/worktree.d.ts +3 -0
  1027. package/sdk/dist/query/worktree.d.ts.map +1 -0
  1028. package/sdk/dist/query/worktree.js +36 -0
  1029. package/sdk/dist/query/worktree.js.map +1 -0
  1030. package/sdk/dist/query-command-executor.d.ts +22 -0
  1031. package/sdk/dist/query-command-executor.d.ts.map +1 -0
  1032. package/sdk/dist/query-command-executor.js +22 -0
  1033. package/sdk/dist/query-command-executor.js.map +1 -0
  1034. package/sdk/dist/query-execution-policy.d.ts +24 -0
  1035. package/sdk/dist/query-execution-policy.d.ts.map +1 -0
  1036. package/sdk/dist/query-execution-policy.js +27 -0
  1037. package/sdk/dist/query-execution-policy.js.map +1 -0
  1038. package/sdk/dist/query-failure-classification.d.ts +9 -0
  1039. package/sdk/dist/query-failure-classification.d.ts.map +1 -0
  1040. package/sdk/dist/query-failure-classification.js +32 -0
  1041. package/sdk/dist/query-failure-classification.js.map +1 -0
  1042. package/sdk/dist/query-gtd-tools-path.d.ts +2 -0
  1043. package/sdk/dist/query-gtd-tools-path.d.ts.map +1 -0
  1044. package/sdk/dist/query-gtd-tools-path.js +2 -0
  1045. package/sdk/dist/query-gtd-tools-path.js.map +1 -0
  1046. package/sdk/dist/query-gtd-tools-runtime.d.ts +20 -0
  1047. package/sdk/dist/query-gtd-tools-runtime.d.ts.map +1 -0
  1048. package/sdk/dist/query-gtd-tools-runtime.js +47 -0
  1049. package/sdk/dist/query-gtd-tools-runtime.js.map +1 -0
  1050. package/sdk/dist/query-hotpath-methods.d.ts +19 -0
  1051. package/sdk/dist/query-hotpath-methods.d.ts.map +1 -0
  1052. package/sdk/dist/query-hotpath-methods.js +34 -0
  1053. package/sdk/dist/query-hotpath-methods.js.map +1 -0
  1054. package/sdk/dist/query-native-direct-adapter.d.ts +20 -0
  1055. package/sdk/dist/query-native-direct-adapter.d.ts.map +1 -0
  1056. package/sdk/dist/query-native-direct-adapter.js +52 -0
  1057. package/sdk/dist/query-native-direct-adapter.js.map +1 -0
  1058. package/sdk/dist/query-native-hotpath-adapter.d.ts +15 -0
  1059. package/sdk/dist/query-native-hotpath-adapter.d.ts.map +1 -0
  1060. package/sdk/dist/query-native-hotpath-adapter.js +32 -0
  1061. package/sdk/dist/query-native-hotpath-adapter.js.map +1 -0
  1062. package/sdk/dist/query-raw-output-projection.d.ts +6 -0
  1063. package/sdk/dist/query-raw-output-projection.d.ts.map +1 -0
  1064. package/sdk/dist/query-raw-output-projection.js +67 -0
  1065. package/sdk/dist/query-raw-output-projection.js.map +1 -0
  1066. package/sdk/dist/query-runtime-bridge.d.ts +61 -0
  1067. package/sdk/dist/query-runtime-bridge.d.ts.map +1 -0
  1068. package/sdk/dist/query-runtime-bridge.js +144 -0
  1069. package/sdk/dist/query-runtime-bridge.js.map +1 -0
  1070. package/sdk/dist/query-subprocess-adapter.d.ts +18 -0
  1071. package/sdk/dist/query-subprocess-adapter.d.ts.map +1 -0
  1072. package/sdk/dist/query-subprocess-adapter.js +92 -0
  1073. package/sdk/dist/query-subprocess-adapter.js.map +1 -0
  1074. package/sdk/dist/query-tools-error-factory.d.ts +16 -0
  1075. package/sdk/dist/query-tools-error-factory.d.ts.map +1 -0
  1076. package/sdk/dist/query-tools-error-factory.js +33 -0
  1077. package/sdk/dist/query-tools-error-factory.js.map +1 -0
  1078. package/sdk/dist/research-gate.d.ts +24 -0
  1079. package/sdk/dist/research-gate.d.ts.map +1 -0
  1080. package/sdk/dist/research-gate.js +70 -0
  1081. package/sdk/dist/research-gate.js.map +1 -0
  1082. package/sdk/dist/runtime-bridge-sync/index.d.ts +96 -0
  1083. package/sdk/dist/runtime-bridge-sync/index.d.ts.map +1 -0
  1084. package/sdk/dist/runtime-bridge-sync/index.js +109 -0
  1085. package/sdk/dist/runtime-bridge-sync/index.js.map +1 -0
  1086. package/sdk/dist/runtime-bridge-sync/worker.d.ts +2 -0
  1087. package/sdk/dist/runtime-bridge-sync/worker.d.ts.map +1 -0
  1088. package/sdk/dist/runtime-bridge-sync/worker.js +138 -0
  1089. package/sdk/dist/runtime-bridge-sync/worker.js.map +1 -0
  1090. package/sdk/dist/runtime-gate.d.ts +14 -0
  1091. package/sdk/dist/runtime-gate.d.ts.map +1 -0
  1092. package/sdk/dist/runtime-gate.js +48 -0
  1093. package/sdk/dist/runtime-gate.js.map +1 -0
  1094. package/sdk/dist/sdk-package-compatibility.d.ts +40 -0
  1095. package/sdk/dist/sdk-package-compatibility.d.ts.map +1 -0
  1096. package/sdk/dist/sdk-package-compatibility.js +94 -0
  1097. package/sdk/dist/sdk-package-compatibility.js.map +1 -0
  1098. package/sdk/dist/session-runner.d.ts +40 -0
  1099. package/sdk/dist/session-runner.d.ts.map +1 -0
  1100. package/sdk/dist/session-runner.js +274 -0
  1101. package/sdk/dist/session-runner.js.map +1 -0
  1102. package/sdk/dist/task-issues/adapters.d.ts +94 -0
  1103. package/sdk/dist/task-issues/adapters.d.ts.map +1 -0
  1104. package/sdk/dist/task-issues/adapters.js +2 -0
  1105. package/sdk/dist/task-issues/adapters.js.map +1 -0
  1106. package/sdk/dist/task-issues/core.d.ts +16 -0
  1107. package/sdk/dist/task-issues/core.d.ts.map +1 -0
  1108. package/sdk/dist/task-issues/core.js +283 -0
  1109. package/sdk/dist/task-issues/core.js.map +1 -0
  1110. package/sdk/dist/task-issues/export-phase-issues.d.ts +326 -0
  1111. package/sdk/dist/task-issues/export-phase-issues.d.ts.map +1 -0
  1112. package/sdk/dist/task-issues/export-phase-issues.js +1675 -0
  1113. package/sdk/dist/task-issues/export-phase-issues.js.map +1 -0
  1114. package/sdk/dist/task-issues/github-api-client.d.ts +23 -0
  1115. package/sdk/dist/task-issues/github-api-client.d.ts.map +1 -0
  1116. package/sdk/dist/task-issues/github-api-client.js +66 -0
  1117. package/sdk/dist/task-issues/github-api-client.js.map +1 -0
  1118. package/sdk/dist/task-issues/github-repo.d.ts +4 -0
  1119. package/sdk/dist/task-issues/github-repo.d.ts.map +1 -0
  1120. package/sdk/dist/task-issues/github-repo.js +108 -0
  1121. package/sdk/dist/task-issues/github-repo.js.map +1 -0
  1122. package/sdk/dist/task-issues/orchestrate-tasks.d.ts +319 -0
  1123. package/sdk/dist/task-issues/orchestrate-tasks.d.ts.map +1 -0
  1124. package/sdk/dist/task-issues/orchestrate-tasks.js +2040 -0
  1125. package/sdk/dist/task-issues/orchestrate-tasks.js.map +1 -0
  1126. package/sdk/dist/task-issues/plan-scan.d.ts +13 -0
  1127. package/sdk/dist/task-issues/plan-scan.d.ts.map +1 -0
  1128. package/sdk/dist/task-issues/plan-scan.js +70 -0
  1129. package/sdk/dist/task-issues/plan-scan.js.map +1 -0
  1130. package/sdk/dist/task-issues/runtime-slash.d.ts +4 -0
  1131. package/sdk/dist/task-issues/runtime-slash.d.ts.map +1 -0
  1132. package/sdk/dist/task-issues/runtime-slash.js +40 -0
  1133. package/sdk/dist/task-issues/runtime-slash.js.map +1 -0
  1134. package/sdk/dist/task-issues/task-issue-shared.d.ts +18 -0
  1135. package/sdk/dist/task-issues/task-issue-shared.d.ts.map +1 -0
  1136. package/sdk/dist/task-issues/task-issue-shared.js +44 -0
  1137. package/sdk/dist/task-issues/task-issue-shared.js.map +1 -0
  1138. package/sdk/dist/task-issues/types.d.ts +30 -0
  1139. package/sdk/dist/task-issues/types.d.ts.map +1 -0
  1140. package/sdk/dist/task-issues/types.js +2 -0
  1141. package/sdk/dist/task-issues/types.js.map +1 -0
  1142. package/sdk/dist/task-issues/work-task-issue.d.ts +1199 -0
  1143. package/sdk/dist/task-issues/work-task-issue.d.ts.map +1 -0
  1144. package/sdk/dist/task-issues/work-task-issue.js +3255 -0
  1145. package/sdk/dist/task-issues/work-task-issue.js.map +1 -0
  1146. package/sdk/dist/task-issues/worktree-safety.d.ts +5 -0
  1147. package/sdk/dist/task-issues/worktree-safety.d.ts.map +1 -0
  1148. package/sdk/dist/task-issues/worktree-safety.js +18 -0
  1149. package/sdk/dist/task-issues/worktree-safety.js.map +1 -0
  1150. package/sdk/dist/tool-scoping.d.ts +31 -0
  1151. package/sdk/dist/tool-scoping.d.ts.map +1 -0
  1152. package/sdk/dist/tool-scoping.js +54 -0
  1153. package/sdk/dist/tool-scoping.js.map +1 -0
  1154. package/sdk/dist/types.d.ts +795 -0
  1155. package/sdk/dist/types.d.ts.map +1 -0
  1156. package/sdk/dist/types.js +77 -0
  1157. package/sdk/dist/types.js.map +1 -0
  1158. package/sdk/dist/workstream-inventory/builder.d.ts +88 -0
  1159. package/sdk/dist/workstream-inventory/builder.d.ts.map +1 -0
  1160. package/sdk/dist/workstream-inventory/builder.js +84 -0
  1161. package/sdk/dist/workstream-inventory/builder.js.map +1 -0
  1162. package/sdk/dist/workstream-name-policy.d.ts +13 -0
  1163. package/sdk/dist/workstream-name-policy.d.ts.map +1 -0
  1164. package/sdk/dist/workstream-name-policy.js +24 -0
  1165. package/sdk/dist/workstream-name-policy.js.map +1 -0
  1166. package/sdk/dist/workstream-utils.d.ts +23 -0
  1167. package/sdk/dist/workstream-utils.d.ts.map +1 -0
  1168. package/sdk/dist/workstream-utils.js +34 -0
  1169. package/sdk/dist/workstream-utils.js.map +1 -0
  1170. package/sdk/dist/ws-transport.d.ts +32 -0
  1171. package/sdk/dist/ws-transport.d.ts.map +1 -0
  1172. package/sdk/dist/ws-transport.js +84 -0
  1173. package/sdk/dist/ws-transport.js.map +1 -0
  1174. package/sdk/package-lock.json +2530 -0
  1175. package/sdk/package.json +67 -0
  1176. package/sdk/prompts/templates/project.md +186 -0
  1177. package/sdk/prompts/templates/requirements.md +231 -0
  1178. package/sdk/prompts/templates/research-project/ARCHITECTURE.md +204 -0
  1179. package/sdk/prompts/templates/research-project/FEATURES.md +147 -0
  1180. package/sdk/prompts/templates/research-project/PITFALLS.md +200 -0
  1181. package/sdk/prompts/templates/research-project/STACK.md +120 -0
  1182. package/sdk/prompts/templates/research-project/SUMMARY.md +170 -0
  1183. package/sdk/prompts/templates/roadmap.md +202 -0
  1184. package/sdk/prompts/templates/state.md +175 -0
  1185. package/sdk/shared/config-defaults.manifest.json +71 -0
  1186. package/sdk/shared/config-schema.manifest.json +139 -0
  1187. package/sdk/shared/model-catalog.json +122 -0
  1188. package/sdk/src/assembled-prompts.test.ts +349 -0
  1189. package/sdk/src/bug-3589-planning-paths-validation.test.ts +89 -0
  1190. package/sdk/src/bug-3591-gtdtools-runtime-workstream.test.ts +179 -0
  1191. package/sdk/src/cli-transport.test.ts +388 -0
  1192. package/sdk/src/cli-transport.ts +130 -0
  1193. package/sdk/src/cli.test.ts +426 -0
  1194. package/sdk/src/cli.ts +589 -0
  1195. package/sdk/src/config.test.ts +277 -0
  1196. package/sdk/src/config.ts +201 -0
  1197. package/sdk/src/configuration/index.test.ts +318 -0
  1198. package/sdk/src/configuration/index.ts +325 -0
  1199. package/sdk/src/context-engine.test.ts +295 -0
  1200. package/sdk/src/context-engine.ts +170 -0
  1201. package/sdk/src/context-truncation.test.ts +163 -0
  1202. package/sdk/src/context-truncation.ts +233 -0
  1203. package/sdk/src/e2e.integration.test.ts +181 -0
  1204. package/sdk/src/errors.ts +72 -0
  1205. package/sdk/src/event-stream.test.ts +661 -0
  1206. package/sdk/src/event-stream.ts +441 -0
  1207. package/sdk/src/golden/capture.ts +95 -0
  1208. package/sdk/src/golden/fixtures/generate-slug.golden.json +1 -0
  1209. package/sdk/src/golden/fixtures/profile-sample-sessions/demo-project/sample.jsonl +3 -0
  1210. package/sdk/src/golden/fixtures/summary-extract-sample.md +26 -0
  1211. package/sdk/src/golden/fixtures/uat-render-checkpoint-sample.md +15 -0
  1212. package/sdk/src/golden/golden-integration-covered.ts +30 -0
  1213. package/sdk/src/golden/golden-mutation-covered.ts +17 -0
  1214. package/sdk/src/golden/golden-policy.test.ts +8 -0
  1215. package/sdk/src/golden/golden-policy.ts +118 -0
  1216. package/sdk/src/golden/golden.integration.test.ts +897 -0
  1217. package/sdk/src/golden/init-golden-normalize.ts +15 -0
  1218. package/sdk/src/golden/read-only-golden-rows.ts +77 -0
  1219. package/sdk/src/golden/read-only-parity.integration.test.ts +133 -0
  1220. package/sdk/src/golden/registry-canonical-commands.ts +31 -0
  1221. package/sdk/src/gtd-tools-error.test.ts +21 -0
  1222. package/sdk/src/gtd-tools-error.ts +65 -0
  1223. package/sdk/src/gtd-tools.test.ts +472 -0
  1224. package/sdk/src/gtd-tools.ts +285 -0
  1225. package/sdk/src/gtd-transport-policy.test.ts +34 -0
  1226. package/sdk/src/gtd-transport-policy.ts +48 -0
  1227. package/sdk/src/gtd-transport.test.ts +292 -0
  1228. package/sdk/src/gtd-transport.ts +117 -0
  1229. package/sdk/src/index.ts +371 -0
  1230. package/sdk/src/init-e2e.integration.test.ts +138 -0
  1231. package/sdk/src/init-runner.test.ts +740 -0
  1232. package/sdk/src/init-runner.ts +734 -0
  1233. package/sdk/src/lifecycle-e2e.integration.test.ts +258 -0
  1234. package/sdk/src/logger.test.ts +149 -0
  1235. package/sdk/src/logger.ts +113 -0
  1236. package/sdk/src/milestone-runner.test.ts +421 -0
  1237. package/sdk/src/model-catalog.ts +77 -0
  1238. package/sdk/src/phase-prompt.test.ts +536 -0
  1239. package/sdk/src/phase-prompt.ts +257 -0
  1240. package/sdk/src/phase-runner-types.test.ts +421 -0
  1241. package/sdk/src/phase-runner.integration.test.ts +377 -0
  1242. package/sdk/src/phase-runner.test.ts +2720 -0
  1243. package/sdk/src/phase-runner.ts +1442 -0
  1244. package/sdk/src/plan-atomicity.test.ts +220 -0
  1245. package/sdk/src/plan-atomicity.ts +162 -0
  1246. package/sdk/src/plan-parser.test.ts +579 -0
  1247. package/sdk/src/plan-parser.ts +433 -0
  1248. package/sdk/src/planning-journal.test.ts +70 -0
  1249. package/sdk/src/planning-journal.ts +153 -0
  1250. package/sdk/src/planning-runtime.test.ts +29 -0
  1251. package/sdk/src/planning-runtime.ts +100 -0
  1252. package/sdk/src/project-root/index.test.ts +186 -0
  1253. package/sdk/src/project-root/index.ts +144 -0
  1254. package/sdk/src/prompt-builder.test.ts +318 -0
  1255. package/sdk/src/prompt-builder.ts +218 -0
  1256. package/sdk/src/prompt-sanitizer.test.ts +260 -0
  1257. package/sdk/src/prompt-sanitizer.ts +116 -0
  1258. package/sdk/src/query/QUERY-HANDLERS.md +346 -0
  1259. package/sdk/src/query/active-workstream-store.ts +50 -0
  1260. package/sdk/src/query/agent-failure-classifier.test.ts +157 -0
  1261. package/sdk/src/query/agent-failure-classifier.ts +104 -0
  1262. package/sdk/src/query/audit-open.ts +722 -0
  1263. package/sdk/src/query/check-auto-mode.test.ts +77 -0
  1264. package/sdk/src/query/check-auto-mode.ts +49 -0
  1265. package/sdk/src/query/check-completion.test.ts +113 -0
  1266. package/sdk/src/query/check-completion.ts +182 -0
  1267. package/sdk/src/query/check-decision-coverage.test.ts +519 -0
  1268. package/sdk/src/query/check-decision-coverage.ts +554 -0
  1269. package/sdk/src/query/check-gates.test.ts +103 -0
  1270. package/sdk/src/query/check-gates.ts +112 -0
  1271. package/sdk/src/query/check-verification-status.test.ts +143 -0
  1272. package/sdk/src/query/check-verification-status.ts +160 -0
  1273. package/sdk/src/query/command-aliases.generated.ts +155 -0
  1274. package/sdk/src/query/command-catalog.ts +31 -0
  1275. package/sdk/src/query/command-definition.test.ts +47 -0
  1276. package/sdk/src/query/command-definition.ts +70 -0
  1277. package/sdk/src/query/command-family-handlers.ts +116 -0
  1278. package/sdk/src/query/command-manifest.init.ts +23 -0
  1279. package/sdk/src/query/command-manifest.non-family.ts +89 -0
  1280. package/sdk/src/query/command-manifest.phase.ts +16 -0
  1281. package/sdk/src/query/command-manifest.phases.ts +11 -0
  1282. package/sdk/src/query/command-manifest.roadmap.ts +11 -0
  1283. package/sdk/src/query/command-manifest.state.ts +31 -0
  1284. package/sdk/src/query/command-manifest.ts +17 -0
  1285. package/sdk/src/query/command-manifest.types.ts +13 -0
  1286. package/sdk/src/query/command-manifest.validate.ts +11 -0
  1287. package/sdk/src/query/command-manifest.verify.ts +15 -0
  1288. package/sdk/src/query/command-resolution.test.ts +70 -0
  1289. package/sdk/src/query/command-seam-coverage.test.ts +118 -0
  1290. package/sdk/src/query/command-static-catalog-domain.ts +121 -0
  1291. package/sdk/src/query/command-static-catalog-foundation.ts +100 -0
  1292. package/sdk/src/query/command-topology.test.ts +28 -0
  1293. package/sdk/src/query/command-topology.ts +114 -0
  1294. package/sdk/src/query/commands-list.test.ts +36 -0
  1295. package/sdk/src/query/commands-list.ts +19 -0
  1296. package/sdk/src/query/commit.test.ts +485 -0
  1297. package/sdk/src/query/commit.ts +383 -0
  1298. package/sdk/src/query/config-gates.test.ts +89 -0
  1299. package/sdk/src/query/config-gates.ts +69 -0
  1300. package/sdk/src/query/config-mutation.test.ts +572 -0
  1301. package/sdk/src/query/config-mutation.ts +484 -0
  1302. package/sdk/src/query/config-query.test.ts +367 -0
  1303. package/sdk/src/query/config-query.ts +244 -0
  1304. package/sdk/src/query/config-schema.ts +35 -0
  1305. package/sdk/src/query/decisions.test.ts +215 -0
  1306. package/sdk/src/query/decisions.ts +192 -0
  1307. package/sdk/src/query/decomposed-handlers.test.ts +431 -0
  1308. package/sdk/src/query/detect-custom-files.test.ts +115 -0
  1309. package/sdk/src/query/detect-custom-files.ts +96 -0
  1310. package/sdk/src/query/detect-phase-type.test.ts +105 -0
  1311. package/sdk/src/query/detect-phase-type.ts +141 -0
  1312. package/sdk/src/query/docs-init.ts +258 -0
  1313. package/sdk/src/query/fallow-audit.ts +88 -0
  1314. package/sdk/src/query/frontmatter-array.test.ts +14 -0
  1315. package/sdk/src/query/frontmatter-mutation.test.ts +259 -0
  1316. package/sdk/src/query/frontmatter-mutation.ts +343 -0
  1317. package/sdk/src/query/frontmatter.test.ts +326 -0
  1318. package/sdk/src/query/frontmatter.ts +395 -0
  1319. package/sdk/src/query/helpers.test.ts +615 -0
  1320. package/sdk/src/query/helpers.ts +523 -0
  1321. package/sdk/src/query/index-thin-seam.test.ts +16 -0
  1322. package/sdk/src/query/index.ts +9 -0
  1323. package/sdk/src/query/init-complex.test.ts +616 -0
  1324. package/sdk/src/query/init-complex.ts +805 -0
  1325. package/sdk/src/query/init-progress-precedence.test.ts +177 -0
  1326. package/sdk/src/query/init-workstream-milestone-op.test.ts +321 -0
  1327. package/sdk/src/query/init.test.ts +645 -0
  1328. package/sdk/src/query/init.ts +1167 -0
  1329. package/sdk/src/query/intel.test.ts +90 -0
  1330. package/sdk/src/query/intel.ts +404 -0
  1331. package/sdk/src/query/mutation-event-decorator.test.ts +45 -0
  1332. package/sdk/src/query/mutation-event-decorator.ts +37 -0
  1333. package/sdk/src/query/mutation-event-mapper.test.ts +33 -0
  1334. package/sdk/src/query/mutation-event-mapper.ts +102 -0
  1335. package/sdk/src/query/mvp.test.ts +335 -0
  1336. package/sdk/src/query/mvp.ts +292 -0
  1337. package/sdk/src/query/normalize-query-command.test.ts +102 -0
  1338. package/sdk/src/query/phase-filesystem-adapter.ts +35 -0
  1339. package/sdk/src/query/phase-lifecycle-policy.ts +171 -0
  1340. package/sdk/src/query/phase-lifecycle.test.ts +1750 -0
  1341. package/sdk/src/query/phase-lifecycle.ts +1833 -0
  1342. package/sdk/src/query/phase-list-queries.test.ts +88 -0
  1343. package/sdk/src/query/phase-list-queries.ts +152 -0
  1344. package/sdk/src/query/phase-ready.test.ts +65 -0
  1345. package/sdk/src/query/phase-ready.ts +159 -0
  1346. package/sdk/src/query/phase-roadmap-mutation.ts +77 -0
  1347. package/sdk/src/query/phase.test.ts +651 -0
  1348. package/sdk/src/query/phase.ts +550 -0
  1349. package/sdk/src/query/pipeline.test.ts +169 -0
  1350. package/sdk/src/query/pipeline.ts +243 -0
  1351. package/sdk/src/query/plan-scan.test.ts +35 -0
  1352. package/sdk/src/query/plan-scan.ts +82 -0
  1353. package/sdk/src/query/plan-task-structure.test.ts +65 -0
  1354. package/sdk/src/query/plan-task-structure.ts +63 -0
  1355. package/sdk/src/query/policy-convergence.test.ts +28 -0
  1356. package/sdk/src/query/profile-extract-messages.ts +247 -0
  1357. package/sdk/src/query/profile-output.ts +929 -0
  1358. package/sdk/src/query/profile-questionnaire-data.ts +181 -0
  1359. package/sdk/src/query/profile-sample.ts +184 -0
  1360. package/sdk/src/query/profile-scan-sessions.ts +174 -0
  1361. package/sdk/src/query/profile.test.ts +136 -0
  1362. package/sdk/src/query/profile.ts +337 -0
  1363. package/sdk/src/query/progress.test.ts +156 -0
  1364. package/sdk/src/query/progress.ts +566 -0
  1365. package/sdk/src/query/query-cli-adapter.test.ts +79 -0
  1366. package/sdk/src/query/query-cli-adapter.ts +39 -0
  1367. package/sdk/src/query/query-cli-output.test.ts +33 -0
  1368. package/sdk/src/query/query-cli-output.ts +63 -0
  1369. package/sdk/src/query/query-command-diagnosis.test.ts +22 -0
  1370. package/sdk/src/query/query-command-diagnosis.ts +5 -0
  1371. package/sdk/src/query/query-command-resolution-strategy.test.ts +34 -0
  1372. package/sdk/src/query/query-command-resolution-strategy.ts +121 -0
  1373. package/sdk/src/query/query-command-semantics.test.ts +22 -0
  1374. package/sdk/src/query/query-command-semantics.ts +22 -0
  1375. package/sdk/src/query/query-dispatch-contract.ts +30 -0
  1376. package/sdk/src/query/query-dispatch-error-mapper.test.ts +62 -0
  1377. package/sdk/src/query/query-dispatch-error-mapper.ts +5 -0
  1378. package/sdk/src/query/query-dispatch-formatting.test.ts +28 -0
  1379. package/sdk/src/query/query-dispatch-formatting.ts +5 -0
  1380. package/sdk/src/query/query-dispatch-input-validation.test.ts +23 -0
  1381. package/sdk/src/query/query-dispatch-input-validation.ts +5 -0
  1382. package/sdk/src/query/query-dispatch-observability.test.ts +10 -0
  1383. package/sdk/src/query/query-dispatch-observability.ts +6 -0
  1384. package/sdk/src/query/query-dispatch-plan.test.ts +25 -0
  1385. package/sdk/src/query/query-dispatch-plan.ts +5 -0
  1386. package/sdk/src/query/query-dispatch-result-builder.test.ts +16 -0
  1387. package/sdk/src/query/query-dispatch-result-builder.ts +5 -0
  1388. package/sdk/src/query/query-dispatch.test.ts +399 -0
  1389. package/sdk/src/query/query-dispatch.ts +275 -0
  1390. package/sdk/src/query/query-error-details-schema.ts +29 -0
  1391. package/sdk/src/query/query-error-taxonomy.test.ts +39 -0
  1392. package/sdk/src/query/query-error-taxonomy.ts +117 -0
  1393. package/sdk/src/query/query-fallback-bridge-adapter.test.ts +32 -0
  1394. package/sdk/src/query/query-fallback-bridge-adapter.ts +54 -0
  1395. package/sdk/src/query/query-fallback-executor.test.ts +82 -0
  1396. package/sdk/src/query/query-fallback-executor.ts +44 -0
  1397. package/sdk/src/query/query-fallback-output-classifier.test.ts +36 -0
  1398. package/sdk/src/query/query-fallback-output-classifier.ts +31 -0
  1399. package/sdk/src/query/query-fallback-policy.test.ts +13 -0
  1400. package/sdk/src/query/query-fallback-policy.ts +11 -0
  1401. package/sdk/src/query/query-native-dispatch-adapter.ts +16 -0
  1402. package/sdk/src/query/query-policy-capability.test.ts +10 -0
  1403. package/sdk/src/query/query-policy-capability.ts +26 -0
  1404. package/sdk/src/query/query-policy-snapshot.test.ts +9 -0
  1405. package/sdk/src/query/query-registry-capability.test.ts +14 -0
  1406. package/sdk/src/query/query-runtime-context.ts +44 -0
  1407. package/sdk/src/query/query-unknown-command-hints.test.ts +9 -0
  1408. package/sdk/src/query/query-unknown-command-hints.ts +5 -0
  1409. package/sdk/src/query/registry-assembly-descriptor.ts +87 -0
  1410. package/sdk/src/query/registry-assembly-invariants.ts +127 -0
  1411. package/sdk/src/query/registry-assembly.test.ts +138 -0
  1412. package/sdk/src/query/registry-assembly.ts +78 -0
  1413. package/sdk/src/query/registry.test.ts +208 -0
  1414. package/sdk/src/query/registry.ts +142 -0
  1415. package/sdk/src/query/requirements-extract-from-plans.test.ts +58 -0
  1416. package/sdk/src/query/requirements-extract-from-plans.ts +86 -0
  1417. package/sdk/src/query/roadmap-update-plan-progress.test.ts +233 -0
  1418. package/sdk/src/query/roadmap-update-plan-progress.ts +159 -0
  1419. package/sdk/src/query/roadmap.test.ts +1181 -0
  1420. package/sdk/src/query/roadmap.ts +894 -0
  1421. package/sdk/src/query/route-next-action.test.ts +142 -0
  1422. package/sdk/src/query/route-next-action.ts +370 -0
  1423. package/sdk/src/query/schema-detect.ts +189 -0
  1424. package/sdk/src/query/secrets.test.ts +66 -0
  1425. package/sdk/src/query/secrets.ts +43 -0
  1426. package/sdk/src/query/skill-manifest.test.ts +62 -0
  1427. package/sdk/src/query/skill-manifest.ts +216 -0
  1428. package/sdk/src/query/skills.test.ts +234 -0
  1429. package/sdk/src/query/skills.ts +143 -0
  1430. package/sdk/src/query/state-document.test.ts +197 -0
  1431. package/sdk/src/query/state-document.ts +129 -0
  1432. package/sdk/src/query/state-mutation.test.ts +1198 -0
  1433. package/sdk/src/query/state-mutation.ts +1718 -0
  1434. package/sdk/src/query/state-project-load.ts +80 -0
  1435. package/sdk/src/query/state.test.ts +616 -0
  1436. package/sdk/src/query/state.ts +463 -0
  1437. package/sdk/src/query/sub-repos-root.integration.test.ts +79 -0
  1438. package/sdk/src/query/summary.test.ts +95 -0
  1439. package/sdk/src/query/summary.ts +296 -0
  1440. package/sdk/src/query/task-issues.ts +86 -0
  1441. package/sdk/src/query/template.test.ts +180 -0
  1442. package/sdk/src/query/template.ts +242 -0
  1443. package/sdk/src/query/uat.test.ts +77 -0
  1444. package/sdk/src/query/uat.ts +365 -0
  1445. package/sdk/src/query/utils.test.ts +82 -0
  1446. package/sdk/src/query/utils.ts +106 -0
  1447. package/sdk/src/query/validate.test.ts +831 -0
  1448. package/sdk/src/query/validate.ts +952 -0
  1449. package/sdk/src/query/verify.test.ts +416 -0
  1450. package/sdk/src/query/verify.ts +711 -0
  1451. package/sdk/src/query/websearch.test.ts +31 -0
  1452. package/sdk/src/query/websearch.ts +82 -0
  1453. package/sdk/src/query/workspace.test.ts +120 -0
  1454. package/sdk/src/query/workspace.ts +145 -0
  1455. package/sdk/src/query/workstream-inventory.ts +143 -0
  1456. package/sdk/src/query/workstream.test.ts +153 -0
  1457. package/sdk/src/query/workstream.ts +324 -0
  1458. package/sdk/src/query/worktree.ts +39 -0
  1459. package/sdk/src/query-command-executor.ts +31 -0
  1460. package/sdk/src/query-execution-policy.test.ts +52 -0
  1461. package/sdk/src/query-execution-policy.ts +46 -0
  1462. package/sdk/src/query-failure-classification.test.ts +23 -0
  1463. package/sdk/src/query-failure-classification.ts +42 -0
  1464. package/sdk/src/query-gtd-tools-path.ts +1 -0
  1465. package/sdk/src/query-gtd-tools-runtime.ts +89 -0
  1466. package/sdk/src/query-hotpath-methods.ts +48 -0
  1467. package/sdk/src/query-native-direct-adapter.test.ts +35 -0
  1468. package/sdk/src/query-native-direct-adapter.ts +70 -0
  1469. package/sdk/src/query-native-hotpath-adapter.test.ts +43 -0
  1470. package/sdk/src/query-native-hotpath-adapter.ts +45 -0
  1471. package/sdk/src/query-raw-output-projection.test.ts +39 -0
  1472. package/sdk/src/query-raw-output-projection.ts +74 -0
  1473. package/sdk/src/query-runtime-bridge.test.ts +150 -0
  1474. package/sdk/src/query-runtime-bridge.ts +215 -0
  1475. package/sdk/src/query-runtime-seam-coverage.test.ts +20 -0
  1476. package/sdk/src/query-subprocess-adapter.test.ts +84 -0
  1477. package/sdk/src/query-subprocess-adapter.ts +146 -0
  1478. package/sdk/src/query-tools-error-factory.test.ts +35 -0
  1479. package/sdk/src/query-tools-error-factory.ts +76 -0
  1480. package/sdk/src/research-gate.test.ts +190 -0
  1481. package/sdk/src/research-gate.ts +94 -0
  1482. package/sdk/src/runtime-bridge-options.test.ts +33 -0
  1483. package/sdk/src/runtime-bridge-sync/index.test.ts +164 -0
  1484. package/sdk/src/runtime-bridge-sync/index.ts +154 -0
  1485. package/sdk/src/runtime-bridge-sync/projectdir-regression.test.ts +151 -0
  1486. package/sdk/src/runtime-bridge-sync/worker.ts +181 -0
  1487. package/sdk/src/runtime-gate.test.ts +84 -0
  1488. package/sdk/src/runtime-gate.ts +52 -0
  1489. package/sdk/src/sdk-package-compatibility.test.ts +100 -0
  1490. package/sdk/src/sdk-package-compatibility.ts +149 -0
  1491. package/sdk/src/session-runner.test.ts +164 -0
  1492. package/sdk/src/session-runner.ts +327 -0
  1493. package/sdk/src/task-issues/adapters.ts +86 -0
  1494. package/sdk/src/task-issues/core.ts +287 -0
  1495. package/sdk/src/task-issues/export-phase-issues.ts +1862 -0
  1496. package/sdk/src/task-issues/github-api-client.ts +107 -0
  1497. package/sdk/src/task-issues/github-repo.ts +111 -0
  1498. package/sdk/src/task-issues/orchestrate-tasks.ts +2167 -0
  1499. package/sdk/src/task-issues/plan-scan.ts +78 -0
  1500. package/sdk/src/task-issues/runtime-slash.ts +37 -0
  1501. package/sdk/src/task-issues/task-issue-shared.ts +48 -0
  1502. package/sdk/src/task-issues/types.ts +34 -0
  1503. package/sdk/src/task-issues/work-task-issue.ts +3429 -0
  1504. package/sdk/src/task-issues/worktree-safety.ts +15 -0
  1505. package/sdk/src/task-issues-sdk.test.ts +182 -0
  1506. package/sdk/src/tool-scoping.test.ts +160 -0
  1507. package/sdk/src/tool-scoping.ts +61 -0
  1508. package/sdk/src/types.ts +928 -0
  1509. package/sdk/src/workflow-agent-skills-consistency.test.ts +98 -0
  1510. package/sdk/src/workstream-inventory/builder.test.ts +241 -0
  1511. package/sdk/src/workstream-inventory/builder.ts +170 -0
  1512. package/sdk/src/workstream-name-policy.ts +24 -0
  1513. package/sdk/src/workstream-utils.ts +36 -0
  1514. package/sdk/src/ws-flag.test.ts +285 -0
  1515. package/sdk/src/ws-transport.test.ts +161 -0
  1516. package/sdk/src/ws-transport.ts +93 -0
  1517. package/sdk/tsconfig.json +20 -0
@@ -0,0 +1,753 @@
1
+ /**
2
+ * Roadmap query handlers — ROADMAP.md analysis and phase lookup.
3
+ *
4
+ * Ported from get-tasks-done/bin/lib/roadmap.cjs and core.cjs.
5
+ * Provides roadmap.analyze (multi-pass parsing with disk correlation)
6
+ * and roadmap.get-phase (single phase section extraction).
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { roadmapAnalyze, roadmapGetPhase } from './roadmap.js';
11
+ *
12
+ * const analysis = await roadmapAnalyze([], '/project');
13
+ * // { data: { phases: [...], phase_count: 6, progress_percent: 50, ... } }
14
+ *
15
+ * const phase = await roadmapGetPhase(['10'], '/project');
16
+ * // { data: { found: true, phase_number: '10', phase_name: 'Read-Only Queries', ... } }
17
+ * ```
18
+ */
19
+ import { existsSync } from 'node:fs';
20
+ import { readFile, writeFile, readdir } from 'node:fs/promises';
21
+ import { join } from 'node:path';
22
+ import { GTDError, ErrorClassification } from '../errors.js';
23
+ import { resolveGtdToolsPath } from '../sdk-package-compatibility.js';
24
+ import { escapeRegex, normalizePhaseName, phaseTokenMatches, planningPaths, } from './helpers.js';
25
+ // ─── Exported helpers ─────────────────────────────────────────────────────
26
+ /**
27
+ * Strip <details>...</details> blocks from content (shipped milestones).
28
+ *
29
+ * Port of stripShippedMilestones from core.cjs line 1082-1084.
30
+ */
31
+ export function stripShippedMilestones(content) {
32
+ // Pattern 1: <details>...</details> blocks (explicit collapse).
33
+ // <details\b[^>]*> tolerates attributes (e.g. <details open>, <details class="…">).
34
+ // Symmetry with extractCurrentMilestone()'s <details>-aware fallback (#2641):
35
+ // both functions must agree on what counts as a <details> opening tag, or
36
+ // shipped content wrapped in attributed tags would leak through here while
37
+ // the active-milestone anchor in extractCurrentMilestone() correctly fires.
38
+ let result = content.replace(/<details\b[^>]*>[\s\S]*?<\/details>/gi, '');
39
+ // Pattern 2: inline milestone headings marked as shipped.
40
+ // Keep aligned with heading levels accepted by extractCurrentMilestone() (## and ###).
41
+ const sections = result.split(/(?=^#{2,3}\s)/m);
42
+ result = sections.filter(s => !/^#{2,3}\s[^\n]*✅\s*SHIPPED\b/im.test(s)).join('');
43
+ return result;
44
+ }
45
+ /**
46
+ * Read milestone + name from STATE.md frontmatter when ROADMAP does not encode them.
47
+ */
48
+ async function parseMilestoneFromState(projectDir, workstream) {
49
+ try {
50
+ const stateRaw = await readFile(planningPaths(projectDir, workstream).state, 'utf-8');
51
+ const vm = stateRaw.match(/^milestone:\s*(.+)$/m);
52
+ if (!vm)
53
+ return null;
54
+ const version = vm[1].trim().replace(/^["']|["']$/g, '');
55
+ const nm = stateRaw.match(/^milestone_name:\s*(.+)$/m);
56
+ const name = nm ? nm[1].trim().replace(/^["']|["']$/g, '') : 'milestone';
57
+ return { version, name };
58
+ }
59
+ catch {
60
+ return null;
61
+ }
62
+ }
63
+ /**
64
+ * Get milestone version and name from ROADMAP.md (and optionally STATE.md).
65
+ *
66
+ * Port of getMilestoneInfo from core.cjs lines 1367-1402, extended for:
67
+ * - 🟡 in-flight marker (same list shape as 🚧)
68
+ * - milestone bullets `**vX.Y Title**` before `## Phases` (last = current when listed in semver order)
69
+ * - STATE.md frontmatter when ROADMAP has no parseable milestone
70
+ * - **last** bare `vX.Y` fallback (first match was often v1.0 from the shipped list)
71
+ *
72
+ * @param projectDir - Project root directory
73
+ * @returns Object with version and name
74
+ */
75
+ export async function getMilestoneInfo(projectDir, workstream) {
76
+ try {
77
+ // Priority 1: STATE.md frontmatter (authoritative for version; name only when real)
78
+ const fromState = await parseMilestoneFromState(projectDir, workstream);
79
+ const stateVersion = fromState?.version ?? null;
80
+ const stateName = fromState && fromState.name !== 'milestone' ? fromState.name : null;
81
+ if (stateVersion && stateName) {
82
+ return { version: stateVersion, name: stateName };
83
+ }
84
+ // STATE.md has a version but no real name — fall through to ROADMAP for the name,
85
+ // then override the version with the authoritative STATE.md value.
86
+ const roadmap = await readFile(planningPaths(projectDir, workstream).roadmap, 'utf-8');
87
+ // List-format: construction / blocked (legacy emoji)
88
+ const barricadeMatch = roadmap.match(/🚧\s*\*\*v(\d+(?:\.\d+)+)\s+([^*]+)\*\*/);
89
+ if (barricadeMatch) {
90
+ return { version: stateVersion ?? 'v' + barricadeMatch[1], name: barricadeMatch[2].trim() };
91
+ }
92
+ // List-format: in flight / active (GTD ROADMAP template uses 🟡 for current milestone)
93
+ const inFlightMatch = roadmap.match(/🟡\s*\*\*v(\d+(?:\.\d+)+)\s+([^*]+)\*\*/);
94
+ if (inFlightMatch) {
95
+ return { version: stateVersion ?? 'v' + inFlightMatch[1], name: inFlightMatch[2].trim() };
96
+ }
97
+ // Heading-format — strip shipped <details> blocks first
98
+ const cleaned = stripShippedMilestones(roadmap);
99
+ const headingMatch = cleaned.match(/##\s+.*v(\d+(?:\.\d+)+)[:\s]+([^\n(]+)/);
100
+ if (headingMatch) {
101
+ return { version: stateVersion ?? 'v' + headingMatch[1], name: headingMatch[2].trim() };
102
+ }
103
+ // Milestone bullet list (## Milestones … ## Phases): use last **vX.Y Title** — typically the current row
104
+ const beforePhases = roadmap.split(/^##\s+Phases\b/m)[0] ?? roadmap;
105
+ const boldMatches = [...beforePhases.matchAll(/\*\*v(\d+(?:\.\d+)+)\s+([^*]+)\*\*/g)];
106
+ if (boldMatches.length > 0) {
107
+ const last = boldMatches[boldMatches.length - 1];
108
+ return { version: stateVersion ?? 'v' + last[1], name: last[2].trim() };
109
+ }
110
+ const allBare = [...cleaned.matchAll(/\bv(\d+(?:\.\d+)+)\b/g)];
111
+ if (allBare.length > 0) {
112
+ const lastBare = allBare[allBare.length - 1];
113
+ return { version: stateVersion ?? lastBare[0], name: 'milestone' };
114
+ }
115
+ return { version: stateVersion ?? 'v1.0', name: 'milestone' };
116
+ }
117
+ catch {
118
+ const fromState = await parseMilestoneFromState(projectDir, workstream);
119
+ if (fromState)
120
+ return fromState;
121
+ return { version: 'v1.0', name: 'milestone' };
122
+ }
123
+ }
124
+ /**
125
+ * Extract the current milestone section from ROADMAP.md.
126
+ *
127
+ * Two anchoring strategies, tried in order:
128
+ * 1. Markdown heading containing the active version (`^#{1,3}\s+.*vX.Y…`).
129
+ * 2. `<details><summary>vX.Y…</summary>…</details>` block (the GitHub-friendly
130
+ * collapse pattern; see #2641). When this fallback fires, the captured
131
+ * `<summary>` text is synthesized as a `##` heading prepended to the
132
+ * returned slice so downstream consumers that scan for milestone headings
133
+ * (e.g. the `data.milestones` loop in `roadmapAnalyze`) still see an
134
+ * active-milestone anchor.
135
+ *
136
+ * If neither strategy matches the active version, falls through to
137
+ * `stripShippedMilestones(content)`.
138
+ *
139
+ * Originally ported from core.cjs lines 1102-1170; the TS implementation has
140
+ * since diverged (Backlog-leak fix #2422, phase-vX.Y truncation fix #2619,
141
+ * fenced-code-block tracking #2787, `<details><summary>` fallback #2641).
142
+ *
143
+ * @param content - Full ROADMAP.md content
144
+ * @param projectDir - Working directory for reading STATE.md
145
+ * @returns Content scoped to current milestone
146
+ */
147
+ export async function extractCurrentMilestone(content, projectDir, workstream) {
148
+ // Get version from STATE.md frontmatter.
149
+ // Strip optional surrounding YAML quotes (e.g. `milestone: "v0.9"`) for parity
150
+ // with parseMilestoneFromState() above and getMilestoneInfo()'s STATE.md path.
151
+ // Without this, a quoted version yields `escapedVersion = '\\"v0\\.9\\"'`
152
+ // which matches neither markdown headings nor <summary> text, falling
153
+ // through to stripShippedMilestones() — and reintroducing the same archived-
154
+ // milestone misrouting this fallback addresses.
155
+ let version = null;
156
+ try {
157
+ const stateRaw = await readFile(planningPaths(projectDir, workstream).state, 'utf-8');
158
+ const milestoneMatch = stateRaw.match(/^milestone:\s*(.+)/m);
159
+ if (milestoneMatch) {
160
+ version = milestoneMatch[1].trim().replace(/^["']|["']$/g, '');
161
+ }
162
+ }
163
+ catch { /* intentionally empty */ }
164
+ // Fallback: derive from ROADMAP in-progress marker
165
+ if (!version) {
166
+ const inProgressMatch = content.match(/(?:🚧|🟡)\s*\*\*v(\d+(?:\.\d+)+)\s/);
167
+ if (inProgressMatch) {
168
+ version = 'v' + inProgressMatch[1];
169
+ }
170
+ }
171
+ if (!version)
172
+ return stripShippedMilestones(content);
173
+ // Find section matching this version
174
+ const escapedVersion = escapeRegex(version);
175
+ const sectionPattern = new RegExp(`(^#{1,3}\\s+.*${escapedVersion}(?![\\d.])[^\\n]*)`, 'mi');
176
+ const sectionMatch = content.match(sectionPattern);
177
+ if (!sectionMatch || sectionMatch.index === undefined) {
178
+ // Fallback: <details><summary> matching the active version (issue #2641).
179
+ //
180
+ // Many projects (GitHub-friendly collapse pattern) wrap the active
181
+ // milestone's phase details inside a collapsible block whose <summary>
182
+ // names the version, e.g.:
183
+ //
184
+ // <details>
185
+ // <summary>v0.9 Local-First Bus (active) — Phase Details</summary>
186
+ // ### Phase 1: ...
187
+ // </details>
188
+ //
189
+ // The markdown-heading lookup above misses this because <summary> is HTML,
190
+ // not a heading. Without this fallback, control falls through to
191
+ // stripShippedMilestones() which removes ALL <details> blocks
192
+ // indiscriminately — including the active milestone's — causing
193
+ // roadmapGetPhase() to return {found:false} for phases that ARE in the
194
+ // active ROADMAP. The init.phase-op safety guard then misfires and can
195
+ // route phase lookups into archived milestones.
196
+ //
197
+ // Regex anatomy:
198
+ // <details\b[^>]*> tolerate attributes (e.g. <details open>)
199
+ // \s*<summary\b[^>]*> tolerate attributes on <summary>
200
+ // ((?:(?!</summary>).)*? non-greedy summary capture; tolerates
201
+ // ${escapedVersion} inline HTML in the summary text
202
+ // (?![\d.]) non-version-character lookahead — prevents
203
+ // `v0.1` from substring-matching `v0.10`
204
+ // (?:(?!</summary>).)*)
205
+ // </summary> end of summary
206
+ // ([\s\S]*?)</details> lazy body capture to the FIRST </details>
207
+ //
208
+ // Contract: any consumer that scans the returned slice for milestone
209
+ // headings (e.g. /##\s*.*vX.Y/) sees the active milestone's anchor. We
210
+ // synthesize that heading from the captured <summary> text rather than
211
+ // returning the body alone.
212
+ //
213
+ // Hardening guards:
214
+ // - Nested <details>: the lazy quantifier truncates at the inner
215
+ // </details>, silently losing trailing phases. Detect and fall through
216
+ // to stripShippedMilestones() instead of returning truncated content.
217
+ // - Empty body: a <details> block with no body would synthesize a heading
218
+ // with nothing under it. Treat as no-match.
219
+ // - Summary sanitization: strip inline HTML (e.g. <em>active</em>) and
220
+ // leading `#` tokens before promoting to a `##` heading, so the result
221
+ // is a single well-formed markdown heading.
222
+ const detailsPattern = new RegExp(`<details\\b[^>]*>\\s*<summary\\b[^>]*>` +
223
+ `((?:(?!</summary>).)*?${escapedVersion}(?![\\d.])(?:(?!</summary>).)*)` +
224
+ `</summary>([\\s\\S]*?)</details>`, 'i');
225
+ const detailsMatch = content.match(detailsPattern);
226
+ if (detailsMatch &&
227
+ detailsMatch[2].trim() && // empty-body guard
228
+ !detailsMatch[2].includes('<details') // nested-<details> guard
229
+ ) {
230
+ const summary = detailsMatch[1]
231
+ .replace(/<[^>]+>/g, '') // strip inline HTML
232
+ .replace(/^#+\s*/, '') // strip leading `#`
233
+ .trim();
234
+ const body = detailsMatch[2];
235
+ return `## ${summary}\n${body}`;
236
+ }
237
+ return stripShippedMilestones(content);
238
+ }
239
+ const sectionStart = sectionMatch.index;
240
+ // Find end: next milestone heading at same or higher level, or EOF.
241
+ // Skip headings that belong to the SAME version (e.g. "## v2.0 Phase Details").
242
+ const headingLevelMatch = sectionMatch[1].match(/^(#{1,3})\s/);
243
+ const headingLevel = headingLevelMatch ? headingLevelMatch[1].length : 2;
244
+ const restContent = content.slice(sectionStart + sectionMatch[0].length);
245
+ // Extract current version so same-version sub-headings are not treated as boundaries.
246
+ // Capture full semver (major.minor.patch) so v2.0.1 is not collapsed to "2.0".
247
+ const currentVersionMatch = version ? version.match(/v(\d+(?:\.\d+)+)/i) : null;
248
+ const currentVersionStr = currentVersionMatch ? currentVersionMatch[1] : '';
249
+ // Exclude phase headings (e.g. "### Phase 12: v1.0 Tech-Debt Closure") from
250
+ // being treated as milestone boundaries just because they mention vX.Y in
251
+ // the title. Phase headings always start with the literal `Phase `. See #2619.
252
+ const nextMilestoneRegex = new RegExp(`^#{1,${headingLevel}}\\s+(?!Phase\\s+\\S)(?:.*v(\\d+(?:\\.\\d+)+)[^\\n]*|.*(?:✅|📋|🚧|🟡))`,
253
+ // `i` flag ensures the `(?!Phase\s+\S)` lookahead matches PHASE/phase too
254
+ // (CodeRabbit follow-up on #2619).
255
+ 'gmi');
256
+ let sectionEnd = content.length;
257
+ let m;
258
+ while ((m = nextMilestoneRegex.exec(restContent)) !== null) {
259
+ const matchedVersion = m[1];
260
+ // Skip headings that reference the same version (e.g. "## v2.0 Phase Details").
261
+ if (matchedVersion && currentVersionStr && matchedVersion === currentVersionStr)
262
+ continue;
263
+ sectionEnd = sectionStart + sectionMatch[0].length + m.index;
264
+ break;
265
+ }
266
+ // Issue #3493: a generic, non-version-prefixed `## Phase Details` (or
267
+ // `### Phase Details`) heading sometimes sits AFTER a planned-milestone
268
+ // sibling (e.g. `### 📋 v2.1+ (Planned)`) in document order but holds the
269
+ // detail bodies (`### Phase N: ...`) for the *active* milestone. Issue #2422
270
+ // / PR #2455 handled the version-prefixed variant `## v2.0 Phase Details`
271
+ // via the same-version `continue` above; this branch handles the generic-
272
+ // label variant. When such a heading is found after the initial sectionEnd,
273
+ // append the Phase Details block to the returned slice (skipping the
274
+ // intervening planned-milestone content so it does not leak in), stopping
275
+ // at the next real milestone boundary (version-bearing or milestone-emoji-
276
+ // bearing heading) or EOF.
277
+ //
278
+ // Bounded to a single append so a malformed roadmap can't loop. Only
279
+ // matches the literal `Phase Details` label (canonical per GTD ROADMAP
280
+ // template); anything else continues to terminate the slice.
281
+ let phaseDetailsTail = '';
282
+ if (sectionEnd < content.length) {
283
+ const afterEnd = content.slice(sectionEnd);
284
+ const genericPhaseDetailsRegex = /^(#{1,3})\s+Phase\s+Details\b[^\n]*$/im;
285
+ const phaseDetailsMatch = afterEnd.match(genericPhaseDetailsRegex);
286
+ if (phaseDetailsMatch && phaseDetailsMatch.index !== undefined) {
287
+ const pdStart = sectionEnd + phaseDetailsMatch.index;
288
+ const pdHeadingLen = phaseDetailsMatch[0].length;
289
+ const pdLevel = phaseDetailsMatch[1].length;
290
+ // Scan from after the Phase Details heading for the next real milestone
291
+ // boundary (different version OR milestone emoji). Reuses the same
292
+ // (?!Phase\s+\S) phase-heading guard from #2619, plus a
293
+ // (?!Phase\s+Details\b) guard so a sibling Phase Details heading
294
+ // doesn't terminate the block prematurely.
295
+ const afterPdHeading = content.slice(pdStart + pdHeadingLen);
296
+ const nextRealMilestoneRegex = new RegExp(`^#{1,${pdLevel}}\\s+(?!Phase\\s+\\S)(?!Phase\\s+Details\\b)(?:.*v(\\d+(?:\\.\\d+)+)[^\\n]*|.*(?:✅|📋|🚧|🟡))`, 'gmi');
297
+ let pdEnd = content.length;
298
+ let mm;
299
+ while ((mm = nextRealMilestoneRegex.exec(afterPdHeading)) !== null) {
300
+ const mv = mm[1];
301
+ if (mv && currentVersionStr && mv === currentVersionStr)
302
+ continue;
303
+ pdEnd = pdStart + pdHeadingLen + mm.index;
304
+ break;
305
+ }
306
+ phaseDetailsTail = '\n' + content.slice(pdStart, pdEnd);
307
+ }
308
+ }
309
+ // Return only the current milestone section — never include the preamble, which
310
+ // may contain ## Backlog and other non-current-milestone phases. Append any
311
+ // generic Phase Details block discovered above (#3493) so detail-section
312
+ // lookups for the active milestone succeed.
313
+ return content.slice(sectionStart, sectionEnd) + phaseDetailsTail;
314
+ }
315
+ /**
316
+ * Extract phase entries from an arbitrary ROADMAP milestone section.
317
+ *
318
+ * Parses `#### Phase N: Name` / `### Phase N: Name` / `## Phase N: Name`
319
+ * headings and, for each, captures goal + depends_on via the same patterns
320
+ * used by initManager's current-milestone phase parsing. Used by
321
+ * `initManager` to populate `queued_phases` (#2497).
322
+ */
323
+ export function extractPhasesFromSection(section) {
324
+ const phasePattern = /#{2,4}\s*Phase\s+(\d+[A-Z]?(?:\.\d+)*)\s*:\s*([^\n]+)/gi;
325
+ const phases = [];
326
+ let m;
327
+ while ((m = phasePattern.exec(section)) !== null) {
328
+ const phaseNum = m[1];
329
+ const phaseName = m[2].replace(/\(INSERTED\)/i, '').trim();
330
+ const sectionStart = m.index;
331
+ const rest = section.slice(sectionStart);
332
+ const nextHeader = rest.match(/\n#{2,4}\s+Phase\s+\d/i);
333
+ const end = nextHeader ? sectionStart + (nextHeader.index ?? 0) : section.length;
334
+ const body = section.slice(sectionStart, end);
335
+ const goalMatch = body.match(/\*\*Goal(?::\*\*|\*\*:)\s*([^\n]+)/i);
336
+ const dependsMatch = body.match(/\*\*Depends on(?::\*\*|\*\*:)\s*([^\n]+)/i);
337
+ phases.push({
338
+ number: phaseNum,
339
+ name: phaseName,
340
+ goal: goalMatch ? goalMatch[1].trim() : null,
341
+ depends_on: dependsMatch ? dependsMatch[1].trim() : null,
342
+ });
343
+ }
344
+ return phases;
345
+ }
346
+ /**
347
+ * Find the milestone section that comes immediately AFTER the active one.
348
+ *
349
+ * Used by initManager to surface `queued_phases` without conflating the
350
+ * active milestone's phase list with the next one (#2497). Returns null
351
+ * when no subsequent milestone section exists (active is the last one).
352
+ *
353
+ * Reuses the same current-version resolution path as `getMilestoneInfo`:
354
+ * STATE.md frontmatter first, then in-flight emoji markers in ROADMAP.
355
+ * Shipped milestones are stripped first so they can't shadow the real
356
+ * "next" one.
357
+ */
358
+ export async function extractNextMilestoneSection(content, projectDir) {
359
+ const cleaned = stripShippedMilestones(content);
360
+ // Resolve current version via STATE.md (priority) then in-flight markers.
361
+ let currentVersion = null;
362
+ const fromState = await parseMilestoneFromState(projectDir);
363
+ if (fromState?.version) {
364
+ const raw = fromState.version.trim();
365
+ currentVersion = /^v\d/i.test(raw) ? raw : `v${raw}`;
366
+ }
367
+ if (!currentVersion) {
368
+ const inProgressMatch = cleaned.match(/(?:🚧|🟡)\s*\*\*v(\d+(?:\.\d+)+)\s/);
369
+ if (inProgressMatch)
370
+ currentVersion = 'v' + inProgressMatch[1];
371
+ }
372
+ if (!currentVersion)
373
+ return null;
374
+ // Find the current milestone ## heading.
375
+ const escaped = escapeRegex(currentVersion);
376
+ const currentHeadingPattern = new RegExp(`^##\\s+[^\\n]*${escaped}[^\\n]*$`, 'mi');
377
+ const currentMatch = cleaned.match(currentHeadingPattern);
378
+ if (!currentMatch || currentMatch.index === undefined)
379
+ return null;
380
+ // Look for the next ## milestone heading after the current one.
381
+ const tail = cleaned.slice(currentMatch.index + currentMatch[0].length);
382
+ // Exclude phase headings — see #2619.
383
+ const nextMilestonePattern = /^##\s+(?!Phase\s+\S)([^\n]*(?:v(\d+(?:\.\d+)+)|✅|🚧|🟡|📋)[^\n]*)$/gim;
384
+ let nextMatch;
385
+ while ((nextMatch = nextMilestonePattern.exec(tail)) !== null) {
386
+ const heading = nextMatch[1];
387
+ const versionMatch = heading.match(/v(\d+(?:\.\d+)+)/);
388
+ if (!versionMatch)
389
+ continue;
390
+ const nextVersion = 'v' + versionMatch[1];
391
+ if (nextVersion === currentVersion)
392
+ continue;
393
+ // Derive a display name: trim through "vX.Y:" or "vX.Y —" prefix.
394
+ const nameMatch = heading.match(/v\d+(?:\.\d+)+:?\s*[—–-]?\s*([^\n(]+)/);
395
+ const name = nameMatch ? nameMatch[1].trim() : heading.trim();
396
+ const sectionStart = (nextMatch.index ?? 0) + nextMatch[0].length;
397
+ const afterStart = tail.slice(sectionStart);
398
+ const followingHeader = afterStart.match(/^##\s/m);
399
+ const sectionEnd = followingHeader && followingHeader.index !== undefined
400
+ ? sectionStart + followingHeader.index
401
+ : tail.length;
402
+ const section = tail.slice(sectionStart, sectionEnd);
403
+ return { version: nextVersion, name, section };
404
+ }
405
+ return null;
406
+ }
407
+ // ─── Internal helpers ─────────────────────────────────────────────────────
408
+ /**
409
+ * Search for a phase section in roadmap content.
410
+ *
411
+ * Port of searchPhaseInContent from roadmap.cjs lines 14-73.
412
+ */
413
+ function searchPhaseInContent(content, escapedPhase, phaseNum) {
414
+ // Match "## Phase X:", "### Phase X:", or "#### Phase X:" with optional name
415
+ const phasePattern = new RegExp(`#{2,4}\\s*Phase\\s+${escapedPhase}:\\s*([^\\n]+)`, 'i');
416
+ const headerMatch = content.match(phasePattern);
417
+ if (!headerMatch) {
418
+ // Fallback: check if phase exists in summary list but missing detail section
419
+ const checklistPattern = new RegExp(`-\\s*\\[[ x]\\]\\s*\\*\\*Phase\\s+${escapedPhase}:\\s*([^*]+)\\*\\*`, 'i');
420
+ const checklistMatch = content.match(checklistPattern);
421
+ if (checklistMatch) {
422
+ return {
423
+ found: false,
424
+ phase_number: phaseNum,
425
+ phase_name: checklistMatch[1].trim(),
426
+ error: 'malformed_roadmap',
427
+ message: `Phase ${phaseNum} exists in summary list but missing "### Phase ${phaseNum}:" detail section. ROADMAP.md needs both formats.`,
428
+ };
429
+ }
430
+ return null;
431
+ }
432
+ const phaseName = headerMatch[1].trim();
433
+ const headerIndex = headerMatch.index;
434
+ // Find the end of this section (next ## or ### phase header, or end of file)
435
+ const restOfContent = content.slice(headerIndex);
436
+ const nextHeaderMatch = restOfContent.match(/\n#{2,4}\s+Phase\s+\d/i);
437
+ const sectionEnd = nextHeaderMatch
438
+ ? headerIndex + nextHeaderMatch.index
439
+ : content.length;
440
+ const section = content.slice(headerIndex, sectionEnd).trim();
441
+ // Extract goal if present (supports both **Goal:** and **Goal**: formats)
442
+ const goalMatch = section.match(/\*\*Goal(?::\*\*|\*\*:)\s*([^\n]+)/i);
443
+ const goal = goalMatch ? goalMatch[1].trim() : null;
444
+ // Mode: vertical-MVP slice mode flag. Lowercased + trimmed for canonical
445
+ // comparison; unrecognized values preserved verbatim for forward-compat.
446
+ // Mirrors roadmap.cjs:120-123 — restoring parity that was missed in the SDK port.
447
+ const modeMatch = section.match(/\*\*Mode(?::\*\*|\*\*:)\s*([^\n]+)/i);
448
+ const mode = modeMatch ? modeMatch[1].trim().toLowerCase() : null;
449
+ // Extract success criteria as structured array
450
+ const criteriaMatch = section.match(/\*\*Success Criteria\*\*[^\n]*:\s*\n((?:\s*\d+\.\s*[^\n]+\n?)+)/i);
451
+ const success_criteria = criteriaMatch
452
+ ? criteriaMatch[1].trim().split('\n').map(line => line.replace(/^\s*\d+\.\s*/, '').trim()).filter(Boolean)
453
+ : [];
454
+ return {
455
+ found: true,
456
+ phase_number: phaseNum,
457
+ phase_name: phaseName,
458
+ goal,
459
+ mode,
460
+ success_criteria,
461
+ section,
462
+ };
463
+ }
464
+ async function countPhasePlansAndSummaries(phaseDir) {
465
+ const phaseFiles = await readdir(phaseDir);
466
+ const rootPlans = phaseFiles.filter(f => f.endsWith('-PLAN.md') || f === 'PLAN.md');
467
+ const rootSummaries = phaseFiles.filter(f => f.endsWith('-SUMMARY.md') || f === 'SUMMARY.md');
468
+ let nestedPlans = [];
469
+ let nestedSummaries = [];
470
+ const plansDir = join(phaseDir, 'plans');
471
+ if (existsSync(plansDir)) {
472
+ const files = await readdir(plansDir);
473
+ nestedPlans = files.filter(f => /^PLAN-\d+.*\.md$/i.test(f));
474
+ nestedSummaries = files.filter(f => /^SUMMARY-\d+.*\.md$/i.test(f));
475
+ }
476
+ return {
477
+ planCount: rootPlans.length + nestedPlans.length,
478
+ summaryCount: rootSummaries.length + nestedSummaries.length,
479
+ hasContext: phaseFiles.some(f => f.endsWith('-CONTEXT.md') || f === 'CONTEXT.md'),
480
+ hasResearch: phaseFiles.some(f => f.endsWith('-RESEARCH.md') || f === 'RESEARCH.md'),
481
+ };
482
+ }
483
+ // ─── Exported handlers ────────────────────────────────────────────────────
484
+ /**
485
+ * Query handler for roadmap.get-phase.
486
+ *
487
+ * Port of cmdRoadmapGetPhase from roadmap.cjs lines 75-113.
488
+ *
489
+ * @param args - args[0] is phase number (required)
490
+ * @param projectDir - Project root directory
491
+ * @returns QueryResult with phase section info or { found: false }
492
+ */
493
+ export const roadmapGetPhase = async (args, projectDir, workstream) => {
494
+ const phaseNum = args[0];
495
+ if (!phaseNum) {
496
+ throw new GTDError('Usage: roadmap get-phase <phase-number>', ErrorClassification.Validation);
497
+ }
498
+ const roadmapPath = planningPaths(projectDir, workstream).roadmap;
499
+ let rawContent;
500
+ try {
501
+ rawContent = await readFile(roadmapPath, 'utf-8');
502
+ }
503
+ catch {
504
+ return { data: { found: false, error: 'ROADMAP.md not found' } };
505
+ }
506
+ const milestoneContent = await extractCurrentMilestone(rawContent, projectDir, workstream);
507
+ const escapedPhase = escapeRegex(phaseNum);
508
+ // Search the current milestone slice first, then fall back to full roadmap.
509
+ const fullContent = stripShippedMilestones(rawContent);
510
+ const milestoneResult = searchPhaseInContent(milestoneContent, escapedPhase, phaseNum);
511
+ const result = (milestoneResult && !milestoneResult.error)
512
+ ? milestoneResult
513
+ : searchPhaseInContent(fullContent, escapedPhase, phaseNum) || milestoneResult;
514
+ if (!result) {
515
+ return { data: { found: false, phase_number: phaseNum } };
516
+ }
517
+ return { data: result };
518
+ };
519
+ /**
520
+ * Query handler for roadmap.analyze.
521
+ *
522
+ * Port of cmdRoadmapAnalyze from roadmap.cjs lines 115-248.
523
+ * Multi-pass regex parsing with disk status correlation.
524
+ *
525
+ * @param args - Unused
526
+ * @param projectDir - Project root directory
527
+ * @returns QueryResult with full roadmap analysis
528
+ */
529
+ export const roadmapAnalyze = async (_args, projectDir, workstream) => {
530
+ const roadmapPath = planningPaths(projectDir, workstream).roadmap;
531
+ let rawContent;
532
+ try {
533
+ rawContent = await readFile(roadmapPath, 'utf-8');
534
+ }
535
+ catch {
536
+ return { data: { error: 'ROADMAP.md not found', milestones: [], phases: [], current_phase: null } };
537
+ }
538
+ const content = await extractCurrentMilestone(rawContent, projectDir, workstream);
539
+ const phasesDir = planningPaths(projectDir, workstream).phases;
540
+ // IMPORTANT: Create regex INSIDE the function to avoid /g lastIndex persistence
541
+ const phasePattern = /#{2,4}\s*Phase\s+(\d+[A-Z]?(?:\.\d+)*)\s*:\s*([^\n]+)/gi;
542
+ const phases = [];
543
+ let match;
544
+ while ((match = phasePattern.exec(content)) !== null) {
545
+ const phaseNum = match[1];
546
+ const phaseName = match[2].replace(/\(INSERTED\)/i, '').trim();
547
+ // Extract goal from the section
548
+ const sectionStart = match.index;
549
+ const restOfContent = content.slice(sectionStart);
550
+ const nextHeader = restOfContent.match(/\n#{2,4}\s+Phase\s+\d/i);
551
+ const sectionEnd = nextHeader ? sectionStart + nextHeader.index : content.length;
552
+ const section = content.slice(sectionStart, sectionEnd);
553
+ const goalMatch = section.match(/\*\*Goal(?::\*\*|\*\*:)\s*([^\n]+)/i);
554
+ const goal = goalMatch ? goalMatch[1].trim() : null;
555
+ const dependsMatch = section.match(/\*\*Depends on(?::\*\*|\*\*:)\s*([^\n]+)/i);
556
+ const depends_on = dependsMatch ? dependsMatch[1].trim() : null;
557
+ // Check completion on disk
558
+ const normalized = normalizePhaseName(phaseNum);
559
+ let diskStatus = 'no_directory';
560
+ let planCount = 0;
561
+ let summaryCount = 0;
562
+ let hasContext = false;
563
+ let hasResearch = false;
564
+ try {
565
+ const entries = await readdir(phasesDir, { withFileTypes: true });
566
+ const dirs = entries.filter(e => e.isDirectory()).map(e => e.name);
567
+ const dirMatch = dirs.find(d => phaseTokenMatches(d, normalized));
568
+ if (dirMatch) {
569
+ const counts = await countPhasePlansAndSummaries(join(phasesDir, dirMatch));
570
+ planCount = counts.planCount;
571
+ summaryCount = counts.summaryCount;
572
+ hasContext = counts.hasContext;
573
+ hasResearch = counts.hasResearch;
574
+ if (summaryCount >= planCount && planCount > 0)
575
+ diskStatus = 'complete';
576
+ else if (summaryCount > 0)
577
+ diskStatus = 'partial';
578
+ else if (planCount > 0)
579
+ diskStatus = 'planned';
580
+ else if (hasResearch)
581
+ diskStatus = 'researched';
582
+ else if (hasContext)
583
+ diskStatus = 'discussed';
584
+ else
585
+ diskStatus = 'empty';
586
+ }
587
+ }
588
+ catch { /* intentionally empty */ }
589
+ // Check ROADMAP checkbox status
590
+ const checkboxPattern = new RegExp(`-\\s*\\[(x| )\\]\\s*.*Phase\\s+${escapeRegex(phaseNum)}[:\\s]`, 'i');
591
+ const checkboxMatch = content.match(checkboxPattern);
592
+ const roadmapComplete = checkboxMatch ? checkboxMatch[1] === 'x' : false;
593
+ // If roadmap marks phase complete, trust that over disk
594
+ if (roadmapComplete && diskStatus !== 'complete') {
595
+ diskStatus = 'complete';
596
+ }
597
+ phases.push({
598
+ number: phaseNum,
599
+ name: phaseName,
600
+ goal,
601
+ depends_on,
602
+ plan_count: planCount,
603
+ summary_count: summaryCount,
604
+ has_context: hasContext,
605
+ has_research: hasResearch,
606
+ disk_status: diskStatus,
607
+ roadmap_complete: roadmapComplete,
608
+ });
609
+ }
610
+ // Extract milestone info
611
+ const milestones = [];
612
+ const milestonePattern = /##\s*(.*v(\d+(?:\.\d+)+)[^(\n]*)/gi;
613
+ let mMatch;
614
+ while ((mMatch = milestonePattern.exec(content)) !== null) {
615
+ milestones.push({
616
+ heading: mMatch[1].trim(),
617
+ version: 'v' + mMatch[2],
618
+ });
619
+ }
620
+ // Find current and next phase
621
+ const currentPhase = phases.find(p => p.disk_status === 'planned' || p.disk_status === 'partial') || null;
622
+ const nextPhase = phases.find(p => p.disk_status === 'empty' || p.disk_status === 'no_directory' || p.disk_status === 'discussed' || p.disk_status === 'researched') || null;
623
+ // Aggregated stats
624
+ const totalPlans = phases.reduce((sum, p) => sum + p.plan_count, 0);
625
+ const totalSummaries = phases.reduce((sum, p) => sum + p.summary_count, 0);
626
+ const completedPhases = phases.filter(p => p.disk_status === 'complete').length;
627
+ // Detect phases in summary list without detail sections (malformed ROADMAP)
628
+ const checklistPattern = /-\s*\[[ x]\]\s*\*\*Phase\s+(\d+[A-Z]?(?:\.\d+)*)/gi;
629
+ const checklistPhases = new Set();
630
+ let checklistMatch;
631
+ while ((checklistMatch = checklistPattern.exec(content)) !== null) {
632
+ checklistPhases.add(checklistMatch[1]);
633
+ }
634
+ const detailPhases = new Set(phases.map(p => p.number));
635
+ const missingDetails = [...checklistPhases].filter(p => !detailPhases.has(p));
636
+ const result = {
637
+ milestones,
638
+ phases,
639
+ phase_count: phases.length,
640
+ completed_phases: completedPhases,
641
+ total_plans: totalPlans,
642
+ total_summaries: totalSummaries,
643
+ progress_percent: totalPlans > 0 ? Math.min(100, Math.round((totalSummaries / totalPlans) * 100)) : 0,
644
+ current_phase: currentPhase ? currentPhase.number : null,
645
+ next_phase: nextPhase ? nextPhase.number : null,
646
+ missing_phase_details: missingDetails.length > 0 ? missingDetails : null,
647
+ };
648
+ return { data: result };
649
+ };
650
+ // ─── roadmapAnnotateDependencies ─────────────────────────────────────────
651
+ /**
652
+ * Annotate the ROADMAP.md plan list with wave dependency notes and
653
+ * cross-cutting constraints derived from PLAN frontmatter.
654
+ *
655
+ * Delegates to gtd-tools.cjs which holds the full annotation logic.
656
+ * Returns { updated, phase, waves, cross_cutting_constraints }.
657
+ */
658
+ export const roadmapAnnotateDependencies = async (args, projectDir) => {
659
+ const phase = args[0];
660
+ if (!phase) {
661
+ return { data: { updated: false, reason: 'phase argument required' } };
662
+ }
663
+ const { spawnSync } = await import('node:child_process');
664
+ const toolsPath = resolveGtdToolsPath(projectDir);
665
+ const result = spawnSync(process.execPath, [toolsPath, 'roadmap', 'annotate-dependencies', phase], {
666
+ cwd: projectDir,
667
+ encoding: 'utf-8',
668
+ stdio: ['pipe', 'pipe', 'pipe'],
669
+ timeout: 15000,
670
+ maxBuffer: 1024 * 1024,
671
+ });
672
+ if (result.error) {
673
+ return { data: { updated: false, reason: result.error.message || 'gtd-tools invocation failed' } };
674
+ }
675
+ if (result.status !== 0) {
676
+ return { data: { updated: false, reason: result.stderr?.trim() || 'gtd-tools error' } };
677
+ }
678
+ try {
679
+ return { data: JSON.parse(result.stdout.trim()) };
680
+ }
681
+ catch {
682
+ return { data: { updated: false, reason: 'failed to parse gtd-tools output' } };
683
+ }
684
+ };
685
+ // ─── requirementsMarkComplete ─────────────────────────────────────────────
686
+ /**
687
+ * Mark requirement IDs complete in REQUIREMENTS.md (checkbox + traceability table).
688
+ * Port of `cmdRequirementsMarkComplete` from milestone.cjs lines 11–87.
689
+ */
690
+ export const requirementsMarkComplete = async (args, projectDir, workstream) => {
691
+ if (args.length === 0) {
692
+ throw new GTDError('requirement IDs required. Usage: requirements mark-complete REQ-01,REQ-02 or REQ-01 REQ-02', ErrorClassification.Validation);
693
+ }
694
+ const reqIds = args
695
+ .join(' ')
696
+ .replace(/[\[\]]/g, '')
697
+ .split(/[,\s]+/)
698
+ .map(r => r.trim())
699
+ .filter(Boolean);
700
+ if (reqIds.length === 0) {
701
+ throw new GTDError('no valid requirement IDs found', ErrorClassification.Validation);
702
+ }
703
+ const paths = planningPaths(projectDir, workstream);
704
+ if (!existsSync(paths.requirements)) {
705
+ return { data: { updated: false, reason: 'REQUIREMENTS.md not found', ids: reqIds } };
706
+ }
707
+ let reqContent = (await readFile(paths.requirements, 'utf-8')).replace(/\r\n/g, '\n');
708
+ const updated = [];
709
+ const alreadyComplete = [];
710
+ const notFound = [];
711
+ for (const reqId of reqIds) {
712
+ let found = false;
713
+ const reqEscaped = escapeRegex(reqId);
714
+ const checkboxPattern = new RegExp(`(-\\s*\\[)[ ](\\]\\s*\\*\\*${reqEscaped}\\*\\*)`, 'gi');
715
+ const afterCheckbox = reqContent.replace(checkboxPattern, '$1x$2');
716
+ if (afterCheckbox !== reqContent) {
717
+ reqContent = afterCheckbox;
718
+ found = true;
719
+ }
720
+ const tablePattern = new RegExp(`(\\|\\s*${reqEscaped}\\s*\\|[^|]+\\|)\\s*Pending\\s*(\\|)`, 'gi');
721
+ const afterTable = reqContent.replace(tablePattern, '$1 Complete $2');
722
+ if (afterTable !== reqContent) {
723
+ reqContent = afterTable;
724
+ found = true;
725
+ }
726
+ if (found) {
727
+ updated.push(reqId);
728
+ }
729
+ else {
730
+ const doneCheckbox = new RegExp(`-\\s*\\[x\\]\\s*\\*\\*${reqEscaped}\\*\\*`, 'i');
731
+ const doneTable = new RegExp(`\\|\\s*${reqEscaped}\\s*\\|[^|]+\\|\\s*Complete\\s*\\|`, 'i');
732
+ if (doneCheckbox.test(reqContent) || doneTable.test(reqContent)) {
733
+ alreadyComplete.push(reqId);
734
+ }
735
+ else {
736
+ notFound.push(reqId);
737
+ }
738
+ }
739
+ }
740
+ if (updated.length > 0) {
741
+ await writeFile(paths.requirements, reqContent, 'utf-8');
742
+ }
743
+ return {
744
+ data: {
745
+ updated: updated.length > 0,
746
+ marked_complete: updated,
747
+ already_complete: alreadyComplete,
748
+ not_found: notFound,
749
+ total: reqIds.length,
750
+ },
751
+ };
752
+ };
753
+ //# sourceMappingURL=roadmap.js.map