gsd-pi 2.79.0-dev.ece5fd8ba → 2.80.0-dev.b62439b9f

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 (607) hide show
  1. package/dist/{cli-web-branch.d.ts → cli/cli-web-branch.d.ts} +1 -1
  2. package/dist/{cli-web-branch.js → cli/cli-web-branch.js} +3 -3
  3. package/dist/{cli.js → cli/cli.js} +25 -25
  4. package/dist/{web-mode.js → cli/web-mode.js} +3 -3
  5. package/dist/{extension-registry.js → extension-runtime/extension-registry.js} +1 -1
  6. package/dist/{headless-query.d.ts → headless/headless-query.d.ts} +1 -1
  7. package/dist/{headless-query.js → headless/headless-query.js} +3 -2
  8. package/dist/{headless-recover.js → headless/headless-recover.js} +3 -2
  9. package/dist/{headless.js → headless/headless.js} +3 -3
  10. package/dist/loader.js +10 -10
  11. package/dist/{onboarding.js → onboarding/onboarding.js} +8 -8
  12. package/dist/{welcome-screen.js → onboarding/welcome-screen.js} +1 -1
  13. package/dist/{models-resolver.js → providers/models-resolver.js} +1 -1
  14. package/dist/{remote-questions-config.js → providers/remote-questions-config.js} +1 -1
  15. package/dist/{resource-loader.d.ts → resource-runtime/resource-loader.d.ts} +1 -1
  16. package/dist/{resource-loader.js → resource-runtime/resource-loader.js} +6 -6
  17. package/dist/resources/.managed-resources-content-hash +1 -1
  18. package/dist/resources/extensions/github-sync/templates.js +55 -70
  19. package/dist/resources/extensions/gsd/auto/contracts.js +1 -0
  20. package/dist/resources/extensions/gsd/auto/custom-verify-retry-store.js +53 -0
  21. package/dist/resources/extensions/gsd/auto/loop.js +362 -523
  22. package/dist/resources/extensions/gsd/auto/orchestrator.js +146 -0
  23. package/dist/resources/extensions/gsd/auto/phases.js +55 -6
  24. package/dist/resources/extensions/gsd/auto/session.js +8 -0
  25. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-dispatch-outcome.js +12 -0
  26. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-iteration.js +24 -0
  27. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-reconcile-outcome.js +33 -0
  28. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-reconcile.js +26 -0
  29. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-retry.js +49 -0
  30. package/dist/resources/extensions/gsd/auto/workflow-custom-engine-verify-outcome.js +25 -0
  31. package/dist/resources/extensions/gsd/auto/workflow-dispatch-claim.js +48 -0
  32. package/dist/resources/extensions/gsd/auto/workflow-dispatch-ledger.js +26 -0
  33. package/dist/resources/extensions/gsd/auto/workflow-iteration-completion.js +10 -0
  34. package/dist/resources/extensions/gsd/auto/workflow-journal-reporter.js +16 -0
  35. package/dist/resources/extensions/gsd/auto/workflow-kernel.js +263 -0
  36. package/dist/resources/extensions/gsd/auto/workflow-memory-pressure.js +36 -0
  37. package/dist/resources/extensions/gsd/auto/workflow-phase-reporter.js +9 -0
  38. package/dist/resources/extensions/gsd/auto/workflow-session-lock.js +35 -0
  39. package/dist/resources/extensions/gsd/auto/workflow-sidecar-iteration.js +24 -0
  40. package/dist/resources/extensions/gsd/auto/workflow-sidecar-queue.js +26 -0
  41. package/dist/resources/extensions/gsd/auto/workflow-turn-reporter.js +36 -0
  42. package/dist/resources/extensions/gsd/auto/workflow-unit-dispatch.js +44 -0
  43. package/dist/resources/extensions/gsd/auto/workflow-worker-heartbeat.js +15 -0
  44. package/dist/resources/extensions/gsd/auto-dashboard.js +3 -0
  45. package/dist/resources/extensions/gsd/auto-prompts.js +168 -3
  46. package/dist/resources/extensions/gsd/auto-recovery.js +45 -52
  47. package/dist/resources/extensions/gsd/auto-runtime-state.js +4 -0
  48. package/dist/resources/extensions/gsd/auto-verification.js +2 -11
  49. package/dist/resources/extensions/gsd/auto-worktree.js +85 -38
  50. package/dist/resources/extensions/gsd/auto.js +162 -5
  51. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +9 -1
  52. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +10 -0
  53. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +11 -5
  54. package/dist/resources/extensions/gsd/commands-ship.js +23 -46
  55. package/dist/resources/extensions/gsd/commands-workflow-templates.js +12 -7
  56. package/dist/resources/extensions/gsd/component-loader.js +5 -11
  57. package/dist/resources/extensions/gsd/custom-workflow-engine.js +25 -1
  58. package/dist/resources/extensions/gsd/db-adapter.js +47 -0
  59. package/dist/resources/extensions/gsd/db-base-schema.js +337 -0
  60. package/dist/resources/extensions/gsd/db-connection-cache.js +31 -0
  61. package/dist/resources/extensions/gsd/db-coordination-schema.js +104 -0
  62. package/dist/resources/extensions/gsd/db-decision-requirement-rows.js +71 -0
  63. package/dist/resources/extensions/gsd/db-gate-rows.js +16 -0
  64. package/dist/resources/extensions/gsd/db-lightweight-query-rows.js +29 -0
  65. package/dist/resources/extensions/gsd/db-memory-fts-schema.js +56 -0
  66. package/dist/resources/extensions/gsd/db-migration-backup.js +22 -0
  67. package/dist/resources/extensions/gsd/db-migration-steps.js +394 -0
  68. package/dist/resources/extensions/gsd/db-milestone-artifact-rows.js +35 -0
  69. package/dist/resources/extensions/gsd/db-open-state.js +32 -0
  70. package/dist/resources/extensions/gsd/db-provider.js +108 -0
  71. package/dist/resources/extensions/gsd/db-runtime-kv-schema.js +27 -0
  72. package/dist/resources/extensions/gsd/db-schema-metadata.js +23 -0
  73. package/dist/resources/extensions/gsd/db-task-slice-rows.js +86 -0
  74. package/dist/resources/extensions/gsd/db-transaction.js +63 -0
  75. package/dist/resources/extensions/gsd/db-verification-evidence-rows.js +3 -0
  76. package/dist/resources/extensions/gsd/db-verification-evidence-schema.js +19 -0
  77. package/dist/resources/extensions/gsd/escalation.js +2 -0
  78. package/dist/resources/extensions/gsd/graph.js +9 -3
  79. package/dist/resources/extensions/gsd/gsd-db.js +215 -1519
  80. package/dist/resources/extensions/gsd/legacy-telemetry.js +70 -0
  81. package/dist/resources/extensions/gsd/markdown-renderer.js +2 -0
  82. package/dist/resources/extensions/gsd/model-router.js +9 -6
  83. package/dist/resources/extensions/gsd/notification-widget.js +21 -3
  84. package/dist/resources/extensions/gsd/post-execution-checks.js +27 -6
  85. package/dist/resources/extensions/gsd/pr-evidence.js +76 -0
  86. package/dist/resources/extensions/gsd/pre-execution-checks.js +2 -0
  87. package/dist/resources/extensions/gsd/process-task-path.js +61 -0
  88. package/dist/resources/extensions/gsd/prompt-loader.js +9 -5
  89. package/dist/resources/extensions/gsd/prompts/complete-milestone.md +32 -30
  90. package/dist/resources/extensions/gsd/prompts/complete-slice.md +23 -34
  91. package/dist/resources/extensions/gsd/prompts/discuss-headless.md +50 -96
  92. package/dist/resources/extensions/gsd/prompts/discuss.md +81 -181
  93. package/dist/resources/extensions/gsd/prompts/execute-task.md +40 -67
  94. package/dist/resources/extensions/gsd/prompts/forensics.md +41 -84
  95. package/dist/resources/extensions/gsd/prompts/guided-discuss-milestone.md +29 -39
  96. package/dist/resources/extensions/gsd/prompts/guided-discuss-project.md +30 -65
  97. package/dist/resources/extensions/gsd/prompts/guided-discuss-requirements.md +25 -52
  98. package/dist/resources/extensions/gsd/prompts/guided-discuss-slice.md +36 -36
  99. package/dist/resources/extensions/gsd/prompts/guided-research-project.md +20 -38
  100. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +45 -59
  101. package/dist/resources/extensions/gsd/prompts/plan-slice.md +25 -87
  102. package/dist/resources/extensions/gsd/prompts/queue.md +46 -53
  103. package/dist/resources/extensions/gsd/prompts/refine-slice.md +23 -23
  104. package/dist/resources/extensions/gsd/prompts/research-slice.md +23 -23
  105. package/dist/resources/extensions/gsd/prompts/rethink.md +10 -10
  106. package/dist/resources/extensions/gsd/prompts/system.md +65 -107
  107. package/dist/resources/extensions/gsd/prompts/triage-captures.md +15 -15
  108. package/dist/resources/extensions/gsd/prompts/validate-milestone.md +24 -24
  109. package/dist/resources/extensions/gsd/prompts/worktree-merge.md +35 -35
  110. package/dist/resources/extensions/gsd/state.js +4 -0
  111. package/dist/resources/extensions/gsd/tools/complete-milestone.js +14 -9
  112. package/dist/resources/extensions/gsd/tools/complete-task.js +2 -0
  113. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +6 -1
  114. package/dist/resources/extensions/gsd/unit-context-composer.js +1 -1
  115. package/dist/resources/extensions/gsd/uok/kernel.js +8 -3
  116. package/dist/resources/extensions/gsd/uok/plan-v2.js +2 -0
  117. package/dist/resources/extensions/gsd/workflow-logger.js +13 -13
  118. package/dist/resources/extensions/gsd/workflow-manifest.js +2 -0
  119. package/dist/resources/extensions/gsd/workflow-projections.js +2 -0
  120. package/dist/resources/extensions/gsd/workflow-templates.js +9 -0
  121. package/dist/resources/extensions/shared/interview-ui.js +15 -4
  122. package/dist/{security-overrides.js → security/security-overrides.js} +1 -1
  123. package/dist/{startup-model-validation.js → startup/startup-model-validation.js} +1 -1
  124. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  125. package/dist/{update-check.js → update/update-check.js} +1 -1
  126. package/dist/web/standalone/.next/BUILD_ID +1 -1
  127. package/dist/web/standalone/.next/app-path-routes-manifest.json +16 -16
  128. package/dist/web/standalone/.next/build-manifest.json +2 -2
  129. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  130. package/dist/web/standalone/.next/required-server-files.json +1 -1
  131. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  132. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  133. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  134. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  135. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  136. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  137. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  138. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  139. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  140. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  141. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  142. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  143. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  144. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  145. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  146. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  147. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  148. package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
  149. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  150. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
  151. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  152. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
  153. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  154. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
  155. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  156. package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
  157. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  158. package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  159. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  160. package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
  161. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  162. package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
  163. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  164. package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  165. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  166. package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
  167. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  168. package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  169. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  170. package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  171. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  172. package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
  173. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  174. package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
  175. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  176. package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
  177. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  178. package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
  179. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  180. package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  181. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  182. package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  183. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  184. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  185. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  186. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  187. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  188. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  189. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  190. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  191. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  192. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  193. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  194. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  195. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  196. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  197. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  198. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  199. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  200. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  201. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  202. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  203. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  204. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  205. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  206. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  207. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  208. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +3 -3
  209. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  210. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  211. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  212. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  213. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  214. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  215. package/dist/web/standalone/.next/server/app/index.html +1 -1
  216. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  217. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  218. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  219. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  220. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  221. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  222. package/dist/web/standalone/.next/server/app-paths-manifest.json +16 -16
  223. package/dist/web/standalone/.next/server/chunks/167.js +2 -0
  224. package/dist/web/standalone/.next/server/chunks/7020.js +12 -0
  225. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  226. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  227. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  228. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  229. package/dist/web/standalone/package.json +1 -0
  230. package/dist/web/standalone/server.js +1 -1
  231. package/dist/{worktree-cli.js → worktrees/worktree-cli.js} +3 -2
  232. package/package.json +12 -5
  233. package/packages/contracts/dist/index.d.ts +3 -0
  234. package/packages/contracts/dist/index.d.ts.map +1 -0
  235. package/packages/contracts/dist/index.js +5 -0
  236. package/packages/contracts/dist/index.js.map +1 -0
  237. package/packages/contracts/dist/rpc.d.ts +549 -0
  238. package/packages/contracts/dist/rpc.d.ts.map +1 -0
  239. package/packages/contracts/dist/rpc.js +53 -0
  240. package/packages/contracts/dist/rpc.js.map +1 -0
  241. package/packages/contracts/dist/rpc.test.d.ts +2 -0
  242. package/packages/contracts/dist/rpc.test.d.ts.map +1 -0
  243. package/packages/contracts/dist/rpc.test.js +47 -0
  244. package/packages/contracts/dist/rpc.test.js.map +1 -0
  245. package/packages/contracts/dist/workflow.d.ts +180 -0
  246. package/packages/contracts/dist/workflow.d.ts.map +1 -0
  247. package/packages/contracts/dist/workflow.js +201 -0
  248. package/packages/contracts/dist/workflow.js.map +1 -0
  249. package/packages/contracts/package.json +39 -0
  250. package/packages/contracts/src/index.ts +5 -0
  251. package/packages/contracts/src/rpc.test.ts +72 -0
  252. package/packages/contracts/src/rpc.ts +286 -0
  253. package/packages/contracts/src/workflow.ts +213 -0
  254. package/packages/contracts/tsconfig.json +25 -0
  255. package/packages/daemon/package.json +3 -2
  256. package/packages/daemon/src/event-bridge.test.ts +2 -1
  257. package/packages/daemon/src/event-bridge.ts +1 -1
  258. package/packages/daemon/src/event-formatter.test.ts +1 -2
  259. package/packages/daemon/src/event-formatter.ts +1 -2
  260. package/packages/daemon/src/session-manager.ts +2 -2
  261. package/packages/daemon/src/types.ts +3 -18
  262. package/packages/mcp-server/dist/server.d.ts +13 -0
  263. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  264. package/packages/mcp-server/dist/server.js +77 -0
  265. package/packages/mcp-server/dist/server.js.map +1 -1
  266. package/packages/mcp-server/dist/session-manager.js +1 -1
  267. package/packages/mcp-server/dist/session-manager.js.map +1 -1
  268. package/packages/mcp-server/dist/types.d.ts +3 -11
  269. package/packages/mcp-server/dist/types.d.ts.map +1 -1
  270. package/packages/mcp-server/dist/types.js.map +1 -1
  271. package/packages/mcp-server/dist/workflow-tools.d.ts +1 -1
  272. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  273. package/packages/mcp-server/dist/workflow-tools.js +2 -40
  274. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  275. package/packages/mcp-server/package.json +3 -2
  276. package/packages/mcp-server/src/mcp-server.test.ts +138 -0
  277. package/packages/mcp-server/src/server.ts +99 -1
  278. package/packages/mcp-server/src/session-manager.ts +2 -2
  279. package/packages/mcp-server/src/types.ts +7 -18
  280. package/packages/mcp-server/src/workflow-tools.ts +2 -40
  281. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  282. package/packages/native/package.json +1 -1
  283. package/packages/pi-agent-core/package.json +1 -1
  284. package/packages/pi-ai/package.json +1 -1
  285. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +14 -0
  286. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  287. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js +20 -0
  288. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.js.map +1 -1
  289. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  290. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +6 -1
  291. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  292. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +9 -1
  293. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  294. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +31 -10
  295. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  296. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts +1 -512
  297. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  298. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.js +3 -7
  299. package/packages/pi-coding-agent/dist/modes/rpc/rpc-types.js.map +1 -1
  300. package/packages/pi-coding-agent/package.json +2 -1
  301. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +23 -2
  302. package/packages/pi-coding-agent/src/modes/interactive/components/tool-card-cleanup-and-success-runtime.test.ts +31 -0
  303. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +6 -1
  304. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +50 -9
  305. package/packages/pi-coding-agent/src/modes/rpc/rpc-types.ts +3 -336
  306. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  307. package/packages/pi-tui/dist/__tests__/tui.test.js +25 -3
  308. package/packages/pi-tui/dist/__tests__/tui.test.js.map +1 -1
  309. package/packages/pi-tui/dist/tui.d.ts +3 -1
  310. package/packages/pi-tui/dist/tui.d.ts.map +1 -1
  311. package/packages/pi-tui/dist/tui.js +3 -1
  312. package/packages/pi-tui/dist/tui.js.map +1 -1
  313. package/packages/pi-tui/package.json +1 -1
  314. package/packages/pi-tui/src/__tests__/tui.test.ts +30 -3
  315. package/packages/pi-tui/src/tui.ts +3 -1
  316. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
  317. package/packages/rpc-client/README.md +3 -3
  318. package/packages/rpc-client/dist/index.d.ts +1 -1
  319. package/packages/rpc-client/dist/index.d.ts.map +1 -1
  320. package/packages/rpc-client/dist/index.js.map +1 -1
  321. package/packages/rpc-client/dist/rpc-client.d.ts +2 -6
  322. package/packages/rpc-client/dist/rpc-client.d.ts.map +1 -1
  323. package/packages/rpc-client/dist/rpc-client.js.map +1 -1
  324. package/packages/rpc-client/dist/rpc-types.d.ts +1 -565
  325. package/packages/rpc-client/dist/rpc-types.d.ts.map +1 -1
  326. package/packages/rpc-client/dist/rpc-types.js +3 -11
  327. package/packages/rpc-client/dist/rpc-types.js.map +1 -1
  328. package/packages/rpc-client/package.json +4 -1
  329. package/packages/rpc-client/src/index.ts +1 -1
  330. package/packages/rpc-client/src/rpc-client.ts +3 -6
  331. package/packages/rpc-client/src/rpc-types.ts +3 -398
  332. package/packages/rpc-client/tsconfig.tsbuildinfo +1 -1
  333. package/pkg/package.json +1 -1
  334. package/src/resources/extensions/github-sync/templates.ts +59 -84
  335. package/src/resources/extensions/github-sync/tests/templates.test.ts +10 -2
  336. package/src/resources/extensions/gsd/auto/contracts.ts +87 -0
  337. package/src/resources/extensions/gsd/auto/custom-verify-retry-store.ts +72 -0
  338. package/src/resources/extensions/gsd/auto/loop-deps.ts +10 -3
  339. package/src/resources/extensions/gsd/auto/loop.ts +414 -598
  340. package/src/resources/extensions/gsd/auto/orchestrator.ts +161 -0
  341. package/src/resources/extensions/gsd/auto/phases.ts +82 -8
  342. package/src/resources/extensions/gsd/auto/session.ts +11 -0
  343. package/src/resources/extensions/gsd/auto/workflow-custom-engine-dispatch-outcome.ts +28 -0
  344. package/src/resources/extensions/gsd/auto/workflow-custom-engine-iteration.ts +52 -0
  345. package/src/resources/extensions/gsd/auto/workflow-custom-engine-reconcile-outcome.ts +58 -0
  346. package/src/resources/extensions/gsd/auto/workflow-custom-engine-reconcile.ts +71 -0
  347. package/src/resources/extensions/gsd/auto/workflow-custom-engine-retry.ts +90 -0
  348. package/src/resources/extensions/gsd/auto/workflow-custom-engine-verify-outcome.ts +50 -0
  349. package/src/resources/extensions/gsd/auto/workflow-dispatch-claim.ts +97 -0
  350. package/src/resources/extensions/gsd/auto/workflow-dispatch-ledger.ts +45 -0
  351. package/src/resources/extensions/gsd/auto/workflow-iteration-completion.ts +26 -0
  352. package/src/resources/extensions/gsd/auto/workflow-journal-reporter.ts +33 -0
  353. package/src/resources/extensions/gsd/auto/workflow-kernel.ts +520 -0
  354. package/src/resources/extensions/gsd/auto/workflow-memory-pressure.ts +58 -0
  355. package/src/resources/extensions/gsd/auto/workflow-phase-reporter.ts +22 -0
  356. package/src/resources/extensions/gsd/auto/workflow-session-lock.ts +68 -0
  357. package/src/resources/extensions/gsd/auto/workflow-sidecar-iteration.ts +46 -0
  358. package/src/resources/extensions/gsd/auto/workflow-sidecar-queue.ts +46 -0
  359. package/src/resources/extensions/gsd/auto/workflow-turn-reporter.ts +68 -0
  360. package/src/resources/extensions/gsd/auto/workflow-unit-dispatch.ts +89 -0
  361. package/src/resources/extensions/gsd/auto/workflow-worker-heartbeat.ts +38 -0
  362. package/src/resources/extensions/gsd/auto-dashboard.ts +4 -0
  363. package/src/resources/extensions/gsd/auto-prompts.ts +170 -3
  364. package/src/resources/extensions/gsd/auto-recovery.ts +42 -50
  365. package/src/resources/extensions/gsd/auto-runtime-state.ts +7 -0
  366. package/src/resources/extensions/gsd/auto-verification.ts +5 -1
  367. package/src/resources/extensions/gsd/auto-worktree.ts +83 -36
  368. package/src/resources/extensions/gsd/auto.ts +170 -4
  369. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +14 -1
  370. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +11 -0
  371. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +13 -5
  372. package/src/resources/extensions/gsd/commands-ship.ts +24 -51
  373. package/src/resources/extensions/gsd/commands-workflow-templates.ts +13 -0
  374. package/src/resources/extensions/gsd/component-loader.ts +5 -11
  375. package/src/resources/extensions/gsd/custom-workflow-engine.ts +29 -0
  376. package/src/resources/extensions/gsd/db-adapter.ts +75 -0
  377. package/src/resources/extensions/gsd/db-base-schema.ts +368 -0
  378. package/src/resources/extensions/gsd/db-connection-cache.ts +45 -0
  379. package/src/resources/extensions/gsd/db-coordination-schema.ts +109 -0
  380. package/src/resources/extensions/gsd/db-decision-requirement-rows.ts +77 -0
  381. package/src/resources/extensions/gsd/db-gate-rows.ts +19 -0
  382. package/src/resources/extensions/gsd/db-lightweight-query-rows.ts +50 -0
  383. package/src/resources/extensions/gsd/db-memory-fts-schema.ts +66 -0
  384. package/src/resources/extensions/gsd/db-migration-backup.ts +34 -0
  385. package/src/resources/extensions/gsd/db-migration-steps.ts +434 -0
  386. package/src/resources/extensions/gsd/db-milestone-artifact-rows.ts +70 -0
  387. package/src/resources/extensions/gsd/db-open-state.ts +47 -0
  388. package/src/resources/extensions/gsd/db-provider.ts +148 -0
  389. package/src/resources/extensions/gsd/db-runtime-kv-schema.ts +30 -0
  390. package/src/resources/extensions/gsd/db-schema-metadata.ts +33 -0
  391. package/src/resources/extensions/gsd/db-task-slice-rows.ts +146 -0
  392. package/src/resources/extensions/gsd/db-transaction.ts +76 -0
  393. package/src/resources/extensions/gsd/db-verification-evidence-rows.ts +14 -0
  394. package/src/resources/extensions/gsd/db-verification-evidence-schema.ts +22 -0
  395. package/src/resources/extensions/gsd/escalation.ts +3 -1
  396. package/src/resources/extensions/gsd/graph.ts +12 -5
  397. package/src/resources/extensions/gsd/gsd-db.ts +260 -1659
  398. package/src/resources/extensions/gsd/interrupted-session.ts +1 -0
  399. package/src/resources/extensions/gsd/legacy-telemetry.ts +99 -0
  400. package/src/resources/extensions/gsd/markdown-renderer.ts +4 -1
  401. package/src/resources/extensions/gsd/model-router.ts +10 -6
  402. package/src/resources/extensions/gsd/notification-widget.ts +25 -4
  403. package/src/resources/extensions/gsd/post-execution-checks.ts +35 -7
  404. package/src/resources/extensions/gsd/pr-evidence.ts +124 -0
  405. package/src/resources/extensions/gsd/pre-execution-checks.ts +4 -1
  406. package/src/resources/extensions/gsd/process-task-path.ts +81 -0
  407. package/src/resources/extensions/gsd/prompt-loader.ts +9 -5
  408. package/src/resources/extensions/gsd/prompts/complete-milestone.md +32 -30
  409. package/src/resources/extensions/gsd/prompts/complete-slice.md +23 -34
  410. package/src/resources/extensions/gsd/prompts/discuss-headless.md +50 -96
  411. package/src/resources/extensions/gsd/prompts/discuss.md +81 -181
  412. package/src/resources/extensions/gsd/prompts/execute-task.md +40 -67
  413. package/src/resources/extensions/gsd/prompts/forensics.md +41 -84
  414. package/src/resources/extensions/gsd/prompts/guided-discuss-milestone.md +29 -39
  415. package/src/resources/extensions/gsd/prompts/guided-discuss-project.md +30 -65
  416. package/src/resources/extensions/gsd/prompts/guided-discuss-requirements.md +25 -52
  417. package/src/resources/extensions/gsd/prompts/guided-discuss-slice.md +36 -36
  418. package/src/resources/extensions/gsd/prompts/guided-research-project.md +20 -38
  419. package/src/resources/extensions/gsd/prompts/plan-milestone.md +45 -59
  420. package/src/resources/extensions/gsd/prompts/plan-slice.md +25 -87
  421. package/src/resources/extensions/gsd/prompts/queue.md +46 -53
  422. package/src/resources/extensions/gsd/prompts/refine-slice.md +23 -23
  423. package/src/resources/extensions/gsd/prompts/research-slice.md +23 -23
  424. package/src/resources/extensions/gsd/prompts/rethink.md +10 -10
  425. package/src/resources/extensions/gsd/prompts/system.md +65 -107
  426. package/src/resources/extensions/gsd/prompts/triage-captures.md +15 -15
  427. package/src/resources/extensions/gsd/prompts/validate-milestone.md +24 -24
  428. package/src/resources/extensions/gsd/prompts/worktree-merge.md +35 -35
  429. package/src/resources/extensions/gsd/state.ts +6 -3
  430. package/src/resources/extensions/gsd/tests/auto-abort-pause-regression.test.ts +32 -0
  431. package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +65 -0
  432. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +38 -0
  433. package/src/resources/extensions/gsd/tests/auto-orchestrator.test.ts +353 -0
  434. package/src/resources/extensions/gsd/tests/auto-pr-bugs.test.ts +19 -0
  435. package/src/resources/extensions/gsd/tests/auto-runtime-state.test.ts +39 -0
  436. package/src/resources/extensions/gsd/tests/auto-session-encapsulation.test.ts +3 -0
  437. package/src/resources/extensions/gsd/tests/commands-eval-review.test.ts +2 -2
  438. package/src/resources/extensions/gsd/tests/commands-ship-eval-warn.test.ts +3 -2
  439. package/src/resources/extensions/gsd/tests/complete-milestone-prompt-rendering.test.ts +47 -0
  440. package/src/resources/extensions/gsd/tests/complete-milestone.test.ts +19 -5
  441. package/src/resources/extensions/gsd/tests/component-loader.test.ts +2 -9
  442. package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +144 -0
  443. package/src/resources/extensions/gsd/tests/custom-verify-retry-store.test.ts +139 -0
  444. package/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts +50 -0
  445. package/src/resources/extensions/gsd/tests/dashboard-custom-engine.test.ts +3 -3
  446. package/src/resources/extensions/gsd/tests/db-adapter.test.ts +82 -0
  447. package/src/resources/extensions/gsd/tests/db-base-schema.test.ts +62 -0
  448. package/src/resources/extensions/gsd/tests/db-connection-cache.test.ts +60 -0
  449. package/src/resources/extensions/gsd/tests/db-coordination-schema.test.ts +39 -0
  450. package/src/resources/extensions/gsd/tests/db-decision-requirement-rows.test.ts +135 -0
  451. package/src/resources/extensions/gsd/tests/db-gate-rows.test.ts +53 -0
  452. package/src/resources/extensions/gsd/tests/db-lightweight-query-rows.test.ts +45 -0
  453. package/src/resources/extensions/gsd/tests/db-memory-fts-schema.test.ts +86 -0
  454. package/src/resources/extensions/gsd/tests/db-migration-backup.test.ts +105 -0
  455. package/src/resources/extensions/gsd/tests/db-migration-steps.test.ts +159 -0
  456. package/src/resources/extensions/gsd/tests/db-milestone-artifact-rows.test.ts +53 -0
  457. package/src/resources/extensions/gsd/tests/db-open-state.test.ts +56 -0
  458. package/src/resources/extensions/gsd/tests/db-provider.test.ts +105 -0
  459. package/src/resources/extensions/gsd/tests/db-runtime-kv-schema.test.ts +37 -0
  460. package/src/resources/extensions/gsd/tests/db-schema-metadata.test.ts +115 -0
  461. package/src/resources/extensions/gsd/tests/db-task-slice-rows.test.ts +128 -0
  462. package/src/resources/extensions/gsd/tests/db-transaction.test.ts +110 -0
  463. package/src/resources/extensions/gsd/tests/db-verification-evidence-schema.test.ts +76 -0
  464. package/src/resources/extensions/gsd/tests/discuss-headless-rendering.test.ts +37 -0
  465. package/src/resources/extensions/gsd/tests/execute-task-rendering.test.ts +59 -0
  466. package/src/resources/extensions/gsd/tests/forensics-prompt-rendering.test.ts +36 -0
  467. package/src/resources/extensions/gsd/tests/graph-operations.test.ts +10 -0
  468. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +95 -0
  469. package/src/resources/extensions/gsd/tests/guided-discuss-milestone-prompt-rendering.test.ts +43 -0
  470. package/src/resources/extensions/gsd/tests/guided-discuss-project-prompt-rendering.test.ts +41 -0
  471. package/src/resources/extensions/gsd/tests/guided-discuss-requirements-prompt-rendering.test.ts +45 -0
  472. package/src/resources/extensions/gsd/tests/headless-answers.test.ts +1 -1
  473. package/src/resources/extensions/gsd/tests/headless-query.test.ts +2 -2
  474. package/src/resources/extensions/gsd/tests/integration/auto-recovery.test.ts +79 -0
  475. package/src/resources/extensions/gsd/tests/integration/auto-worktree-milestone-merge.test.ts +37 -0
  476. package/src/resources/extensions/gsd/tests/integration/state-machine-live-validation.test.ts +5 -3
  477. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +134 -0
  478. package/src/resources/extensions/gsd/tests/legacy-component-format-telemetry.test.ts +62 -0
  479. package/src/resources/extensions/gsd/tests/legacy-telemetry.test.ts +144 -0
  480. package/src/resources/extensions/gsd/tests/memory-pressure-stuck-state.test.ts +40 -16
  481. package/src/resources/extensions/gsd/tests/model-router.test.ts +33 -12
  482. package/src/resources/extensions/gsd/tests/notification-store.test.ts +8 -0
  483. package/src/resources/extensions/gsd/tests/notification-widget.test.ts +40 -1
  484. package/src/resources/extensions/gsd/tests/paused-session-via-db.test.ts +2 -0
  485. package/src/resources/extensions/gsd/tests/plan-milestone-rendering.test.ts +45 -0
  486. package/src/resources/extensions/gsd/tests/plan-slice-prompt.test.ts +65 -16
  487. package/src/resources/extensions/gsd/tests/plan-slice.test.ts +27 -0
  488. package/src/resources/extensions/gsd/tests/post-execution-checks.test.ts +46 -0
  489. package/src/resources/extensions/gsd/tests/pr-evidence.test.ts +79 -0
  490. package/src/resources/extensions/gsd/tests/process-task-path.test.ts +51 -0
  491. package/src/resources/extensions/gsd/tests/prompt-step-ordering.test.ts +16 -1
  492. package/src/resources/extensions/gsd/tests/queue-prompt-rendering.test.ts +37 -0
  493. package/src/resources/extensions/gsd/tests/resource-loader-import-path.test.ts +1 -1
  494. package/src/resources/extensions/gsd/tests/tool-naming.test.ts +32 -9
  495. package/src/resources/extensions/gsd/tests/unit-context-composer.test.ts +6 -6
  496. package/src/resources/extensions/gsd/tests/uok-kernel-path.test.ts +12 -0
  497. package/src/resources/extensions/gsd/tests/workflow-custom-engine-dispatch-outcome.test.ts +55 -0
  498. package/src/resources/extensions/gsd/tests/workflow-custom-engine-iteration.test.ts +93 -0
  499. package/src/resources/extensions/gsd/tests/workflow-custom-engine-reconcile-outcome.test.ts +108 -0
  500. package/src/resources/extensions/gsd/tests/workflow-custom-engine-reconcile.test.ts +146 -0
  501. package/src/resources/extensions/gsd/tests/workflow-custom-engine-retry.test.ts +136 -0
  502. package/src/resources/extensions/gsd/tests/workflow-custom-engine-verify-outcome.test.ts +95 -0
  503. package/src/resources/extensions/gsd/tests/workflow-dispatch-claim.test.ts +158 -0
  504. package/src/resources/extensions/gsd/tests/workflow-dispatch-ledger.test.ts +82 -0
  505. package/src/resources/extensions/gsd/tests/workflow-iteration-completion.test.ts +44 -0
  506. package/src/resources/extensions/gsd/tests/workflow-journal-reporter.test.ts +49 -0
  507. package/src/resources/extensions/gsd/tests/workflow-kernel.test.ts +607 -0
  508. package/src/resources/extensions/gsd/tests/workflow-logger.test.ts +20 -4
  509. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +8 -7
  510. package/src/resources/extensions/gsd/tests/workflow-memory-pressure.test.ts +71 -0
  511. package/src/resources/extensions/gsd/tests/workflow-phase-reporter.test.ts +40 -0
  512. package/src/resources/extensions/gsd/tests/workflow-session-lock.test.ts +135 -0
  513. package/src/resources/extensions/gsd/tests/workflow-sidecar-iteration.test.ts +110 -0
  514. package/src/resources/extensions/gsd/tests/workflow-sidecar-queue.test.ts +116 -0
  515. package/src/resources/extensions/gsd/tests/workflow-templates.test.ts +21 -0
  516. package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +32 -0
  517. package/src/resources/extensions/gsd/tests/workflow-turn-reporter.test.ts +87 -0
  518. package/src/resources/extensions/gsd/tests/workflow-unit-dispatch.test.ts +160 -0
  519. package/src/resources/extensions/gsd/tests/workflow-worker-heartbeat.test.ts +123 -0
  520. package/src/resources/extensions/gsd/tests/worktree-submodule-safety.test.ts +18 -34
  521. package/src/resources/extensions/gsd/tools/complete-milestone.ts +15 -9
  522. package/src/resources/extensions/gsd/tools/complete-task.ts +4 -1
  523. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +6 -1
  524. package/src/resources/extensions/gsd/unit-context-composer.ts +1 -1
  525. package/src/resources/extensions/gsd/uok/kernel.ts +10 -3
  526. package/src/resources/extensions/gsd/uok/plan-v2.ts +5 -1
  527. package/src/resources/extensions/gsd/workflow-logger.ts +13 -13
  528. package/src/resources/extensions/gsd/workflow-manifest.ts +6 -15
  529. package/src/resources/extensions/gsd/workflow-projections.ts +5 -1
  530. package/src/resources/extensions/gsd/workflow-templates.ts +11 -0
  531. package/src/resources/extensions/shared/interview-ui.ts +18 -5
  532. package/src/resources/extensions/shared/tests/interview-notes-loop.test.ts +41 -0
  533. package/dist/web/standalone/.next/server/chunks/6336.js +0 -1
  534. package/dist/web/standalone/.next/server/chunks/6897.js +0 -12
  535. /package/dist/{app-paths.d.ts → app/app-paths.d.ts} +0 -0
  536. /package/dist/{app-paths.js → app/app-paths.js} +0 -0
  537. /package/dist/{project-sessions.d.ts → app/project-sessions.d.ts} +0 -0
  538. /package/dist/{project-sessions.js → app/project-sessions.js} +0 -0
  539. /package/dist/{tool-bootstrap.d.ts → app/tool-bootstrap.d.ts} +0 -0
  540. /package/dist/{tool-bootstrap.js → app/tool-bootstrap.js} +0 -0
  541. /package/dist/{cli-auto-routing.d.ts → cli/cli-auto-routing.d.ts} +0 -0
  542. /package/dist/{cli-auto-routing.js → cli/cli-auto-routing.js} +0 -0
  543. /package/dist/{cli-policy.d.ts → cli/cli-policy.d.ts} +0 -0
  544. /package/dist/{cli-policy.js → cli/cli-policy.js} +0 -0
  545. /package/dist/{cli.d.ts → cli/cli.d.ts} +0 -0
  546. /package/dist/{help-text.d.ts → cli/help-text.d.ts} +0 -0
  547. /package/dist/{help-text.js → cli/help-text.js} +0 -0
  548. /package/dist/{logo.d.ts → cli/logo.d.ts} +0 -0
  549. /package/dist/{logo.js → cli/logo.js} +0 -0
  550. /package/dist/{web-mode.d.ts → cli/web-mode.d.ts} +0 -0
  551. /package/dist/{bundled-extension-paths.d.ts → extension-runtime/bundled-extension-paths.d.ts} +0 -0
  552. /package/dist/{bundled-extension-paths.js → extension-runtime/bundled-extension-paths.js} +0 -0
  553. /package/dist/{bundled-resource-path.d.ts → extension-runtime/bundled-resource-path.d.ts} +0 -0
  554. /package/dist/{bundled-resource-path.js → extension-runtime/bundled-resource-path.js} +0 -0
  555. /package/dist/{extension-discovery.d.ts → extension-runtime/extension-discovery.d.ts} +0 -0
  556. /package/dist/{extension-discovery.js → extension-runtime/extension-discovery.js} +0 -0
  557. /package/dist/{extension-registry.d.ts → extension-runtime/extension-registry.d.ts} +0 -0
  558. /package/dist/{extension-sort.d.ts → extension-runtime/extension-sort.d.ts} +0 -0
  559. /package/dist/{extension-sort.js → extension-runtime/extension-sort.js} +0 -0
  560. /package/dist/{extension-validator.d.ts → extension-runtime/extension-validator.d.ts} +0 -0
  561. /package/dist/{extension-validator.js → extension-runtime/extension-validator.js} +0 -0
  562. /package/dist/{headless-answers.d.ts → headless/headless-answers.d.ts} +0 -0
  563. /package/dist/{headless-answers.js → headless/headless-answers.js} +0 -0
  564. /package/dist/{headless-context.d.ts → headless/headless-context.d.ts} +0 -0
  565. /package/dist/{headless-context.js → headless/headless-context.js} +0 -0
  566. /package/dist/{headless-events.d.ts → headless/headless-events.d.ts} +0 -0
  567. /package/dist/{headless-events.js → headless/headless-events.js} +0 -0
  568. /package/dist/{headless-recover.d.ts → headless/headless-recover.d.ts} +0 -0
  569. /package/dist/{headless-types.d.ts → headless/headless-types.d.ts} +0 -0
  570. /package/dist/{headless-types.js → headless/headless-types.js} +0 -0
  571. /package/dist/{headless-ui.d.ts → headless/headless-ui.d.ts} +0 -0
  572. /package/dist/{headless-ui.js → headless/headless-ui.js} +0 -0
  573. /package/dist/{headless.d.ts → headless/headless.d.ts} +0 -0
  574. /package/dist/{mcp-server.d.ts → mcp/mcp-server.d.ts} +0 -0
  575. /package/dist/{mcp-server.js → mcp/mcp-server.js} +0 -0
  576. /package/dist/{onboarding.d.ts → onboarding/onboarding.d.ts} +0 -0
  577. /package/dist/{welcome-screen.d.ts → onboarding/welcome-screen.d.ts} +0 -0
  578. /package/dist/{wizard.d.ts → onboarding/wizard.d.ts} +0 -0
  579. /package/dist/{wizard.js → onboarding/wizard.js} +0 -0
  580. /package/dist/{models-resolver.d.ts → providers/models-resolver.d.ts} +0 -0
  581. /package/dist/{pi-migration.d.ts → providers/pi-migration.d.ts} +0 -0
  582. /package/dist/{pi-migration.js → providers/pi-migration.js} +0 -0
  583. /package/dist/{provider-migrations.d.ts → providers/provider-migrations.d.ts} +0 -0
  584. /package/dist/{provider-migrations.js → providers/provider-migrations.js} +0 -0
  585. /package/dist/{remote-questions-config.d.ts → providers/remote-questions-config.d.ts} +0 -0
  586. /package/dist/{rtk-shared.d.ts → rtk/rtk-shared.d.ts} +0 -0
  587. /package/dist/{rtk-shared.js → rtk/rtk-shared.js} +0 -0
  588. /package/dist/{rtk.d.ts → rtk/rtk.d.ts} +0 -0
  589. /package/dist/{rtk.js → rtk/rtk.js} +0 -0
  590. /package/dist/{security-overrides.d.ts → security/security-overrides.d.ts} +0 -0
  591. /package/dist/{claude-cli-check.d.ts → startup/claude-cli-check.d.ts} +0 -0
  592. /package/dist/{claude-cli-check.js → startup/claude-cli-check.js} +0 -0
  593. /package/dist/{runtime-checks.d.ts → startup/runtime-checks.d.ts} +0 -0
  594. /package/dist/{runtime-checks.js → startup/runtime-checks.js} +0 -0
  595. /package/dist/{startup-model-validation.d.ts → startup/startup-model-validation.d.ts} +0 -0
  596. /package/dist/{startup-timings.d.ts → startup/startup-timings.d.ts} +0 -0
  597. /package/dist/{startup-timings.js → startup/startup-timings.js} +0 -0
  598. /package/dist/{update-check.d.ts → update/update-check.d.ts} +0 -0
  599. /package/dist/{update-cmd.d.ts → update/update-cmd.d.ts} +0 -0
  600. /package/dist/{update-cmd.js → update/update-cmd.js} +0 -0
  601. /package/dist/web/standalone/.next/static/{TzEVJ1Lh8vbez4n4Q9TqQ → -WDXZiiJHGZDbYH75Mu6f}/_buildManifest.js +0 -0
  602. /package/dist/web/standalone/.next/static/{TzEVJ1Lh8vbez4n4Q9TqQ → -WDXZiiJHGZDbYH75Mu6f}/_ssgManifest.js +0 -0
  603. /package/dist/{worktree-cli.d.ts → worktrees/worktree-cli.d.ts} +0 -0
  604. /package/dist/{worktree-name-gen.d.ts → worktrees/worktree-name-gen.d.ts} +0 -0
  605. /package/dist/{worktree-name-gen.js → worktrees/worktree-name-gen.js} +0 -0
  606. /package/dist/{worktree-status-banner.d.ts → worktrees/worktree-status-banner.d.ts} +0 -0
  607. /package/dist/{worktree-status-banner.js → worktrees/worktree-status-banner.js} +0 -0
@@ -35,7 +35,7 @@ export interface RunWebCliBranchDeps {
35
35
  }
36
36
  export declare function parseCliArgs(argv: string[]): CliFlags;
37
37
  export declare function buildHeadlessAutoArgs(flags: Pick<CliFlags, 'messages' | 'model'>): string[];
38
- export { getProjectSessionsDir } from './project-sessions.js';
38
+ export { getProjectSessionsDir } from '../app/project-sessions.js';
39
39
  export declare function migrateLegacyFlatSessions(baseSessionsDir: string, projectSessionsDir: string): void;
40
40
  /**
41
41
  * Resolve the working directory for context-aware launch detection.
@@ -1,7 +1,7 @@
1
1
  import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync } from 'node:fs';
2
2
  import { join, resolve, sep } from 'node:path';
3
- import { agentDir as defaultAgentDir, sessionsDir as defaultSessionsDir, webPreferencesPath as defaultWebPreferencesPath } from './app-paths.js';
4
- import { getProjectSessionsDir } from './project-sessions.js';
3
+ import { agentDir as defaultAgentDir, sessionsDir as defaultSessionsDir, webPreferencesPath as defaultWebPreferencesPath } from '../app/app-paths.js';
4
+ import { getProjectSessionsDir } from '../app/project-sessions.js';
5
5
  import { launchWebMode, stopWebMode } from './web-mode.js';
6
6
  export function parseCliArgs(argv) {
7
7
  const flags = { extensions: [], messages: [] };
@@ -76,7 +76,7 @@ export function parseCliArgs(argv) {
76
76
  export function buildHeadlessAutoArgs(flags) {
77
77
  return flags.model ? ['--model', flags.model, ...flags.messages] : [...flags.messages];
78
78
  }
79
- export { getProjectSessionsDir } from './project-sessions.js';
79
+ export { getProjectSessionsDir } from '../app/project-sessions.js';
80
80
  export function migrateLegacyFlatSessions(baseSessionsDir, projectSessionsDir) {
81
81
  if (!existsSync(baseSessionsDir))
82
82
  return;
@@ -1,24 +1,24 @@
1
1
  import { readFileSync } from 'node:fs';
2
2
  import { join } from 'node:path';
3
- import { agentDir, sessionsDir, authFilePath } from './app-paths.js';
4
- import { initResources, buildResourceLoader, getNewerManagedResourceVersion } from './resource-loader.js';
5
- import { ensureManagedTools } from './tool-bootstrap.js';
6
- import { loadStoredEnvKeys } from './wizard.js';
7
- import { migratePiCredentials } from './pi-migration.js';
8
- import { shouldRunOnboarding, runOnboarding } from './onboarding.js';
3
+ import { agentDir, sessionsDir, authFilePath } from '../app/app-paths.js';
4
+ import { initResources, buildResourceLoader, getNewerManagedResourceVersion } from '../resource-runtime/resource-loader.js';
5
+ import { ensureManagedTools } from '../app/tool-bootstrap.js';
6
+ import { loadStoredEnvKeys } from '../onboarding/wizard.js';
7
+ import { migratePiCredentials } from '../providers/pi-migration.js';
8
+ import { shouldRunOnboarding, runOnboarding } from '../onboarding/onboarding.js';
9
9
  import chalk from 'chalk';
10
- import { checkForUpdates } from './update-check.js';
10
+ import { checkForUpdates } from '../update/update-check.js';
11
11
  import { shouldBypassManagedResourceMismatchGate } from './cli-policy.js';
12
12
  import { shouldRedirectAutoToHeadless } from './cli-auto-routing.js';
13
13
  import { printHelp, printSubcommandHelp } from './help-text.js';
14
- import { applySecurityOverrides } from './security-overrides.js';
15
- import { validateConfiguredModel } from './startup-model-validation.js';
16
- import { migrateAnthropicDefaultToClaudeCode } from './provider-migrations.js';
14
+ import { applySecurityOverrides } from '../security/security-overrides.js';
15
+ import { validateConfiguredModel } from '../startup/startup-model-validation.js';
16
+ import { migrateAnthropicDefaultToClaudeCode } from '../providers/provider-migrations.js';
17
17
  import { buildHeadlessAutoArgs, parseCliArgs, runWebCliBranch, migrateLegacyFlatSessions, } from './cli-web-branch.js';
18
18
  import { stopWebMode } from './web-mode.js';
19
- import { getProjectSessionsDir } from './project-sessions.js';
20
- import { markStartup, printStartupTimings } from './startup-timings.js';
21
- import { applyRtkProcessEnv, GSD_RTK_DISABLED_ENV, isTruthy } from './rtk-shared.js';
19
+ import { getProjectSessionsDir } from '../app/project-sessions.js';
20
+ import { markStartup, printStartupTimings } from '../startup/startup-timings.js';
21
+ import { applyRtkProcessEnv, GSD_RTK_DISABLED_ENV, isTruthy } from '../rtk/rtk-shared.js';
22
22
  let piCodingAgentModulePromise;
23
23
  function loadPiCodingAgentModule() {
24
24
  return (piCodingAgentModulePromise ??= import('@gsd/pi-coding-agent'));
@@ -139,7 +139,7 @@ async function doRtkBootstrap() {
139
139
  // Honor GSD_RTK_DISABLED if already explicitly set in the environment
140
140
  // (env var takes precedence over preferences for manual override).
141
141
  if (!rtkDisabled) {
142
- const { loadEffectiveGSDPreferences } = await import('./resources/extensions/gsd/preferences.js');
142
+ const { loadEffectiveGSDPreferences } = await import('../resources/extensions/gsd/preferences.js');
143
143
  const prefs = loadEffectiveGSDPreferences();
144
144
  const rtkEnabled = prefs?.preferences.experimental?.rtk === true;
145
145
  if (!rtkEnabled) {
@@ -159,7 +159,7 @@ async function doRtkBootstrap() {
159
159
  };
160
160
  }
161
161
  else {
162
- const { bootstrapRtk } = await import('./rtk.js');
162
+ const { bootstrapRtk } = await import('../rtk/rtk.js');
163
163
  rtkStatus = await bootstrapRtk();
164
164
  }
165
165
  markStartup('bootstrapRtk');
@@ -180,7 +180,7 @@ function ensureRtkBootstrap() {
180
180
  // command is blocked — only `update` should bypass the gate so the user can
181
181
  // actually upgrade out of the broken state. See shouldBypassManagedResourceMismatchGate.
182
182
  if (shouldBypassManagedResourceMismatchGate(cliFlags.messages[0])) {
183
- const { runUpdate } = await import('./update-cmd.js');
183
+ const { runUpdate } = await import('../update/update-cmd.js');
184
184
  await runUpdate();
185
185
  process.exit(0);
186
186
  }
@@ -387,7 +387,7 @@ if (cliFlags.messages[0] === 'headless') {
387
387
  // headless-query loads from src/resources/ while auto/interactive load
388
388
  // from ~/.gsd/agent/extensions/ — different extension copies diverge.
389
389
  initResources(agentDir);
390
- const { runHeadless, parseHeadlessArgs } = await import('./headless.js');
390
+ const { runHeadless, parseHeadlessArgs } = await import('../headless/headless.js');
391
391
  await runHeadless(parseHeadlessArgs(process.argv));
392
392
  process.exit(0);
393
393
  }
@@ -398,7 +398,7 @@ if (cliFlags.messages[0] === 'headless') {
398
398
  */
399
399
  async function runHeadlessFromAuto(headlessArgs) {
400
400
  await ensureRtkBootstrap();
401
- const { runHeadless, parseHeadlessArgs } = await import('./headless.js');
401
+ const { runHeadless, parseHeadlessArgs } = await import('../headless/headless.js');
402
402
  const argv = [process.argv[0], process.argv[1], 'headless', ...headlessArgs];
403
403
  await runHeadless(parseHeadlessArgs(argv));
404
404
  process.exit(0);
@@ -422,7 +422,7 @@ if (shouldRedirectAutoToHeadless(cliFlags.messages[0], process.stdin.isTTY, proc
422
422
  if (!isPrintMode &&
423
423
  cliFlags.listModels === undefined &&
424
424
  (cliFlags.messages[0] === 'worktree' || cliFlags.messages[0] === 'wt')) {
425
- const { handleList, handleMerge, handleClean, handleRemove } = await import('./worktree-cli.js');
425
+ const { handleList, handleMerge, handleClean, handleRemove } = await import('../worktrees/worktree-cli.js');
426
426
  const sub = cliFlags.messages[1];
427
427
  const subArgs = cliFlags.messages.slice(2);
428
428
  if (!sub || sub === 'list') {
@@ -455,7 +455,7 @@ markStartup('AuthStorage.create');
455
455
  loadStoredEnvKeys(authStorage);
456
456
  migratePiCredentials(authStorage);
457
457
  // Resolve models.json path with fallback to ~/.pi/agent/models.json
458
- const { resolveModelsJsonPath } = await import('./models-resolver.js');
458
+ const { resolveModelsJsonPath } = await import('../providers/models-resolver.js');
459
459
  const modelsJsonPath = resolveModelsJsonPath();
460
460
  const modelRegistry = new ModelRegistry(authStorage, modelsJsonPath);
461
461
  markStartup('ModelRegistry');
@@ -614,7 +614,7 @@ if (isPrintMode) {
614
614
  }
615
615
  if (mode === 'mcp') {
616
616
  printStartupTimings();
617
- const { startMcpServer } = await import('./mcp-server.js');
617
+ const { startMcpServer } = await import('../mcp/mcp-server.js');
618
618
  // Activate every registered tool before starting the MCP transport.
619
619
  // `session.agent.state.tools` is the *active* subset, not the full
620
620
  // registry — if we expose only the active set, extension-registered
@@ -642,7 +642,7 @@ if (isPrintMode) {
642
642
  // Worktree flag (-w) — create/resume a worktree for the interactive session
643
643
  // ---------------------------------------------------------------------------
644
644
  if (cliFlags.worktree) {
645
- const { handleWorktreeFlag } = await import('./worktree-cli.js');
645
+ const { handleWorktreeFlag } = await import('../worktrees/worktree-cli.js');
646
646
  await handleWorktreeFlag(cliFlags.worktree);
647
647
  }
648
648
  // ---------------------------------------------------------------------------
@@ -650,7 +650,7 @@ if (cliFlags.worktree) {
650
650
  // ---------------------------------------------------------------------------
651
651
  if (!cliFlags.worktree && !isPrintMode) {
652
652
  try {
653
- const { showWorktreeStatusBanner } = await import('./worktree-status-banner.js');
653
+ const { showWorktreeStatusBanner } = await import('../worktrees/worktree-status-banner.js');
654
654
  showWorktreeStatusBanner(process.cwd());
655
655
  }
656
656
  catch { /* non-fatal */ }
@@ -763,10 +763,10 @@ if (!process.stdin.isTTY || !process.stdout.isTTY) {
763
763
  // Welcome screen — shown on every fresh interactive session before TUI takes over.
764
764
  // Skip when the first-run banner was already printed in loader.ts (prevents double banner).
765
765
  if (!process.env.GSD_FIRST_RUN_BANNER) {
766
- const { printWelcomeScreen } = await import('./welcome-screen.js');
766
+ const { printWelcomeScreen } = await import('../onboarding/welcome-screen.js');
767
767
  let remoteChannel;
768
768
  try {
769
- const { resolveRemoteConfig } = await import('./resources/extensions/remote-questions/config.js');
769
+ const { resolveRemoteConfig } = await import('../resources/extensions/remote-questions/config.js');
770
770
  const rc = resolveRemoteConfig();
771
771
  if (rc)
772
772
  remoteChannel = rc.channel;
@@ -5,9 +5,9 @@ import { request as httpRequest } from 'node:http';
5
5
  import { createServer } from 'node:net';
6
6
  import { dirname, join, resolve } from 'node:path';
7
7
  import { fileURLToPath } from 'node:url';
8
- import { appRoot, webPidFilePath as defaultWebPidFilePath } from './app-paths.js';
8
+ import { appRoot, webPidFilePath as defaultWebPidFilePath } from '../app/app-paths.js';
9
9
  const DEFAULT_HOST = '127.0.0.1';
10
- const DEFAULT_PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..');
10
+ const DEFAULT_PACKAGE_ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..');
11
11
  /** Open a URL in the user's default browser. */
12
12
  function openBrowser(url) {
13
13
  if (process.platform === 'win32') {
@@ -165,7 +165,7 @@ function stopLegacyPidFile(deps) {
165
165
  }
166
166
  }
167
167
  async function loadResourceBootstrap() {
168
- const mod = await import('./resource-loader.js');
168
+ const mod = await import('../resource-runtime/resource-loader.js');
169
169
  return {
170
170
  initResources: mod.initResources,
171
171
  };
@@ -6,7 +6,7 @@
6
6
  * The only way an extension stops loading is an explicit `gsd extensions disable <id>`.
7
7
  */
8
8
  import { existsSync, mkdirSync, readFileSync, readdirSync, renameSync, writeFileSync } from "node:fs";
9
- import { appRoot } from "./app-paths.js";
9
+ import { appRoot } from "../app/app-paths.js";
10
10
  import { dirname, join } from "node:path";
11
11
  // ─── Validation ─────────────────────────────────────────────────────────────
12
12
  function isRegistry(data) {
@@ -13,7 +13,7 @@
13
13
  * We use createJiti() here because this module is imported directly from cli.ts,
14
14
  * bypassing the extension loader's jiti setup (#1137).
15
15
  */
16
- import type { GSDState } from './resources/extensions/gsd/types.js';
16
+ import type { GSDState } from '../resources/extensions/gsd/types.js';
17
17
  /**
18
18
  * Resolve the GSD extensions root for headless-query. Prefers the synced
19
19
  * agent directory (so headless-query loads the same extension copy as
@@ -17,7 +17,7 @@ import { createJiti } from '@mariozechner/jiti';
17
17
  import { fileURLToPath } from 'node:url';
18
18
  import { join } from 'node:path';
19
19
  import { homedir } from 'node:os';
20
- import { resolveBundledGsdExtensionModule } from './bundled-resource-path.js';
20
+ import { resolveBundledGsdExtensionModule } from '../extension-runtime/bundled-resource-path.js';
21
21
  const jiti = createJiti(fileURLToPath(import.meta.url), { interopDefault: true, debug: false });
22
22
  const { existsSync } = await import('node:fs');
23
23
  /**
@@ -49,9 +49,10 @@ export function shouldUseAgentExtensionsDir(opts) {
49
49
  }
50
50
  const agentExtensionsDir = resolveGsdAgentExtensionsDir();
51
51
  const { useAgentDir } = shouldUseAgentExtensionsDir({ env: process.env });
52
+ const bundledResourceImportUrl = new URL('../loader.js', import.meta.url).href;
52
53
  const gsdExtensionPath = (...segments) => useAgentDir
53
54
  ? resolveAgentExtensionModule(agentExtensionsDir, segments)
54
- : resolveBundledGsdExtensionModule(import.meta.url, segments.join('/'));
55
+ : resolveBundledGsdExtensionModule(bundledResourceImportUrl, segments.join('/'));
55
56
  function resolveAgentExtensionModule(agentDir, segments) {
56
57
  const requested = join(agentDir, ...segments);
57
58
  if (existsSync(requested))
@@ -21,15 +21,16 @@
21
21
  import { createJiti } from '@mariozechner/jiti';
22
22
  import { fileURLToPath } from 'node:url';
23
23
  import { resolveGsdAgentExtensionsDir, shouldUseAgentExtensionsDir } from './headless-query.js';
24
- import { resolveBundledGsdExtensionModule } from './bundled-resource-path.js';
24
+ import { resolveBundledGsdExtensionModule } from '../extension-runtime/bundled-resource-path.js';
25
25
  import { join } from 'node:path';
26
26
  import { existsSync } from 'node:fs';
27
27
  const jiti = createJiti(fileURLToPath(import.meta.url), { interopDefault: true, debug: false });
28
28
  const agentExtensionsDir = resolveGsdAgentExtensionsDir();
29
29
  const { useAgentDir } = shouldUseAgentExtensionsDir({ env: process.env });
30
+ const bundledResourceImportUrl = new URL('../loader.js', import.meta.url).href;
30
31
  const gsdExtensionPath = (...segments) => useAgentDir
31
32
  ? resolveAgentExtensionModule(agentExtensionsDir, segments)
32
- : resolveBundledGsdExtensionModule(import.meta.url, segments.join('/'));
33
+ : resolveBundledGsdExtensionModule(bundledResourceImportUrl, segments.join('/'));
33
34
  function resolveAgentExtensionModule(agentDir, segments) {
34
35
  const requested = join(agentDir, ...segments);
35
36
  if (existsSync(requested))
@@ -15,7 +15,7 @@ import { existsSync, mkdirSync, writeFileSync, writeSync } from 'node:fs';
15
15
  import { join } from 'node:path';
16
16
  import { resolve } from 'node:path';
17
17
  import { RpcClient, SessionManager } from '@gsd/pi-coding-agent';
18
- import { getProjectSessionsDir } from './project-sessions.js';
18
+ import { getProjectSessionsDir } from '../app/project-sessions.js';
19
19
  import { loadAndValidateAnswerFile, AnswerInjector } from './headless-answers.js';
20
20
  import { isTerminalNotification, isBlockedNotification, isMilestoneReadyNotification, isQuickCommand, FIRE_AND_FORGET_METHODS, IDLE_TIMEOUT_MS, NEW_MILESTONE_IDLE_TIMEOUT_MS, isInteractiveHeadlessTool, shouldArmHeadlessIdleTimeout, EXIT_SUCCESS, EXIT_ERROR, EXIT_BLOCKED, EXIT_CANCELLED, mapStatusToExitCode, } from './headless-events.js';
21
21
  import { VALID_OUTPUT_FORMATS } from './headless-types.js';
@@ -280,8 +280,8 @@ async function runHeadlessOnce(options, restartCount) {
280
280
  // suite) get the same diagnostic without a TTY.
281
281
  if (options.command === 'doctor') {
282
282
  const wantsJson = options.json || options.commandArgs.includes('--json');
283
- const { runGSDDoctor } = await import('./resources/extensions/gsd/doctor.js');
284
- const { formatDoctorReport, formatDoctorReportJson } = await import('./resources/extensions/gsd/doctor-format.js');
283
+ const { runGSDDoctor } = await import('../resources/extensions/gsd/doctor.js');
284
+ const { formatDoctorReport, formatDoctorReportJson } = await import('../resources/extensions/gsd/doctor-format.js');
285
285
  let exitCode = 1;
286
286
  try {
287
287
  const report = await runGSDDoctor(process.cwd());
package/dist/loader.js CHANGED
@@ -21,7 +21,7 @@ if (firstArg === '--version' || firstArg === '-v') {
21
21
  process.exit(0);
22
22
  }
23
23
  if (firstArg === '--help' || firstArg === '-h') {
24
- const { printHelp } = await import('./help-text.js');
24
+ const { printHelp } = await import('./cli/help-text.js');
25
25
  printHelp(gsdVersion);
26
26
  process.exit(0);
27
27
  }
@@ -31,7 +31,7 @@ if (firstArg === '--help' || firstArg === '-h') {
31
31
  // package.json (already parsed above) and verifies git is available.
32
32
  // ---------------------------------------------------------------------------
33
33
  {
34
- const { MIN_NODE_MAJOR, checkNodeVersion, requireGit } = await import('./runtime-checks.js');
34
+ const { MIN_NODE_MAJOR, checkNodeVersion, requireGit } = await import('./startup/runtime-checks.js');
35
35
  const red = '\x1b[31m';
36
36
  const bold = '\x1b[1m';
37
37
  const dim = '\x1b[2m';
@@ -57,13 +57,13 @@ if (firstArg === '--help' || firstArg === '-h') {
57
57
  process.exit(1);
58
58
  }
59
59
  }
60
- import { agentDir, appRoot } from './app-paths.js';
61
- import { applyRtkProcessEnv } from './rtk-shared.js';
62
- import { serializeBundledExtensionPaths } from './bundled-extension-paths.js';
63
- import { resolveBundledResourcesDirFromPackageRoot } from './bundled-resource-path.js';
64
- import { discoverExtensionEntryPaths } from './extension-discovery.js';
65
- import { loadRegistry, readManifestFromEntryPath, isExtensionEnabled } from './extension-registry.js';
66
- import { renderLogo } from './logo.js';
60
+ import { agentDir, appRoot } from './app/app-paths.js';
61
+ import { applyRtkProcessEnv } from './rtk/rtk-shared.js';
62
+ import { serializeBundledExtensionPaths } from './extension-runtime/bundled-extension-paths.js';
63
+ import { resolveBundledResourcesDirFromPackageRoot } from './extension-runtime/bundled-resource-path.js';
64
+ import { discoverExtensionEntryPaths } from './extension-runtime/extension-discovery.js';
65
+ import { loadRegistry, readManifestFromEntryPath, isExtensionEnabled } from './extension-runtime/extension-registry.js';
66
+ import { renderLogo } from './cli/logo.js';
67
67
  // pkg/ is a shim directory: contains gsd's piConfig (package.json) and pi's
68
68
  // theme assets (dist/modes/interactive/theme/) without a src/ directory.
69
69
  // This allows config.js to:
@@ -235,4 +235,4 @@ if (missingPackages.length > 0) {
235
235
  process.exit(1);
236
236
  }
237
237
  // Dynamic import defers ESM evaluation — config.js will see PI_PACKAGE_DIR above
238
- await import('./cli.js');
238
+ await import('./cli/cli.js');
@@ -12,11 +12,11 @@
12
12
  import { execFile } from 'node:child_process';
13
13
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
14
14
  import { dirname, join } from 'node:path';
15
- import { renderLogo } from './logo.js';
16
- import { agentDir } from './app-paths.js';
17
- import { isClaudeCliReady } from './claude-cli-check.js';
18
- import { markOnboardingComplete, markStepCompleted, markStepSkipped, isOnboardingComplete, } from './resources/extensions/gsd/onboarding-state.js';
19
- import { getLlmProviderIds } from './resources/extensions/gsd/setup-catalog.js';
15
+ import { renderLogo } from '../cli/logo.js';
16
+ import { agentDir } from '../app/app-paths.js';
17
+ import { isClaudeCliReady } from '../startup/claude-cli-check.js';
18
+ import { markOnboardingComplete, markStepCompleted, markStepSkipped, isOnboardingComplete, } from '../resources/extensions/gsd/onboarding-state.js';
19
+ import { getLlmProviderIds } from '../resources/extensions/gsd/setup-catalog.js';
20
20
  // ─── Constants ────────────────────────────────────────────────────────────────
21
21
  const TOOL_KEYS = [
22
22
  {
@@ -825,7 +825,7 @@ export async function runRemoteQuestionsStep(p, pc, authStorage) {
825
825
  });
826
826
  if (p.isCancel(channelId) || !channelId)
827
827
  return null;
828
- const { saveRemoteQuestionsConfig } = await import('./remote-questions-config.js');
828
+ const { saveRemoteQuestionsConfig } = await import('../providers/remote-questions-config.js');
829
829
  saveRemoteQuestionsConfig('slack', channelId.trim());
830
830
  p.log.success(`Slack channel: ${pc.green(channelId.trim())}`);
831
831
  return 'Slack';
@@ -893,7 +893,7 @@ export async function runRemoteQuestionsStep(p, pc, authStorage) {
893
893
  ts.stop('Could not reach Telegram API');
894
894
  return null;
895
895
  }
896
- const { saveRemoteQuestionsConfig } = await import('./remote-questions-config.js');
896
+ const { saveRemoteQuestionsConfig } = await import('../providers/remote-questions-config.js');
897
897
  saveRemoteQuestionsConfig('telegram', trimmedChatId);
898
898
  p.log.success(`Telegram chat: ${pc.green(trimmedChatId)}`);
899
899
  return 'Telegram';
@@ -1002,7 +1002,7 @@ async function runDiscordChannelStep(p, pc, token) {
1002
1002
  channelId = channelChoice;
1003
1003
  }
1004
1004
  // Save remote questions config
1005
- const { saveRemoteQuestionsConfig } = await import('./remote-questions-config.js');
1005
+ const { saveRemoteQuestionsConfig } = await import('../providers/remote-questions-config.js');
1006
1006
  saveRemoteQuestionsConfig('discord', channelId);
1007
1007
  const channelName = channels.find(ch => ch.id === channelId)?.name;
1008
1008
  p.log.success(`Discord channel: ${pc.green(channelName ? `#${channelName}` : channelId)}`);
@@ -10,7 +10,7 @@ import { join } from 'node:path';
10
10
  import os from 'node:os';
11
11
  import chalk from 'chalk';
12
12
  import stripAnsi from 'strip-ansi';
13
- import { GSD_LOGO } from './logo.js';
13
+ import { GSD_LOGO } from '../cli/logo.js';
14
14
  function readGsdState() {
15
15
  try {
16
16
  const raw = readFileSync(join(process.cwd(), '.gsd', 'STATE.md'), 'utf-8');
@@ -11,7 +11,7 @@
11
11
  import { existsSync } from 'node:fs';
12
12
  import { homedir } from 'node:os';
13
13
  import { join } from 'node:path';
14
- import { agentDir } from './app-paths.js';
14
+ import { agentDir } from '../app/app-paths.js';
15
15
  const GSD_MODELS_PATH = join(agentDir, 'models.json');
16
16
  const PI_MODELS_PATH = join(homedir(), '.pi', 'agent', 'models.json');
17
17
  /**
@@ -9,7 +9,7 @@
9
9
  */
10
10
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
11
11
  import { dirname, join } from "node:path";
12
- import { appRoot } from "./app-paths.js";
12
+ import { appRoot } from "../app/app-paths.js";
13
13
  // Inlined from preferences.ts to avoid crossing the compiled/uncompiled
14
14
  // boundary — this file is compiled by tsc, but preferences.ts is loaded
15
15
  // via jiti at runtime. Importing it as .js fails because no .js exists
@@ -1,5 +1,5 @@
1
1
  import type { DefaultResourceLoader as DefaultResourceLoaderType } from '@gsd/pi-coding-agent';
2
- export { discoverExtensionEntryPaths } from './extension-discovery.js';
2
+ export { discoverExtensionEntryPaths } from '../extension-runtime/extension-discovery.js';
3
3
  export declare function getExtensionKey(entryPath: string, extensionsDir: string): string;
4
4
  export declare function readManagedResourceVersion(agentDir: string): string | null;
5
5
  /**
@@ -3,10 +3,10 @@ import { homedir } from 'node:os';
3
3
  import { chmodSync, copyFileSync, cpSync, existsSync, lstatSync, mkdirSync, openSync, closeSync, readFileSync, readlinkSync, readdirSync, rmSync, statSync, symlinkSync, unlinkSync, writeFileSync } from 'node:fs';
4
4
  import { basename, dirname, join, relative, resolve } from 'node:path';
5
5
  import { fileURLToPath } from 'node:url';
6
- import { compareSemver } from './update-check.js';
7
- import { discoverExtensionEntryPaths } from './extension-discovery.js';
8
- import { loadRegistry, readManifestFromEntryPath, isExtensionEnabled, ensureRegistryEntries } from './extension-registry.js';
9
- import { resolveBundledResourcesDirFromPackageRoot } from './bundled-resource-path.js';
6
+ import { compareSemver } from '../update/update-check.js';
7
+ import { discoverExtensionEntryPaths } from '../extension-runtime/extension-discovery.js';
8
+ import { loadRegistry, readManifestFromEntryPath, isExtensionEnabled, ensureRegistryEntries } from '../extension-runtime/extension-registry.js';
9
+ import { resolveBundledResourcesDirFromPackageRoot } from '../extension-runtime/bundled-resource-path.js';
10
10
  let piCodingAgentModulePromise;
11
11
  function loadPiCodingAgentModule() {
12
12
  return (piCodingAgentModulePromise ??= import('@gsd/pi-coding-agent'));
@@ -19,12 +19,12 @@ function loadPiCodingAgentModule() {
19
19
  // that use gsd — causing stale/broken extensions to be synced to ~/.gsd/agent/.
20
20
  // dist/resources/ is populated by the build step (`npm run copy-resources`) and
21
21
  // reflects the built state, not the currently checked-out branch.
22
- const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..');
22
+ const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..');
23
23
  const resourcesDir = resolveBundledResourcesDirFromPackageRoot(packageRoot);
24
24
  const bundledExtensionsDir = join(resourcesDir, 'extensions');
25
25
  const resourceVersionManifestName = 'managed-resources.json';
26
26
  const resourceFingerprintFileName = '.managed-resources-content-hash';
27
- export { discoverExtensionEntryPaths } from './extension-discovery.js';
27
+ export { discoverExtensionEntryPaths } from '../extension-runtime/extension-discovery.js';
28
28
  export function getExtensionKey(entryPath, extensionsDir) {
29
29
  const relPath = relative(extensionsDir, entryPath);
30
30
  return relPath.split(/[\\/]/)[0].replace(/\.(?:ts|js)$/, '');
@@ -1 +1 @@
1
- 76e1a0d39c0a27d8
1
+ 052bf7f2ece6ee3b
@@ -1,3 +1,5 @@
1
+ // Project/App: GSD-2
2
+ // File Purpose: Markdown formatters for GitHub sync issues, PR bodies, and comments.
1
3
  /**
2
4
  * Markdown formatters for GitHub issue bodies, PR descriptions,
3
5
  * and summary comments.
@@ -5,6 +7,7 @@
5
7
  * All functions produce GitHub-flavored markdown strings ready
6
8
  * for the `gh` CLI body parameters.
7
9
  */
10
+ import { buildPrEvidence } from "../gsd/pr-evidence.js";
8
11
  export function formatMilestoneIssueBody(data) {
9
12
  const lines = [];
10
13
  lines.push(`# ${data.id}: ${data.title}`);
@@ -36,37 +39,33 @@ export function formatMilestoneIssueBody(data) {
36
39
  return lines.join("\n");
37
40
  }
38
41
  export function formatSlicePRBody(data) {
39
- const lines = [];
40
- lines.push(`## ${data.id}: ${data.title}`);
41
- lines.push("");
42
- if (data.goal) {
43
- lines.push("### Goal");
44
- lines.push(data.goal);
45
- lines.push("");
46
- }
47
- if (data.mustHaves?.length) {
48
- lines.push("### Must-Haves");
49
- for (const item of data.mustHaves) {
50
- lines.push(`- ${item}`);
51
- }
52
- lines.push("");
53
- }
54
- if (data.demoCriterion) {
55
- lines.push("### Demo Criterion");
56
- lines.push(data.demoCriterion);
57
- lines.push("");
58
- }
59
- if (data.tasks?.length) {
60
- lines.push("### Tasks");
61
- for (const task of data.tasks) {
62
- const ref = task.issueNumber ? ` (#${task.issueNumber})` : "";
63
- lines.push(`- [ ] ${task.id}: ${task.title}${ref}`);
64
- }
65
- lines.push("");
66
- }
67
- lines.push("---");
68
- lines.push("*Auto-generated by GSD GitHub Sync*");
69
- return lines.join("\n");
42
+ const summaries = [
43
+ data.goal ? `### Goal\n${data.goal}` : "",
44
+ data.mustHaves?.length ? `### Must-Haves\n${data.mustHaves.map((item) => `- ${item}`).join("\n")}` : "",
45
+ data.demoCriterion ? `### Demo Criterion\n${data.demoCriterion}` : "",
46
+ data.tasks?.length
47
+ ? `### Tasks\n${data.tasks.map((task) => {
48
+ const ref = task.issueNumber ? ` (#${task.issueNumber})` : "";
49
+ return `- [ ] ${task.id}: ${task.title}${ref}`;
50
+ }).join("\n")}`
51
+ : "",
52
+ ].filter(Boolean);
53
+ const issueRefs = (data.tasks ?? [])
54
+ .map((task) => task.issueNumber)
55
+ .filter((issueNumber) => typeof issueNumber === "number")
56
+ .map((issueNumber) => `#${issueNumber}`);
57
+ return buildPrEvidence({
58
+ milestoneId: data.id,
59
+ subjectId: data.id,
60
+ subjectKind: "slice",
61
+ milestoneTitle: data.title,
62
+ changeType: "feat",
63
+ linkedIssue: issueRefs.length > 0 ? `Related issues: ${issueRefs.join(", ")}` : undefined,
64
+ summaries,
65
+ testsRun: data.demoCriterion ? [`Demo criterion: ${data.demoCriterion}`] : undefined,
66
+ rollbackNotes: ["Close this draft slice PR before merge or revert the slice squash commit from the milestone branch."],
67
+ how: "Generated by GSD GitHub Sync from the slice plan, task issues, and branch mapping.",
68
+ }).body;
70
69
  }
71
70
  export function formatTaskIssueBody(data) {
72
71
  const lines = [];
@@ -129,46 +128,32 @@ function checkedList(items, emptyLabel) {
129
128
  return items.map((item) => `- [ ] ${item}`);
130
129
  }
131
130
  export function formatSwarmLanePRBody(data) {
132
- const lines = [];
133
131
  const laneLabel = SWARM_LANE_LABELS[data.lane.id];
134
- lines.push("## Swarm lane");
135
- lines.push("");
136
- lines.push(`**Lane:** \`${laneLabel}\``);
137
- lines.push(`**Branch:** \`${data.lane.branch}\``);
138
- if (data.lane.owner)
139
- lines.push(`**Owner:** ${data.lane.owner}`);
140
- if (data.lane.latestCommit)
141
- lines.push(`**Latest commit:** \`${data.lane.latestCommit}\``);
142
- lines.push("");
143
- lines.push("## Impact area");
144
- lines.push("");
145
- lines.push(data.impactArea);
146
- lines.push("");
147
- lines.push("## Changed contracts");
148
- lines.push(...checkedList(data.lane.changedContracts, "No shared contracts changed"));
149
- lines.push("");
150
- lines.push("## Transition risks");
151
- lines.push(...checkedList(data.transitionRisks, "No transition risks identified"));
152
- lines.push("");
153
- lines.push("## Rollback plan");
154
- lines.push(...checkedList(data.rollbackPlan, "Revert this lane PR"));
155
- lines.push("");
156
- lines.push("## Test evidence");
157
- lines.push(...checkedList(data.lane.testEvidence, "Test evidence pending"));
158
- lines.push("");
159
- if (data.lane.blockers?.length) {
160
- lines.push("## Blockers");
161
- for (const blocker of data.lane.blockers)
162
- lines.push(`- ${blocker}`);
163
- lines.push("");
164
- }
165
- if (data.linkedIssue) {
166
- lines.push(`Closes #${data.linkedIssue}`);
167
- lines.push("");
168
- }
169
- lines.push("---");
170
- lines.push("*Auto-generated by GSD GitHub Sync swarm routines*");
171
- return lines.join("\n");
132
+ const summaries = [
133
+ [
134
+ "### Swarm lane",
135
+ `**Lane:** \`${laneLabel}\``,
136
+ `**Branch:** \`${data.lane.branch}\``,
137
+ data.lane.owner ? `**Owner:** ${data.lane.owner}` : "",
138
+ data.lane.latestCommit ? `**Latest commit:** \`${data.lane.latestCommit}\`` : "",
139
+ ].filter(Boolean).join("\n"),
140
+ `### Impact area\n${data.impactArea}`,
141
+ `### Changed contracts\n${checkedList(data.lane.changedContracts, "No shared contracts changed").join("\n")}`,
142
+ `### Transition risks\n${checkedList(data.transitionRisks, "No transition risks identified").join("\n")}`,
143
+ data.lane.blockers?.length ? `### Blockers\n${data.lane.blockers.map((blocker) => `- ${blocker}`).join("\n")}` : "",
144
+ ].filter(Boolean);
145
+ return buildPrEvidence({
146
+ milestoneId: laneLabel,
147
+ subjectId: laneLabel,
148
+ subjectKind: "workflow",
149
+ milestoneTitle: laneLabel,
150
+ changeType: "refactor",
151
+ linkedIssue: data.linkedIssue ? `Closes #${data.linkedIssue}` : undefined,
152
+ summaries,
153
+ testsRun: data.lane.testEvidence,
154
+ rollbackNotes: data.rollbackPlan,
155
+ how: "Generated by GSD GitHub Sync swarm routines from lane evidence.",
156
+ }).body;
172
157
  }
173
158
  export function formatSwarmReleaseChecklistBody(data) {
174
159
  const lines = [];
@@ -0,0 +1 @@
1
+ export {};