gsd-pi 2.79.0 → 2.80.0-dev.4ea7d80e7

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 (805) hide show
  1. package/README.md +94 -47
  2. package/dist/loader.js +0 -0
  3. package/dist/resources/.managed-resources-content-hash +1 -1
  4. package/dist/resources/extensions/github-sync/templates.js +90 -74
  5. package/dist/resources/extensions/gsd/auto/contracts.js +1 -0
  6. package/dist/resources/extensions/gsd/auto/custom-verify-retry-store.js +53 -0
  7. package/dist/resources/extensions/gsd/auto/loop.js +365 -522
  8. package/dist/resources/extensions/gsd/auto/orchestrator.js +146 -0
  9. package/dist/resources/extensions/gsd/auto/phases.js +61 -7
  10. package/dist/resources/extensions/gsd/auto/run-unit.js +19 -15
  11. package/dist/resources/extensions/gsd/auto/session.js +8 -0
  12. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-dispatch-outcome.js +12 -0
  13. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-iteration.js +24 -0
  14. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-reconcile-outcome.js +33 -0
  15. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-reconcile.js +26 -0
  16. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-retry.js +49 -0
  17. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-verify-outcome.js +25 -0
  18. package/dist/resources/extensions/gsd/auto/workflow-dispatch-claim.js +48 -0
  19. package/dist/resources/extensions/gsd/auto/workflow-dispatch-ledger.js +26 -0
  20. package/dist/resources/extensions/gsd/auto/workflow-iteration-completion.js +10 -0
  21. package/dist/resources/extensions/gsd/auto/workflow-journal-reporter.js +16 -0
  22. package/dist/resources/extensions/gsd/auto/workflow-kernel.js +263 -0
  23. package/dist/resources/extensions/gsd/auto/workflow-memory-pressure.js +36 -0
  24. package/dist/resources/extensions/gsd/auto/workflow-phase-reporter.js +9 -0
  25. package/dist/resources/extensions/gsd/auto/workflow-session-lock.js +35 -0
  26. package/dist/resources/extensions/gsd/auto/workflow-sidecar-iteration.js +24 -0
  27. package/dist/resources/extensions/gsd/auto/workflow-sidecar-queue.js +26 -0
  28. package/dist/resources/extensions/gsd/auto/workflow-turn-reporter.js +36 -0
  29. package/dist/resources/extensions/gsd/auto/workflow-unit-dispatch.js +44 -0
  30. package/dist/resources/extensions/gsd/auto/workflow-worker-heartbeat.js +15 -0
  31. package/dist/resources/extensions/gsd/auto-artifact-paths.js +2 -2
  32. package/dist/resources/extensions/gsd/auto-dashboard.js +54 -15
  33. package/dist/resources/extensions/gsd/auto-dispatch.js +12 -0
  34. package/dist/resources/extensions/gsd/auto-prompts.js +220 -32
  35. package/dist/resources/extensions/gsd/auto-recovery.js +216 -62
  36. package/dist/resources/extensions/gsd/auto-runtime-state.js +4 -0
  37. package/dist/resources/extensions/gsd/auto-start.js +4 -4
  38. package/dist/resources/extensions/gsd/auto-verification.js +2 -11
  39. package/dist/resources/extensions/gsd/auto-worktree.js +87 -38
  40. package/dist/resources/extensions/gsd/auto.js +168 -3
  41. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +24 -2
  42. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +10 -0
  43. package/dist/resources/extensions/gsd/bootstrap/exec-tools.js +2 -2
  44. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +63 -51
  45. package/dist/resources/extensions/gsd/bootstrap/write-gate.js +137 -9
  46. package/dist/resources/extensions/gsd/commands/context.js +1 -1
  47. package/dist/resources/extensions/gsd/commands-extract-learnings.js +17 -12
  48. package/dist/resources/extensions/gsd/commands-ship.js +23 -46
  49. package/dist/resources/extensions/gsd/commands-workflow-templates.js +12 -7
  50. package/dist/resources/extensions/gsd/component-loader.js +5 -11
  51. package/dist/resources/extensions/gsd/custom-workflow-engine.js +25 -1
  52. package/dist/resources/extensions/gsd/db-adapter.js +47 -0
  53. package/dist/resources/extensions/gsd/db-base-schema.js +351 -0
  54. package/dist/resources/extensions/gsd/db-connection-cache.js +31 -0
  55. package/dist/resources/extensions/gsd/db-coordination-schema.js +104 -0
  56. package/dist/resources/extensions/gsd/db-decision-requirement-rows.js +71 -0
  57. package/dist/resources/extensions/gsd/db-gate-rows.js +16 -0
  58. package/dist/resources/extensions/gsd/db-lightweight-query-rows.js +29 -0
  59. package/dist/resources/extensions/gsd/db-memory-fts-schema.js +56 -0
  60. package/dist/resources/extensions/gsd/db-migration-backup.js +22 -0
  61. package/dist/resources/extensions/gsd/db-migration-steps.js +410 -0
  62. package/dist/resources/extensions/gsd/db-milestone-artifact-rows.js +35 -0
  63. package/dist/resources/extensions/gsd/db-open-state.js +32 -0
  64. package/dist/resources/extensions/gsd/db-provider.js +108 -0
  65. package/dist/resources/extensions/gsd/db-runtime-kv-schema.js +27 -0
  66. package/dist/resources/extensions/gsd/db-schema-metadata.js +23 -0
  67. package/dist/resources/extensions/gsd/db-task-slice-rows.js +86 -0
  68. package/dist/resources/extensions/gsd/db-transaction.js +63 -0
  69. package/dist/resources/extensions/gsd/db-verification-evidence-rows.js +3 -0
  70. package/dist/resources/extensions/gsd/db-verification-evidence-schema.js +19 -0
  71. package/dist/resources/extensions/gsd/escalation.js +2 -0
  72. package/dist/resources/extensions/gsd/graph.js +9 -3
  73. package/dist/resources/extensions/gsd/gsd-db.js +316 -1520
  74. package/dist/resources/extensions/gsd/guided-flow.js +42 -2
  75. package/dist/resources/extensions/gsd/legacy-telemetry.js +70 -0
  76. package/dist/resources/extensions/gsd/markdown-renderer.js +2 -0
  77. package/dist/resources/extensions/gsd/model-router.js +9 -6
  78. package/dist/resources/extensions/gsd/notification-widget.js +21 -3
  79. package/dist/resources/extensions/gsd/paths.js +5 -1
  80. package/dist/resources/extensions/gsd/post-execution-checks.js +27 -6
  81. package/dist/resources/extensions/gsd/pr-evidence.js +117 -0
  82. package/dist/resources/extensions/gsd/pre-execution-checks.js +2 -0
  83. package/dist/resources/extensions/gsd/preferences-types.js +20 -2
  84. package/dist/resources/extensions/gsd/preferences-validation.js +3 -3
  85. package/dist/resources/extensions/gsd/process-task-path.js +61 -0
  86. package/dist/resources/extensions/gsd/prompt-loader.js +9 -5
  87. package/dist/resources/extensions/gsd/prompts/complete-milestone.md +32 -30
  88. package/dist/resources/extensions/gsd/prompts/complete-slice.md +23 -34
  89. package/dist/resources/extensions/gsd/prompts/discuss-headless.md +50 -96
  90. package/dist/resources/extensions/gsd/prompts/discuss.md +81 -181
  91. package/dist/resources/extensions/gsd/prompts/execute-task.md +40 -67
  92. package/dist/resources/extensions/gsd/prompts/forensics.md +41 -84
  93. package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +29 -39
  94. package/dist/resources/extensions/gsd/prompts/guided-discuss-project.md +30 -65
  95. package/dist/resources/extensions/gsd/prompts/guided-discuss-requirements.md +25 -52
  96. package/dist/resources/extensions/gsd/prompts/guided-discuss-slice.md +36 -36
  97. package/dist/resources/extensions/gsd/prompts/guided-research-project.md +20 -38
  98. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +45 -59
  99. package/dist/resources/extensions/gsd/prompts/plan-slice.md +25 -87
  100. package/dist/resources/extensions/gsd/prompts/queue.md +46 -53
  101. package/dist/resources/extensions/gsd/prompts/refine-slice.md +23 -23
  102. package/dist/resources/extensions/gsd/prompts/research-slice.md +23 -23
  103. package/dist/resources/extensions/gsd/prompts/rethink.md +10 -10
  104. package/dist/resources/extensions/gsd/prompts/system.md +65 -107
  105. package/dist/resources/extensions/gsd/prompts/triage-captures.md +15 -15
  106. package/dist/resources/extensions/gsd/prompts/validate-milestone.md +24 -24
  107. package/dist/resources/extensions/gsd/prompts/worktree-merge.md +35 -35
  108. package/dist/resources/extensions/gsd/state.js +4 -0
  109. package/dist/resources/extensions/gsd/tools/complete-milestone.js +14 -9
  110. package/dist/resources/extensions/gsd/tools/complete-task.js +2 -0
  111. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +88 -3
  112. package/dist/resources/extensions/gsd/unit-context-composer.js +32 -0
  113. package/dist/resources/extensions/gsd/unit-context-manifest.js +21 -0
  114. package/dist/resources/extensions/gsd/uok/audit.js +23 -9
  115. package/dist/resources/extensions/gsd/uok/contracts.js +69 -1
  116. package/dist/resources/extensions/gsd/uok/dispatch-envelope.js +3 -0
  117. package/dist/resources/extensions/gsd/uok/kernel.js +8 -3
  118. package/dist/resources/extensions/gsd/uok/loop-adapter.js +48 -33
  119. package/dist/resources/extensions/gsd/uok/plan-v2.js +2 -0
  120. package/dist/resources/extensions/gsd/uok/timeline.js +125 -0
  121. package/dist/resources/extensions/gsd/workflow-logger.js +13 -13
  122. package/dist/resources/extensions/gsd/workflow-manifest.js +2 -0
  123. package/dist/resources/extensions/gsd/workflow-projections.js +2 -0
  124. package/dist/resources/extensions/gsd/workflow-templates.js +9 -0
  125. package/dist/resources/extensions/gsd/working-output-messages.js +64 -0
  126. package/dist/resources/extensions/shared/gsd-phase-state.js +45 -3
  127. package/dist/resources/extensions/shared/interview-ui.js +15 -4
  128. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  129. package/dist/web/standalone/.next/BUILD_ID +1 -1
  130. package/dist/web/standalone/.next/app-path-routes-manifest.json +10 -10
  131. package/dist/web/standalone/.next/build-manifest.json +4 -4
  132. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  133. package/dist/web/standalone/.next/react-loadable-manifest.json +1 -1
  134. package/dist/web/standalone/.next/required-server-files.json +4 -4
  135. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  136. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  137. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  138. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  139. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  140. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  141. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  142. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  143. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  144. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  145. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  146. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  147. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  148. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  149. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  150. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  151. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  152. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  153. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  154. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  155. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  156. package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
  157. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  158. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  159. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
  160. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  161. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  162. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
  163. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  164. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  165. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
  166. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  167. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  168. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  169. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  170. package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
  171. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  172. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  173. package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  174. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  175. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  176. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  177. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  178. package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
  179. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  180. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  181. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  182. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  183. package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
  184. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  185. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  186. package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  187. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  188. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  189. package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
  190. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  191. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  192. package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  193. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  194. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  195. package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  196. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  197. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  198. package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
  199. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  200. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  201. package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
  202. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  203. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  204. package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
  205. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  206. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  207. package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
  208. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  209. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  210. package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  211. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  212. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  213. package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  214. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  215. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  216. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  217. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  218. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  219. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  220. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  221. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  222. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  223. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  224. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  225. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  226. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  227. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  228. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  229. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  230. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  231. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  232. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  233. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  234. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  235. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  236. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  237. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  238. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  239. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  240. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  241. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  242. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  243. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  244. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  245. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  246. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  247. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  248. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  249. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  250. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  251. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
  252. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  253. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  254. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  255. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +1 -1
  256. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  257. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  258. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +2 -2
  259. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  260. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  261. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  262. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  263. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  264. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  265. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  266. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  267. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  268. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  269. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  270. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  271. package/dist/web/standalone/.next/server/app/index.html +1 -1
  272. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  273. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  274. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  275. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  276. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  277. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  278. package/dist/web/standalone/.next/server/app/page.js +2 -2
  279. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  280. package/dist/web/standalone/.next/server/app-paths-manifest.json +10 -10
  281. package/dist/web/standalone/.next/server/chunks/167.js +2 -0
  282. package/dist/web/standalone/.next/server/chunks/63.js +3 -3
  283. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  284. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  285. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  286. package/dist/web/standalone/.next/server/middleware.js +2 -2
  287. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  288. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  289. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  290. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  291. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  292. package/dist/web/standalone/.next/static/chunks/{8336.6f6f30e410419aff.js → 8336.631939fb583761fa.js} +1 -1
  293. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  294. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  295. package/dist/web/standalone/.next/static/chunks/app/page-fab3ebb85b006001.js +1 -0
  296. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  297. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  298. package/dist/web/standalone/.next/static/chunks/{webpack-d82dbee6356c1733.js → webpack-0481f1221120a7c6.js} +1 -1
  299. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  300. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  301. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  302. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  303. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  304. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  305. package/dist/web/standalone/package.json +1 -0
  306. package/dist/web/standalone/server.js +1 -1
  307. package/package.json +18 -7
  308. package/packages/contracts/dist/index.d.ts +3 -0
  309. package/packages/contracts/dist/index.d.ts.map +1 -0
  310. package/packages/contracts/dist/index.js +5 -0
  311. package/packages/contracts/dist/index.js.map +1 -0
  312. package/packages/contracts/dist/rpc.d.ts +549 -0
  313. package/packages/contracts/dist/rpc.d.ts.map +1 -0
  314. package/packages/contracts/dist/rpc.js +53 -0
  315. package/packages/contracts/dist/rpc.js.map +1 -0
  316. package/packages/contracts/dist/rpc.test.d.ts +2 -0
  317. package/packages/contracts/dist/rpc.test.d.ts.map +1 -0
  318. package/packages/contracts/dist/rpc.test.js +47 -0
  319. package/packages/contracts/dist/rpc.test.js.map +1 -0
  320. package/packages/contracts/dist/workflow.d.ts +180 -0
  321. package/packages/contracts/dist/workflow.d.ts.map +1 -0
  322. package/packages/contracts/dist/workflow.js +201 -0
  323. package/packages/contracts/dist/workflow.js.map +1 -0
  324. package/packages/contracts/package.json +39 -0
  325. package/packages/contracts/src/index.ts +5 -0
  326. package/packages/contracts/src/rpc.test.ts +72 -0
  327. package/packages/contracts/src/rpc.ts +286 -0
  328. package/packages/contracts/src/workflow.ts +213 -0
  329. package/packages/contracts/tsconfig.json +25 -0
  330. package/packages/daemon/package.json +3 -2
  331. package/packages/daemon/src/event-bridge.test.ts +2 -1
  332. package/packages/daemon/src/event-bridge.ts +1 -1
  333. package/packages/daemon/src/event-formatter.test.ts +1 -2
  334. package/packages/daemon/src/event-formatter.ts +1 -2
  335. package/packages/daemon/src/session-manager.ts +2 -2
  336. package/packages/daemon/src/types.ts +3 -18
  337. package/packages/mcp-server/dist/server.d.ts +13 -0
  338. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  339. package/packages/mcp-server/dist/server.js +77 -0
  340. package/packages/mcp-server/dist/server.js.map +1 -1
  341. package/packages/mcp-server/dist/session-manager.js +1 -1
  342. package/packages/mcp-server/dist/session-manager.js.map +1 -1
  343. package/packages/mcp-server/dist/types.d.ts +3 -11
  344. package/packages/mcp-server/dist/types.d.ts.map +1 -1
  345. package/packages/mcp-server/dist/types.js.map +1 -1
  346. package/packages/mcp-server/dist/workflow-tools.d.ts +1 -1
  347. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  348. package/packages/mcp-server/dist/workflow-tools.js +52 -37
  349. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  350. package/packages/mcp-server/package.json +3 -2
  351. package/packages/mcp-server/src/mcp-server.test.ts +138 -0
  352. package/packages/mcp-server/src/server.ts +99 -1
  353. package/packages/mcp-server/src/session-manager.ts +2 -2
  354. package/packages/mcp-server/src/types.ts +7 -18
  355. package/packages/mcp-server/src/workflow-tools.test.ts +129 -2
  356. package/packages/mcp-server/src/workflow-tools.ts +80 -37
  357. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  358. package/packages/native/package.json +1 -1
  359. package/packages/pi-agent-core/package.json +1 -1
  360. package/packages/pi-ai/dist/models/fake-model.d.ts +12 -0
  361. package/packages/pi-ai/dist/models/fake-model.d.ts.map +1 -0
  362. package/packages/pi-ai/dist/models/fake-model.js +27 -0
  363. package/packages/pi-ai/dist/models/fake-model.js.map +1 -0
  364. package/packages/pi-ai/dist/models/index.d.ts.map +1 -1
  365. package/packages/pi-ai/dist/models/index.js +8 -0
  366. package/packages/pi-ai/dist/models/index.js.map +1 -1
  367. package/packages/pi-ai/dist/providers/fake.d.ts +42 -0
  368. package/packages/pi-ai/dist/providers/fake.d.ts.map +1 -0
  369. package/packages/pi-ai/dist/providers/fake.js +319 -0
  370. package/packages/pi-ai/dist/providers/fake.js.map +1 -0
  371. package/packages/pi-ai/dist/providers/register-builtins.d.ts.map +1 -1
  372. package/packages/pi-ai/dist/providers/register-builtins.js +24 -0
  373. package/packages/pi-ai/dist/providers/register-builtins.js.map +1 -1
  374. package/packages/pi-ai/package.json +1 -1
  375. package/packages/pi-ai/src/models/fake-model.ts +30 -0
  376. package/packages/pi-ai/src/models/index.ts +9 -0
  377. package/packages/pi-ai/src/providers/fake.ts +376 -0
  378. package/packages/pi-ai/src/providers/register-builtins.ts +23 -0
  379. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  380. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +74 -0
  381. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  382. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +2 -0
  383. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  384. package/packages/pi-coding-agent/dist/core/extensions/runner.js +14 -1
  385. package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  386. package/packages/pi-coding-agent/dist/core/extensions/runner.test.js +97 -0
  387. package/packages/pi-coding-agent/dist/core/extensions/runner.test.js.map +1 -1
  388. package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  389. package/packages/pi-coding-agent/dist/core/model-registry.js +5 -0
  390. package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  391. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +4 -0
  392. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  393. package/packages/pi-coding-agent/dist/core/settings-manager.js +8 -0
  394. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  395. package/packages/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -1
  396. package/packages/pi-coding-agent/dist/core/slash-commands.js +1 -0
  397. package/packages/pi-coding-agent/dist/core/slash-commands.js.map +1 -1
  398. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js +6 -4
  399. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js.map +1 -1
  400. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +67 -14
  401. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  402. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.d.ts +26 -0
  403. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.d.ts.map +1 -0
  404. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.js +112 -0
  405. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.js.map +1 -0
  406. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.d.ts +2 -0
  407. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.d.ts.map +1 -0
  408. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.js +51 -0
  409. package/packages/pi-coding-agent/dist/modes/interactive/components/adaptive-layout.test.js.map +1 -0
  410. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  411. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
  412. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -1
  413. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +10 -9
  414. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -1
  415. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +3 -0
  416. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  417. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +11 -0
  418. package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
  419. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js +27 -6
  420. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js.map +1 -1
  421. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +16 -0
  422. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  423. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +112 -18
  424. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  425. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  426. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +60 -1
  427. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  428. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.js +40 -1
  429. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.test.js.map +1 -1
  430. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js +1 -0
  431. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js.map +1 -1
  432. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts +1 -0
  433. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts.map +1 -1
  434. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.js.map +1 -1
  435. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +12 -1
  436. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  437. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +54 -10
  438. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  439. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.d.ts.map +1 -1
  440. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js +20 -0
  441. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js.map +1 -1
  442. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.d.ts +2 -0
  443. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.d.ts.map +1 -0
  444. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.js +79 -0
  445. package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.test.js.map +1 -0
  446. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts +12 -0
  447. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  448. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js +13 -0
  449. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  450. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +1 -1
  451. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  452. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +18 -1
  453. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  454. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  455. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +36 -27
  456. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
  457. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.d.ts +11 -0
  458. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.d.ts.map +1 -0
  459. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.js +18 -0
  460. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.js.map +1 -0
  461. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.d.ts +2 -0
  462. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.d.ts.map +1 -0
  463. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.js +48 -0
  464. package/packages/pi-coding-agent/dist/modes/interactive/tui-mode.test.js.map +1 -0
  465. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts +1 -512
  466. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  467. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.js +3 -7
  468. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.js.map +1 -1
  469. package/packages/pi-coding-agent/package.json +2 -1
  470. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +87 -0
  471. package/packages/pi-coding-agent/src/core/extensions/runner.test.ts +108 -0
  472. package/packages/pi-coding-agent/src/core/extensions/runner.ts +16 -1
  473. package/packages/pi-coding-agent/src/core/model-registry.ts +4 -0
  474. package/packages/pi-coding-agent/src/core/settings-manager.ts +12 -0
  475. package/packages/pi-coding-agent/src/core/slash-commands.ts +1 -0
  476. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.ts +7 -5
  477. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +100 -16
  478. package/packages/pi-coding-agent/src/modes/interactive/components/adaptive-layout.test.ts +59 -0
  479. package/packages/pi-coding-agent/src/modes/interactive/components/adaptive-layout.ts +160 -0
  480. package/packages/pi-coding-agent/src/modes/interactive/components/assistant-message.ts +1 -0
  481. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +10 -9
  482. package/packages/pi-coding-agent/src/modes/interactive/components/settings-selector.ts +15 -0
  483. package/packages/pi-coding-agent/src/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.ts +41 -9
  484. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +124 -18
  485. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.test.ts +43 -1
  486. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +75 -1
  487. package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.test.ts +1 -0
  488. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-state.ts +1 -1
  489. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +75 -9
  490. package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.test.ts +95 -0
  491. package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.ts +24 -1
  492. package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.ts +13 -0
  493. package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +32 -2
  494. package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +36 -27
  495. package/packages/pi-coding-agent/src/modes/interactive/tui-mode.test.ts +65 -0
  496. package/packages/pi-coding-agent/src/modes/interactive/tui-mode.ts +29 -0
  497. package/packages/pi-coding-agent/src/modes/rpc/rpc-types.ts +3 -336
  498. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  499. package/packages/pi-tui/dist/__tests__/style.test.d.ts +2 -0
  500. package/packages/pi-tui/dist/__tests__/style.test.d.ts.map +1 -0
  501. package/packages/pi-tui/dist/__tests__/style.test.js +63 -0
  502. package/packages/pi-tui/dist/__tests__/style.test.js.map +1 -0
  503. package/packages/pi-tui/dist/__tests__/tui.test.js +24 -3
  504. package/packages/pi-tui/dist/__tests__/tui.test.js.map +1 -1
  505. package/packages/pi-tui/dist/index.d.ts +1 -0
  506. package/packages/pi-tui/dist/index.d.ts.map +1 -1
  507. package/packages/pi-tui/dist/index.js +2 -0
  508. package/packages/pi-tui/dist/index.js.map +1 -1
  509. package/packages/pi-tui/dist/style.d.ts +41 -0
  510. package/packages/pi-tui/dist/style.d.ts.map +1 -0
  511. package/packages/pi-tui/dist/style.js +158 -0
  512. package/packages/pi-tui/dist/style.js.map +1 -0
  513. package/packages/pi-tui/dist/tui.d.ts.map +1 -1
  514. package/packages/pi-tui/dist/tui.js +1 -0
  515. package/packages/pi-tui/dist/tui.js.map +1 -1
  516. package/packages/pi-tui/package.json +1 -1
  517. package/packages/pi-tui/src/__tests__/style.test.ts +76 -0
  518. package/packages/pi-tui/src/__tests__/tui.test.ts +29 -3
  519. package/packages/pi-tui/src/index.ts +9 -0
  520. package/packages/pi-tui/src/style.ts +225 -0
  521. package/packages/pi-tui/src/tui.ts +1 -0
  522. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
  523. package/packages/rpc-client/README.md +3 -3
  524. package/packages/rpc-client/dist/index.d.ts +1 -1
  525. package/packages/rpc-client/dist/index.d.ts.map +1 -1
  526. package/packages/rpc-client/dist/index.js.map +1 -1
  527. package/packages/rpc-client/dist/rpc-client.d.ts +2 -6
  528. package/packages/rpc-client/dist/rpc-client.d.ts.map +1 -1
  529. package/packages/rpc-client/dist/rpc-client.js.map +1 -1
  530. package/packages/rpc-client/dist/rpc-types.d.ts +1 -565
  531. package/packages/rpc-client/dist/rpc-types.d.ts.map +1 -1
  532. package/packages/rpc-client/dist/rpc-types.js +3 -11
  533. package/packages/rpc-client/dist/rpc-types.js.map +1 -1
  534. package/packages/rpc-client/package.json +4 -1
  535. package/packages/rpc-client/src/index.ts +1 -1
  536. package/packages/rpc-client/src/rpc-client.ts +3 -6
  537. package/packages/rpc-client/src/rpc-types.ts +3 -398
  538. package/packages/rpc-client/tsconfig.tsbuildinfo +1 -1
  539. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts +12 -0
  540. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  541. package/pkg/dist/modes/interactive/theme/theme-schema.js +13 -0
  542. package/pkg/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  543. package/pkg/dist/modes/interactive/theme/theme.d.ts +1 -1
  544. package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  545. package/pkg/dist/modes/interactive/theme/theme.js +18 -1
  546. package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
  547. package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  548. package/pkg/dist/modes/interactive/theme/themes.js +36 -27
  549. package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
  550. package/pkg/package.json +1 -1
  551. package/src/resources/extensions/github-sync/templates.ts +93 -88
  552. package/src/resources/extensions/github-sync/tests/inline-code.test.ts +66 -0
  553. package/src/resources/extensions/github-sync/tests/templates.test.ts +10 -2
  554. package/src/resources/extensions/gsd/auto/contracts.ts +87 -0
  555. package/src/resources/extensions/gsd/auto/custom-verify-retry-store.ts +72 -0
  556. package/src/resources/extensions/gsd/auto/loop-deps.ts +10 -3
  557. package/src/resources/extensions/gsd/auto/loop.ts +416 -596
  558. package/src/resources/extensions/gsd/auto/orchestrator.ts +161 -0
  559. package/src/resources/extensions/gsd/auto/phases.ts +88 -9
  560. package/src/resources/extensions/gsd/auto/run-unit.ts +24 -14
  561. package/src/resources/extensions/gsd/auto/session.ts +11 -0
  562. package/src/resources/extensions/gsd/auto/workflow-custom-engine-dispatch-outcome.ts +28 -0
  563. package/src/resources/extensions/gsd/auto/workflow-custom-engine-iteration.ts +52 -0
  564. package/src/resources/extensions/gsd/auto/workflow-custom-engine-reconcile-outcome.ts +58 -0
  565. package/src/resources/extensions/gsd/auto/workflow-custom-engine-reconcile.ts +71 -0
  566. package/src/resources/extensions/gsd/auto/workflow-custom-engine-retry.ts +90 -0
  567. package/src/resources/extensions/gsd/auto/workflow-custom-engine-verify-outcome.ts +50 -0
  568. package/src/resources/extensions/gsd/auto/workflow-dispatch-claim.ts +97 -0
  569. package/src/resources/extensions/gsd/auto/workflow-dispatch-ledger.ts +45 -0
  570. package/src/resources/extensions/gsd/auto/workflow-iteration-completion.ts +26 -0
  571. package/src/resources/extensions/gsd/auto/workflow-journal-reporter.ts +33 -0
  572. package/src/resources/extensions/gsd/auto/workflow-kernel.ts +520 -0
  573. package/src/resources/extensions/gsd/auto/workflow-memory-pressure.ts +58 -0
  574. package/src/resources/extensions/gsd/auto/workflow-phase-reporter.ts +22 -0
  575. package/src/resources/extensions/gsd/auto/workflow-session-lock.ts +68 -0
  576. package/src/resources/extensions/gsd/auto/workflow-sidecar-iteration.ts +46 -0
  577. package/src/resources/extensions/gsd/auto/workflow-sidecar-queue.ts +46 -0
  578. package/src/resources/extensions/gsd/auto/workflow-turn-reporter.ts +68 -0
  579. package/src/resources/extensions/gsd/auto/workflow-unit-dispatch.ts +89 -0
  580. package/src/resources/extensions/gsd/auto/workflow-worker-heartbeat.ts +38 -0
  581. package/src/resources/extensions/gsd/auto-artifact-paths.ts +2 -2
  582. package/src/resources/extensions/gsd/auto-dashboard.ts +61 -8
  583. package/src/resources/extensions/gsd/auto-dispatch.ts +18 -0
  584. package/src/resources/extensions/gsd/auto-prompts.ts +276 -31
  585. package/src/resources/extensions/gsd/auto-recovery.ts +211 -59
  586. package/src/resources/extensions/gsd/auto-runtime-state.ts +7 -0
  587. package/src/resources/extensions/gsd/auto-start.ts +9 -7
  588. package/src/resources/extensions/gsd/auto-verification.ts +5 -1
  589. package/src/resources/extensions/gsd/auto-worktree.ts +85 -36
  590. package/src/resources/extensions/gsd/auto.ts +179 -2
  591. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +30 -2
  592. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +11 -0
  593. package/src/resources/extensions/gsd/bootstrap/exec-tools.ts +2 -2
  594. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +79 -52
  595. package/src/resources/extensions/gsd/bootstrap/tests/write-gate-shouldblock-basepath.test.ts +97 -0
  596. package/src/resources/extensions/gsd/bootstrap/write-gate.ts +143 -5
  597. package/src/resources/extensions/gsd/commands/context.ts +1 -1
  598. package/src/resources/extensions/gsd/commands-extract-learnings.ts +17 -12
  599. package/src/resources/extensions/gsd/commands-ship.ts +24 -51
  600. package/src/resources/extensions/gsd/commands-workflow-templates.ts +13 -0
  601. package/src/resources/extensions/gsd/component-loader.ts +5 -11
  602. package/src/resources/extensions/gsd/custom-workflow-engine.ts +29 -0
  603. package/src/resources/extensions/gsd/db-adapter.ts +75 -0
  604. package/src/resources/extensions/gsd/db-base-schema.ts +383 -0
  605. package/src/resources/extensions/gsd/db-connection-cache.ts +45 -0
  606. package/src/resources/extensions/gsd/db-coordination-schema.ts +109 -0
  607. package/src/resources/extensions/gsd/db-decision-requirement-rows.ts +77 -0
  608. package/src/resources/extensions/gsd/db-gate-rows.ts +19 -0
  609. package/src/resources/extensions/gsd/db-lightweight-query-rows.ts +50 -0
  610. package/src/resources/extensions/gsd/db-memory-fts-schema.ts +66 -0
  611. package/src/resources/extensions/gsd/db-migration-backup.ts +34 -0
  612. package/src/resources/extensions/gsd/db-migration-steps.ts +451 -0
  613. package/src/resources/extensions/gsd/db-milestone-artifact-rows.ts +70 -0
  614. package/src/resources/extensions/gsd/db-open-state.ts +47 -0
  615. package/src/resources/extensions/gsd/db-provider.ts +148 -0
  616. package/src/resources/extensions/gsd/db-runtime-kv-schema.ts +30 -0
  617. package/src/resources/extensions/gsd/db-schema-metadata.ts +33 -0
  618. package/src/resources/extensions/gsd/db-task-slice-rows.ts +146 -0
  619. package/src/resources/extensions/gsd/db-transaction.ts +76 -0
  620. package/src/resources/extensions/gsd/db-verification-evidence-rows.ts +14 -0
  621. package/src/resources/extensions/gsd/db-verification-evidence-schema.ts +22 -0
  622. package/src/resources/extensions/gsd/escalation.ts +3 -1
  623. package/src/resources/extensions/gsd/graph.ts +12 -5
  624. package/src/resources/extensions/gsd/gsd-db.ts +379 -1660
  625. package/src/resources/extensions/gsd/guided-flow.ts +49 -2
  626. package/src/resources/extensions/gsd/interrupted-session.ts +1 -0
  627. package/src/resources/extensions/gsd/legacy-telemetry.ts +99 -0
  628. package/src/resources/extensions/gsd/markdown-renderer.ts +4 -1
  629. package/src/resources/extensions/gsd/model-router.ts +10 -6
  630. package/src/resources/extensions/gsd/notification-widget.ts +25 -4
  631. package/src/resources/extensions/gsd/paths.ts +6 -1
  632. package/src/resources/extensions/gsd/post-execution-checks.ts +35 -7
  633. package/src/resources/extensions/gsd/pr-evidence.ts +182 -0
  634. package/src/resources/extensions/gsd/pre-execution-checks.ts +4 -1
  635. package/src/resources/extensions/gsd/preferences-types.ts +23 -4
  636. package/src/resources/extensions/gsd/preferences-validation.ts +3 -3
  637. package/src/resources/extensions/gsd/process-task-path.ts +81 -0
  638. package/src/resources/extensions/gsd/prompt-loader.ts +9 -5
  639. package/src/resources/extensions/gsd/prompts/complete-milestone.md +32 -30
  640. package/src/resources/extensions/gsd/prompts/complete-slice.md +23 -34
  641. package/src/resources/extensions/gsd/prompts/discuss-headless.md +50 -96
  642. package/src/resources/extensions/gsd/prompts/discuss.md +81 -181
  643. package/src/resources/extensions/gsd/prompts/execute-task.md +40 -67
  644. package/src/resources/extensions/gsd/prompts/forensics.md +41 -84
  645. package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +29 -39
  646. package/src/resources/extensions/gsd/prompts/guided-discuss-project.md +30 -65
  647. package/src/resources/extensions/gsd/prompts/guided-discuss-requirements.md +25 -52
  648. package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +36 -36
  649. package/src/resources/extensions/gsd/prompts/guided-research-project.md +20 -38
  650. package/src/resources/extensions/gsd/prompts/plan-milestone.md +45 -59
  651. package/src/resources/extensions/gsd/prompts/plan-slice.md +25 -87
  652. package/src/resources/extensions/gsd/prompts/queue.md +46 -53
  653. package/src/resources/extensions/gsd/prompts/refine-slice.md +23 -23
  654. package/src/resources/extensions/gsd/prompts/research-slice.md +23 -23
  655. package/src/resources/extensions/gsd/prompts/rethink.md +10 -10
  656. package/src/resources/extensions/gsd/prompts/system.md +65 -107
  657. package/src/resources/extensions/gsd/prompts/triage-captures.md +15 -15
  658. package/src/resources/extensions/gsd/prompts/validate-milestone.md +24 -24
  659. package/src/resources/extensions/gsd/prompts/worktree-merge.md +35 -35
  660. package/src/resources/extensions/gsd/state.ts +6 -3
  661. package/src/resources/extensions/gsd/tests/auto-abort-pause-regression.test.ts +38 -0
  662. package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +98 -0
  663. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +117 -0
  664. package/src/resources/extensions/gsd/tests/auto-orchestrator.test.ts +353 -0
  665. package/src/resources/extensions/gsd/tests/auto-pr-bugs.test.ts +19 -0
  666. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +277 -1
  667. package/src/resources/extensions/gsd/tests/auto-runtime-state.test.ts +39 -0
  668. package/src/resources/extensions/gsd/tests/auto-session-encapsulation.test.ts +3 -0
  669. package/src/resources/extensions/gsd/tests/bootstrap-derive-state-db-open.test.ts +2 -2
  670. package/src/resources/extensions/gsd/tests/check-auto-start-pending-gate.test.ts +203 -0
  671. package/src/resources/extensions/gsd/tests/check-auto-start-ready-guard.test.ts +148 -0
  672. package/src/resources/extensions/gsd/tests/commands-eval-review.test.ts +2 -2
  673. package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +9 -0
  674. package/src/resources/extensions/gsd/tests/commands-ship-eval-warn.test.ts +3 -2
  675. package/src/resources/extensions/gsd/tests/complete-milestone-prompt-rendering.test.ts +47 -0
  676. package/src/resources/extensions/gsd/tests/complete-milestone.test.ts +19 -5
  677. package/src/resources/extensions/gsd/tests/component-loader.test.ts +2 -9
  678. package/src/resources/extensions/gsd/tests/current-directory-root-homedir-fallback.test.ts +63 -0
  679. package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +144 -0
  680. package/src/resources/extensions/gsd/tests/custom-verify-retry-store.test.ts +139 -0
  681. package/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts +50 -0
  682. package/src/resources/extensions/gsd/tests/dashboard-custom-engine.test.ts +3 -3
  683. package/src/resources/extensions/gsd/tests/db-adapter.test.ts +82 -0
  684. package/src/resources/extensions/gsd/tests/db-base-schema.test.ts +62 -0
  685. package/src/resources/extensions/gsd/tests/db-connection-cache.test.ts +60 -0
  686. package/src/resources/extensions/gsd/tests/db-coordination-schema.test.ts +39 -0
  687. package/src/resources/extensions/gsd/tests/db-decision-requirement-rows.test.ts +135 -0
  688. package/src/resources/extensions/gsd/tests/db-gate-rows.test.ts +53 -0
  689. package/src/resources/extensions/gsd/tests/db-lightweight-query-rows.test.ts +45 -0
  690. package/src/resources/extensions/gsd/tests/db-memory-fts-schema.test.ts +86 -0
  691. package/src/resources/extensions/gsd/tests/db-migration-backup.test.ts +105 -0
  692. package/src/resources/extensions/gsd/tests/db-migration-steps.integration.test.ts +428 -0
  693. package/src/resources/extensions/gsd/tests/db-migration-steps.test.ts +159 -0
  694. package/src/resources/extensions/gsd/tests/db-milestone-artifact-rows.test.ts +53 -0
  695. package/src/resources/extensions/gsd/tests/db-open-state.test.ts +56 -0
  696. package/src/resources/extensions/gsd/tests/db-provider.test.ts +105 -0
  697. package/src/resources/extensions/gsd/tests/db-runtime-kv-schema.test.ts +37 -0
  698. package/src/resources/extensions/gsd/tests/db-schema-metadata.test.ts +115 -0
  699. package/src/resources/extensions/gsd/tests/db-task-slice-rows.test.ts +128 -0
  700. package/src/resources/extensions/gsd/tests/db-transaction.test.ts +110 -0
  701. package/src/resources/extensions/gsd/tests/db-verification-evidence-schema.test.ts +76 -0
  702. package/src/resources/extensions/gsd/tests/deep-planning-mode-dispatch.test.ts +42 -0
  703. package/src/resources/extensions/gsd/tests/deep-project-auto-loop.test.ts +63 -2
  704. package/src/resources/extensions/gsd/tests/discuss-headless-rendering.test.ts +37 -0
  705. package/src/resources/extensions/gsd/tests/execute-summary-save-empty-project.test.ts +109 -0
  706. package/src/resources/extensions/gsd/tests/execute-task-rendering.test.ts +59 -0
  707. package/src/resources/extensions/gsd/tests/fixtures/pr-body/commands-ship-basic.md +52 -0
  708. package/src/resources/extensions/gsd/tests/fixtures/pr-body/commands-ship-empty-optionals.md +42 -0
  709. package/src/resources/extensions/gsd/tests/fixtures/pr-body/swarm-lane-no-blockers.md +55 -0
  710. package/src/resources/extensions/gsd/tests/fixtures/pr-body/swarm-lane-with-blockers.md +60 -0
  711. package/src/resources/extensions/gsd/tests/forensics-prompt-rendering.test.ts +36 -0
  712. package/src/resources/extensions/gsd/tests/graph-operations.test.ts +10 -0
  713. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +139 -0
  714. package/src/resources/extensions/gsd/tests/guided-discuss-milestone-prompt-rendering.test.ts +43 -0
  715. package/src/resources/extensions/gsd/tests/guided-discuss-project-prompt-rendering.test.ts +41 -0
  716. package/src/resources/extensions/gsd/tests/guided-discuss-requirements-prompt-rendering.test.ts +45 -0
  717. package/src/resources/extensions/gsd/tests/guided-flow-prompt-consolidation.test.ts +14 -0
  718. package/src/resources/extensions/gsd/tests/has-pending-deep-stage.test.ts +33 -1
  719. package/src/resources/extensions/gsd/tests/integration/auto-recovery.test.ts +79 -0
  720. package/src/resources/extensions/gsd/tests/integration/auto-worktree-milestone-merge.test.ts +37 -0
  721. package/src/resources/extensions/gsd/tests/integration/state-machine-live-validation.test.ts +5 -3
  722. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +134 -0
  723. package/src/resources/extensions/gsd/tests/legacy-component-format-telemetry.test.ts +62 -0
  724. package/src/resources/extensions/gsd/tests/legacy-telemetry.test.ts +144 -0
  725. package/src/resources/extensions/gsd/tests/memory-pressure-stuck-state.test.ts +40 -16
  726. package/src/resources/extensions/gsd/tests/model-router.test.ts +33 -12
  727. package/src/resources/extensions/gsd/tests/notification-store.test.ts +8 -0
  728. package/src/resources/extensions/gsd/tests/notification-widget.test.ts +40 -1
  729. package/src/resources/extensions/gsd/tests/parallel-skill-prompt-integration.test.ts +8 -0
  730. package/src/resources/extensions/gsd/tests/paused-session-via-db.test.ts +2 -0
  731. package/src/resources/extensions/gsd/tests/plan-milestone-rendering.test.ts +45 -0
  732. package/src/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +65 -16
  733. package/src/resources/extensions/gsd/tests/plan-slice.test.ts +27 -0
  734. package/src/resources/extensions/gsd/tests/post-execution-checks.test.ts +46 -0
  735. package/src/resources/extensions/gsd/tests/pr-evidence-equivalence.test.ts +102 -0
  736. package/src/resources/extensions/gsd/tests/pr-evidence-hardening.test.ts +165 -0
  737. package/src/resources/extensions/gsd/tests/pr-evidence.test.ts +79 -0
  738. package/src/resources/extensions/gsd/tests/pre-exec-gate-loop.test.ts +3 -0
  739. package/src/resources/extensions/gsd/tests/process-task-path.test.ts +51 -0
  740. package/src/resources/extensions/gsd/tests/prompt-step-ordering.test.ts +16 -1
  741. package/src/resources/extensions/gsd/tests/queue-prompt-rendering.test.ts +37 -0
  742. package/src/resources/extensions/gsd/tests/register-hooks-compaction-checkpoint.test.ts +85 -0
  743. package/src/resources/extensions/gsd/tests/run-uat-composer.test.ts +2 -0
  744. package/src/resources/extensions/gsd/tests/start-auto-detached.test.ts +46 -2
  745. package/src/resources/extensions/gsd/tests/subagent-model-dispatch.test.ts +59 -0
  746. package/src/resources/extensions/gsd/tests/tool-naming.test.ts +32 -9
  747. package/src/resources/extensions/gsd/tests/unit-context-composer.test.ts +42 -4
  748. package/src/resources/extensions/gsd/tests/unit-context-manifest.test.ts +32 -0
  749. package/src/resources/extensions/gsd/tests/uok-contracts.test.ts +109 -1
  750. package/src/resources/extensions/gsd/tests/uok-kernel-path.test.ts +12 -0
  751. package/src/resources/extensions/gsd/tests/uok-loop-adapter-writer.test.ts +98 -0
  752. package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +1 -1
  753. package/src/resources/extensions/gsd/tests/workflow-custom-engine-dispatch-outcome.test.ts +55 -0
  754. package/src/resources/extensions/gsd/tests/workflow-custom-engine-iteration.test.ts +93 -0
  755. package/src/resources/extensions/gsd/tests/workflow-custom-engine-reconcile-outcome.test.ts +108 -0
  756. package/src/resources/extensions/gsd/tests/workflow-custom-engine-reconcile.test.ts +146 -0
  757. package/src/resources/extensions/gsd/tests/workflow-custom-engine-retry.test.ts +136 -0
  758. package/src/resources/extensions/gsd/tests/workflow-custom-engine-verify-outcome.test.ts +95 -0
  759. package/src/resources/extensions/gsd/tests/workflow-dispatch-claim.test.ts +158 -0
  760. package/src/resources/extensions/gsd/tests/workflow-dispatch-ledger.test.ts +82 -0
  761. package/src/resources/extensions/gsd/tests/workflow-iteration-completion.test.ts +44 -0
  762. package/src/resources/extensions/gsd/tests/workflow-journal-reporter.test.ts +49 -0
  763. package/src/resources/extensions/gsd/tests/workflow-kernel.test.ts +607 -0
  764. package/src/resources/extensions/gsd/tests/workflow-logger.test.ts +20 -4
  765. package/src/resources/extensions/gsd/tests/workflow-memory-pressure.test.ts +71 -0
  766. package/src/resources/extensions/gsd/tests/workflow-phase-reporter.test.ts +40 -0
  767. package/src/resources/extensions/gsd/tests/workflow-session-lock.test.ts +135 -0
  768. package/src/resources/extensions/gsd/tests/workflow-sidecar-iteration.test.ts +110 -0
  769. package/src/resources/extensions/gsd/tests/workflow-sidecar-queue.test.ts +116 -0
  770. package/src/resources/extensions/gsd/tests/workflow-templates.test.ts +21 -0
  771. package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +164 -3
  772. package/src/resources/extensions/gsd/tests/workflow-turn-reporter.test.ts +87 -0
  773. package/src/resources/extensions/gsd/tests/workflow-unit-dispatch.test.ts +160 -0
  774. package/src/resources/extensions/gsd/tests/workflow-worker-heartbeat.test.ts +123 -0
  775. package/src/resources/extensions/gsd/tests/working-output-messages.test.ts +93 -0
  776. package/src/resources/extensions/gsd/tests/worktree-path-injection.test.ts +3 -0
  777. package/src/resources/extensions/gsd/tests/worktree-submodule-safety.test.ts +17 -33
  778. package/src/resources/extensions/gsd/tests/worktree-write-gate.test.ts +179 -0
  779. package/src/resources/extensions/gsd/tools/complete-milestone.ts +15 -9
  780. package/src/resources/extensions/gsd/tools/complete-task.ts +4 -1
  781. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +90 -2
  782. package/src/resources/extensions/gsd/unit-context-composer.ts +49 -0
  783. package/src/resources/extensions/gsd/unit-context-manifest.ts +34 -0
  784. package/src/resources/extensions/gsd/uok/audit.ts +25 -9
  785. package/src/resources/extensions/gsd/uok/contracts.ts +105 -0
  786. package/src/resources/extensions/gsd/uok/dispatch-envelope.ts +4 -0
  787. package/src/resources/extensions/gsd/uok/kernel.ts +10 -3
  788. package/src/resources/extensions/gsd/uok/loop-adapter.ts +60 -45
  789. package/src/resources/extensions/gsd/uok/plan-v2.ts +5 -1
  790. package/src/resources/extensions/gsd/uok/timeline.ts +158 -0
  791. package/src/resources/extensions/gsd/workflow-logger.ts +13 -13
  792. package/src/resources/extensions/gsd/workflow-manifest.ts +6 -15
  793. package/src/resources/extensions/gsd/workflow-projections.ts +5 -1
  794. package/src/resources/extensions/gsd/workflow-templates.ts +11 -0
  795. package/src/resources/extensions/gsd/working-output-messages.ts +120 -0
  796. package/src/resources/extensions/shared/gsd-phase-state.ts +56 -3
  797. package/src/resources/extensions/shared/interview-ui.ts +18 -5
  798. package/src/resources/extensions/shared/tests/gsd-phase-state.test.ts +43 -1
  799. package/src/resources/extensions/shared/tests/interview-notes-loop.test.ts +41 -0
  800. package/dist/web/standalone/.next/server/chunks/6336.js +0 -1
  801. package/dist/web/standalone/.next/static/chunks/app/page-ff639266d978f2a0.js +0 -1
  802. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  803. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  804. /package/dist/web/standalone/.next/static/{J-CU-p_sp45CJHT3R9TJS → vIAZSyxIuvqNkCvXt9oqb}/_buildManifest.js +0 -0
  805. /package/dist/web/standalone/.next/static/{J-CU-p_sp45CJHT3R9TJS → vIAZSyxIuvqNkCvXt9oqb}/_ssgManifest.js +0 -0
@@ -2,7 +2,7 @@ You are triaging user-captured thoughts during a GSD session.
2
2
 
3
3
  ## UNIT: Triage Captures
4
4
 
5
- The user captured thoughts during execution using `/gsd capture`. Your job is to classify each capture, present your proposals, get user confirmation, and update CAPTURES.md with the final classifications.
5
+ The user captured thoughts with `/gsd capture`. Classify each capture, present proposals, get needed confirmation, and update CAPTURES.md with final classifications.
6
6
 
7
7
  ## Pending Captures
8
8
 
@@ -18,24 +18,24 @@ The user captured thoughts during execution using `/gsd capture`. Your job is to
18
18
 
19
19
  ## Classification Criteria
20
20
 
21
- For each capture, classify it as one of:
21
+ Classify each capture as one of:
22
22
 
23
- - **stop**: User directive to halt auto-mode immediately. Use when the user says "stop", "halt", "abort", "don't continue", "pause", or otherwise wants execution to cease. Auto-mode will pause after the current unit completes. Examples: "stop running", "halt execution", "don't continue".
24
- - **backtrack**: User directive to abandon the current milestone and return to a previous one. The user believes earlier milestones missed critical features or need rework. Include the target milestone ID (e.g., M003) in the Resolution field. Auto-mode will pause and write a regression marker. Examples: "restart from M003", "go back to milestone 3", "M004 and M005 failed, restart from M003".
25
- - **quick-task**: Small, self-contained, no downstream impact. Can be done in minutes without modifying the plan. Examples: fix a typo, add a missing import, tweak a config value.
26
- - **inject**: Belongs in the current slice but wasn't planned. Needs a new task added to the slice plan. Examples: add error handling to a module being built, add a missing test case for current work.
27
- - **defer**: Belongs in a future slice or milestone. Not urgent for current work. Examples: performance optimization, feature that depends on unbuilt infrastructure, nice-to-have enhancement.
28
- - **replan**: Changes the shape of remaining work in the current slice. Existing incomplete tasks may need rewriting. Examples: "the approach is wrong, we need to use X instead of Y", discovering a fundamental constraint.
29
- - **note**: Informational only. No action needed right now. Good context for future reference. Examples: "remember that the API has a rate limit", observations about code quality.
23
+ - **stop**: Halt/pause auto-mode immediately after the current unit. Examples: "stop", "halt", "abort", "don't continue".
24
+ - **backtrack**: Abandon current milestone and return to an earlier one. Include target milestone ID (e.g., M003) in Resolution. Auto-mode pauses and writes a regression marker.
25
+ - **quick-task**: Small, self-contained, no downstream impact; minutes of work without plan changes.
26
+ - **inject**: Belongs in current slice but was not planned; needs a new task.
27
+ - **defer**: Belongs in a future slice/milestone; not urgent for current work.
28
+ - **replan**: Changes remaining work shape in the current slice; incomplete tasks may need rewriting.
29
+ - **note**: Informational only; useful future context with no immediate action.
30
30
 
31
31
  ## Decision Guidelines
32
32
 
33
- - **ALWAYS classify as stop** when the user explicitly says "stop", "halt", "abort", or "don't continue". Never shoe-horn a stop directive into "replan" or "note".
34
- - **ALWAYS classify as backtrack** when the user references returning to a previous milestone, restarting from an earlier point, or abandoning current milestone work. Include the target milestone ID in the Resolution field (e.g., "Backtrack to M003").
33
+ - **ALWAYS classify as stop** when the user says "stop", "halt", "abort", or "don't continue". Never shoe-horn stop into "replan" or "note".
34
+ - **ALWAYS classify as backtrack** when the user references returning to a previous milestone, restarting earlier, or abandoning current milestone work. Include target milestone ID in Resolution (e.g., "Backtrack to M003").
35
35
  - Prefer **quick-task** when the work is clearly small and self-contained.
36
36
  - Prefer **inject** over **replan** when only a new task is needed, not rewriting existing ones.
37
37
  - Prefer **defer** over **inject** when the work doesn't belong in the current slice's scope.
38
- - Use **replan** only when remaining incomplete tasks in the *current slice* need to change not for cross-milestone issues.
38
+ - Use **replan** only when remaining incomplete tasks in the *current slice* need to change, not for cross-milestone issues.
39
39
  - Use **note** for observations that don't require action.
40
40
  - When unsure between quick-task and inject, consider: will this take more than 10 minutes? If yes, inject.
41
41
 
@@ -49,8 +49,8 @@ For each capture, classify it as one of:
49
49
  - Your rationale
50
50
  - If applicable, which files would be affected
51
51
 
52
- For captures classified as **note** or **defer**, auto-confirm without asking — these are low-impact.
53
- For captures classified as **stop** or **backtrack**, auto-confirm without asking — these are urgent user directives that must be honored immediately.
52
+ Auto-confirm **note** and **defer** because they are low-impact.
53
+ Auto-confirm **stop** and **backtrack** because they are urgent user directives.
54
54
  For captures classified as **quick-task**, **inject**, or **replan**, ask the user to confirm or choose a different classification. **Non-bypassable:** If `ask_user_questions` fails, errors, or the user does not respond, you MUST re-ask — never auto-confirm these classifications without explicit user approval.
55
55
 
56
56
  3. **Update** `.gsd/CAPTURES.md` — for each capture, update its section with the confirmed classification:
@@ -61,7 +61,7 @@ For each capture, classify it as one of:
61
61
  - Add `**Resolved:** <current ISO timestamp>`
62
62
  - Add `**Milestone:** <current milestone ID>` (e.g., `**Milestone:** M003`)
63
63
 
64
- 4. **Summarize** what was triaged: how many captures, what classifications were assigned, and what actions are pending (e.g., "2 quick-tasks ready for execution, 1 deferred to S03").
64
+ 4. **Summarize** count, assigned classifications, and pending actions (e.g., "2 quick-tasks ready, 1 deferred to S03").
65
65
 
66
66
  **Important:** Do NOT execute any resolutions. Only classify and update CAPTURES.md. Resolution execution happens separately (in auto-mode dispatch or manually by the user).
67
67
 
@@ -1,20 +1,20 @@
1
- # Milestone Validation Parallel Review
1
+ # Milestone Validation - Parallel Review
2
2
 
3
- You are the validation orchestrator for **{{milestoneId}} {{milestoneTitle}}**.
3
+ You are the validation orchestrator for **{{milestoneId}} - {{milestoneTitle}}**.
4
4
 
5
5
  ## Working Directory
6
6
 
7
- Your working directory is `{{workingDirectory}}`. All file reads, writes, and shell commands MUST operate relative to this directory. Do NOT `cd` to any other directory.
7
+ Work in `{{workingDirectory}}`. All reads, writes, and shell commands MUST stay relative to it. Do NOT `cd` elsewhere.
8
8
 
9
9
  ## Mission
10
10
 
11
- Dispatch 3 independent parallel reviewers, then synthesize their findings into the final VALIDATION verdict.
11
+ Dispatch 3 independent parallel reviewers, then synthesize the final VALIDATION verdict.
12
12
 
13
- This is remediation round {{remediationRound}}. If this is round 0, this is the first validation pass. If > 0, prior validation found issues and remediation slices were added and executed — verify those remediation slices resolved the issues.
13
+ Remediation round: {{remediationRound}}. Round 0 is the first pass; later rounds must verify remediation slices resolved prior findings.
14
14
 
15
15
  ## Context
16
16
 
17
- All relevant context has been preloaded below — the roadmap, all slice summaries, assessment results, requirements, decisions, and project context are inlined. Start working immediately without re-reading these files.
17
+ Roadmap, slice summaries, assessments, requirements, decisions, and project context are inlined. Start immediately.
18
18
 
19
19
  {{inlinedContext}}
20
20
 
@@ -22,29 +22,29 @@ All relevant context has been preloaded below — the roadmap, all slice summari
22
22
 
23
23
  ## Execution Protocol
24
24
 
25
- ### Step 1 Dispatch Parallel Reviewers
25
+ ### Step 1 - Dispatch Parallel Reviewers
26
26
 
27
27
  Call `subagent` with `tasks: [...]` containing ALL THREE reviewers simultaneously:
28
28
 
29
- **Reviewer A Requirements Coverage**
30
- Prompt: "Review milestone {{milestoneId}} requirements coverage. Working directory: {{workingDirectory}}. Read `.gsd/{{milestoneId}}/REQUIREMENTS.md` (or equivalent requirements file). For each requirement, check the slice SUMMARY files in `.gsd/{{milestoneId}}/` to determine if it is: COVERED (clearly demonstrated), PARTIAL (mentioned but not fully demonstrated), or MISSING (no evidence). Output a markdown table with columns: Requirement | Status | Evidence. End with a one-line verdict: PASS if all covered, NEEDS-ATTENTION if partials exist, FAIL if any missing."
29
+ **Reviewer A - Requirements Coverage**
30
+ Prompt: "Review milestone {{milestoneId}} requirements coverage. Working directory: {{workingDirectory}}. Read `.gsd/{{milestoneId}}/REQUIREMENTS.md` or equivalent. For each requirement, check slice SUMMARY files in `.gsd/{{milestoneId}}/` and mark COVERED, PARTIAL, or MISSING. Output table: Requirement | Status | Evidence. End with one-line verdict: PASS if all covered, NEEDS-ATTENTION if partials exist, FAIL if any missing."
31
31
 
32
- **Reviewer B Cross-Slice Integration**
33
- Prompt: "Review milestone {{milestoneId}} cross-slice integration. Working directory: {{workingDirectory}}. Read `{{roadmapPath}}` and find the boundary map (produces/consumes contracts). For each boundary, check that the producing slice's SUMMARY confirms it produced the artifact, and the consuming slice's SUMMARY confirms it consumed it. Output a markdown table: Boundary | Producer Summary | Consumer Summary | Status. End with a one-line verdict: PASS if all boundaries honored, NEEDS-ATTENTION if any gaps."
32
+ **Reviewer B - Cross-Slice Integration**
33
+ Prompt: "Review milestone {{milestoneId}} cross-slice integration. Working directory: {{workingDirectory}}. Read `{{roadmapPath}}` and find the boundary map (produces/consumes contracts). For each boundary, confirm producer SUMMARY produced the artifact and consumer SUMMARY consumed it. Output table: Boundary | Producer Summary | Consumer Summary | Status. End with one-line verdict: PASS if all boundaries honored, NEEDS-ATTENTION if any gaps."
34
34
 
35
- **Reviewer C Assessment & Acceptance Criteria**
36
- Prompt: "Review milestone {{milestoneId}} assessment evidence and acceptance criteria. Working directory: {{workingDirectory}}. Read `.gsd/{{milestoneId}}/CONTEXT.md` for acceptance criteria. Check for ASSESSMENT files in each slice directory. Verify each acceptance criterion maps to either a passing assessment result or clear SUMMARY evidence. Then review the inlined milestone verification classes from planning. For each non-empty planned class, output a markdown table: Class | Planned Check | Evidence | Verdict. Use the exact class names `Contract`, `Integration`, `Operational`, and `UAT` whenever those classes are present. If no verification classes were planned, say that explicitly. Output two sections: `Acceptance Criteria` with a checklist `[ ] Criterion | Evidence`, and `Verification Classes` with the table. End with a one-line verdict: PASS if all criteria and verification classes are covered, NEEDS-ATTENTION if gaps exist."
35
+ **Reviewer C - Assessment & Acceptance Criteria**
36
+ Prompt: "Review milestone {{milestoneId}} assessment evidence and acceptance criteria. Working directory: {{workingDirectory}}. Read `.gsd/{{milestoneId}}/CONTEXT.md` for criteria. Check slice ASSESSMENT files. Verify each criterion maps to a passing assessment or clear SUMMARY evidence. Then review inlined milestone verification classes. For each non-empty planned class, output table: Class | Planned Check | Evidence | Verdict. Use the exact class names `Contract`, `Integration`, `Operational`, and `UAT` whenever those classes are present. If no verification classes were planned, say that explicitly. Output sections `Acceptance Criteria` with checklist `[ ] Criterion | Evidence`, and `Verification Classes` with the table. End with one-line verdict: PASS if all criteria and classes are covered, NEEDS-ATTENTION if gaps exist."
37
37
 
38
- ### Step 2 Synthesize Findings
38
+ ### Step 2 - Synthesize Findings
39
39
 
40
- After all reviewers complete, aggregate their verdicts:
41
- - If ALL reviewers say PASS overall verdict: `pass`
42
- - If any reviewer says NEEDS-ATTENTION overall verdict: `needs-attention`
43
- - If any reviewer says FAIL overall verdict: `needs-remediation`
40
+ Aggregate reviewer verdicts:
41
+ - ALL PASS -> `pass`
42
+ - Any NEEDS-ATTENTION -> `needs-attention`
43
+ - Any FAIL -> `needs-remediation`
44
44
 
45
- ### Step 3 Persist Validation
45
+ ### Step 3 - Persist Validation
46
46
 
47
- Prepare the validation content you will pass to `gsd_validate_milestone`. Do **not** manually write `{{validationPath}}` the DB-backed tool is the canonical write path and renders the validation file for you.
47
+ Prepare validation content for `gsd_validate_milestone`. Do **not** manually write `{{validationPath}}` - the DB-backed tool is the canonical write path and renders the file.
48
48
 
49
49
  ```markdown
50
50
  ---
@@ -65,7 +65,7 @@ reviewers: 3
65
65
  <paste Reviewer C output>
66
66
 
67
67
  ## Synthesis
68
- <2-3 sentences summarizing overall findings and verdict rationale>
68
+ <2-3 sentence verdict rationale>
69
69
 
70
70
  ## Remediation Plan
71
71
  <if verdict is not pass: specific actions required>
@@ -74,14 +74,14 @@ reviewers: 3
74
74
  Call `gsd_validate_milestone` with the camelCase fields `milestoneId`, `verdict`, `remediationRound`, `successCriteriaChecklist`, `sliceDeliveryAudit`, `crossSliceIntegration`, `requirementCoverage`, `verdictRationale`, and `remediationPlan` when needed. If you include verification-class analysis, pass it in `verificationClasses`.
75
75
  Extract the `Verification Classes` subsection from Reviewer C and pass it verbatim in `verificationClasses` so the persisted validation output uses the canonical class names `Contract`, `Integration`, `Operational`, and `UAT`.
76
76
 
77
- **DB access safety:** Do NOT query `.gsd/gsd.db` directly via `sqlite3` or `node -e require('better-sqlite3')` the engine owns the WAL connection. Use `gsd_milestone_status` to read milestone and slice state. All data you need is already inlined in the context above or accessible via the `gsd_*` tools. Direct DB access corrupts the WAL and bypasses tool-level validation.
77
+ **DB access safety:** Do NOT query `.gsd/gsd.db` directly via `sqlite3` or `node -e require('better-sqlite3')` - the engine owns the WAL connection. Use `gsd_milestone_status` for milestone and slice state. Data is already inlined or available via `gsd_*` tools. Direct DB access risks WAL corruption and bypasses validation.
78
78
 
79
79
  If verdict is `needs-remediation`:
80
- - Use `gsd_reassess_roadmap` to add the remediation slices instead of editing `{{roadmapPath}}` manually
80
+ - Use `gsd_reassess_roadmap` to add remediation slices instead of editing `{{roadmapPath}}` manually.
81
81
  - Those slices will be planned and executed before validation re-runs
82
82
 
83
83
  **You MUST call `gsd_validate_milestone` before finishing. Do not manually write `{{validationPath}}`.**
84
84
 
85
- **File system safety:** When scanning milestone directories for evidence, use `ls` or `find` to list directory contents first never pass a directory path (e.g. `tasks/`, `slices/`) directly to the `read` tool. The `read` tool only accepts file paths, not directories.
85
+ **File system safety:** When scanning milestone directories, use `ls` or `find` first. Never pass a directory path such as `tasks/` or `slices/` directly to `read`; it only accepts files.
86
86
 
87
87
  When done, say: "Milestone {{milestoneId}} validation complete — verdict: <verdict>."
@@ -1,16 +1,16 @@
1
- You are merging changes from worktree **{{worktreeName}}** (branch `{{worktreeBranch}}`) into target branch `{{mainBranch}}`.
1
+ You are merging worktree **{{worktreeName}}** (branch `{{worktreeBranch}}`) into target branch `{{mainBranch}}`.
2
2
 
3
3
  ## Working Directory
4
4
 
5
- Your current working directory has been set to the **main project tree** at `{{mainTreePath}}`. You are on the `{{mainBranch}}` branch. All git and file commands run from here.
5
+ Your CWD is the **main project tree** at `{{mainTreePath}}` on `{{mainBranch}}`. Run all git and file commands here.
6
6
 
7
- - **Main tree (CWD):** `{{mainTreePath}}` — this is where you run `git merge`, read main-branch files, and commit
8
- - **Worktree directory:** `{{worktreePath}}` — the worktree's working copy; read files here to inspect worktree versions before merging
7
+ - **Main tree (CWD):** `{{mainTreePath}}` — run `git merge`, read main files, commit.
8
+ - **Worktree directory:** `{{worktreePath}}` — inspect worktree versions before merging.
9
9
  - **Worktree branch:** `{{worktreeBranch}}`
10
10
 
11
11
  ## Context
12
12
 
13
- The worktree was created as a parallel workspace. It may contain code changes, new milestones, updated roadmaps, new plans, research, decisions, or other artifacts that need to be merged into the target branch.
13
+ The worktree may contain code, milestones, roadmaps, plans, research, decisions, requirements, or other artifacts to merge.
14
14
 
15
15
  ### Commit History (worktree)
16
16
 
@@ -43,50 +43,50 @@ The worktree was created as a parallel workspace. It may contain code changes, n
43
43
 
44
44
  ## Your Task
45
45
 
46
- Analyze the changes and guide the merge. Follow these steps exactly:
46
+ Analyze and guide the merge exactly:
47
47
 
48
48
  ### Step 1: Categorize Changes
49
49
 
50
- Classify each changed file:
50
+ Classify each changed file.
51
51
 
52
52
  **Code changes:**
53
- - **New source files** — new modules, components, utilities, tests
54
- - **Modified source files** — changes to existing code
53
+ - **New source files** — modules, components, utilities, tests.
54
+ - **Modified source files** — existing code changes.
55
55
  - **Config changes** — package.json, tsconfig, build config, etc.
56
- - **Deleted files** — removed source or config files
56
+ - **Deleted files** — removed source/config.
57
57
 
58
58
  **GSD artifact changes:**
59
- - **New milestones** — entirely new M###/ directories with roadmaps
60
- - **New slices/tasks** — new planning artifacts within existing milestones
61
- - **Updated roadmaps** — modifications to existing M###-ROADMAP.md files
62
- - **Updated plans** — modifications to existing slice or task plans
63
- - **Research/context** — new or updated RESEARCH.md, CONTEXT.md files
59
+ - **New milestones** — new M###/ directories with roadmaps.
60
+ - **New slices/tasks** — planning artifacts inside existing milestones.
61
+ - **Updated roadmaps** — changed M###-ROADMAP.md files.
62
+ - **Updated plans** — changed slice/task plans.
63
+ - **Research/context** — new or updated RESEARCH.md, CONTEXT.md.
64
64
  - **Decisions** — changes to DECISIONS.md
65
65
  - **Requirements** — changes to REQUIREMENTS.md
66
66
  - **Other** — anything else
67
67
 
68
68
  ### Step 2: Conflict Assessment
69
69
 
70
- For each **modified** file, check whether the main branch version has also changed since the worktree branched off. Flag any files where both branches have diverged — these need manual reconciliation.
70
+ For each **modified** file, check whether main also changed since the worktree branched. Flag diverged files for manual reconciliation.
71
71
 
72
72
  To compare versions:
73
- - **Main-branch version:** read the file at its normal path (your CWD is the main tree)
74
- - **Worktree version:** read the file at `{{worktreePath}}/<relative-path>`
75
- - Use `git merge-base {{mainBranch}} {{worktreeBranch}}` to find the common ancestor if needed
73
+ - **Main version:** read normal path from CWD.
74
+ - **Worktree version:** read `{{worktreePath}}/<relative-path>`.
75
+ - Use `git merge-base {{mainBranch}} {{worktreeBranch}}` if needed.
76
76
 
77
77
  Classify each modified file:
78
- - **Clean merges** — main hasn't changed, worktree changes can apply directly
79
- - **Conflicts** — both branches changed the same file; needs reconciliation
80
- - **Stale changes** — worktree modified a file that main has since replaced or removed
78
+ - **Clean merges** — main unchanged; apply worktree changes directly.
79
+ - **Conflicts** — both changed same file; reconcile.
80
+ - **Stale changes** — main replaced/removed a file the worktree modified.
81
81
 
82
82
  ### Step 3: Merge Strategy
83
83
 
84
- Present a merge plan to the user:
84
+ Present a merge plan:
85
85
 
86
- 1. For **clean merges**: list files that will merge without conflict
87
- 2. For **conflicts**: show both versions side-by-side and propose a reconciled version
88
- 3. For **new files**: confirm they should be added to the main branch
89
- 4. For **removed files**: confirm the removals are intentional
86
+ 1. **Clean merges:** files expected to merge without conflict.
87
+ 2. **Conflicts:** show both versions side-by-side and propose reconciliation.
88
+ 3. **New files:** confirm they should be added.
89
+ 4. **Removed files:** confirm removals are intentional.
90
90
 
91
91
  Ask the user to confirm the merge plan before proceeding.
92
92
 
@@ -97,17 +97,17 @@ Ask the user to confirm the merge plan before proceeding.
97
97
  Once the user has explicitly confirmed, run all commands from `{{mainTreePath}}` (your CWD):
98
98
 
99
99
  1. Ensure you are on the target branch: `git checkout {{mainBranch}}`
100
- 2. If there are conflicts requiring manual reconciliation, apply the reconciled versions first
100
+ 2. If conflicts require manual reconciliation, apply reconciled versions first
101
101
  3. Run `git merge --squash {{worktreeBranch}}` to bring in all changes
102
- 4. Review the staged changes if any reconciled files need adjustment, apply them now
102
+ 4. Review staged changes; adjust reconciled files if needed
103
103
  5. Commit with message: `merge(worktree/{{worktreeName}}): <summary of what was merged>`
104
104
  6. Report what was merged
105
105
 
106
106
  ### Step 5: Cleanup Prompt
107
107
 
108
108
  After a successful merge, ask the user whether to:
109
- - **Remove the worktree** — delete the worktree directory and the `{{worktreeBranch}}` branch
110
- - **Keep the worktree** — leave it for continued parallel work
109
+ - **Remove the worktree** — delete the worktree directory and `{{worktreeBranch}}`.
110
+ - **Keep the worktree** — leave it for continued parallel work.
111
111
 
112
112
  If the user chooses to remove it, run these commands from `{{mainTreePath}}`:
113
113
  ```
@@ -119,7 +119,7 @@ git branch -D {{worktreeBranch}}
119
119
 
120
120
  ## Important
121
121
 
122
- - Never silently discard changes from either branch
123
- - When in doubt about a conflict, show both versions and ask the user
124
- - Preserve all GSD artifact formatting conventions (frontmatter, section structure, checkbox states)
125
- - If the worktree introduced new milestone IDs that conflict with main, flag this immediately
122
+ - Never silently discard changes from either branch.
123
+ - When in doubt, show both versions and ask.
124
+ - Preserve GSD artifact formatting: frontmatter, sections, checkbox states.
125
+ - If new milestone IDs conflict with main, flag immediately.
@@ -1,3 +1,5 @@
1
+ // Project/App: GSD-2
2
+ // File Purpose: Runtime state derivation from GSD workflow database and legacy files.
1
3
  // GSD Extension — State Derivation
2
4
  // DB-authoritative runtime derivation with explicit legacy filesystem fallback.
3
5
  // Pure TypeScript, zero Pi dependencies.
@@ -15,6 +17,7 @@ import { logWarning } from './workflow-logger.js';
15
17
  import { extractVerdict } from './verdict-parser.js';
16
18
  import { detectPendingEscalation } from './escalation.js';
17
19
  import { isTerminalMilestoneSummaryContent } from './milestone-summary-classifier.js';
20
+ import { incrementLegacyTelemetry } from './legacy-telemetry.js';
18
21
  import { isDbAvailable, wasDbOpenAttempted, getAllMilestones, getMilestone, getMilestoneSlices, getSliceTasks, getReplanHistory, getSlice, getRequirementCounts, getLatestAssessmentByScope, getPendingGateCountForTurn, } from './gsd-db.js';
19
22
  /**
20
23
  * A "ghost" milestone directory contains only META.json (and no substantive
@@ -239,6 +242,7 @@ export async function deriveState(basePath, opts) {
239
242
  }
240
243
  result = await _deriveStateImpl(basePath, opts);
241
244
  _telemetry.markdownDeriveCount++;
245
+ incrementLegacyTelemetry("legacy.markdownFallbackUsed");
242
246
  }
243
247
  else {
244
248
  if (wasDbOpenAttempted()) {
@@ -1,3 +1,4 @@
1
+ // GSD2 complete-milestone tool handler
1
2
  /**
2
3
  * complete-milestone handler — the core operation behind gsd_complete_milestone.
3
4
  *
@@ -89,6 +90,7 @@ export async function handleCompleteMilestone(params, basePath) {
89
90
  // ── Guards + DB writes inside a single transaction (prevents TOCTOU) ───
90
91
  const completedAt = new Date().toISOString();
91
92
  let guardError = null;
93
+ let alreadyComplete = false;
92
94
  transaction(() => {
93
95
  // State machine preconditions (inside txn for atomicity)
94
96
  const milestone = getMilestone(params.milestoneId);
@@ -97,7 +99,7 @@ export async function handleCompleteMilestone(params, basePath) {
97
99
  return;
98
100
  }
99
101
  if (isClosedStatus(milestone.status)) {
100
- guardError = `milestone ${params.milestoneId} is already complete`;
102
+ alreadyComplete = true;
101
103
  return;
102
104
  }
103
105
  // Verify all slices are complete
@@ -177,14 +179,16 @@ export async function handleCompleteMilestone(params, basePath) {
177
179
  logWarning("tool", `complete-milestone manifest warning: ${mfErr.message}`);
178
180
  }
179
181
  try {
180
- appendEvent(basePath, {
181
- cmd: "complete-milestone",
182
- params: { milestoneId: params.milestoneId },
183
- ts: new Date().toISOString(),
184
- actor: "agent",
185
- actor_name: params.actorName,
186
- trigger_reason: params.triggerReason,
187
- });
182
+ if (!alreadyComplete) {
183
+ appendEvent(basePath, {
184
+ cmd: "complete-milestone",
185
+ params: { milestoneId: params.milestoneId },
186
+ ts: new Date().toISOString(),
187
+ actor: "agent",
188
+ actor_name: params.actorName,
189
+ trigger_reason: params.triggerReason,
190
+ });
191
+ }
188
192
  }
189
193
  catch (eventErr) {
190
194
  logError("tool", `complete-milestone event log FAILED — completion invisible to reconciliation`, { error: eventErr.message });
@@ -193,5 +197,6 @@ export async function handleCompleteMilestone(params, basePath) {
193
197
  milestoneId: params.milestoneId,
194
198
  summaryPath,
195
199
  ...(projectionStale ? { stale: true } : {}),
200
+ ...(alreadyComplete ? { alreadyComplete: true } : {}),
196
201
  };
197
202
  }
@@ -1,3 +1,5 @@
1
+ // Project/App: GSD-2
2
+ // File Purpose: Complete-task tool handler for GSD workflow state and summaries.
1
3
  /**
2
4
  * complete-task handler — the core operation behind gsd_complete_task.
3
5
  *
@@ -1,7 +1,7 @@
1
1
  import { ensureDbOpen } from "../bootstrap/dynamic-tools.js";
2
2
  import { sanitizeCompleteMilestoneParams } from "../bootstrap/sanitize-complete-milestone.js";
3
3
  import { loadWriteGateSnapshot, shouldBlockContextArtifactSaveInSnapshot, shouldBlockRootArtifactSaveInSnapshot } from "../bootstrap/write-gate.js";
4
- import { getActiveRequirements, getMilestone, getSliceStatusSummary, getSliceTaskCounts, readTransaction, saveGateResult, } from "../gsd-db.js";
4
+ import { getActiveRequirements, insertMilestone, getMilestone, getSliceStatusSummary, getSliceTaskCounts, readTransaction, saveGateResult, } from "../gsd-db.js";
5
5
  import { GATE_REGISTRY } from "../gate-registry.js";
6
6
  import { generateRequirementsMd, saveArtifactToDb } from "../db-writer.js";
7
7
  import { resolveMilestoneFile, resolveSliceFile } from "../paths.js";
@@ -17,6 +17,7 @@ import { handleValidateMilestone } from "./validate-milestone.js";
17
17
  import { logError, logWarning } from "../workflow-logger.js";
18
18
  import { invalidateStateCache } from "../state.js";
19
19
  import { loadEffectiveGSDPreferences } from "../preferences.js";
20
+ import { parseProject } from "../schemas/parsers.js";
20
21
  export const SUPPORTED_SUMMARY_ARTIFACT_TYPES = [
21
22
  "SUMMARY",
22
23
  "RESEARCH",
@@ -37,6 +38,19 @@ function isRootSummaryArtifactType(artifactType) {
37
38
  artifactType === "REQUIREMENTS" ||
38
39
  artifactType === "REQUIREMENTS-DRAFT";
39
40
  }
41
+ function registerProjectMilestoneSequence(content) {
42
+ const parsed = parseProject(content);
43
+ const registered = [];
44
+ for (const milestone of parsed.milestones) {
45
+ insertMilestone({
46
+ id: milestone.id,
47
+ title: milestone.title,
48
+ status: milestone.done ? "complete" : "queued",
49
+ });
50
+ registered.push(milestone.id);
51
+ }
52
+ return registered;
53
+ }
40
54
  export async function executeSummarySave(params, basePath = process.cwd()) {
41
55
  const dbAvailable = await ensureDbOpen(basePath);
42
56
  if (!dbAvailable) {
@@ -126,6 +140,66 @@ export async function executeSummarySave(params, basePath = process.cwd()) {
126
140
  slice_id: isRootArtifact ? undefined : params.slice_id,
127
141
  task_id: isRootArtifact ? undefined : params.task_id,
128
142
  }, basePath);
143
+ let registeredMilestones = [];
144
+ if (params.artifact_type === "PROJECT") {
145
+ try {
146
+ registeredMilestones = registerProjectMilestoneSequence(contentToSave);
147
+ if (registeredMilestones.length > 0)
148
+ invalidateStateCache();
149
+ }
150
+ catch (err) {
151
+ const msg = err instanceof Error ? err.message : String(err);
152
+ logError("tool", `gsd_summary_save: PROJECT artifact persisted but milestone registration threw: ${msg}`, {
153
+ tool: "gsd_summary_save",
154
+ error: String(err),
155
+ stack: err instanceof Error ? err.stack ?? "" : "",
156
+ });
157
+ // PROJECT.md was persisted by saveArtifactToDb above; the artifacts row
158
+ // changed even though no milestones registered. Invalidate so subsequent
159
+ // /gsd reads see the persisted artifact instead of the pre-save cache.
160
+ invalidateStateCache();
161
+ return {
162
+ content: [{
163
+ type: "text",
164
+ text: `Error: PROJECT.md was saved to ${relativePath} but milestone registration failed: ${msg}. ` +
165
+ `The DB has no milestone rows for this project, so /gsd will report "No Active Milestone". ` +
166
+ `Re-call gsd_summary_save(PROJECT) once the underlying error is resolved — INSERT OR IGNORE makes registration idempotent.`,
167
+ }],
168
+ details: {
169
+ operation: "save_summary",
170
+ path: relativePath,
171
+ artifact_type: params.artifact_type,
172
+ error: "milestone_registration_threw",
173
+ registration_error: msg,
174
+ },
175
+ isError: true,
176
+ };
177
+ }
178
+ if (registeredMilestones.length === 0) {
179
+ logError("tool", `gsd_summary_save: PROJECT.md saved to ${relativePath} but parsed zero milestones — registration produced no DB rows`, {
180
+ tool: "gsd_summary_save",
181
+ });
182
+ // PROJECT.md was persisted; invalidate so subsequent reads see the new
183
+ // artifacts row even though no milestones registered.
184
+ invalidateStateCache();
185
+ return {
186
+ content: [{
187
+ type: "text",
188
+ text: `Error: PROJECT.md was saved to ${relativePath} but contains zero parseable milestone lines, ` +
189
+ `so no milestones were registered in the DB. /gsd will report "No Active Milestone". ` +
190
+ `Rewrite PROJECT.md so the "Milestone Sequence" section uses canonical lines: ` +
191
+ `\`- [ ] M001: <Title> — <One-liner>\` (em-dash, double-dash \`--\`, or single-dash \`-\` separator), then re-call gsd_summary_save(PROJECT).`,
192
+ }],
193
+ details: {
194
+ operation: "save_summary",
195
+ path: relativePath,
196
+ artifact_type: params.artifact_type,
197
+ error: "milestone_registration_empty_parse",
198
+ },
199
+ isError: true,
200
+ };
201
+ }
202
+ }
129
203
  if (params.artifact_type === "CONTEXT" && !params.task_id) {
130
204
  try {
131
205
  const draftFile = params.slice_id
@@ -140,7 +214,13 @@ export async function executeSummarySave(params, basePath = process.cwd()) {
140
214
  }
141
215
  return {
142
216
  content: [{ type: "text", text: `Saved ${params.artifact_type} artifact to ${relativePath}` }],
143
- details: { operation: "save_summary", path: relativePath, artifact_type: params.artifact_type, content_source: contentSource },
217
+ details: {
218
+ operation: "save_summary",
219
+ path: relativePath,
220
+ artifact_type: params.artifact_type,
221
+ content_source: contentSource,
222
+ ...(registeredMilestones.length > 0 ? { registeredMilestones } : {}),
223
+ },
144
224
  };
145
225
  }
146
226
  catch (err) {
@@ -296,12 +376,17 @@ export async function executeCompleteMilestone(params, basePath = process.cwd())
296
376
  isError: true,
297
377
  };
298
378
  }
379
+ const message = result.alreadyComplete
380
+ ? `Milestone ${result.milestoneId} is already complete. Summary available at ${result.summaryPath}`
381
+ : `Completed milestone ${result.milestoneId}. Summary written to ${result.summaryPath}`;
299
382
  return {
300
- content: [{ type: "text", text: `Completed milestone ${result.milestoneId}. Summary written to ${result.summaryPath}` }],
383
+ content: [{ type: "text", text: message }],
301
384
  details: {
302
385
  operation: "complete_milestone",
303
386
  milestoneId: result.milestoneId,
304
387
  summaryPath: result.summaryPath,
388
+ ...(result.alreadyComplete ? { alreadyComplete: true } : {}),
389
+ ...(result.stale ? { stale: true } : {}),
305
390
  },
306
391
  };
307
392
  }
@@ -71,6 +71,38 @@ export function manifestBudgetChars(unitType) {
71
71
  const manifest = resolveManifest(unitType);
72
72
  return manifest ? manifest.maxSystemPromptChars : null;
73
73
  }
74
+ const CONTEXT_MODE_LANE_LABELS = {
75
+ interview: "interview",
76
+ research: "research",
77
+ planning: "planning",
78
+ execution: "execution",
79
+ verification: "verification",
80
+ orchestration: "orchestration",
81
+ docs: "documentation",
82
+ };
83
+ const CONTEXT_MODE_GUIDANCE = "Use `gsd_exec` for noisy commands, `gsd_exec_search` before reruns, and `gsd_resume` after compaction or resume.";
84
+ /**
85
+ * Render the Context Mode instruction lane for a unit type. Unknown unit
86
+ * types, disabled config, and explicit `contextMode: "none"` all omit the
87
+ * block so callers can prefix this safely without extra branching.
88
+ */
89
+ export function composeContextModeInstructions(unitType, opts) {
90
+ if (!opts.enabled)
91
+ return "";
92
+ const manifest = resolveManifest(unitType);
93
+ if (!manifest || manifest.contextMode === "none")
94
+ return "";
95
+ const lane = CONTEXT_MODE_LANE_LABELS[manifest.contextMode];
96
+ if (opts.renderMode === "nested") {
97
+ return `Context Mode (${lane} lane): ${CONTEXT_MODE_GUIDANCE}`;
98
+ }
99
+ return [
100
+ "## Context Mode",
101
+ "",
102
+ `Lane: **${lane} lane**.`,
103
+ CONTEXT_MODE_GUIDANCE,
104
+ ].join("\n");
105
+ }
74
106
  const SECTION_SEPARATOR = "\n\n---\n\n";
75
107
  /**
76
108
  * Compose all manifest-declared context for a unit type using the v2