gsd-pi 2.75.0-next.9c0ec0ba1 → 2.76.0-dev.4100bd590

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 (683) hide show
  1. package/README.md +145 -125
  2. package/dist/claude-cli-check.d.ts +10 -0
  3. package/dist/claude-cli-check.js +13 -3
  4. package/dist/onboarding.d.ts +20 -1
  5. package/dist/onboarding.js +60 -25
  6. package/dist/resources/agents/researcher.md +1 -1
  7. package/dist/resources/extensions/ask-user-questions.js +6 -3
  8. package/dist/resources/extensions/claude-code-cli/readiness.js +34 -2
  9. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +44 -2
  10. package/dist/resources/extensions/gsd/auto/phases.js +48 -6
  11. package/dist/resources/extensions/gsd/auto-artifact-paths.js +20 -0
  12. package/dist/resources/extensions/gsd/auto-dashboard.js +37 -8
  13. package/dist/resources/extensions/gsd/auto-direct-dispatch.js +8 -2
  14. package/dist/resources/extensions/gsd/auto-dispatch.js +87 -9
  15. package/dist/resources/extensions/gsd/auto-model-selection.js +54 -18
  16. package/dist/resources/extensions/gsd/auto-post-unit.js +7 -5
  17. package/dist/resources/extensions/gsd/auto-prompts.js +188 -44
  18. package/dist/resources/extensions/gsd/auto-recovery.js +48 -0
  19. package/dist/resources/extensions/gsd/auto-start.js +5 -3
  20. package/dist/resources/extensions/gsd/auto-verification.js +33 -0
  21. package/dist/resources/extensions/gsd/auto-worktree.js +71 -2
  22. package/dist/resources/extensions/gsd/auto.js +25 -3
  23. package/dist/resources/extensions/gsd/blocked-models.js +68 -0
  24. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +84 -21
  25. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +45 -23
  26. package/dist/resources/extensions/gsd/bootstrap/memory-tools.js +131 -0
  27. package/dist/resources/extensions/gsd/bootstrap/query-tools.js +29 -0
  28. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +12 -0
  29. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +22 -0
  30. package/dist/resources/extensions/gsd/bootstrap/system-context.js +84 -10
  31. package/dist/resources/extensions/gsd/commands/catalog.js +15 -7
  32. package/dist/resources/extensions/gsd/commands/handlers/core.js +58 -24
  33. package/dist/resources/extensions/gsd/commands/handlers/escalate.js +171 -0
  34. package/dist/resources/extensions/gsd/commands/handlers/onboarding.js +159 -0
  35. package/dist/resources/extensions/gsd/commands/handlers/ops.js +10 -0
  36. package/dist/resources/extensions/gsd/commands-config.js +5 -0
  37. package/dist/resources/extensions/gsd/commands-extract-learnings.js +200 -77
  38. package/dist/resources/extensions/gsd/commands-memory.js +462 -0
  39. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +39 -11
  40. package/dist/resources/extensions/gsd/custom-workflow-engine.js +74 -54
  41. package/dist/resources/extensions/gsd/db-writer.js +89 -16
  42. package/dist/resources/extensions/gsd/docs/preferences-reference.md +2 -2
  43. package/dist/resources/extensions/gsd/doctor-environment.js +2 -1
  44. package/dist/resources/extensions/gsd/doctor-git-checks.js +50 -32
  45. package/dist/resources/extensions/gsd/doctor-proactive.js +4 -1
  46. package/dist/resources/extensions/gsd/doctor-providers.js +51 -5
  47. package/dist/resources/extensions/gsd/doctor-runtime-checks.js +21 -1
  48. package/dist/resources/extensions/gsd/doctor.js +7 -1
  49. package/dist/resources/extensions/gsd/ecosystem/gsd-extension-api.js +1 -0
  50. package/dist/resources/extensions/gsd/error-classifier.js +26 -2
  51. package/dist/resources/extensions/gsd/escalation.js +321 -0
  52. package/dist/resources/extensions/gsd/graph.js +26 -0
  53. package/dist/resources/extensions/gsd/gsd-db.js +517 -32
  54. package/dist/resources/extensions/gsd/health-widget-core.js +42 -14
  55. package/dist/resources/extensions/gsd/health-widget.js +7 -4
  56. package/dist/resources/extensions/gsd/hook-emitter.js +108 -0
  57. package/dist/resources/extensions/gsd/init-wizard.js +86 -45
  58. package/dist/resources/extensions/gsd/markdown-renderer.js +5 -5
  59. package/dist/resources/extensions/gsd/memory-backfill.js +126 -0
  60. package/dist/resources/extensions/gsd/memory-embeddings.js +219 -0
  61. package/dist/resources/extensions/gsd/memory-extractor.js +78 -27
  62. package/dist/resources/extensions/gsd/memory-ingest.js +218 -0
  63. package/dist/resources/extensions/gsd/memory-relations.js +189 -0
  64. package/dist/resources/extensions/gsd/memory-source-store.js +113 -0
  65. package/dist/resources/extensions/gsd/memory-store.js +318 -6
  66. package/dist/resources/extensions/gsd/metrics.js +1 -0
  67. package/dist/resources/extensions/gsd/model-cost-table.js +1 -0
  68. package/dist/resources/extensions/gsd/model-router.js +12 -5
  69. package/dist/resources/extensions/gsd/native-git-bridge.js +121 -5
  70. package/dist/resources/extensions/gsd/notification-overlay.js +7 -22
  71. package/dist/resources/extensions/gsd/notification-widget.js +24 -39
  72. package/dist/resources/extensions/gsd/onboarding-state.js +133 -0
  73. package/dist/resources/extensions/gsd/post-execution-checks.js +27 -11
  74. package/dist/resources/extensions/gsd/pre-execution-checks.js +98 -8
  75. package/dist/resources/extensions/gsd/preferences-models.js +1 -0
  76. package/dist/resources/extensions/gsd/preferences-types.js +2 -1
  77. package/dist/resources/extensions/gsd/preferences-validation.js +42 -8
  78. package/dist/resources/extensions/gsd/prompts/add-tests.md +1 -0
  79. package/dist/resources/extensions/gsd/prompts/complete-milestone.md +4 -1
  80. package/dist/resources/extensions/gsd/prompts/complete-slice.md +2 -2
  81. package/dist/resources/extensions/gsd/prompts/debug-diagnose.md +2 -0
  82. package/dist/resources/extensions/gsd/prompts/execute-task.md +16 -3
  83. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +12 -0
  84. package/dist/resources/extensions/gsd/prompts/plan-slice.md +2 -0
  85. package/dist/resources/extensions/gsd/prompts/refine-slice.md +69 -0
  86. package/dist/resources/extensions/gsd/prompts/research-slice.md +1 -0
  87. package/dist/resources/extensions/gsd/python-resolver.js +70 -0
  88. package/dist/resources/extensions/gsd/setup-catalog.js +75 -0
  89. package/dist/resources/extensions/gsd/state.js +90 -7
  90. package/dist/resources/extensions/gsd/templates/PREFERENCES.md +1 -1
  91. package/dist/resources/extensions/gsd/tools/complete-task.js +80 -0
  92. package/dist/resources/extensions/gsd/tools/memory-tools.js +331 -0
  93. package/dist/resources/extensions/gsd/tools/plan-milestone.js +37 -12
  94. package/dist/resources/extensions/gsd/tools/plan-slice.js +5 -2
  95. package/dist/resources/extensions/gsd/tools/skip-slice.js +78 -0
  96. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +14 -0
  97. package/dist/resources/extensions/gsd/uok/flags.js +1 -1
  98. package/dist/resources/extensions/gsd/verification-gate.js +2 -1
  99. package/dist/resources/extensions/gsd/workflow-manifest.js +8 -0
  100. package/dist/resources/extensions/gsd/workflow-mcp.js +1 -0
  101. package/dist/resources/extensions/gsd/workflow-projections.js +17 -15
  102. package/dist/resources/extensions/gsd/workflow-templates/spike.md +6 -0
  103. package/dist/resources/extensions/gsd/worktree-resolver.js +42 -1
  104. package/dist/resources/extensions/remote-questions/manager.js +11 -1
  105. package/dist/resources/extensions/search-the-web/command-search-provider.js +5 -1
  106. package/dist/resources/extensions/search-the-web/native-search.js +46 -3
  107. package/dist/resources/skills/api-design/SKILL.md +190 -0
  108. package/dist/resources/skills/create-mcp-server/SKILL.md +121 -0
  109. package/dist/resources/skills/decompose-into-slices/SKILL.md +139 -0
  110. package/dist/resources/skills/dependency-upgrade/SKILL.md +158 -0
  111. package/dist/resources/skills/design-an-interface/SKILL.md +102 -0
  112. package/dist/resources/skills/forensics/SKILL.md +153 -0
  113. package/dist/resources/skills/grill-me/SKILL.md +93 -0
  114. package/dist/resources/skills/handoff/SKILL.md +121 -0
  115. package/dist/resources/skills/observability/SKILL.md +174 -0
  116. package/dist/resources/skills/security-review/SKILL.md +181 -0
  117. package/dist/resources/skills/spike-wrap-up/SKILL.md +138 -0
  118. package/dist/resources/skills/tdd/SKILL.md +112 -0
  119. package/dist/resources/skills/verify-before-complete/SKILL.md +97 -0
  120. package/dist/resources/skills/write-docs/SKILL.md +81 -0
  121. package/dist/resources/skills/write-milestone-brief/SKILL.md +135 -0
  122. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  123. package/dist/web/standalone/.next/BUILD_ID +1 -1
  124. package/dist/web/standalone/.next/app-path-routes-manifest.json +20 -20
  125. package/dist/web/standalone/.next/build-manifest.json +3 -3
  126. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  127. package/dist/web/standalone/.next/react-loadable-manifest.json +2 -2
  128. package/dist/web/standalone/.next/required-server-files.json +1 -1
  129. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  130. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  131. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  132. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  133. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  134. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  135. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  136. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  137. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  138. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +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 +2 -2
  141. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  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 +2 -2
  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 +2 -2
  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/projects/route.js +1 -1
  184. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  185. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  186. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  187. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  188. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  189. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  190. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  191. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  192. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  193. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  194. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  195. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  196. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  197. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  198. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  199. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  200. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  201. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  202. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  203. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  204. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  205. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +2 -2
  206. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  207. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  208. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  209. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  210. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  211. package/dist/web/standalone/.next/server/app/index.html +1 -1
  212. package/dist/web/standalone/.next/server/app/index.rsc +3 -3
  213. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  214. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +3 -3
  215. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  216. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +2 -2
  217. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  218. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  219. package/dist/web/standalone/.next/server/app-paths-manifest.json +20 -20
  220. package/dist/web/standalone/.next/server/chunks/6897.js +2 -2
  221. package/dist/web/standalone/.next/server/chunks/7461.js +1 -0
  222. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  223. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  224. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  225. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  226. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  227. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  228. package/dist/web/standalone/.next/static/chunks/{2826.02df9631042cc18e.js → 2826.e59e8578e2e28639.js} +2 -2
  229. package/dist/web/standalone/.next/static/chunks/{2008.71ee9230ad78df21.js → 3621.fc7480022c972438.js} +2 -2
  230. package/dist/web/standalone/.next/static/chunks/app/{page-f1e30ab6bb269149.js → page-5b113fd32bc2a1c3.js} +1 -1
  231. package/dist/web/standalone/.next/static/chunks/{webpack-6c7cda3e318eedb6.js → webpack-5fc74f13a25fa1bb.js} +1 -1
  232. package/dist/web/standalone/.next/static/css/632cd626b1731d88.css +1 -0
  233. package/dist/web/standalone/server.js +1 -1
  234. package/dist/welcome-screen.js +48 -24
  235. package/package.json +1 -1
  236. package/packages/daemon/package.json +2 -2
  237. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  238. package/packages/mcp-server/dist/server.js +12 -10
  239. package/packages/mcp-server/dist/server.js.map +1 -1
  240. package/packages/mcp-server/dist/session-manager.d.ts.map +1 -1
  241. package/packages/mcp-server/dist/session-manager.js +8 -1
  242. package/packages/mcp-server/dist/session-manager.js.map +1 -1
  243. package/packages/mcp-server/dist/workflow-tools.d.ts +2 -1
  244. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  245. package/packages/mcp-server/dist/workflow-tools.js +306 -71
  246. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  247. package/packages/mcp-server/package.json +2 -2
  248. package/packages/mcp-server/src/mcp-server.test.ts +40 -4
  249. package/packages/mcp-server/src/server.ts +12 -10
  250. package/packages/mcp-server/src/session-manager.ts +10 -3
  251. package/packages/mcp-server/src/workflow-tools.test.ts +346 -1
  252. package/packages/mcp-server/src/workflow-tools.ts +359 -75
  253. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  254. package/packages/native/package.json +1 -1
  255. package/packages/pi-agent-core/dist/agent-loop.js +12 -0
  256. package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
  257. package/packages/pi-agent-core/dist/types.d.ts +30 -0
  258. package/packages/pi-agent-core/dist/types.d.ts.map +1 -1
  259. package/packages/pi-agent-core/dist/types.js.map +1 -1
  260. package/packages/pi-agent-core/package.json +1 -1
  261. package/packages/pi-agent-core/src/agent-loop.ts +14 -0
  262. package/packages/pi-agent-core/src/types.ts +34 -0
  263. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
  264. package/packages/pi-ai/dist/index.d.ts +1 -0
  265. package/packages/pi-ai/dist/index.d.ts.map +1 -1
  266. package/packages/pi-ai/dist/index.js +1 -0
  267. package/packages/pi-ai/dist/index.js.map +1 -1
  268. package/packages/pi-ai/dist/models/generated/index.d.ts +17 -0
  269. package/packages/pi-ai/dist/models/generated/index.d.ts.map +1 -1
  270. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts +17 -0
  271. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts.map +1 -1
  272. package/packages/pi-ai/dist/models/generated/openai-codex.js +17 -0
  273. package/packages/pi-ai/dist/models/generated/openai-codex.js.map +1 -1
  274. package/packages/pi-ai/dist/models.generated.test.js +1 -0
  275. package/packages/pi-ai/dist/models.generated.test.js.map +1 -1
  276. package/packages/pi-ai/dist/providers/amazon-bedrock.d.ts +22 -1
  277. package/packages/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
  278. package/packages/pi-ai/dist/providers/amazon-bedrock.js +40 -7
  279. package/packages/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
  280. package/packages/pi-ai/dist/providers/amazon-bedrock.test.d.ts +2 -0
  281. package/packages/pi-ai/dist/providers/amazon-bedrock.test.d.ts.map +1 -0
  282. package/packages/pi-ai/dist/providers/amazon-bedrock.test.js +106 -0
  283. package/packages/pi-ai/dist/providers/amazon-bedrock.test.js.map +1 -0
  284. package/packages/pi-ai/dist/providers/anthropic-auth.test.js +42 -1
  285. package/packages/pi-ai/dist/providers/anthropic-auth.test.js.map +1 -1
  286. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.d.ts +2 -0
  287. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.d.ts.map +1 -0
  288. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js +13 -0
  289. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js.map +1 -0
  290. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts +19 -0
  291. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts.map +1 -1
  292. package/packages/pi-ai/dist/providers/anthropic-shared.js +25 -1
  293. package/packages/pi-ai/dist/providers/anthropic-shared.js.map +1 -1
  294. package/packages/pi-ai/dist/providers/anthropic.d.ts +11 -0
  295. package/packages/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  296. package/packages/pi-ai/dist/providers/anthropic.js +23 -2
  297. package/packages/pi-ai/dist/providers/anthropic.js.map +1 -1
  298. package/packages/pi-ai/dist/providers/api-family.d.ts +27 -0
  299. package/packages/pi-ai/dist/providers/api-family.d.ts.map +1 -0
  300. package/packages/pi-ai/dist/providers/api-family.js +47 -0
  301. package/packages/pi-ai/dist/providers/api-family.js.map +1 -0
  302. package/packages/pi-ai/dist/providers/api-family.test.d.ts +2 -0
  303. package/packages/pi-ai/dist/providers/api-family.test.d.ts.map +1 -0
  304. package/packages/pi-ai/dist/providers/api-family.test.js +101 -0
  305. package/packages/pi-ai/dist/providers/api-family.test.js.map +1 -0
  306. package/packages/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  307. package/packages/pi-ai/dist/utils/oauth/github-copilot.js +12 -2
  308. package/packages/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
  309. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.js +164 -14
  310. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.js.map +1 -1
  311. package/packages/pi-ai/dist/utils/oauth/google-antigravity.d.ts.map +1 -1
  312. package/packages/pi-ai/dist/utils/oauth/google-antigravity.js +15 -3
  313. package/packages/pi-ai/dist/utils/oauth/google-antigravity.js.map +1 -1
  314. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.d.ts +2 -0
  315. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.d.ts.map +1 -0
  316. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.js +67 -0
  317. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.js.map +1 -0
  318. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.d.ts.map +1 -1
  319. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.js +16 -3
  320. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.js.map +1 -1
  321. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.d.ts +2 -0
  322. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.d.ts.map +1 -0
  323. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.js +67 -0
  324. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.js.map +1 -0
  325. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.d.ts +2 -0
  326. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.d.ts.map +1 -0
  327. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.js +289 -0
  328. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.js.map +1 -0
  329. package/packages/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
  330. package/packages/pi-ai/dist/utils/oauth/openai-codex.js +12 -0
  331. package/packages/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
  332. package/packages/pi-ai/package.json +1 -1
  333. package/packages/pi-ai/scripts/generate-models.ts +12 -0
  334. package/packages/pi-ai/src/index.ts +1 -0
  335. package/packages/pi-ai/src/models/generated/openai-codex.ts +17 -0
  336. package/packages/pi-ai/src/models.generated.test.ts +1 -0
  337. package/packages/pi-ai/src/providers/amazon-bedrock.test.ts +164 -0
  338. package/packages/pi-ai/src/providers/amazon-bedrock.ts +41 -8
  339. package/packages/pi-ai/src/providers/anthropic-auth.test.ts +47 -1
  340. package/packages/pi-ai/src/providers/anthropic-bearer-auth.test.ts +26 -0
  341. package/packages/pi-ai/src/providers/anthropic-shared.ts +30 -1
  342. package/packages/pi-ai/src/providers/anthropic.ts +25 -2
  343. package/packages/pi-ai/src/providers/api-family.test.ts +129 -0
  344. package/packages/pi-ai/src/providers/api-family.ts +57 -0
  345. package/packages/pi-ai/src/utils/oauth/github-copilot.test.ts +200 -23
  346. package/packages/pi-ai/src/utils/oauth/github-copilot.ts +12 -2
  347. package/packages/pi-ai/src/utils/oauth/google-antigravity.test.ts +84 -0
  348. package/packages/pi-ai/src/utils/oauth/google-antigravity.ts +15 -5
  349. package/packages/pi-ai/src/utils/oauth/google-gemini-cli.test.ts +84 -0
  350. package/packages/pi-ai/src/utils/oauth/google-gemini-cli.ts +16 -5
  351. package/packages/pi-ai/src/utils/oauth/oauth-providers.test.ts +363 -0
  352. package/packages/pi-ai/src/utils/oauth/openai-codex.ts +15 -0
  353. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  354. package/packages/pi-coding-agent/dist/cli/args.d.ts +6 -0
  355. package/packages/pi-coding-agent/dist/cli/args.d.ts.map +1 -1
  356. package/packages/pi-coding-agent/dist/cli/args.js +14 -4
  357. package/packages/pi-coding-agent/dist/cli/args.js.map +1 -1
  358. package/packages/pi-coding-agent/dist/cli/args.test.d.ts +2 -0
  359. package/packages/pi-coding-agent/dist/cli/args.test.d.ts.map +1 -0
  360. package/packages/pi-coding-agent/dist/cli/args.test.js +38 -0
  361. package/packages/pi-coding-agent/dist/cli/args.test.js.map +1 -0
  362. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  363. package/packages/pi-coding-agent/dist/core/agent-session.js +25 -2
  364. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  365. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts +7 -0
  366. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
  367. package/packages/pi-coding-agent/dist/core/auth-storage.js +25 -0
  368. package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  369. package/packages/pi-coding-agent/dist/core/auth-storage.test.js +38 -0
  370. package/packages/pi-coding-agent/dist/core/auth-storage.test.js.map +1 -1
  371. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +4 -1
  372. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  373. package/packages/pi-coding-agent/dist/core/extensions/index.d.ts +1 -1
  374. package/packages/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
  375. package/packages/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
  376. package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
  377. package/packages/pi-coding-agent/dist/core/extensions/loader.js +4 -0
  378. package/packages/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
  379. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +34 -2
  380. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  381. package/packages/pi-coding-agent/dist/core/extensions/runner.js +233 -0
  382. package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  383. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts +200 -3
  384. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
  385. package/packages/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
  386. package/packages/pi-coding-agent/dist/core/hooks-runner.d.ts +53 -0
  387. package/packages/pi-coding-agent/dist/core/hooks-runner.d.ts.map +1 -0
  388. package/packages/pi-coding-agent/dist/core/hooks-runner.js +337 -0
  389. package/packages/pi-coding-agent/dist/core/hooks-runner.js.map +1 -0
  390. package/packages/pi-coding-agent/dist/core/hooks-runner.test.d.ts +2 -0
  391. package/packages/pi-coding-agent/dist/core/hooks-runner.test.d.ts.map +1 -0
  392. package/packages/pi-coding-agent/dist/core/hooks-runner.test.js +234 -0
  393. package/packages/pi-coding-agent/dist/core/hooks-runner.test.js.map +1 -0
  394. package/packages/pi-coding-agent/dist/core/index.d.ts +1 -0
  395. package/packages/pi-coding-agent/dist/core/index.d.ts.map +1 -1
  396. package/packages/pi-coding-agent/dist/core/index.js +1 -0
  397. package/packages/pi-coding-agent/dist/core/index.js.map +1 -1
  398. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.d.ts +2 -0
  399. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.d.ts.map +1 -0
  400. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.js +40 -0
  401. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.js.map +1 -0
  402. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js +32 -0
  403. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js.map +1 -1
  404. package/packages/pi-coding-agent/dist/core/retry-handler.d.ts.map +1 -1
  405. package/packages/pi-coding-agent/dist/core/retry-handler.js +4 -1
  406. package/packages/pi-coding-agent/dist/core/retry-handler.js.map +1 -1
  407. package/packages/pi-coding-agent/dist/core/sdk.d.ts +10 -0
  408. package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  409. package/packages/pi-coding-agent/dist/core/sdk.js +33 -5
  410. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  411. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +55 -0
  412. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  413. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  414. package/packages/pi-coding-agent/dist/index.d.ts +1 -1
  415. package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
  416. package/packages/pi-coding-agent/dist/index.js.map +1 -1
  417. package/packages/pi-coding-agent/dist/main.d.ts.map +1 -1
  418. package/packages/pi-coding-agent/dist/main.js +3 -0
  419. package/packages/pi-coding-agent/dist/main.js.map +1 -1
  420. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -1
  421. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +17 -7
  422. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -1
  423. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
  424. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js +48 -34
  425. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
  426. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts +4 -0
  427. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  428. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +83 -33
  429. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  430. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts +1 -0
  431. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  432. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js +1 -0
  433. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  434. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +1 -1
  435. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  436. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  437. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  438. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +13 -9
  439. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
  440. package/packages/pi-coding-agent/package.json +1 -1
  441. package/packages/pi-coding-agent/src/cli/args.test.ts +44 -0
  442. package/packages/pi-coding-agent/src/cli/args.ts +21 -6
  443. package/packages/pi-coding-agent/src/core/agent-session.ts +27 -2
  444. package/packages/pi-coding-agent/src/core/auth-storage.test.ts +42 -0
  445. package/packages/pi-coding-agent/src/core/auth-storage.ts +25 -0
  446. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +4 -1
  447. package/packages/pi-coding-agent/src/core/extensions/index.ts +16 -0
  448. package/packages/pi-coding-agent/src/core/extensions/loader.ts +5 -0
  449. package/packages/pi-coding-agent/src/core/extensions/runner.ts +353 -1
  450. package/packages/pi-coding-agent/src/core/extensions/types.ts +253 -2
  451. package/packages/pi-coding-agent/src/core/hooks-runner.test.ts +269 -0
  452. package/packages/pi-coding-agent/src/core/hooks-runner.ts +460 -0
  453. package/packages/pi-coding-agent/src/core/index.ts +10 -0
  454. package/packages/pi-coding-agent/src/core/model-registry-auth-header.test.ts +44 -0
  455. package/packages/pi-coding-agent/src/core/model-registry-auth-mode.test.ts +37 -1
  456. package/packages/pi-coding-agent/src/core/retry-handler.ts +4 -1
  457. package/packages/pi-coding-agent/src/core/sdk.ts +48 -5
  458. package/packages/pi-coding-agent/src/core/settings-manager.ts +57 -0
  459. package/packages/pi-coding-agent/src/index.ts +16 -0
  460. package/packages/pi-coding-agent/src/main.ts +4 -0
  461. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +19 -7
  462. package/packages/pi-coding-agent/src/modes/interactive/components/footer.ts +53 -31
  463. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +88 -36
  464. package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.ts +1 -0
  465. package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +1 -0
  466. package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +13 -9
  467. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  468. package/packages/pi-tui/package.json +1 -1
  469. package/packages/rpc-client/package.json +1 -1
  470. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts +1 -0
  471. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  472. package/pkg/dist/modes/interactive/theme/theme-schema.js +1 -0
  473. package/pkg/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  474. package/pkg/dist/modes/interactive/theme/theme.d.ts +1 -1
  475. package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  476. package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
  477. package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  478. package/pkg/dist/modes/interactive/theme/themes.js +13 -9
  479. package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
  480. package/pkg/package.json +1 -1
  481. package/src/resources/agents/researcher.md +1 -1
  482. package/src/resources/extensions/ask-user-questions.ts +7 -4
  483. package/src/resources/extensions/claude-code-cli/readiness.ts +36 -2
  484. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +59 -1
  485. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +66 -0
  486. package/src/resources/extensions/gsd/auto/loop-deps.ts +2 -10
  487. package/src/resources/extensions/gsd/auto/phases.ts +52 -6
  488. package/src/resources/extensions/gsd/auto-artifact-paths.ts +20 -0
  489. package/src/resources/extensions/gsd/auto-dashboard.ts +46 -5
  490. package/src/resources/extensions/gsd/auto-direct-dispatch.ts +15 -2
  491. package/src/resources/extensions/gsd/auto-dispatch.ts +96 -4
  492. package/src/resources/extensions/gsd/auto-model-selection.ts +72 -18
  493. package/src/resources/extensions/gsd/auto-post-unit.ts +7 -5
  494. package/src/resources/extensions/gsd/auto-prompts.ts +225 -45
  495. package/src/resources/extensions/gsd/auto-recovery.ts +47 -0
  496. package/src/resources/extensions/gsd/auto-start.ts +8 -6
  497. package/src/resources/extensions/gsd/auto-verification.ts +33 -0
  498. package/src/resources/extensions/gsd/auto-worktree.ts +81 -1
  499. package/src/resources/extensions/gsd/auto.ts +27 -2
  500. package/src/resources/extensions/gsd/blocked-models.ts +98 -0
  501. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +105 -21
  502. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +46 -24
  503. package/src/resources/extensions/gsd/bootstrap/memory-tools.ts +163 -0
  504. package/src/resources/extensions/gsd/bootstrap/query-tools.ts +31 -0
  505. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +15 -0
  506. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +22 -0
  507. package/src/resources/extensions/gsd/bootstrap/system-context.ts +89 -10
  508. package/src/resources/extensions/gsd/commands/catalog.ts +15 -7
  509. package/src/resources/extensions/gsd/commands/handlers/core.ts +63 -27
  510. package/src/resources/extensions/gsd/commands/handlers/escalate.ts +216 -0
  511. package/src/resources/extensions/gsd/commands/handlers/onboarding.ts +196 -0
  512. package/src/resources/extensions/gsd/commands/handlers/ops.ts +10 -0
  513. package/src/resources/extensions/gsd/commands-config.ts +10 -0
  514. package/src/resources/extensions/gsd/commands-extract-learnings.ts +262 -78
  515. package/src/resources/extensions/gsd/commands-memory.ts +551 -0
  516. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +48 -11
  517. package/src/resources/extensions/gsd/custom-workflow-engine.ts +85 -60
  518. package/src/resources/extensions/gsd/db-writer.ts +91 -17
  519. package/src/resources/extensions/gsd/docs/preferences-reference.md +2 -2
  520. package/src/resources/extensions/gsd/doctor-environment.ts +2 -1
  521. package/src/resources/extensions/gsd/doctor-git-checks.ts +51 -30
  522. package/src/resources/extensions/gsd/doctor-proactive.ts +4 -1
  523. package/src/resources/extensions/gsd/doctor-providers.ts +59 -6
  524. package/src/resources/extensions/gsd/doctor-runtime-checks.ts +22 -1
  525. package/src/resources/extensions/gsd/doctor-types.ts +1 -0
  526. package/src/resources/extensions/gsd/doctor.ts +7 -1
  527. package/src/resources/extensions/gsd/ecosystem/gsd-extension-api.ts +2 -0
  528. package/src/resources/extensions/gsd/error-classifier.ts +31 -2
  529. package/src/resources/extensions/gsd/escalation.ts +367 -0
  530. package/src/resources/extensions/gsd/graph.ts +33 -0
  531. package/src/resources/extensions/gsd/gsd-db.ts +617 -32
  532. package/src/resources/extensions/gsd/health-widget-core.ts +43 -14
  533. package/src/resources/extensions/gsd/health-widget.ts +7 -3
  534. package/src/resources/extensions/gsd/hook-emitter.ts +188 -0
  535. package/src/resources/extensions/gsd/init-wizard.ts +87 -54
  536. package/src/resources/extensions/gsd/markdown-renderer.ts +5 -5
  537. package/src/resources/extensions/gsd/memory-backfill.ts +140 -0
  538. package/src/resources/extensions/gsd/memory-embeddings.ts +235 -0
  539. package/src/resources/extensions/gsd/memory-extractor.ts +100 -34
  540. package/src/resources/extensions/gsd/memory-ingest.ts +286 -0
  541. package/src/resources/extensions/gsd/memory-relations.ts +240 -0
  542. package/src/resources/extensions/gsd/memory-source-store.ts +138 -0
  543. package/src/resources/extensions/gsd/memory-store.ts +377 -7
  544. package/src/resources/extensions/gsd/metrics.ts +1 -0
  545. package/src/resources/extensions/gsd/model-cost-table.ts +1 -0
  546. package/src/resources/extensions/gsd/model-router.ts +21 -5
  547. package/src/resources/extensions/gsd/native-git-bridge.ts +118 -6
  548. package/src/resources/extensions/gsd/notification-overlay.ts +9 -19
  549. package/src/resources/extensions/gsd/notification-widget.ts +25 -43
  550. package/src/resources/extensions/gsd/onboarding-state.ts +146 -0
  551. package/src/resources/extensions/gsd/post-execution-checks.ts +37 -14
  552. package/src/resources/extensions/gsd/pre-execution-checks.ts +100 -12
  553. package/src/resources/extensions/gsd/preferences-models.ts +1 -0
  554. package/src/resources/extensions/gsd/preferences-types.ts +9 -1
  555. package/src/resources/extensions/gsd/preferences-validation.ts +33 -7
  556. package/src/resources/extensions/gsd/prompts/add-tests.md +1 -0
  557. package/src/resources/extensions/gsd/prompts/complete-milestone.md +4 -1
  558. package/src/resources/extensions/gsd/prompts/complete-slice.md +2 -2
  559. package/src/resources/extensions/gsd/prompts/debug-diagnose.md +2 -0
  560. package/src/resources/extensions/gsd/prompts/execute-task.md +16 -3
  561. package/src/resources/extensions/gsd/prompts/plan-milestone.md +12 -0
  562. package/src/resources/extensions/gsd/prompts/plan-slice.md +2 -0
  563. package/src/resources/extensions/gsd/prompts/refine-slice.md +69 -0
  564. package/src/resources/extensions/gsd/prompts/research-slice.md +1 -0
  565. package/src/resources/extensions/gsd/python-resolver.ts +76 -0
  566. package/src/resources/extensions/gsd/setup-catalog.ts +105 -0
  567. package/src/resources/extensions/gsd/state.ts +95 -6
  568. package/src/resources/extensions/gsd/templates/PREFERENCES.md +1 -1
  569. package/src/resources/extensions/gsd/tests/artifact-corruption-2630.test.ts +7 -0
  570. package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +49 -0
  571. package/src/resources/extensions/gsd/tests/auto-migrating-recovery.test.ts +63 -0
  572. package/src/resources/extensions/gsd/tests/auto-model-selection.test.ts +95 -1
  573. package/src/resources/extensions/gsd/tests/auto-prompts-fallback.test.ts +35 -0
  574. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +123 -1
  575. package/src/resources/extensions/gsd/tests/auto-wrapup-inflight-guard.test.ts +39 -0
  576. package/src/resources/extensions/gsd/tests/blocked-models.test.ts +98 -0
  577. package/src/resources/extensions/gsd/tests/bundled-skill-triggers.test.ts +54 -0
  578. package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +335 -21
  579. package/src/resources/extensions/gsd/tests/complete-slice.test.ts +6 -8
  580. package/src/resources/extensions/gsd/tests/complete-task.test.ts +2 -2
  581. package/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts +63 -0
  582. package/src/resources/extensions/gsd/tests/derive-state-db.test.ts +42 -0
  583. package/src/resources/extensions/gsd/tests/derive-state-helpers.test.ts +8 -4
  584. package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +117 -3
  585. package/src/resources/extensions/gsd/tests/enhanced-verification-integration.test.ts +5 -0
  586. package/src/resources/extensions/gsd/tests/ensure-db-open.test.ts +306 -1
  587. package/src/resources/extensions/gsd/tests/escalation.test.ts +818 -0
  588. package/src/resources/extensions/gsd/tests/flat-rate-routing-guard.test.ts +145 -8
  589. package/src/resources/extensions/gsd/tests/freeform-decisions.test.ts +62 -0
  590. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +44 -1
  591. package/src/resources/extensions/gsd/tests/health-widget.test.ts +8 -2
  592. package/src/resources/extensions/gsd/tests/init-prefs-routing.test.ts +190 -0
  593. package/src/resources/extensions/gsd/tests/integration/doctor-git-symlink-cwd.test.ts +90 -0
  594. package/src/resources/extensions/gsd/tests/integration/doctor-git.test.ts +117 -0
  595. package/src/resources/extensions/gsd/tests/integration/doctor-proactive.test.ts +44 -0
  596. package/src/resources/extensions/gsd/tests/integration/doctor-runtime.test.ts +32 -1
  597. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +72 -5
  598. package/src/resources/extensions/gsd/tests/integration/integration-proof.test.ts +2 -2
  599. package/src/resources/extensions/gsd/tests/integration/test-isolation.ts +53 -0
  600. package/src/resources/extensions/gsd/tests/interactive-routing-bypass.test.ts +1 -1
  601. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +35 -0
  602. package/src/resources/extensions/gsd/tests/load-memory-block.test.ts +36 -0
  603. package/src/resources/extensions/gsd/tests/md-importer.test.ts +1 -1
  604. package/src/resources/extensions/gsd/tests/memory-embeddings.test.ts +213 -0
  605. package/src/resources/extensions/gsd/tests/memory-ingest.test.ts +153 -0
  606. package/src/resources/extensions/gsd/tests/memory-maintenance.test.ts +107 -0
  607. package/src/resources/extensions/gsd/tests/memory-relations.test.ts +175 -0
  608. package/src/resources/extensions/gsd/tests/memory-store.test.ts +2 -2
  609. package/src/resources/extensions/gsd/tests/memory-tools.test.ts +295 -0
  610. package/src/resources/extensions/gsd/tests/milestone-status-tool.test.ts +3 -2
  611. package/src/resources/extensions/gsd/tests/model-cost-table.test.ts +2 -2
  612. package/src/resources/extensions/gsd/tests/model-router.test.ts +51 -1
  613. package/src/resources/extensions/gsd/tests/model-unittype-mapping.test.ts +59 -0
  614. package/src/resources/extensions/gsd/tests/notification-overlay.test.ts +56 -37
  615. package/src/resources/extensions/gsd/tests/notification-widget.test.ts +1 -1
  616. package/src/resources/extensions/gsd/tests/onboarding-state.test.ts +105 -0
  617. package/src/resources/extensions/gsd/tests/plan-milestone-boundary-map-preservation.test.ts +114 -0
  618. package/src/resources/extensions/gsd/tests/plan-milestone.test.ts +4 -5
  619. package/src/resources/extensions/gsd/tests/plan-slice.test.ts +17 -0
  620. package/src/resources/extensions/gsd/tests/post-execution-checks.test.ts +105 -1
  621. package/src/resources/extensions/gsd/tests/pre-execution-checks.test.ts +317 -1
  622. package/src/resources/extensions/gsd/tests/progressive-planning.test.ts +539 -0
  623. package/src/resources/extensions/gsd/tests/projection-no-plan-overwrite.test.ts +11 -2
  624. package/src/resources/extensions/gsd/tests/projection-regression.test.ts +7 -0
  625. package/src/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +159 -8
  626. package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +24 -0
  627. package/src/resources/extensions/gsd/tests/prompts-no-gitignored-test-refs.test.ts +56 -0
  628. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +84 -4
  629. package/src/resources/extensions/gsd/tests/python-resolver.test.ts +131 -0
  630. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +67 -0
  631. package/src/resources/extensions/gsd/tests/requirements.test.ts +9 -0
  632. package/src/resources/extensions/gsd/tests/session-start-footer.test.ts +153 -0
  633. package/src/resources/extensions/gsd/tests/skip-slice-cascades-tasks.test.ts +125 -0
  634. package/src/resources/extensions/gsd/tests/slice-context-injection.test.ts +16 -4
  635. package/src/resources/extensions/gsd/tests/stash-queued-context-files.test.ts +54 -0
  636. package/src/resources/extensions/gsd/tests/state-corruption-2945.test.ts +3 -0
  637. package/src/resources/extensions/gsd/tests/summary-render-parity.test.ts +5 -0
  638. package/src/resources/extensions/gsd/tests/uok-contracts.test.ts +2 -1
  639. package/src/resources/extensions/gsd/tests/uok-flags.test.ts +1 -1
  640. package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +9 -3
  641. package/src/resources/extensions/gsd/tests/verification-gate.test.ts +35 -0
  642. package/src/resources/extensions/gsd/tests/workflow-projections.test.ts +7 -0
  643. package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +97 -0
  644. package/src/resources/extensions/gsd/tests/worktree-journal-events.test.ts +2 -1
  645. package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +77 -2
  646. package/src/resources/extensions/gsd/tools/complete-task.ts +87 -0
  647. package/src/resources/extensions/gsd/tools/memory-tools.ts +410 -0
  648. package/src/resources/extensions/gsd/tools/plan-milestone.ts +42 -8
  649. package/src/resources/extensions/gsd/tools/plan-slice.ts +6 -1
  650. package/src/resources/extensions/gsd/tools/skip-slice.ts +133 -0
  651. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +14 -0
  652. package/src/resources/extensions/gsd/types.ts +62 -0
  653. package/src/resources/extensions/gsd/uok/contracts.ts +2 -1
  654. package/src/resources/extensions/gsd/uok/flags.ts +1 -1
  655. package/src/resources/extensions/gsd/verification-gate.ts +2 -1
  656. package/src/resources/extensions/gsd/workflow-logger.ts +4 -1
  657. package/src/resources/extensions/gsd/workflow-manifest.ts +8 -0
  658. package/src/resources/extensions/gsd/workflow-mcp.ts +1 -0
  659. package/src/resources/extensions/gsd/workflow-projections.ts +18 -16
  660. package/src/resources/extensions/gsd/workflow-templates/spike.md +6 -0
  661. package/src/resources/extensions/gsd/worktree-resolver.ts +47 -1
  662. package/src/resources/extensions/remote-questions/manager.ts +13 -1
  663. package/src/resources/extensions/remote-questions/tests/remote-answer-normalization.test.ts +92 -0
  664. package/src/resources/extensions/search-the-web/command-search-provider.ts +5 -1
  665. package/src/resources/extensions/search-the-web/native-search.ts +50 -4
  666. package/src/resources/skills/api-design/SKILL.md +190 -0
  667. package/src/resources/skills/create-mcp-server/SKILL.md +121 -0
  668. package/src/resources/skills/decompose-into-slices/SKILL.md +139 -0
  669. package/src/resources/skills/dependency-upgrade/SKILL.md +158 -0
  670. package/src/resources/skills/design-an-interface/SKILL.md +102 -0
  671. package/src/resources/skills/forensics/SKILL.md +153 -0
  672. package/src/resources/skills/grill-me/SKILL.md +93 -0
  673. package/src/resources/skills/handoff/SKILL.md +121 -0
  674. package/src/resources/skills/observability/SKILL.md +174 -0
  675. package/src/resources/skills/security-review/SKILL.md +181 -0
  676. package/src/resources/skills/spike-wrap-up/SKILL.md +138 -0
  677. package/src/resources/skills/tdd/SKILL.md +112 -0
  678. package/src/resources/skills/verify-before-complete/SKILL.md +97 -0
  679. package/src/resources/skills/write-docs/SKILL.md +81 -0
  680. package/src/resources/skills/write-milestone-brief/SKILL.md +135 -0
  681. package/dist/web/standalone/.next/static/css/3e9cdadb4d23b8a4.css +0 -1
  682. /package/dist/web/standalone/.next/static/{JncJywFxCugMuXGs56m-b → YnUwu2WWaT0_hyTLUF4nq}/_buildManifest.js +0 -0
  683. /package/dist/web/standalone/.next/static/{JncJywFxCugMuXGs56m-b → YnUwu2WWaT0_hyTLUF4nq}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -27,47 +27,67 @@ One command. Walk away. Come back to a built project with clean git history.
27
27
 
28
28
  ---
29
29
 
30
- ## What's New in v2.75
30
+ ## What's New in v2.76
31
31
 
32
- ### Knowledge Graph & Learning Extraction
32
+ ### Memory System
33
33
 
34
- - **Knowledge graph system** — GSD now builds a structured knowledge graph from project artifacts. Learnings, decisions, and patterns are parsed into queryable graph nodes.
35
- - **`/gsd extract-learnings`**new command extracts decisions, lessons, patterns, and surprises from completed phase artifacts into `LEARNINGS.md`, which feeds the knowledge graph automatically.
34
+ - **Persistent agent memory** — new `capture_thought`, `memory_query`, and `gsd_graph` tools let GSD store, retrieve, and relate thoughts across sessions (Phase 1).
35
+ - **Ingestion + scopes/tags** memories can be scoped (project, milestone, slice) and tagged for filtering (Phase 2).
36
+ - **Hybrid retrieval** — keyword + semantic search over stored memory for higher-recall lookup (Phase 3).
37
+ - **Knowledge graph relationships** — memories link into a queryable graph, feeding planning and dispatch context (Phase 4).
38
+ - **Maintenance & observability** — cap cascade, decay metrics, and export/import for memory stores (Phase 5).
36
39
 
37
- ### Unified Orchestration Kernel (UOK)
40
+ ### Progressive Planning (ADR-011)
38
41
 
39
- - **UOK is now the default** — the unified orchestration kernel replaces the legacy execution path. Plan-v2 compile gates, unified audit envelopes, turn-level git transaction modes, reactive/parallel scheduling via execution graph, and model policy filtering are all enforced by default. Legacy fallback remains as an emergency escape.
42
+ - **Sketch-then-refine planning** — Phase 1 introduces progressive plan elaboration so GSD drafts a lightweight sketch before locking a full plan (#3789).
43
+ - **Mid-execution escalation** — Phase 2 lets tasks escalate complexity mid-run with compensating rollback on write failure (#3789).
40
44
 
41
- ### Extension API
45
+ ### Workflow & Onboarding
42
46
 
43
- - **GSD Extension API** — third-party extensions can now be loaded from `.gsd/extensions/`, with a formal API surface for hooking into the GSD lifecycle (#3338).
47
+ - **Unified workflow plugin system** — new plugin architecture with modes and remote install. Manage via `/gsd workflow list|run|install|info|validate`.
48
+ - **`/gsd onboarding` re-entry** — revisit setup without restarting the TUI; setup hub disambiguation prevents duplicate banners.
49
+ - **`/gsd scan`** — new lightweight command for rapid codebase assessment, writing to `.gsd/codebase/`.
44
50
 
45
- ### v1 Command Parity
51
+ ### Remote Control & TUI
46
52
 
47
- - **12 missing commands added** — GSD v2 now covers all v1 commands, closing the migration gap.
53
+ - **Telegram command interface** — control auto-mode remotely via Telegram alongside existing Slack/Discord routes.
54
+ - **Chat, footer, and welcome refresh** — TUI visuals updated; onboarding no longer hangs on re-entry.
55
+ - **New themes** — `tui-classic` and web `classic`/`vivid` palettes added (#4301).
48
56
 
49
- ### TUI Improvements
57
+ ### Models & Providers
50
58
 
51
- - **Chat frame redesign** — compaction notices, tool execution cards, and the chat frame now share a unified styling with timestamps and model headers.
52
- - **Inline tool calls** — assistant tool calls render inline with text instead of grouped at the end.
53
- - **Compaction and success fixes** — tool cards no longer stick after compaction; success notifications are properly promoted.
59
+ - **Claude Opus 4.7** — added across Anthropic, Bedrock, Antigravity, and OpenRouter (#4348).
60
+ - **GPT-5.4-mini** — added to the OpenAI Codex model list (#1215).
61
+ - **Anthropic proxy support** — `ANTHROPIC_BASE_URL` env var honored for custom proxy endpoints (#4140).
62
+ - **Flat-rate provider opt-in** — `allow_flat_rate_providers` routing toggle (#4386).
63
+ - **Ask User Questions** — optional markdown preview panel with side-by-side layout.
54
64
 
55
65
  ### Auto-Mode & Reliability
56
66
 
57
- - **Session timeout recovery** — auto-resume timer handles session creation timeouts; timeout counter resets on resume.
58
- - **Compaction checkpoint fix** — all session phases are checkpointed during compaction, not just the executing phase.
59
- - **MCP worktree routing** — tool writes are routed to the active worktree when a milestone has one; worktree paths are accepted in the project root guard.
60
- - **Single-writer DB invariant** — the engine database now enforces a single-writer invariant, preventing corruption from concurrent access.
67
+ - **Stuck-loop hardening** — repeated units detected across the stuck window; research-dispatch stuck loop fixed (#4414).
68
+ - **Branch isolation** — milestone branch is created on entry in `isolation: branch` mode with `main_branch` validation (#4389).
69
+ - **Model fallback on limits** — auto-mode limit errors now trigger model fallback (#4373).
70
+ - **Python/Windows verification** — python invocations normalized on Windows in the verification gate (#4416).
71
+ - **Self-healing `.gsd/`** — symlinked `.gsd` staging self-heals to prevent silent data loss (#4423); `.gsd.migrating` healed on resume.
72
+ - **Stale OAuth recovery** — stale Anthropic OAuth credentials self-heal (#4399).
61
73
 
62
- ### Providers & CI
74
+ See the full [Changelog](./CHANGELOG.md) for details on every release.
63
75
 
64
- - **Alibaba DashScope** — added as a standalone provider (#3891).
65
- - **Persistent language preference** — `/gsd language` sets a persistent language preference.
66
- - **Flat-rate provider detection** — extended to custom and externalCli providers.
67
- - **Thinking level as effort** — Claude Code now passes thinking level as an effort parameter.
68
- - **Hardened release pipeline** workspace versions synced in release commits, package-lock.json regenerated during bumps, incremental build cache issues resolved.
76
+ <details>
77
+ <summary>v2.75 highlights</summary>
78
+
79
+ - **Knowledge graph system** — structured knowledge graph built from project artifacts
80
+ - **`/gsd extract-learnings`**extracts decisions, lessons, patterns, and surprises into `LEARNINGS.md`
81
+ - **Unified Orchestration Kernel (UOK)** — now the default execution path with plan-v2 compile gates and reactive/parallel scheduling
82
+ - **GSD Extension API** — third-party extensions loadable from `.gsd/extensions/` (#3338)
83
+ - **v1 command parity** — 12 missing commands added, closing the migration gap
84
+ - **Chat frame redesign** — unified styling for compaction notices, tool cards, and chat frame with timestamps and model headers
85
+ - **Single-writer DB invariant** — engine database enforces single-writer to prevent corruption
86
+ - **MCP worktree routing** — tool writes routed to active worktree; worktree paths accepted in project root guard
87
+ - **Alibaba DashScope** — added as a standalone provider (#3891)
88
+ - **Persistent language preference** — `/gsd language`
69
89
 
70
- See the full [Changelog](./CHANGELOG.md) for details on every release.
90
+ </details>
71
91
 
72
92
  <details>
73
93
  <summary>v2.74 highlights</summary>
@@ -210,8 +230,8 @@ GSD v2 solves all of these because it's not a prompt framework anymore — it's
210
230
  | Roadmap reassessment | Manual | Automatic after each slice completes |
211
231
  | Skill discovery | None | Auto-detect and install relevant skills during research |
212
232
  | Verification | Manual | Automated verification commands with auto-fix retries |
213
- | Reporting | None | Self-contained HTML reports with metrics and dep graphs |
214
- | Parallel execution | None | Multi-worker parallel milestone orchestration |
233
+ | Reporting | None | Self-contained HTML reports with metrics and dep graphs |
234
+ | Parallel execution | None | Multi-worker parallel milestone orchestration |
215
235
 
216
236
  ### Migrating from v1
217
237
 
@@ -407,47 +427,47 @@ On first run, GSD launches a branded setup wizard that walks you through LLM pro
407
427
 
408
428
  ### Commands
409
429
 
410
- | Command | What it does |
411
- | ----------------------- | --------------------------------------------------------------- |
412
- | `/gsd` | Step mode — executes one unit at a time, pauses between each |
413
- | `/gsd next` | Explicit step mode (same as bare `/gsd`) |
414
- | `/gsd auto` | Autonomous mode — researches, plans, executes, commits, repeats |
415
- | `/gsd quick` | Execute a quick task with GSD guarantees, skip planning overhead |
416
- | `/gsd stop` | Stop auto mode gracefully |
417
- | `/gsd steer` | Hard-steer plan documents during execution |
418
- | `/gsd discuss` | Discuss architecture and decisions (works alongside auto mode) |
419
- | `/gsd rethink` | Conversational project reorganization |
420
- | `/gsd mcp` | MCP server status and connectivity |
421
- | `/gsd status` | Progress dashboard |
422
- | `/gsd queue` | Queue future milestones (safe during auto mode) |
423
- | `/gsd prefs` | Model selection, timeouts, budget ceiling |
424
- | `/gsd migrate` | Migrate a v1 `.planning` directory to `.gsd` format |
425
- | `/gsd help` | Categorized command reference for all GSD subcommands |
426
- | `/gsd mode` | Switch workflow mode (solo/team) with coordinated defaults |
427
- | `/gsd workflow` | Unified workflow plugins — list, run `<name>`, install, info, validate |
428
- | `/gsd start <template>` | Launch a bundled or custom workflow template (bugfix, release, etc.) |
429
- | `/gsd forensics` | Full-access GSD debugger for auto-mode failure investigation |
430
- | `/gsd cleanup` | Archive phase directories from completed milestones |
430
+ | Command | What it does |
431
+ | ----------------------- | ----------------------------------------------------------------------------- |
432
+ | `/gsd` | Step mode — executes one unit at a time, pauses between each |
433
+ | `/gsd next` | Explicit step mode (same as bare `/gsd`) |
434
+ | `/gsd auto` | Autonomous mode — researches, plans, executes, commits, repeats |
435
+ | `/gsd quick` | Execute a quick task with GSD guarantees, skip planning overhead |
436
+ | `/gsd stop` | Stop auto mode gracefully |
437
+ | `/gsd steer` | Hard-steer plan documents during execution |
438
+ | `/gsd discuss` | Discuss architecture and decisions (works alongside auto mode) |
439
+ | `/gsd rethink` | Conversational project reorganization |
440
+ | `/gsd mcp` | MCP server status and connectivity |
441
+ | `/gsd status` | Progress dashboard |
442
+ | `/gsd queue` | Queue future milestones (safe during auto mode) |
443
+ | `/gsd prefs` | Model selection, timeouts, budget ceiling |
444
+ | `/gsd migrate` | Migrate a v1 `.planning` directory to `.gsd` format |
445
+ | `/gsd help` | Categorized command reference for all GSD subcommands |
446
+ | `/gsd mode` | Switch workflow mode (solo/team) with coordinated defaults |
447
+ | `/gsd workflow` | Unified workflow plugins — list, run `<name>`, install, info, validate |
448
+ | `/gsd start <template>` | Launch a bundled or custom workflow template (bugfix, release, etc.) |
449
+ | `/gsd forensics` | Full-access GSD debugger for auto-mode failure investigation |
450
+ | `/gsd cleanup` | Archive phase directories from completed milestones |
431
451
  | `/gsd doctor` | Runtime health checks — issues surface across widget, visualizer, and reports |
432
- | `/gsd keys` | API key manager — list, add, remove, test, rotate, doctor |
433
- | `/gsd logs` | Browse activity, debug, and metrics logs |
434
- | `/gsd export --html` | Generate HTML report for current or completed milestone |
435
- | `/worktree` (`/wt`) | Git worktree lifecycle — create, switch, merge, remove |
436
- | `/voice` | Toggle real-time speech-to-text (macOS, Linux) |
437
- | `/exit` | Graceful shutdown — saves session state before exiting |
438
- | `/kill` | Kill GSD process immediately |
439
- | `/clear` | Start a new session (alias for `/new`) |
440
- | `Ctrl+Alt+G` | Toggle dashboard overlay |
441
- | `Ctrl+Alt+V` | Toggle voice transcription |
442
- | `Ctrl+Alt+B` | Show background shell processes |
443
- | `Alt+V` | Paste clipboard image (macOS) |
444
- | `gsd config` | Re-run the setup wizard (LLM provider + tool keys) |
445
- | `gsd update` | Update GSD to the latest version |
446
- | `gsd headless [cmd]` | Run `/gsd` commands without TUI (CI, cron, scripts) |
447
- | `gsd headless query` | Instant JSON snapshot — state, next dispatch, costs (no LLM) |
448
- | `gsd --continue` (`-c`) | Resume the most recent session for the current directory |
449
- | `gsd --worktree` (`-w`) | Launch an isolated worktree session for the active milestone |
450
- | `gsd sessions` | Interactive session picker — browse and resume any saved session |
452
+ | `/gsd keys` | API key manager — list, add, remove, test, rotate, doctor |
453
+ | `/gsd logs` | Browse activity, debug, and metrics logs |
454
+ | `/gsd export --html` | Generate HTML report for current or completed milestone |
455
+ | `/worktree` (`/wt`) | Git worktree lifecycle — create, switch, merge, remove |
456
+ | `/voice` | Toggle real-time speech-to-text (macOS, Linux) |
457
+ | `/exit` | Graceful shutdown — saves session state before exiting |
458
+ | `/kill` | Kill GSD process immediately |
459
+ | `/clear` | Start a new session (alias for `/new`) |
460
+ | `Ctrl+Alt+G` | Toggle dashboard overlay |
461
+ | `Ctrl+Alt+V` | Toggle voice transcription |
462
+ | `Ctrl+Alt+B` | Show background shell processes |
463
+ | `Alt+V` | Paste clipboard image (macOS) |
464
+ | `gsd config` | Re-run the setup wizard (LLM provider + tool keys) |
465
+ | `gsd update` | Update GSD to the latest version |
466
+ | `gsd headless [cmd]` | Run `/gsd` commands without TUI (CI, cron, scripts) |
467
+ | `gsd headless query` | Instant JSON snapshot — state, next dispatch, costs (no LLM) |
468
+ | `gsd --continue` (`-c`) | Resume the most recent session for the current directory |
469
+ | `gsd --worktree` (`-w`) | Launch an isolated worktree session for the active milestone |
470
+ | `gsd sessions` | Interactive session picker — browse and resume any saved session |
451
471
 
452
472
  ---
453
473
 
@@ -556,24 +576,24 @@ auto_report: true
556
576
 
557
577
  **Key settings:**
558
578
 
559
- | Setting | What it controls |
560
- | ---------------------- | ----------------------------------------------------------------------------------------------------- |
561
- | `models.*` | Per-phase model selection — string for a single model, or `{model, fallbacks}` for automatic failover |
562
- | `skill_discovery` | `auto` / `suggest` / `off` — how GSD finds and applies skills |
563
- | `auto_supervisor.*` | Timeout thresholds for auto mode supervision |
564
- | `budget_ceiling` | USD ceiling — auto mode pauses when reached |
565
- | `uat_dispatch` | Enable automatic UAT runs after slice completion |
566
- | `always_use_skills` | Skills to always load when relevant |
567
- | `skill_rules` | Situational rules for skill routing |
568
- | `skill_staleness_days` | Skills unused for N days get deprioritized (default: 60, 0 = disabled) |
569
- | `unique_milestone_ids` | Uses unique milestone names to avoid clashes when working in teams of people |
570
- | `git.isolation` | `none` (default), `worktree`, or `branch` — enable worktree or branch isolation for milestone work |
571
- | `git.manage_gitignore` | Set `false` to prevent GSD from modifying `.gitignore` |
572
- | `verification_commands`| Array of shell commands to run after task execution (e.g., `["npm run lint", "npm run test"]`) |
573
- | `verification_auto_fix`| Auto-retry on verification failures (default: true) |
574
- | `verification_max_retries` | Max retries for verification failures (default: 2) |
575
- | `phases.require_slice_discussion` | Pause auto-mode before each slice for human discussion review |
576
- | `auto_report` | Auto-generate HTML reports after milestone completion (default: true) |
579
+ | Setting | What it controls |
580
+ | --------------------------------- | ----------------------------------------------------------------------------------------------------- |
581
+ | `models.*` | Per-phase model selection — string for a single model, or `{model, fallbacks}` for automatic failover |
582
+ | `skill_discovery` | `auto` / `suggest` / `off` — how GSD finds and applies skills |
583
+ | `auto_supervisor.*` | Timeout thresholds for auto mode supervision |
584
+ | `budget_ceiling` | USD ceiling — auto mode pauses when reached |
585
+ | `uat_dispatch` | Enable automatic UAT runs after slice completion |
586
+ | `always_use_skills` | Skills to always load when relevant |
587
+ | `skill_rules` | Situational rules for skill routing |
588
+ | `skill_staleness_days` | Skills unused for N days get deprioritized (default: 60, 0 = disabled) |
589
+ | `unique_milestone_ids` | Uses unique milestone names to avoid clashes when working in teams of people |
590
+ | `git.isolation` | `none` (default), `worktree`, or `branch` — enable worktree or branch isolation for milestone work |
591
+ | `git.manage_gitignore` | Set `false` to prevent GSD from modifying `.gitignore` |
592
+ | `verification_commands` | Array of shell commands to run after task execution (e.g., `["npm run lint", "npm run test"]`) |
593
+ | `verification_auto_fix` | Auto-retry on verification failures (default: true) |
594
+ | `verification_max_retries` | Max retries for verification failures (default: 2) |
595
+ | `phases.require_slice_discussion` | Pause auto-mode before each slice for human discussion review |
596
+ | `auto_report` | Auto-generate HTML reports after milestone completion (default: true) |
577
597
 
578
598
  ### Agent Instructions
579
599
 
@@ -590,14 +610,14 @@ Start GSD with `gsd --debug` to enable structured JSONL diagnostic logging. Debu
590
610
  GSD includes a coordinated token optimization system that reduces usage by 40-60% on cost-sensitive workloads. Set a single preference to coordinate model selection, phase skipping, and context compression:
591
611
 
592
612
  ```yaml
593
- token_profile: budget # or balanced (default), quality
613
+ token_profile: budget # or balanced (default), quality
594
614
  ```
595
615
 
596
- | Profile | Savings | What It Does |
597
- |---------|---------|-------------|
598
- | `budget` | 40-60% | Cheap models, skip research/reassess, minimal context inlining |
599
- | `balanced` | 10-20% | Default models, skip slice research, standard context |
600
- | `quality` | 0% | All phases, all context, full model power |
616
+ | Profile | Savings | What It Does |
617
+ | ---------- | ------- | -------------------------------------------------------------- |
618
+ | `budget` | 40-60% | Cheap models, skip research/reassess, minimal context inlining |
619
+ | `balanced` | 10-20% | Default models, skip slice research, standard context |
620
+ | `quality` | 0% | All phases, all context, full model power |
601
621
 
602
622
  **Complexity-based routing** automatically classifies tasks as simple/standard/complex and routes to appropriate models. Simple docs tasks get Haiku; complex architectural work gets Opus. The classification is heuristic (sub-millisecond, no LLM calls) and learns from outcomes via a persistent routing history.
603
623
 
@@ -609,44 +629,44 @@ See the full [Token Optimization Guide](./docs/user-docs/token-optimization.md)
609
629
 
610
630
  GSD ships with 24 extensions, all loaded automatically:
611
631
 
612
- | Extension | What it provides |
613
- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------- |
614
- | **GSD** | Core workflow engine, auto mode, commands, dashboard |
632
+ | Extension | What it provides |
633
+ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
634
+ | **GSD** | Core workflow engine, auto mode, commands, dashboard |
615
635
  | **Browser Tools** | Playwright-based browser with form intelligence, intent-ranked element finding, semantic actions, PDF export, session state persistence, network mocking, device emulation, structured extraction, visual diffing, region zoom, test code generation, and prompt injection detection |
616
- | **Search the Web** | Brave Search, Tavily, or Jina page extraction |
617
- | **Google Search** | Gemini-powered web search with AI-synthesized answers |
618
- | **Context7** | Up-to-date library/framework documentation |
619
- | **Background Shell** | Long-running process management with readiness detection |
620
- | **Async Jobs** | Background bash commands with job tracking and cancellation |
621
- | **Subagent** | Delegated tasks with isolated context windows |
622
- | **GitHub** | Full-suite GitHub issues and PR management via `/gh` command |
623
- | **Mac Tools** | macOS native app automation via Accessibility APIs |
624
- | **MCP Client** | Native MCP server integration via @modelcontextprotocol/sdk |
625
- | **Voice** | Real-time speech-to-text transcription (macOS, Linux — Ubuntu 22.04+) |
626
- | **Slash Commands** | Custom command creation |
627
- | **Ask User Questions** | Structured user input with single/multi-select |
628
- | **Secure Env Collect** | Masked secret collection without manual .env editing |
629
- | **Remote Questions** | Route decisions to Slack/Discord when human input is needed in headless/CI mode |
630
- | **Universal Config** | Discover and import MCP servers and rules from other AI coding tools |
631
- | **AWS Auth** | Automatic Bedrock credential refresh for AWS-hosted models |
632
- | **Ollama** | First-class local LLM support via Ollama |
633
- | **Claude Code CLI** | External provider extension for Claude Code CLI |
634
- | **cmux** | Claude multiplexer integration — desktop notifications, sidebar metadata, visual subagent splits |
635
- | **GitHub Sync** | Auto-sync milestones to GitHub Issues, PRs, and Milestones |
636
- | **LSP** | Language Server Protocol — diagnostics, definitions, references, hover, rename |
637
- | **TTSR** | Tool-triggered system rules — conditional context injection based on tool usage |
636
+ | **Search the Web** | Brave Search, Tavily, or Jina page extraction |
637
+ | **Google Search** | Gemini-powered web search with AI-synthesized answers |
638
+ | **Context7** | Up-to-date library/framework documentation |
639
+ | **Background Shell** | Long-running process management with readiness detection |
640
+ | **Async Jobs** | Background bash commands with job tracking and cancellation |
641
+ | **Subagent** | Delegated tasks with isolated context windows |
642
+ | **GitHub** | Full-suite GitHub issues and PR management via `/gh` command |
643
+ | **Mac Tools** | macOS native app automation via Accessibility APIs |
644
+ | **MCP Client** | Native MCP server integration via @modelcontextprotocol/sdk |
645
+ | **Voice** | Real-time speech-to-text transcription (macOS, Linux — Ubuntu 22.04+) |
646
+ | **Slash Commands** | Custom command creation |
647
+ | **Ask User Questions** | Structured user input with single/multi-select |
648
+ | **Secure Env Collect** | Masked secret collection without manual .env editing |
649
+ | **Remote Questions** | Route decisions to Slack/Discord when human input is needed in headless/CI mode |
650
+ | **Universal Config** | Discover and import MCP servers and rules from other AI coding tools |
651
+ | **AWS Auth** | Automatic Bedrock credential refresh for AWS-hosted models |
652
+ | **Ollama** | First-class local LLM support via Ollama |
653
+ | **Claude Code CLI** | External provider extension for Claude Code CLI |
654
+ | **cmux** | Claude multiplexer integration — desktop notifications, sidebar metadata, visual subagent splits |
655
+ | **GitHub Sync** | Auto-sync milestones to GitHub Issues, PRs, and Milestones |
656
+ | **LSP** | Language Server Protocol — diagnostics, definitions, references, hover, rename |
657
+ | **TTSR** | Tool-triggered system rules — conditional context injection based on tool usage |
638
658
 
639
659
  ### Bundled Agents
640
660
 
641
661
  Five specialized subagents for delegated work:
642
662
 
643
- | Agent | Role |
644
- | ------------------- | ------------------------------------------------------------ |
645
- | **Scout** | Fast codebase recon — returns compressed context for handoff |
646
- | **Researcher** | Web research — finds and synthesizes current information |
647
- | **Worker** | General-purpose execution in an isolated context window |
648
- | **JavaScript Pro** | JavaScript-specialized execution and debugging |
649
- | **TypeScript Pro** | TypeScript-specialized execution and debugging |
663
+ | Agent | Role |
664
+ | ------------------ | ------------------------------------------------------------ |
665
+ | **Scout** | Fast codebase recon — returns compressed context for handoff |
666
+ | **Researcher** | Web research — finds and synthesizes current information |
667
+ | **Worker** | General-purpose execution in an isolated context window |
668
+ | **JavaScript Pro** | JavaScript-specialized execution and debugging |
669
+ | **TypeScript Pro** | TypeScript-specialized execution and debugging |
650
670
 
651
671
  ---
652
672
 
@@ -806,8 +826,8 @@ Use expensive models where quality matters (planning, complex execution) and che
806
826
 
807
827
  ## Ecosystem
808
828
 
809
- | Project | Description |
810
- | ------- | ----------- |
829
+ | Project | Description |
830
+ | --------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
811
831
  | [GSD2 Config Utility](https://github.com/jeremymcs/gsd2-config) | Standalone configuration tool for managing GSD preferences, providers, and API keys |
812
832
 
813
833
  ---
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Platform-correct binary name for the Claude Code CLI.
3
+ *
4
+ * On Windows, npm-global binaries are installed as `.cmd` shims and
5
+ * `execFileSync` does not auto-resolve the extension — calling bare
6
+ * `claude` would fail with ENOENT even when the CLI is installed and
7
+ * authenticated. Mirrors the `NPM_COMMAND` pattern in
8
+ * `src/resources/extensions/gsd/pre-execution-checks.ts`.
9
+ */
10
+ export declare const CLAUDE_COMMAND: string;
1
11
  /**
2
12
  * Check if the `claude` binary is installed (regardless of auth state).
3
13
  */
@@ -2,12 +2,22 @@
2
2
  // Lightweight check used at onboarding time (before extensions load).
3
3
  // The full readiness check with caching lives in the claude-code-cli extension.
4
4
  import { execFileSync } from 'node:child_process';
5
+ /**
6
+ * Platform-correct binary name for the Claude Code CLI.
7
+ *
8
+ * On Windows, npm-global binaries are installed as `.cmd` shims and
9
+ * `execFileSync` does not auto-resolve the extension — calling bare
10
+ * `claude` would fail with ENOENT even when the CLI is installed and
11
+ * authenticated. Mirrors the `NPM_COMMAND` pattern in
12
+ * `src/resources/extensions/gsd/pre-execution-checks.ts`.
13
+ */
14
+ export const CLAUDE_COMMAND = process.platform === 'win32' ? 'claude.cmd' : 'claude';
5
15
  /**
6
16
  * Check if the `claude` binary is installed (regardless of auth state).
7
17
  */
8
18
  export function isClaudeBinaryInstalled() {
9
19
  try {
10
- execFileSync('claude', ['--version'], { timeout: 5_000, stdio: 'pipe' });
20
+ execFileSync(CLAUDE_COMMAND, ['--version'], { timeout: 5_000, stdio: 'pipe' });
11
21
  return true;
12
22
  }
13
23
  catch {
@@ -19,13 +29,13 @@ export function isClaudeBinaryInstalled() {
19
29
  */
20
30
  export function isClaudeCliReady() {
21
31
  try {
22
- execFileSync('claude', ['--version'], { timeout: 5_000, stdio: 'pipe' });
32
+ execFileSync(CLAUDE_COMMAND, ['--version'], { timeout: 5_000, stdio: 'pipe' });
23
33
  }
24
34
  catch {
25
35
  return false;
26
36
  }
27
37
  try {
28
- const output = execFileSync('claude', ['auth', 'status'], { timeout: 5_000, stdio: 'pipe' })
38
+ const output = execFileSync(CLAUDE_COMMAND, ['auth', 'status'], { timeout: 5_000, stdio: 'pipe' })
29
39
  .toString()
30
40
  .toLowerCase();
31
41
  return !(/not logged in|no credentials|unauthenticated|not authenticated/i.test(output));
@@ -10,6 +10,20 @@
10
10
  * All steps are skippable. All errors are recoverable. Never crashes boot.
11
11
  */
12
12
  import type { AuthStorage } from '@gsd/pi-coding-agent';
13
+ type ClackModule = typeof import('@clack/prompts');
14
+ type PicoModule = {
15
+ cyan: (s: string) => string;
16
+ green: (s: string) => string;
17
+ yellow: (s: string) => string;
18
+ dim: (s: string) => string;
19
+ bold: (s: string) => string;
20
+ red: (s: string) => string;
21
+ reset: (s: string) => string;
22
+ };
23
+ interface RunOnboardingOptions {
24
+ /** Show logo + intro banner. Disable when onboarding is launched inside an active TUI session. */
25
+ showIntro?: boolean;
26
+ }
13
27
  /**
14
28
  * Determine if the onboarding wizard should run.
15
29
  *
@@ -36,4 +50,9 @@ export declare function shouldRunOnboarding(authStorage: AuthStorage, settingsDe
36
50
  * All steps are skippable. All errors are recoverable.
37
51
  * Writes status to stderr during execution.
38
52
  */
39
- export declare function runOnboarding(authStorage: AuthStorage): Promise<void>;
53
+ export declare function runOnboarding(authStorage: AuthStorage, opts?: RunOnboardingOptions): Promise<void>;
54
+ export declare function runLlmStep(p: ClackModule, pc: PicoModule, authStorage: AuthStorage): Promise<boolean>;
55
+ export declare function runWebSearchStep(p: ClackModule, pc: PicoModule, authStorage: AuthStorage, isAnthropicAuth: boolean): Promise<string | null>;
56
+ export declare function runToolKeysStep(p: ClackModule, pc: PicoModule, authStorage: AuthStorage): Promise<number>;
57
+ export declare function runRemoteQuestionsStep(p: ClackModule, pc: PicoModule, authStorage: AuthStorage): Promise<string | null>;
58
+ export {};