gsd-pi 2.75.0 → 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 (1034) hide show
  1. package/README.md +208 -151
  2. package/dist/claude-cli-check.d.ts +10 -0
  3. package/dist/claude-cli-check.js +13 -3
  4. package/dist/headless-events.d.ts +1 -1
  5. package/dist/headless-events.js +5 -2
  6. package/dist/headless.js +5 -6
  7. package/dist/loader.js +0 -0
  8. package/dist/onboarding.d.ts +20 -1
  9. package/dist/onboarding.js +99 -39
  10. package/dist/resources/agents/researcher.md +1 -1
  11. package/dist/resources/extensions/ask-user-questions.js +17 -5
  12. package/dist/resources/extensions/claude-code-cli/models.js +9 -0
  13. package/dist/resources/extensions/claude-code-cli/readiness.js +34 -2
  14. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +76 -4
  15. package/dist/resources/extensions/gsd/auto/detect-stuck.js +9 -0
  16. package/dist/resources/extensions/gsd/auto/loop.js +67 -4
  17. package/dist/resources/extensions/gsd/auto/phases.js +118 -53
  18. package/dist/resources/extensions/gsd/auto/resolve.js +1 -1
  19. package/dist/resources/extensions/gsd/auto/run-unit.js +10 -1
  20. package/dist/resources/extensions/gsd/auto/session.js +5 -0
  21. package/dist/resources/extensions/gsd/auto-artifact-paths.js +20 -0
  22. package/dist/resources/extensions/gsd/auto-dashboard.js +37 -8
  23. package/dist/resources/extensions/gsd/auto-direct-dispatch.js +8 -2
  24. package/dist/resources/extensions/gsd/auto-dispatch.js +120 -14
  25. package/dist/resources/extensions/gsd/auto-loop.js +1 -1
  26. package/dist/resources/extensions/gsd/auto-model-selection.js +54 -18
  27. package/dist/resources/extensions/gsd/auto-post-unit.js +10 -8
  28. package/dist/resources/extensions/gsd/auto-prompts.js +190 -46
  29. package/dist/resources/extensions/gsd/auto-recovery.js +57 -0
  30. package/dist/resources/extensions/gsd/auto-start.js +5 -3
  31. package/dist/resources/extensions/gsd/auto-verification.js +36 -3
  32. package/dist/resources/extensions/gsd/auto-worktree.js +71 -2
  33. package/dist/resources/extensions/gsd/auto.js +57 -25
  34. package/dist/resources/extensions/gsd/blocked-models.js +68 -0
  35. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +84 -21
  36. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +45 -23
  37. package/dist/resources/extensions/gsd/bootstrap/memory-tools.js +131 -0
  38. package/dist/resources/extensions/gsd/bootstrap/query-tools.js +29 -0
  39. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +12 -0
  40. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +22 -0
  41. package/dist/resources/extensions/gsd/bootstrap/system-context.js +84 -10
  42. package/dist/resources/extensions/gsd/commands/catalog.js +81 -9
  43. package/dist/resources/extensions/gsd/commands/handlers/core.js +64 -24
  44. package/dist/resources/extensions/gsd/commands/handlers/escalate.js +171 -0
  45. package/dist/resources/extensions/gsd/commands/handlers/onboarding.js +159 -0
  46. package/dist/resources/extensions/gsd/commands/handlers/ops.js +21 -0
  47. package/dist/resources/extensions/gsd/commands/handlers/workflow.js +228 -29
  48. package/dist/resources/extensions/gsd/commands-cmux.js +5 -2
  49. package/dist/resources/extensions/gsd/commands-config.js +5 -0
  50. package/dist/resources/extensions/gsd/commands-debug.js +388 -0
  51. package/dist/resources/extensions/gsd/commands-do.js +1 -0
  52. package/dist/resources/extensions/gsd/commands-extract-learnings.js +200 -77
  53. package/dist/resources/extensions/gsd/commands-handlers.js +21 -2
  54. package/dist/resources/extensions/gsd/commands-memory.js +462 -0
  55. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +40 -12
  56. package/dist/resources/extensions/gsd/commands-scan.js +94 -0
  57. package/dist/resources/extensions/gsd/commands-workflow-templates.js +101 -2
  58. package/dist/resources/extensions/gsd/custom-workflow-engine.js +74 -54
  59. package/dist/resources/extensions/gsd/db-writer.js +89 -16
  60. package/dist/resources/extensions/gsd/debug-session-store.js +238 -0
  61. package/dist/resources/extensions/gsd/definition-loader.js +7 -0
  62. package/dist/resources/extensions/gsd/docs/preferences-reference.md +9 -9
  63. package/dist/resources/extensions/gsd/doctor-environment.js +2 -1
  64. package/dist/resources/extensions/gsd/doctor-git-checks.js +50 -32
  65. package/dist/resources/extensions/gsd/doctor-proactive.js +4 -1
  66. package/dist/resources/extensions/gsd/doctor-providers.js +96 -22
  67. package/dist/resources/extensions/gsd/doctor-runtime-checks.js +22 -4
  68. package/dist/resources/extensions/gsd/doctor.js +7 -1
  69. package/dist/resources/extensions/gsd/ecosystem/gsd-extension-api.js +1 -0
  70. package/dist/resources/extensions/gsd/error-classifier.js +27 -3
  71. package/dist/resources/extensions/gsd/escalation.js +321 -0
  72. package/dist/resources/extensions/gsd/forensics.js +26 -29
  73. package/dist/resources/extensions/gsd/git-service.js +0 -1
  74. package/dist/resources/extensions/gsd/graph.js +26 -2
  75. package/dist/resources/extensions/gsd/gsd-db.js +517 -32
  76. package/dist/resources/extensions/gsd/health-widget-core.js +42 -14
  77. package/dist/resources/extensions/gsd/health-widget.js +7 -4
  78. package/dist/resources/extensions/gsd/hook-emitter.js +108 -0
  79. package/dist/resources/extensions/gsd/init-wizard.js +86 -45
  80. package/dist/resources/extensions/gsd/markdown-renderer.js +5 -5
  81. package/dist/resources/extensions/gsd/memory-backfill.js +126 -0
  82. package/dist/resources/extensions/gsd/memory-embeddings.js +219 -0
  83. package/dist/resources/extensions/gsd/memory-extractor.js +78 -27
  84. package/dist/resources/extensions/gsd/memory-ingest.js +218 -0
  85. package/dist/resources/extensions/gsd/memory-relations.js +189 -0
  86. package/dist/resources/extensions/gsd/memory-source-store.js +113 -0
  87. package/dist/resources/extensions/gsd/memory-store.js +318 -6
  88. package/dist/resources/extensions/gsd/metrics.js +1 -0
  89. package/dist/resources/extensions/gsd/model-cost-table.js +3 -1
  90. package/dist/resources/extensions/gsd/model-router.js +16 -6
  91. package/dist/resources/extensions/gsd/native-git-bridge.js +137 -5
  92. package/dist/resources/extensions/gsd/notification-overlay.js +7 -22
  93. package/dist/resources/extensions/gsd/notification-widget.js +24 -39
  94. package/dist/resources/extensions/gsd/notifications.js +4 -0
  95. package/dist/resources/extensions/gsd/onboarding-state.js +133 -0
  96. package/dist/resources/extensions/gsd/post-execution-checks.js +27 -11
  97. package/dist/resources/extensions/gsd/pre-execution-checks.js +105 -8
  98. package/dist/resources/extensions/gsd/preferences-models.js +1 -0
  99. package/dist/resources/extensions/gsd/preferences-types.js +2 -1
  100. package/dist/resources/extensions/gsd/preferences-validation.js +42 -8
  101. package/dist/resources/extensions/gsd/preferences.js +10 -10
  102. package/dist/resources/extensions/gsd/prompts/add-tests.md +1 -0
  103. package/dist/resources/extensions/gsd/prompts/complete-milestone.md +4 -1
  104. package/dist/resources/extensions/gsd/prompts/complete-slice.md +2 -2
  105. package/dist/resources/extensions/gsd/prompts/debug-diagnose.md +27 -0
  106. package/dist/resources/extensions/gsd/prompts/debug-session-manager.md +80 -0
  107. package/dist/resources/extensions/gsd/prompts/execute-task.md +16 -3
  108. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +12 -0
  109. package/dist/resources/extensions/gsd/prompts/plan-slice.md +2 -0
  110. package/dist/resources/extensions/gsd/prompts/refine-slice.md +69 -0
  111. package/dist/resources/extensions/gsd/prompts/research-slice.md +1 -0
  112. package/dist/resources/extensions/gsd/prompts/scan.md +79 -0
  113. package/dist/resources/extensions/gsd/prompts/workflow-oneshot.md +26 -0
  114. package/dist/resources/extensions/gsd/python-resolver.js +70 -0
  115. package/dist/resources/extensions/gsd/run-manager.js +37 -17
  116. package/dist/resources/extensions/gsd/setup-catalog.js +75 -0
  117. package/dist/resources/extensions/gsd/state.js +90 -7
  118. package/dist/resources/extensions/gsd/templates/PREFERENCES.md +7 -7
  119. package/dist/resources/extensions/gsd/tools/complete-task.js +80 -0
  120. package/dist/resources/extensions/gsd/tools/memory-tools.js +331 -0
  121. package/dist/resources/extensions/gsd/tools/plan-milestone.js +37 -12
  122. package/dist/resources/extensions/gsd/tools/plan-slice.js +5 -2
  123. package/dist/resources/extensions/gsd/tools/skip-slice.js +78 -0
  124. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +14 -0
  125. package/dist/resources/extensions/gsd/uok/flags.js +7 -7
  126. package/dist/resources/extensions/gsd/uok/kernel.js +8 -3
  127. package/dist/resources/extensions/gsd/verification-gate.js +2 -1
  128. package/dist/resources/extensions/gsd/workflow-dispatch.js +64 -0
  129. package/dist/resources/extensions/gsd/workflow-install.js +327 -0
  130. package/dist/resources/extensions/gsd/workflow-manifest.js +8 -0
  131. package/dist/resources/extensions/gsd/workflow-mcp.js +1 -6
  132. package/dist/resources/extensions/gsd/workflow-plugins.js +346 -0
  133. package/dist/resources/extensions/gsd/workflow-projections.js +17 -15
  134. package/dist/resources/extensions/gsd/workflow-templates/accessibility-audit.md +88 -0
  135. package/dist/resources/extensions/gsd/workflow-templates/api-breaking-change.md +117 -0
  136. package/dist/resources/extensions/gsd/workflow-templates/bugfix.md +1 -0
  137. package/dist/resources/extensions/gsd/workflow-templates/changelog-gen.md +82 -0
  138. package/dist/resources/extensions/gsd/workflow-templates/ci-bootstrap.md +144 -0
  139. package/dist/resources/extensions/gsd/workflow-templates/dead-code.md +81 -0
  140. package/dist/resources/extensions/gsd/workflow-templates/dep-upgrade.md +1 -0
  141. package/dist/resources/extensions/gsd/workflow-templates/docs-sync.yaml +76 -0
  142. package/dist/resources/extensions/gsd/workflow-templates/env-audit.yaml +88 -0
  143. package/dist/resources/extensions/gsd/workflow-templates/full-project.md +1 -0
  144. package/dist/resources/extensions/gsd/workflow-templates/hotfix.md +1 -0
  145. package/dist/resources/extensions/gsd/workflow-templates/issue-triage.md +84 -0
  146. package/dist/resources/extensions/gsd/workflow-templates/observability-setup.md +133 -0
  147. package/dist/resources/extensions/gsd/workflow-templates/onboarding-check.md +74 -0
  148. package/dist/resources/extensions/gsd/workflow-templates/performance-audit.md +125 -0
  149. package/dist/resources/extensions/gsd/workflow-templates/pr-review.md +67 -0
  150. package/dist/resources/extensions/gsd/workflow-templates/pr-triage.md +83 -0
  151. package/dist/resources/extensions/gsd/workflow-templates/refactor.md +1 -0
  152. package/dist/resources/extensions/gsd/workflow-templates/registry.json +184 -0
  153. package/dist/resources/extensions/gsd/workflow-templates/release.md +118 -0
  154. package/dist/resources/extensions/gsd/workflow-templates/rename-symbol.yaml +99 -0
  155. package/dist/resources/extensions/gsd/workflow-templates/security-audit.md +1 -0
  156. package/dist/resources/extensions/gsd/workflow-templates/small-feature.md +1 -0
  157. package/dist/resources/extensions/gsd/workflow-templates/spike.md +7 -0
  158. package/dist/resources/extensions/gsd/workflow-templates/test-backfill.yaml +73 -0
  159. package/dist/resources/extensions/gsd/worktree-resolver.js +42 -1
  160. package/dist/resources/extensions/remote-questions/commands.js +380 -0
  161. package/dist/resources/extensions/remote-questions/manager.js +39 -5
  162. package/dist/resources/extensions/remote-questions/telegram-adapter.js +79 -4
  163. package/dist/resources/extensions/search-the-web/command-search-provider.js +5 -1
  164. package/dist/resources/extensions/search-the-web/native-search.js +46 -3
  165. package/dist/resources/extensions/shared/interview-ui.js +189 -1
  166. package/dist/resources/extensions/shared/layout-utils.js +17 -0
  167. package/dist/resources/extensions/shared/rtk-shared.js +47 -0
  168. package/dist/resources/extensions/shared/rtk.js +3 -46
  169. package/dist/resources/skills/api-design/SKILL.md +190 -0
  170. package/dist/resources/skills/create-mcp-server/SKILL.md +121 -0
  171. package/dist/resources/skills/create-workflow/SKILL.md +33 -6
  172. package/dist/resources/skills/decompose-into-slices/SKILL.md +139 -0
  173. package/dist/resources/skills/dependency-upgrade/SKILL.md +158 -0
  174. package/dist/resources/skills/design-an-interface/SKILL.md +102 -0
  175. package/dist/resources/skills/forensics/SKILL.md +153 -0
  176. package/dist/resources/skills/grill-me/SKILL.md +93 -0
  177. package/dist/resources/skills/handoff/SKILL.md +121 -0
  178. package/dist/resources/skills/observability/SKILL.md +174 -0
  179. package/dist/resources/skills/security-review/SKILL.md +181 -0
  180. package/dist/resources/skills/spike-wrap-up/SKILL.md +138 -0
  181. package/dist/resources/skills/tdd/SKILL.md +112 -0
  182. package/dist/resources/skills/verify-before-complete/SKILL.md +97 -0
  183. package/dist/resources/skills/write-docs/SKILL.md +81 -0
  184. package/dist/resources/skills/write-milestone-brief/SKILL.md +135 -0
  185. package/dist/rtk-shared.d.ts +10 -0
  186. package/dist/rtk-shared.js +47 -0
  187. package/dist/rtk.d.ts +2 -6
  188. package/dist/rtk.js +3 -48
  189. package/dist/shared/workspace-types.d.ts +52 -0
  190. package/dist/shared/workspace-types.js +1 -0
  191. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  192. package/dist/update-check.d.ts +10 -0
  193. package/dist/update-check.js +24 -3
  194. package/dist/web/standalone/.next/BUILD_ID +1 -1
  195. package/dist/web/standalone/.next/app-path-routes-manifest.json +16 -16
  196. package/dist/web/standalone/.next/build-manifest.json +4 -4
  197. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  198. package/dist/web/standalone/.next/react-loadable-manifest.json +2 -2
  199. package/dist/web/standalone/.next/required-server-files.json +4 -4
  200. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  201. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  202. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  203. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  204. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  205. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  206. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  207. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  208. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  209. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  210. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  211. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  212. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  213. package/dist/web/standalone/.next/server/app/_not-found.rsc +4 -4
  214. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  215. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  216. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  217. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  218. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  219. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  220. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  221. package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
  222. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  223. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  224. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
  225. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  226. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  227. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
  228. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  229. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  230. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
  231. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  232. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  233. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  234. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  235. package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
  236. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  237. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  238. package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  239. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  240. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  241. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  242. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  243. package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
  244. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  245. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  246. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  247. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  248. package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
  249. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  250. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  251. package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  252. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  253. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  254. package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
  255. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  256. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  257. package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  258. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  259. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  260. package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  261. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  262. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  263. package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
  264. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  265. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  266. package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
  267. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  268. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  269. package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
  270. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  271. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  272. package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
  273. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  274. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  275. package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  276. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  277. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  278. package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  279. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  280. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  281. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  282. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  283. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  284. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  285. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  286. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  287. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  288. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  289. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  290. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  291. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  292. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  293. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  294. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  295. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  296. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  297. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  298. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  299. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  300. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  301. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  302. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  303. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  304. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  305. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  306. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  307. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  308. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  309. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  310. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  311. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  312. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  313. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  314. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  315. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  316. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  317. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  318. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  319. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  320. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  321. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  322. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  323. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  324. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  325. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  326. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  327. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  328. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  329. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  330. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  331. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  332. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  333. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  334. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  335. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  336. package/dist/web/standalone/.next/server/app/index.html +1 -1
  337. package/dist/web/standalone/.next/server/app/index.rsc +5 -5
  338. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  339. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
  340. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  341. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +4 -4
  342. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  343. package/dist/web/standalone/.next/server/app/page.js +2 -2
  344. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  345. package/dist/web/standalone/.next/server/app-paths-manifest.json +16 -16
  346. package/dist/web/standalone/.next/server/chunks/63.js +3 -3
  347. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  348. package/dist/web/standalone/.next/server/chunks/7461.js +1 -0
  349. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  350. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  351. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  352. package/dist/web/standalone/.next/server/middleware.js +2 -2
  353. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  354. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  355. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  356. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  357. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  358. package/dist/web/standalone/.next/static/chunks/2826.e59e8578e2e28639.js +9 -0
  359. package/dist/web/standalone/.next/static/chunks/{2008.71ee9230ad78df21.js → 3621.fc7480022c972438.js} +2 -2
  360. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  361. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  362. package/dist/web/standalone/.next/static/chunks/app/page-5b113fd32bc2a1c3.js +1 -0
  363. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  364. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  365. package/dist/web/standalone/.next/static/chunks/{webpack-b868033a5834586d.js → webpack-5fc74f13a25fa1bb.js} +1 -1
  366. package/dist/web/standalone/.next/static/css/632cd626b1731d88.css +1 -0
  367. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  368. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  369. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  370. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  371. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  372. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  373. package/dist/web/standalone/server.js +1 -1
  374. package/dist/welcome-screen.js +48 -24
  375. package/dist/wizard.js +2 -2
  376. package/dist/worktree-cli.d.ts +6 -5
  377. package/dist/worktree-cli.js +23 -7
  378. package/package.json +3 -3
  379. package/packages/daemon/package.json +2 -2
  380. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  381. package/packages/mcp-server/dist/server.js +12 -10
  382. package/packages/mcp-server/dist/server.js.map +1 -1
  383. package/packages/mcp-server/dist/session-manager.d.ts.map +1 -1
  384. package/packages/mcp-server/dist/session-manager.js +8 -1
  385. package/packages/mcp-server/dist/session-manager.js.map +1 -1
  386. package/packages/mcp-server/dist/workflow-tools.d.ts +2 -1
  387. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  388. package/packages/mcp-server/dist/workflow-tools.js +306 -71
  389. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  390. package/packages/mcp-server/package.json +2 -2
  391. package/packages/mcp-server/src/mcp-server.test.ts +40 -4
  392. package/packages/mcp-server/src/server.ts +12 -10
  393. package/packages/mcp-server/src/session-manager.ts +10 -3
  394. package/packages/mcp-server/src/workflow-tools.test.ts +346 -1
  395. package/packages/mcp-server/src/workflow-tools.ts +359 -75
  396. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  397. package/packages/native/package.json +1 -1
  398. package/packages/native/tsconfig.tsbuildinfo +1 -1
  399. package/packages/pi-agent-core/dist/agent-loop.js +12 -0
  400. package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
  401. package/packages/pi-agent-core/dist/types.d.ts +30 -0
  402. package/packages/pi-agent-core/dist/types.d.ts.map +1 -1
  403. package/packages/pi-agent-core/dist/types.js.map +1 -1
  404. package/packages/pi-agent-core/package.json +1 -1
  405. package/packages/pi-agent-core/src/agent-loop.ts +14 -0
  406. package/packages/pi-agent-core/src/types.ts +34 -0
  407. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
  408. package/packages/pi-ai/dist/index.d.ts +1 -0
  409. package/packages/pi-ai/dist/index.d.ts.map +1 -1
  410. package/packages/pi-ai/dist/index.js +1 -0
  411. package/packages/pi-ai/dist/index.js.map +1 -1
  412. package/packages/pi-ai/dist/models/capability-patches.d.ts.map +1 -1
  413. package/packages/pi-ai/dist/models/capability-patches.js +3 -2
  414. package/packages/pi-ai/dist/models/capability-patches.js.map +1 -1
  415. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts +68 -0
  416. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts.map +1 -1
  417. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js +68 -0
  418. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js.map +1 -1
  419. package/packages/pi-ai/dist/models/generated/anthropic.d.ts +17 -0
  420. package/packages/pi-ai/dist/models/generated/anthropic.d.ts.map +1 -1
  421. package/packages/pi-ai/dist/models/generated/anthropic.js +17 -0
  422. package/packages/pi-ai/dist/models/generated/anthropic.js.map +1 -1
  423. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts +17 -0
  424. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts.map +1 -1
  425. package/packages/pi-ai/dist/models/generated/google-antigravity.js +17 -0
  426. package/packages/pi-ai/dist/models/generated/google-antigravity.js.map +1 -1
  427. package/packages/pi-ai/dist/models/generated/groq.d.ts +0 -153
  428. package/packages/pi-ai/dist/models/generated/groq.d.ts.map +1 -1
  429. package/packages/pi-ai/dist/models/generated/groq.js +0 -153
  430. package/packages/pi-ai/dist/models/generated/groq.js.map +1 -1
  431. package/packages/pi-ai/dist/models/generated/index.d.ts +136 -153
  432. package/packages/pi-ai/dist/models/generated/index.d.ts.map +1 -1
  433. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts +17 -0
  434. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts.map +1 -1
  435. package/packages/pi-ai/dist/models/generated/openai-codex.js +17 -0
  436. package/packages/pi-ai/dist/models/generated/openai-codex.js.map +1 -1
  437. package/packages/pi-ai/dist/models/generated/openrouter.d.ts +17 -0
  438. package/packages/pi-ai/dist/models/generated/openrouter.d.ts.map +1 -1
  439. package/packages/pi-ai/dist/models/generated/openrouter.js +17 -0
  440. package/packages/pi-ai/dist/models/generated/openrouter.js.map +1 -1
  441. package/packages/pi-ai/dist/models.generated.test.js +17 -0
  442. package/packages/pi-ai/dist/models.generated.test.js.map +1 -1
  443. package/packages/pi-ai/dist/providers/amazon-bedrock.d.ts +22 -1
  444. package/packages/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
  445. package/packages/pi-ai/dist/providers/amazon-bedrock.js +40 -6
  446. package/packages/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
  447. package/packages/pi-ai/dist/providers/amazon-bedrock.test.d.ts +2 -0
  448. package/packages/pi-ai/dist/providers/amazon-bedrock.test.d.ts.map +1 -0
  449. package/packages/pi-ai/dist/providers/amazon-bedrock.test.js +106 -0
  450. package/packages/pi-ai/dist/providers/amazon-bedrock.test.js.map +1 -0
  451. package/packages/pi-ai/dist/providers/anthropic-auth.test.js +42 -1
  452. package/packages/pi-ai/dist/providers/anthropic-auth.test.js.map +1 -1
  453. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.d.ts +2 -0
  454. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.d.ts.map +1 -0
  455. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js +13 -0
  456. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js.map +1 -0
  457. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts +20 -1
  458. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts.map +1 -1
  459. package/packages/pi-ai/dist/providers/anthropic-shared.js +32 -2
  460. package/packages/pi-ai/dist/providers/anthropic-shared.js.map +1 -1
  461. package/packages/pi-ai/dist/providers/anthropic-shared.test.js +12 -1
  462. package/packages/pi-ai/dist/providers/anthropic-shared.test.js.map +1 -1
  463. package/packages/pi-ai/dist/providers/anthropic.d.ts +11 -0
  464. package/packages/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  465. package/packages/pi-ai/dist/providers/anthropic.js +23 -2
  466. package/packages/pi-ai/dist/providers/anthropic.js.map +1 -1
  467. package/packages/pi-ai/dist/providers/api-family.d.ts +27 -0
  468. package/packages/pi-ai/dist/providers/api-family.d.ts.map +1 -0
  469. package/packages/pi-ai/dist/providers/api-family.js +47 -0
  470. package/packages/pi-ai/dist/providers/api-family.js.map +1 -0
  471. package/packages/pi-ai/dist/providers/api-family.test.d.ts +2 -0
  472. package/packages/pi-ai/dist/providers/api-family.test.d.ts.map +1 -0
  473. package/packages/pi-ai/dist/providers/api-family.test.js +101 -0
  474. package/packages/pi-ai/dist/providers/api-family.test.js.map +1 -0
  475. package/packages/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  476. package/packages/pi-ai/dist/utils/oauth/github-copilot.js +12 -2
  477. package/packages/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
  478. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.js +164 -14
  479. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.js.map +1 -1
  480. package/packages/pi-ai/dist/utils/oauth/google-antigravity.d.ts.map +1 -1
  481. package/packages/pi-ai/dist/utils/oauth/google-antigravity.js +15 -3
  482. package/packages/pi-ai/dist/utils/oauth/google-antigravity.js.map +1 -1
  483. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.d.ts +2 -0
  484. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.d.ts.map +1 -0
  485. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.js +67 -0
  486. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.js.map +1 -0
  487. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.d.ts.map +1 -1
  488. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.js +16 -3
  489. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.js.map +1 -1
  490. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.d.ts +2 -0
  491. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.d.ts.map +1 -0
  492. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.js +67 -0
  493. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.js.map +1 -0
  494. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.d.ts +2 -0
  495. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.d.ts.map +1 -0
  496. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.js +289 -0
  497. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.js.map +1 -0
  498. package/packages/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
  499. package/packages/pi-ai/dist/utils/oauth/openai-codex.js +12 -0
  500. package/packages/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
  501. package/packages/pi-ai/package.json +2 -2
  502. package/packages/pi-ai/scripts/generate-models.ts +50 -0
  503. package/packages/pi-ai/src/index.ts +1 -0
  504. package/packages/pi-ai/src/models/capability-patches.ts +5 -2
  505. package/packages/pi-ai/src/models/generated/amazon-bedrock.ts +68 -0
  506. package/packages/pi-ai/src/models/generated/anthropic.ts +17 -0
  507. package/packages/pi-ai/src/models/generated/google-antigravity.ts +17 -0
  508. package/packages/pi-ai/src/models/generated/groq.ts +0 -153
  509. package/packages/pi-ai/src/models/generated/openai-codex.ts +17 -0
  510. package/packages/pi-ai/src/models/generated/openrouter.ts +17 -0
  511. package/packages/pi-ai/src/models.generated.test.ts +17 -0
  512. package/packages/pi-ai/src/providers/amazon-bedrock.test.ts +164 -0
  513. package/packages/pi-ai/src/providers/amazon-bedrock.ts +41 -7
  514. package/packages/pi-ai/src/providers/anthropic-auth.test.ts +47 -1
  515. package/packages/pi-ai/src/providers/anthropic-bearer-auth.test.ts +26 -0
  516. package/packages/pi-ai/src/providers/anthropic-shared.test.ts +15 -1
  517. package/packages/pi-ai/src/providers/anthropic-shared.ts +36 -3
  518. package/packages/pi-ai/src/providers/anthropic.ts +25 -2
  519. package/packages/pi-ai/src/providers/api-family.test.ts +129 -0
  520. package/packages/pi-ai/src/providers/api-family.ts +57 -0
  521. package/packages/pi-ai/src/utils/oauth/github-copilot.test.ts +200 -23
  522. package/packages/pi-ai/src/utils/oauth/github-copilot.ts +12 -2
  523. package/packages/pi-ai/src/utils/oauth/google-antigravity.test.ts +84 -0
  524. package/packages/pi-ai/src/utils/oauth/google-antigravity.ts +15 -5
  525. package/packages/pi-ai/src/utils/oauth/google-gemini-cli.test.ts +84 -0
  526. package/packages/pi-ai/src/utils/oauth/google-gemini-cli.ts +16 -5
  527. package/packages/pi-ai/src/utils/oauth/oauth-providers.test.ts +363 -0
  528. package/packages/pi-ai/src/utils/oauth/openai-codex.ts +15 -0
  529. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  530. package/packages/pi-coding-agent/dist/cli/args.d.ts +6 -0
  531. package/packages/pi-coding-agent/dist/cli/args.d.ts.map +1 -1
  532. package/packages/pi-coding-agent/dist/cli/args.js +14 -4
  533. package/packages/pi-coding-agent/dist/cli/args.js.map +1 -1
  534. package/packages/pi-coding-agent/dist/cli/args.test.d.ts +2 -0
  535. package/packages/pi-coding-agent/dist/cli/args.test.d.ts.map +1 -0
  536. package/packages/pi-coding-agent/dist/cli/args.test.js +38 -0
  537. package/packages/pi-coding-agent/dist/cli/args.test.js.map +1 -0
  538. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.d.ts +2 -0
  539. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.d.ts.map +1 -0
  540. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js +38 -0
  541. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js.map +1 -0
  542. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  543. package/packages/pi-coding-agent/dist/core/agent-session.js +25 -2
  544. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  545. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts +14 -0
  546. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
  547. package/packages/pi-coding-agent/dist/core/auth-storage.js +34 -0
  548. package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  549. package/packages/pi-coding-agent/dist/core/auth-storage.test.js +74 -0
  550. package/packages/pi-coding-agent/dist/core/auth-storage.test.js.map +1 -1
  551. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +4 -1
  552. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  553. package/packages/pi-coding-agent/dist/core/extensions/index.d.ts +1 -1
  554. package/packages/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
  555. package/packages/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
  556. package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
  557. package/packages/pi-coding-agent/dist/core/extensions/loader.js +4 -0
  558. package/packages/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
  559. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +34 -2
  560. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  561. package/packages/pi-coding-agent/dist/core/extensions/runner.js +233 -0
  562. package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  563. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts +200 -3
  564. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
  565. package/packages/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
  566. package/packages/pi-coding-agent/dist/core/hooks-runner.d.ts +53 -0
  567. package/packages/pi-coding-agent/dist/core/hooks-runner.d.ts.map +1 -0
  568. package/packages/pi-coding-agent/dist/core/hooks-runner.js +337 -0
  569. package/packages/pi-coding-agent/dist/core/hooks-runner.js.map +1 -0
  570. package/packages/pi-coding-agent/dist/core/hooks-runner.test.d.ts +2 -0
  571. package/packages/pi-coding-agent/dist/core/hooks-runner.test.d.ts.map +1 -0
  572. package/packages/pi-coding-agent/dist/core/hooks-runner.test.js +234 -0
  573. package/packages/pi-coding-agent/dist/core/hooks-runner.test.js.map +1 -0
  574. package/packages/pi-coding-agent/dist/core/index.d.ts +1 -0
  575. package/packages/pi-coding-agent/dist/core/index.d.ts.map +1 -1
  576. package/packages/pi-coding-agent/dist/core/index.js +1 -0
  577. package/packages/pi-coding-agent/dist/core/index.js.map +1 -1
  578. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.d.ts +2 -0
  579. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.d.ts.map +1 -0
  580. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.js +40 -0
  581. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.js.map +1 -0
  582. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js +32 -0
  583. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js.map +1 -1
  584. package/packages/pi-coding-agent/dist/core/retry-handler.d.ts.map +1 -1
  585. package/packages/pi-coding-agent/dist/core/retry-handler.js +4 -1
  586. package/packages/pi-coding-agent/dist/core/retry-handler.js.map +1 -1
  587. package/packages/pi-coding-agent/dist/core/sdk.d.ts +10 -0
  588. package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  589. package/packages/pi-coding-agent/dist/core/sdk.js +39 -1
  590. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  591. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +55 -0
  592. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  593. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  594. package/packages/pi-coding-agent/dist/core/skill-tool.test.js +2 -2
  595. package/packages/pi-coding-agent/dist/core/skill-tool.test.js.map +1 -1
  596. package/packages/pi-coding-agent/dist/index.d.ts +1 -1
  597. package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
  598. package/packages/pi-coding-agent/dist/index.js.map +1 -1
  599. package/packages/pi-coding-agent/dist/main.d.ts.map +1 -1
  600. package/packages/pi-coding-agent/dist/main.js +3 -0
  601. package/packages/pi-coding-agent/dist/main.js.map +1 -1
  602. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -1
  603. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +17 -7
  604. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -1
  605. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
  606. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js +48 -34
  607. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
  608. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts +4 -0
  609. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  610. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +83 -33
  611. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  612. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts +70 -0
  613. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  614. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js +77 -0
  615. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  616. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +1 -66
  617. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  618. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +1 -75
  619. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  620. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts +1 -1
  621. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  622. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +192 -24
  623. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
  624. package/packages/pi-coding-agent/package.json +1 -1
  625. package/packages/pi-coding-agent/src/cli/args.test.ts +44 -0
  626. package/packages/pi-coding-agent/src/cli/args.ts +21 -6
  627. package/packages/pi-coding-agent/src/core/agent-session-abort-order.test.ts +56 -0
  628. package/packages/pi-coding-agent/src/core/agent-session.ts +27 -2
  629. package/packages/pi-coding-agent/src/core/auth-storage.test.ts +83 -0
  630. package/packages/pi-coding-agent/src/core/auth-storage.ts +35 -0
  631. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +4 -1
  632. package/packages/pi-coding-agent/src/core/extensions/index.ts +16 -0
  633. package/packages/pi-coding-agent/src/core/extensions/loader.ts +5 -0
  634. package/packages/pi-coding-agent/src/core/extensions/runner.ts +353 -1
  635. package/packages/pi-coding-agent/src/core/extensions/types.ts +253 -2
  636. package/packages/pi-coding-agent/src/core/hooks-runner.test.ts +269 -0
  637. package/packages/pi-coding-agent/src/core/hooks-runner.ts +460 -0
  638. package/packages/pi-coding-agent/src/core/index.ts +10 -0
  639. package/packages/pi-coding-agent/src/core/model-registry-auth-header.test.ts +44 -0
  640. package/packages/pi-coding-agent/src/core/model-registry-auth-mode.test.ts +37 -1
  641. package/packages/pi-coding-agent/src/core/retry-handler.ts +4 -1
  642. package/packages/pi-coding-agent/src/core/sdk.ts +58 -1
  643. package/packages/pi-coding-agent/src/core/settings-manager.ts +57 -0
  644. package/packages/pi-coding-agent/src/core/skill-tool.test.ts +2 -2
  645. package/packages/pi-coding-agent/src/index.ts +16 -0
  646. package/packages/pi-coding-agent/src/main.ts +4 -0
  647. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +19 -7
  648. package/packages/pi-coding-agent/src/modes/interactive/components/footer.ts +53 -31
  649. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +88 -36
  650. package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.ts +83 -0
  651. package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +2 -83
  652. package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +208 -27
  653. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  654. package/packages/pi-tui/package.json +1 -1
  655. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
  656. package/packages/rpc-client/package.json +1 -1
  657. package/packages/rpc-client/tsconfig.tsbuildinfo +1 -1
  658. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts +70 -0
  659. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  660. package/pkg/dist/modes/interactive/theme/theme-schema.js +77 -0
  661. package/pkg/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  662. package/pkg/dist/modes/interactive/theme/theme.d.ts +1 -66
  663. package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  664. package/pkg/dist/modes/interactive/theme/theme.js +1 -75
  665. package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
  666. package/pkg/dist/modes/interactive/theme/themes.d.ts +1 -1
  667. package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  668. package/pkg/dist/modes/interactive/theme/themes.js +192 -24
  669. package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
  670. package/pkg/package.json +1 -1
  671. package/src/resources/agents/researcher.md +1 -1
  672. package/src/resources/extensions/ask-user-questions.ts +24 -6
  673. package/src/resources/extensions/claude-code-cli/models.ts +9 -0
  674. package/src/resources/extensions/claude-code-cli/readiness.ts +36 -2
  675. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +94 -4
  676. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +84 -0
  677. package/src/resources/extensions/gsd/auto/detect-stuck.ts +10 -0
  678. package/src/resources/extensions/gsd/auto/loop-deps.ts +2 -9
  679. package/src/resources/extensions/gsd/auto/loop.ts +109 -3
  680. package/src/resources/extensions/gsd/auto/phases.ts +146 -66
  681. package/src/resources/extensions/gsd/auto/resolve.ts +1 -1
  682. package/src/resources/extensions/gsd/auto/run-unit.ts +11 -1
  683. package/src/resources/extensions/gsd/auto/session.ts +7 -0
  684. package/src/resources/extensions/gsd/auto-artifact-paths.ts +20 -0
  685. package/src/resources/extensions/gsd/auto-dashboard.ts +46 -5
  686. package/src/resources/extensions/gsd/auto-direct-dispatch.ts +15 -2
  687. package/src/resources/extensions/gsd/auto-dispatch.ts +141 -9
  688. package/src/resources/extensions/gsd/auto-loop.ts +1 -1
  689. package/src/resources/extensions/gsd/auto-model-selection.ts +72 -18
  690. package/src/resources/extensions/gsd/auto-post-unit.ts +10 -8
  691. package/src/resources/extensions/gsd/auto-prompts.ts +232 -47
  692. package/src/resources/extensions/gsd/auto-recovery.ts +63 -1
  693. package/src/resources/extensions/gsd/auto-start.ts +8 -6
  694. package/src/resources/extensions/gsd/auto-verification.ts +36 -3
  695. package/src/resources/extensions/gsd/auto-worktree.ts +81 -1
  696. package/src/resources/extensions/gsd/auto.ts +61 -28
  697. package/src/resources/extensions/gsd/blocked-models.ts +98 -0
  698. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +105 -21
  699. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +46 -24
  700. package/src/resources/extensions/gsd/bootstrap/memory-tools.ts +163 -0
  701. package/src/resources/extensions/gsd/bootstrap/query-tools.ts +31 -0
  702. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +15 -0
  703. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +22 -0
  704. package/src/resources/extensions/gsd/bootstrap/system-context.ts +89 -10
  705. package/src/resources/extensions/gsd/commands/catalog.ts +74 -9
  706. package/src/resources/extensions/gsd/commands/handlers/core.ts +69 -27
  707. package/src/resources/extensions/gsd/commands/handlers/escalate.ts +216 -0
  708. package/src/resources/extensions/gsd/commands/handlers/onboarding.ts +196 -0
  709. package/src/resources/extensions/gsd/commands/handlers/ops.ts +21 -0
  710. package/src/resources/extensions/gsd/commands/handlers/workflow.ts +279 -29
  711. package/src/resources/extensions/gsd/commands-cmux.ts +6 -2
  712. package/src/resources/extensions/gsd/commands-config.ts +10 -0
  713. package/src/resources/extensions/gsd/commands-debug.ts +484 -0
  714. package/src/resources/extensions/gsd/commands-do.ts +1 -0
  715. package/src/resources/extensions/gsd/commands-extract-learnings.ts +262 -78
  716. package/src/resources/extensions/gsd/commands-handlers.ts +19 -2
  717. package/src/resources/extensions/gsd/commands-memory.ts +551 -0
  718. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +49 -12
  719. package/src/resources/extensions/gsd/commands-scan.ts +125 -0
  720. package/src/resources/extensions/gsd/commands-workflow-templates.ts +129 -2
  721. package/src/resources/extensions/gsd/custom-workflow-engine.ts +85 -60
  722. package/src/resources/extensions/gsd/db-writer.ts +91 -17
  723. package/src/resources/extensions/gsd/debug-session-store.ts +377 -0
  724. package/src/resources/extensions/gsd/definition-loader.ts +7 -0
  725. package/src/resources/extensions/gsd/docs/preferences-reference.md +9 -9
  726. package/src/resources/extensions/gsd/doctor-environment.ts +2 -1
  727. package/src/resources/extensions/gsd/doctor-git-checks.ts +51 -30
  728. package/src/resources/extensions/gsd/doctor-proactive.ts +4 -1
  729. package/src/resources/extensions/gsd/doctor-providers.ts +109 -26
  730. package/src/resources/extensions/gsd/doctor-runtime-checks.ts +23 -4
  731. package/src/resources/extensions/gsd/doctor-types.ts +1 -0
  732. package/src/resources/extensions/gsd/doctor.ts +7 -1
  733. package/src/resources/extensions/gsd/ecosystem/gsd-extension-api.ts +2 -0
  734. package/src/resources/extensions/gsd/error-classifier.ts +32 -3
  735. package/src/resources/extensions/gsd/escalation.ts +367 -0
  736. package/src/resources/extensions/gsd/forensics.ts +25 -29
  737. package/src/resources/extensions/gsd/git-service.ts +0 -1
  738. package/src/resources/extensions/gsd/graph.ts +33 -3
  739. package/src/resources/extensions/gsd/gsd-db.ts +617 -32
  740. package/src/resources/extensions/gsd/health-widget-core.ts +43 -14
  741. package/src/resources/extensions/gsd/health-widget.ts +7 -3
  742. package/src/resources/extensions/gsd/hook-emitter.ts +188 -0
  743. package/src/resources/extensions/gsd/init-wizard.ts +87 -54
  744. package/src/resources/extensions/gsd/markdown-renderer.ts +5 -5
  745. package/src/resources/extensions/gsd/memory-backfill.ts +140 -0
  746. package/src/resources/extensions/gsd/memory-embeddings.ts +235 -0
  747. package/src/resources/extensions/gsd/memory-extractor.ts +100 -34
  748. package/src/resources/extensions/gsd/memory-ingest.ts +286 -0
  749. package/src/resources/extensions/gsd/memory-relations.ts +240 -0
  750. package/src/resources/extensions/gsd/memory-source-store.ts +138 -0
  751. package/src/resources/extensions/gsd/memory-store.ts +377 -7
  752. package/src/resources/extensions/gsd/metrics.ts +1 -0
  753. package/src/resources/extensions/gsd/model-cost-table.ts +3 -1
  754. package/src/resources/extensions/gsd/model-router.ts +25 -6
  755. package/src/resources/extensions/gsd/native-git-bridge.ts +134 -6
  756. package/src/resources/extensions/gsd/notification-overlay.ts +9 -19
  757. package/src/resources/extensions/gsd/notification-widget.ts +25 -43
  758. package/src/resources/extensions/gsd/notifications.ts +6 -0
  759. package/src/resources/extensions/gsd/onboarding-state.ts +146 -0
  760. package/src/resources/extensions/gsd/post-execution-checks.ts +37 -14
  761. package/src/resources/extensions/gsd/pre-execution-checks.ts +106 -12
  762. package/src/resources/extensions/gsd/preferences-models.ts +1 -0
  763. package/src/resources/extensions/gsd/preferences-types.ts +10 -2
  764. package/src/resources/extensions/gsd/preferences-validation.ts +33 -7
  765. package/src/resources/extensions/gsd/preferences.ts +10 -10
  766. package/src/resources/extensions/gsd/prompts/add-tests.md +1 -0
  767. package/src/resources/extensions/gsd/prompts/complete-milestone.md +4 -1
  768. package/src/resources/extensions/gsd/prompts/complete-slice.md +2 -2
  769. package/src/resources/extensions/gsd/prompts/debug-diagnose.md +27 -0
  770. package/src/resources/extensions/gsd/prompts/debug-session-manager.md +80 -0
  771. package/src/resources/extensions/gsd/prompts/execute-task.md +16 -3
  772. package/src/resources/extensions/gsd/prompts/plan-milestone.md +12 -0
  773. package/src/resources/extensions/gsd/prompts/plan-slice.md +2 -0
  774. package/src/resources/extensions/gsd/prompts/refine-slice.md +69 -0
  775. package/src/resources/extensions/gsd/prompts/research-slice.md +1 -0
  776. package/src/resources/extensions/gsd/prompts/scan.md +79 -0
  777. package/src/resources/extensions/gsd/prompts/workflow-oneshot.md +26 -0
  778. package/src/resources/extensions/gsd/python-resolver.ts +76 -0
  779. package/src/resources/extensions/gsd/run-manager.ts +53 -19
  780. package/src/resources/extensions/gsd/setup-catalog.ts +105 -0
  781. package/src/resources/extensions/gsd/state.ts +95 -6
  782. package/src/resources/extensions/gsd/templates/PREFERENCES.md +7 -7
  783. package/src/resources/extensions/gsd/tests/agent-end-retry.test.ts +1 -34
  784. package/src/resources/extensions/gsd/tests/artifact-corruption-2630.test.ts +7 -0
  785. package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +49 -0
  786. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +45 -31
  787. package/src/resources/extensions/gsd/tests/auto-migrating-recovery.test.ts +63 -0
  788. package/src/resources/extensions/gsd/tests/auto-model-selection.test.ts +95 -1
  789. package/src/resources/extensions/gsd/tests/auto-prompts-fallback.test.ts +35 -0
  790. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +123 -1
  791. package/src/resources/extensions/gsd/tests/auto-wrapup-inflight-guard.test.ts +39 -0
  792. package/src/resources/extensions/gsd/tests/autocomplete-regressions-1675.test.ts +39 -0
  793. package/src/resources/extensions/gsd/tests/blocked-models.test.ts +98 -0
  794. package/src/resources/extensions/gsd/tests/bundled-skill-triggers.test.ts +54 -0
  795. package/src/resources/extensions/gsd/tests/commands-do.test.ts +48 -0
  796. package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +335 -21
  797. package/src/resources/extensions/gsd/tests/commands-scan.test.ts +351 -0
  798. package/src/resources/extensions/gsd/tests/commands-workflow-custom.test.ts +8 -6
  799. package/src/resources/extensions/gsd/tests/complete-slice.test.ts +6 -8
  800. package/src/resources/extensions/gsd/tests/complete-task.test.ts +2 -2
  801. package/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts +63 -0
  802. package/src/resources/extensions/gsd/tests/debug-command-handler.test.ts +905 -0
  803. package/src/resources/extensions/gsd/tests/debug-command-lifecycle.integration.test.ts +1229 -0
  804. package/src/resources/extensions/gsd/tests/debug-session-store.test.ts +565 -0
  805. package/src/resources/extensions/gsd/tests/derive-state-db.test.ts +42 -0
  806. package/src/resources/extensions/gsd/tests/derive-state-helpers.test.ts +8 -4
  807. package/src/resources/extensions/gsd/tests/discuss-milestone-structured-questions.test.ts +64 -0
  808. package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +67 -0
  809. package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +175 -17
  810. package/src/resources/extensions/gsd/tests/enhanced-verification-integration.test.ts +5 -0
  811. package/src/resources/extensions/gsd/tests/ensure-db-open.test.ts +306 -1
  812. package/src/resources/extensions/gsd/tests/escalation.test.ts +818 -0
  813. package/src/resources/extensions/gsd/tests/finalize-timeout-guard.test.ts +29 -12
  814. package/src/resources/extensions/gsd/tests/flat-rate-routing-guard.test.ts +145 -8
  815. package/src/resources/extensions/gsd/tests/forensics-hook-key-parse.test.ts +74 -0
  816. package/src/resources/extensions/gsd/tests/freeform-decisions.test.ts +62 -0
  817. package/src/resources/extensions/gsd/tests/graph-operations.test.ts +0 -4
  818. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +44 -1
  819. package/src/resources/extensions/gsd/tests/health-widget.test.ts +8 -2
  820. package/src/resources/extensions/gsd/tests/init-prefs-routing.test.ts +190 -0
  821. package/src/resources/extensions/gsd/tests/integration/doctor-git-symlink-cwd.test.ts +90 -0
  822. package/src/resources/extensions/gsd/tests/integration/doctor-git.test.ts +117 -0
  823. package/src/resources/extensions/gsd/tests/integration/doctor-proactive.test.ts +44 -0
  824. package/src/resources/extensions/gsd/tests/integration/doctor-runtime.test.ts +68 -1
  825. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +109 -11
  826. package/src/resources/extensions/gsd/tests/integration/idle-recovery.test.ts +51 -0
  827. package/src/resources/extensions/gsd/tests/integration/integration-proof.test.ts +2 -2
  828. package/src/resources/extensions/gsd/tests/integration/test-isolation.ts +53 -0
  829. package/src/resources/extensions/gsd/tests/interactive-routing-bypass.test.ts +1 -1
  830. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +206 -1
  831. package/src/resources/extensions/gsd/tests/load-memory-block.test.ts +36 -0
  832. package/src/resources/extensions/gsd/tests/md-importer.test.ts +1 -1
  833. package/src/resources/extensions/gsd/tests/memory-embeddings.test.ts +213 -0
  834. package/src/resources/extensions/gsd/tests/memory-ingest.test.ts +153 -0
  835. package/src/resources/extensions/gsd/tests/memory-maintenance.test.ts +107 -0
  836. package/src/resources/extensions/gsd/tests/memory-relations.test.ts +175 -0
  837. package/src/resources/extensions/gsd/tests/memory-store.test.ts +2 -2
  838. package/src/resources/extensions/gsd/tests/memory-tools.test.ts +295 -0
  839. package/src/resources/extensions/gsd/tests/milestone-status-tool.test.ts +3 -2
  840. package/src/resources/extensions/gsd/tests/model-cost-table.test.ts +2 -2
  841. package/src/resources/extensions/gsd/tests/model-router.test.ts +51 -1
  842. package/src/resources/extensions/gsd/tests/model-unittype-mapping.test.ts +59 -0
  843. package/src/resources/extensions/gsd/tests/notification-overlay.test.ts +56 -37
  844. package/src/resources/extensions/gsd/tests/notification-widget.test.ts +1 -1
  845. package/src/resources/extensions/gsd/tests/onboarding-state.test.ts +105 -0
  846. package/src/resources/extensions/gsd/tests/plan-milestone-boundary-map-preservation.test.ts +114 -0
  847. package/src/resources/extensions/gsd/tests/plan-milestone.test.ts +4 -5
  848. package/src/resources/extensions/gsd/tests/plan-slice.test.ts +17 -0
  849. package/src/resources/extensions/gsd/tests/post-execution-checks.test.ts +105 -1
  850. package/src/resources/extensions/gsd/tests/pre-execution-checks.test.ts +341 -6
  851. package/src/resources/extensions/gsd/tests/preferences.test.ts +69 -1
  852. package/src/resources/extensions/gsd/tests/progressive-planning.test.ts +539 -0
  853. package/src/resources/extensions/gsd/tests/projection-no-plan-overwrite.test.ts +11 -2
  854. package/src/resources/extensions/gsd/tests/projection-regression.test.ts +7 -0
  855. package/src/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +159 -8
  856. package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +24 -0
  857. package/src/resources/extensions/gsd/tests/prompt-db.test.ts +1 -1
  858. package/src/resources/extensions/gsd/tests/prompts-no-gitignored-test-refs.test.ts +56 -0
  859. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +88 -4
  860. package/src/resources/extensions/gsd/tests/python-resolver.test.ts +131 -0
  861. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +67 -0
  862. package/src/resources/extensions/gsd/tests/remote-notification-from-desktop.test.ts +107 -0
  863. package/src/resources/extensions/gsd/tests/requirements.test.ts +9 -0
  864. package/src/resources/extensions/gsd/tests/session-start-footer.test.ts +153 -0
  865. package/src/resources/extensions/gsd/tests/skip-slice-cascades-tasks.test.ts +125 -0
  866. package/src/resources/extensions/gsd/tests/slice-context-injection.test.ts +16 -4
  867. package/src/resources/extensions/gsd/tests/stash-queued-context-files.test.ts +54 -0
  868. package/src/resources/extensions/gsd/tests/state-corruption-2945.test.ts +3 -0
  869. package/src/resources/extensions/gsd/tests/stuck-detection-coverage.test.ts +15 -0
  870. package/src/resources/extensions/gsd/tests/summary-render-parity.test.ts +5 -0
  871. package/src/resources/extensions/gsd/tests/uok-contracts.test.ts +2 -1
  872. package/src/resources/extensions/gsd/tests/uok-flags.test.ts +31 -1
  873. package/src/resources/extensions/gsd/tests/uok-kernel-path.test.ts +166 -0
  874. package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +9 -3
  875. package/src/resources/extensions/gsd/tests/verification-gate.test.ts +35 -0
  876. package/src/resources/extensions/gsd/tests/workflow-install.test.ts +113 -0
  877. package/src/resources/extensions/gsd/tests/workflow-logger-wiring.test.ts +15 -6
  878. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +2 -2
  879. package/src/resources/extensions/gsd/tests/workflow-plugins.test.ts +310 -0
  880. package/src/resources/extensions/gsd/tests/workflow-projections.test.ts +7 -0
  881. package/src/resources/extensions/gsd/tests/workflow-templates.test.ts +8 -2
  882. package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +97 -0
  883. package/src/resources/extensions/gsd/tests/worktree-journal-events.test.ts +2 -1
  884. package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +77 -2
  885. package/src/resources/extensions/gsd/tools/complete-task.ts +87 -0
  886. package/src/resources/extensions/gsd/tools/memory-tools.ts +410 -0
  887. package/src/resources/extensions/gsd/tools/plan-milestone.ts +42 -8
  888. package/src/resources/extensions/gsd/tools/plan-slice.ts +6 -1
  889. package/src/resources/extensions/gsd/tools/skip-slice.ts +133 -0
  890. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +14 -0
  891. package/src/resources/extensions/gsd/types.ts +62 -0
  892. package/src/resources/extensions/gsd/unit-runtime.ts +1 -0
  893. package/src/resources/extensions/gsd/uok/contracts.ts +2 -1
  894. package/src/resources/extensions/gsd/uok/flags.ts +7 -7
  895. package/src/resources/extensions/gsd/uok/kernel.ts +16 -4
  896. package/src/resources/extensions/gsd/verification-gate.ts +2 -1
  897. package/src/resources/extensions/gsd/workflow-dispatch.ts +106 -0
  898. package/src/resources/extensions/gsd/workflow-install.ts +423 -0
  899. package/src/resources/extensions/gsd/workflow-logger.ts +4 -1
  900. package/src/resources/extensions/gsd/workflow-manifest.ts +8 -0
  901. package/src/resources/extensions/gsd/workflow-mcp.ts +1 -6
  902. package/src/resources/extensions/gsd/workflow-plugins.ts +403 -0
  903. package/src/resources/extensions/gsd/workflow-projections.ts +18 -16
  904. package/src/resources/extensions/gsd/workflow-templates/accessibility-audit.md +88 -0
  905. package/src/resources/extensions/gsd/workflow-templates/api-breaking-change.md +117 -0
  906. package/src/resources/extensions/gsd/workflow-templates/bugfix.md +1 -0
  907. package/src/resources/extensions/gsd/workflow-templates/changelog-gen.md +82 -0
  908. package/src/resources/extensions/gsd/workflow-templates/ci-bootstrap.md +144 -0
  909. package/src/resources/extensions/gsd/workflow-templates/dead-code.md +81 -0
  910. package/src/resources/extensions/gsd/workflow-templates/dep-upgrade.md +1 -0
  911. package/src/resources/extensions/gsd/workflow-templates/docs-sync.yaml +76 -0
  912. package/src/resources/extensions/gsd/workflow-templates/env-audit.yaml +88 -0
  913. package/src/resources/extensions/gsd/workflow-templates/full-project.md +1 -0
  914. package/src/resources/extensions/gsd/workflow-templates/hotfix.md +1 -0
  915. package/src/resources/extensions/gsd/workflow-templates/issue-triage.md +84 -0
  916. package/src/resources/extensions/gsd/workflow-templates/observability-setup.md +133 -0
  917. package/src/resources/extensions/gsd/workflow-templates/onboarding-check.md +74 -0
  918. package/src/resources/extensions/gsd/workflow-templates/performance-audit.md +125 -0
  919. package/src/resources/extensions/gsd/workflow-templates/pr-review.md +67 -0
  920. package/src/resources/extensions/gsd/workflow-templates/pr-triage.md +83 -0
  921. package/src/resources/extensions/gsd/workflow-templates/refactor.md +1 -0
  922. package/src/resources/extensions/gsd/workflow-templates/registry.json +184 -0
  923. package/src/resources/extensions/gsd/workflow-templates/release.md +118 -0
  924. package/src/resources/extensions/gsd/workflow-templates/rename-symbol.yaml +99 -0
  925. package/src/resources/extensions/gsd/workflow-templates/security-audit.md +1 -0
  926. package/src/resources/extensions/gsd/workflow-templates/small-feature.md +1 -0
  927. package/src/resources/extensions/gsd/workflow-templates/spike.md +7 -0
  928. package/src/resources/extensions/gsd/workflow-templates/test-backfill.yaml +73 -0
  929. package/src/resources/extensions/gsd/workflow-templates.ts +7 -0
  930. package/src/resources/extensions/gsd/workspace-index.ts +9 -4
  931. package/src/resources/extensions/gsd/worktree-resolver.ts +47 -1
  932. package/src/resources/extensions/remote-questions/commands.ts +480 -0
  933. package/src/resources/extensions/remote-questions/manager.ts +49 -4
  934. package/src/resources/extensions/remote-questions/telegram-adapter.ts +86 -4
  935. package/src/resources/extensions/remote-questions/tests/command-polling.test.ts +246 -0
  936. package/src/resources/extensions/remote-questions/tests/remote-answer-normalization.test.ts +92 -0
  937. package/src/resources/extensions/remote-questions/tests/telegram-commands.test.ts +267 -0
  938. package/src/resources/extensions/search-the-web/command-search-provider.ts +5 -1
  939. package/src/resources/extensions/search-the-web/native-search.ts +50 -4
  940. package/src/resources/extensions/shared/interview-ui.ts +195 -1
  941. package/src/resources/extensions/shared/layout-utils.ts +26 -0
  942. package/src/resources/extensions/shared/rtk-shared.ts +58 -0
  943. package/src/resources/extensions/shared/rtk.ts +12 -52
  944. package/src/resources/extensions/shared/tests/interview-preview.test.ts +177 -0
  945. package/src/resources/extensions/shared/tests/preview-layout.test.ts +120 -0
  946. package/src/resources/skills/api-design/SKILL.md +190 -0
  947. package/src/resources/skills/create-mcp-server/SKILL.md +121 -0
  948. package/src/resources/skills/create-workflow/SKILL.md +33 -6
  949. package/src/resources/skills/decompose-into-slices/SKILL.md +139 -0
  950. package/src/resources/skills/dependency-upgrade/SKILL.md +158 -0
  951. package/src/resources/skills/design-an-interface/SKILL.md +102 -0
  952. package/src/resources/skills/forensics/SKILL.md +153 -0
  953. package/src/resources/skills/grill-me/SKILL.md +93 -0
  954. package/src/resources/skills/handoff/SKILL.md +121 -0
  955. package/src/resources/skills/observability/SKILL.md +174 -0
  956. package/src/resources/skills/security-review/SKILL.md +181 -0
  957. package/src/resources/skills/spike-wrap-up/SKILL.md +138 -0
  958. package/src/resources/skills/tdd/SKILL.md +112 -0
  959. package/src/resources/skills/verify-before-complete/SKILL.md +97 -0
  960. package/src/resources/skills/write-docs/SKILL.md +81 -0
  961. package/src/resources/skills/write-milestone-brief/SKILL.md +135 -0
  962. package/dist/web/standalone/.next/static/chunks/2826.dd3dc8bbd3025fa5.js +0 -9
  963. package/dist/web/standalone/.next/static/chunks/app/page-7115e62689b5fd84.js +0 -1
  964. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  965. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  966. package/dist/web/standalone/.next/static/css/f6e8833d46e738d8.css +0 -1
  967. package/packages/native/dist/ps/types.d.ts +0 -5
  968. package/packages/native/dist/ps/types.js +0 -2
  969. package/packages/native/src/ps/types.ts +0 -5
  970. package/packages/pi-ai/node_modules/@smithy/node-http-handler/LICENSE +0 -201
  971. package/packages/pi-ai/node_modules/@smithy/node-http-handler/README.md +0 -9
  972. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-cjs/index.js +0 -762
  973. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js +0 -19
  974. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/constants.js +0 -1
  975. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js +0 -9
  976. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/index.js +0 -3
  977. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +0 -230
  978. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +0 -87
  979. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js +0 -32
  980. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +0 -169
  981. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/readable.mock.js +0 -21
  982. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/server.mock.js +0 -88
  983. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js +0 -36
  984. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-request-timeout.js +0 -21
  985. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js +0 -22
  986. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +0 -23
  987. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
  988. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
  989. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/readable.mock.js +0 -21
  990. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/timing.js +0 -4
  991. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js +0 -63
  992. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/build-abort-error.d.ts +0 -10
  993. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/constants.d.ts +0 -5
  994. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/get-transformed-headers.d.ts +0 -4
  995. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +0 -3
  996. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http-handler.d.ts +0 -46
  997. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +0 -24
  998. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +0 -12
  999. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +0 -63
  1000. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/readable.mock.d.ts +0 -13
  1001. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/server.mock.d.ts +0 -12
  1002. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +0 -2
  1003. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-request-timeout.d.ts +0 -6
  1004. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +0 -6
  1005. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +0 -2
  1006. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
  1007. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -6
  1008. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/readable.mock.d.ts +0 -13
  1009. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/timing.d.ts +0 -8
  1010. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/build-abort-error.d.ts +0 -10
  1011. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/constants.d.ts +0 -5
  1012. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/get-transformed-headers.d.ts +0 -4
  1013. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/index.d.ts +0 -3
  1014. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +0 -46
  1015. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-manager.d.ts +0 -24
  1016. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-pool.d.ts +0 -12
  1017. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +0 -63
  1018. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/readable.mock.d.ts +0 -13
  1019. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/server.mock.d.ts +0 -12
  1020. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-connection-timeout.d.ts +0 -2
  1021. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-request-timeout.d.ts +0 -6
  1022. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-keep-alive.d.ts +0 -6
  1023. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-timeout.d.ts +0 -2
  1024. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/collector.d.ts +0 -5
  1025. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/index.d.ts +0 -6
  1026. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/readable.mock.d.ts +0 -13
  1027. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/timing.d.ts +0 -8
  1028. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/write-request-body.d.ts +0 -12
  1029. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/write-request-body.d.ts +0 -12
  1030. package/packages/pi-ai/node_modules/@smithy/node-http-handler/package.json +0 -68
  1031. package/packages/pi-ai/oauth.d.ts +0 -1
  1032. package/packages/pi-ai/oauth.js +0 -1
  1033. /package/dist/web/standalone/.next/static/{prkokVQFxWtUVIku57_0z → YnUwu2WWaT0_hyTLUF4nq}/_buildManifest.js +0 -0
  1034. /package/dist/web/standalone/.next/static/{prkokVQFxWtUVIku57_0z → YnUwu2WWaT0_hyTLUF4nq}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -27,85 +27,140 @@ 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.71
30
+ ## What's New in v2.76
31
31
 
32
- ### MCP Secure Env Collect
32
+ ### Memory System
33
33
 
34
- - **Secure credential collection over MCP** — the new `secure_env_collect` tool uses MCP form elicitation to collect secrets (API keys, tokens) from external clients without exposing values in tool output. Masks input in interactive mode.
35
- - **Hardened elicitation schema** — MCP elicitation schema handling is stricter, with proper validation and fallback for providers that don't support forms.
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
- ### MCP Reliability
40
+ ### Progressive Planning (ADR-011)
38
41
 
39
- - **Stream ordering preserved** — MCP tool output now renders in the correct order, fixing interleaved output in Claude Code and other MCP clients.
40
- - **isError flag propagation** — workflow tool execution failures now correctly return `isError: true`, so MCP clients can distinguish success from failure.
41
- - **Multi-round discuss questions** — new-project discuss phase supports multi-round questioning with structured question gates.
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).
42
44
 
43
- ### Model Selection Hardening
45
+ ### Workflow & Onboarding
44
46
 
45
- - **Unconfigured models blocked** — models without a configured provider are filtered from selection surfaces, preventing dispatch failures.
46
- - **Provider readiness required** — saved default model selection now verifies the provider is ready before accepting it.
47
- - **Session override honored** `/gsd model` selection persists as a session override across all dispatch phases.
48
- - **Minimal context guard** — model override logic is skipped in minimal command contexts where it doesn't apply.
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/`.
49
50
 
50
- ### Auto-Mode Resilience
51
+ ### Remote Control & TUI
51
52
 
52
- - **Credential cooldown recovery** — auto-mode survives transient 429 rate-limit responses with structured cooldown errors and a bounded retry budget.
53
- - **Fire-and-forget auto start** — auto start is detached from active turns to prevent blocking.
54
- - **Scoped forensics** — stuck-loop forensics are now scoped to auto sessions only, preventing false positives in interactive use.
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).
55
56
 
56
- ### TUI Improvements
57
+ ### Models & Providers
57
58
 
58
- - **Overlay subscription fix** — resolved overlay subscription lifecycle and `Ctrl+Shift+P` shortcut conflict.
59
- - **Improved overlays and shortcuts** — GSD overlays, keyboard shortcuts, and notification flows redesigned for consistency.
60
- - **Pinned output restored** — pinned output bar displays above the editor during tool execution again.
61
- - **Turn completion cleanup** — pinned latest output is cleared on turn completion, preventing stale output from persisting.
62
- - **Secure input masking** — extension input values are masked in interactive mode when collecting secrets.
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.
63
64
 
64
- ### Provider Fixes
65
+ ### Auto-Mode & Reliability
65
66
 
66
- - **Full OAuth login URLs** — OAuth login URLs are now displayed in full instead of being truncated.
67
- - **MiniMax bearer auth** — MiniMax Anthropic API requests use proper bearer authentication.
68
- - **Case-insensitive tool rendering** — renderable tool matching is now case-insensitive, fixing missed tool output.
69
- - **Headless idle timeout** — idle timeout is kept off during interactive tool execution in headless mode.
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).
70
73
 
71
- ### Reliability & Internals
74
+ See the full [Changelog](./CHANGELOG.md) for details on every release.
72
75
 
73
- - **TOCTOU file locking** — race conditions in event log and custom workflow graph file locking are fixed with proper atomic lock acquisition.
74
- - **State derive refactor** — `deriveStateFromDb` god function extracted into composable, testable helpers.
75
- - **Windows portability** — hardened cross-platform portability across runtime, tooling, and CI.
76
- - **Model routing transparency** — dynamic routing is skipped for interactive dispatches; model changes are always shown in the banner.
77
- - **Capability-aware routing (ADR-004)**full implementation of capability scoring, `before_model_select` hook, and task metadata extraction.
78
- - **Multi-model provider strategy (ADR-005)** — infrastructure for multi-provider model selection wired into live paths.
79
- - **Anti-fabrication guardrails** — discuss prompts enforce turn-taking to prevent fabricated user responses.
80
- - **Milestone worktree cleanup** — merged worktree cleanup uses the milestone branch instead of generic lookups.
81
- - **Tool cache control** — `cache_control` breakpoints added to tool definitions for improved prompt caching.
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`
82
89
 
83
- See the full [Changelog](./CHANGELOG.md) for details on every release.
90
+ </details>
91
+
92
+ <details>
93
+ <summary>v2.74 highlights</summary>
94
+
95
+ - **DB-authoritative milestone completeness** — milestone completion state is derived from the database, not file markers (#4179)
96
+ - **Flat-rate provider detection** — extended to custom and externalCli providers
97
+ - **Thinking level as effort** — Claude Code passes thinking level as an effort parameter
98
+ - **False milestone merge prevention** — auto-mode no longer falsely merges after a `complete-milestone` failure (#4175)
99
+ - **Premature auto-stop fix** — prevents auto-mode from stopping early on blocked phase + missing reassessment
100
+ - **Inline tool call rendering** — assistant tool calls render inline with text instead of grouped at the end
101
+ - **Custom model preservation** — custom model selection preserved on `/gsd auto` bootstrap (#4122)
102
+
103
+ </details>
104
+
105
+ <details>
106
+ <summary>v2.73 highlights</summary>
107
+
108
+ - **Alibaba DashScope provider** — added as a standalone provider (#3891)
109
+ - **Layered depth enforcement** — discuss phase enforces depth gates for thorough requirements gathering (#4079)
110
+ - **Memory pressure watchdog** — stuck detection state persisted across sessions (#3708)
111
+ - **Ollama cloud auth** — cloud auth support and real context window resolution via `/api/show` (#4017)
112
+ - **DB corruption prevention** — direct writes to `gsd.db` blocked via hooks (#3674)
113
+ - **Circular dependency cleanup** — 3 circular dependencies broken in extension modules (#3730)
114
+ - **Subagent permissions** — GSD subagents default to `bypassPermissions` with safe built-ins pre-authorized
115
+ - **Security hardening** — auth middleware activated, shutdown/update routes hardened (#4023)
116
+ - **Stale slice reconciliation** — stale slice rows reconciled and STATE.md rebuilt before DB close (#3658)
117
+ - **Subagent model preference** — `subagent_model` preference wired through to dispatch prompt builders
118
+ - **Pipeline integrity** — 5 pipeline issues addressed from release audit, package-lock.json regenerated during bumps
119
+
120
+ </details>
121
+
122
+ <details>
123
+ <summary>v2.72 highlights</summary>
124
+
125
+ - **8 specialist subagents** — new specialist subagents and slim pro agents with GSD phase guard to prevent conflicts
126
+ - **Model selection hardening** — unconfigured models blocked from selection, provider readiness required, session override honored
127
+ - **Auto-mode resilience** — credential cooldown recovery with bounded retry budget, fire-and-forget auto start, scoped forensics
128
+ - **TUI overhaul** — overlays, keyboard shortcuts, and notification flows redesigned for consistency
129
+ - **Capability-aware routing (ADR-004)** — full implementation of capability scoring, `before_model_select` hook, and task metadata extraction
130
+ - **Multi-model provider strategy (ADR-005)** — infrastructure for multi-provider model selection wired into live paths
131
+ - **Anti-fabrication guardrails** — discuss prompts enforce turn-taking to prevent fabricated user responses
132
+ - **Windows portability** — hardened cross-platform portability across runtime, tooling, and CI
133
+ - **MCP reliability** — every registered tool exposed, SDK subpath resolution fixed, abort signals threaded through
134
+ - **Tool cache control** — `cache_control` breakpoints added to tool definitions for improved prompt caching
135
+
136
+ </details>
137
+
138
+ <details>
139
+ <summary>v2.71 highlights</summary>
140
+
141
+ - **Secure credential collection over MCP** — `secure_env_collect` tool uses MCP form elicitation to collect secrets without exposing values in tool output
142
+ - **MCP stream ordering** — tool output renders in correct order, fixing interleaved output in Claude Code and other MCP clients
143
+ - **isError flag propagation** — workflow tool execution failures correctly return `isError: true`
144
+ - **Multi-round discuss questions** — new-project discuss phase supports multi-round questioning with structured question gates
145
+ - **TOCTOU file locking** — race conditions in event log and custom workflow graph file locking fixed with atomic lock acquisition
146
+ - **State derive refactor** — `deriveStateFromDb` god function extracted into composable, testable helpers
147
+ - **Pinned output fixes** — restored above editor during tool execution, cleared on turn completion
148
+
149
+ </details>
84
150
 
85
151
  <details>
86
- <summary>Previous highlights (v2.70 and earlier)</summary>
152
+ <summary>v2.70 and earlier</summary>
87
153
 
88
154
  - **Full workflow over MCP (v2.68)** — slice replanning, milestone management, slice completion, task completion, and core planning tools exposed over MCP
89
155
  - **Transport-gated MCP (v2.68)** — workflow tool availability adapts to provider transport capabilities automatically
90
156
  - **Contextual tips system (v2.68)** — TUI and web terminal surface contextual tips based on workflow state
91
157
  - **Ask user questions over MCP (v2.70)** — interactive questions exposed via elicitation for external integrations
92
158
  - **Tiered Context Injection (M005)** — relevance-scoped context with 65%+ token reduction
93
- - **Resilient transient error recovery** — defers to Core RetryHandler and fixes cmdCtx race conditions
94
- - **Anthropic subscription routing** — auto-routed through Claude Code CLI provider with proper display names
95
159
  - **5-wave state machine hardening** — critical data integrity fixes across atomic writes, event log reconciliation, session recovery
96
- - **Discussion gate enforcement** — mechanical enforcement with fail-closed behavior
97
160
  - **Slice-level parallelism** — dependency-aware parallel dispatch within a milestone
98
- - **Persistent notification panel** — TUI overlay, widget, and web API for real-time notifications
99
161
  - **MCP server** — 6 read-only project state tools for external integrations, auto-wrapup guard, and question dedup
100
162
  - **Ollama extension** — first-class local LLM support via Ollama, with dynamic routing enabled by default
101
- - **Discord bot & daemon** — dedicated daemon package, Discord bot, and headless text mode with tool calls
102
- - **Capability-aware model routing (ADR-004)** — capability scoring, `before_model_select` hook, and task metadata extraction
103
163
  - **VS Code sidebar redesign** — SCM provider, checkpoints, diagnostics panel, activity feed, workflow controls, session forking
104
- - **`/gsd parallel watch`** — native TUI overlay for real-time worker monitoring
105
- - **Codebase map** — automatic codebase map injection for fresh agent contexts
106
- - **`--resume` flag** — resume previous sessions from the CLI
107
- - **Concurrent invocation guard** — prevents overlapping auto-mode runs
108
- - **VS Code integration** — status bar, file decorations, bash terminal, session tree, conversation history, and code lens
109
164
  - **Skills overhaul** — 30+ skill packs covering major frameworks, databases, and cloud platforms
110
165
  - **Single-writer state engine** — disciplined state transitions with machine guards and TOCTOU hardening
111
166
  - **DB-backed planning tools** — atomic SQLite tool calls for state transitions
@@ -175,8 +230,8 @@ GSD v2 solves all of these because it's not a prompt framework anymore — it's
175
230
  | Roadmap reassessment | Manual | Automatic after each slice completes |
176
231
  | Skill discovery | None | Auto-detect and install relevant skills during research |
177
232
  | Verification | Manual | Automated verification commands with auto-fix retries |
178
- | Reporting | None | Self-contained HTML reports with metrics and dep graphs |
179
- | 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 |
180
235
 
181
236
  ### Migrating from v1
182
237
 
@@ -372,45 +427,47 @@ On first run, GSD launches a branded setup wizard that walks you through LLM pro
372
427
 
373
428
  ### Commands
374
429
 
375
- | Command | What it does |
376
- | ----------------------- | --------------------------------------------------------------- |
377
- | `/gsd` | Step mode — executes one unit at a time, pauses between each |
378
- | `/gsd next` | Explicit step mode (same as bare `/gsd`) |
379
- | `/gsd auto` | Autonomous mode — researches, plans, executes, commits, repeats |
380
- | `/gsd quick` | Execute a quick task with GSD guarantees, skip planning overhead |
381
- | `/gsd stop` | Stop auto mode gracefully |
382
- | `/gsd steer` | Hard-steer plan documents during execution |
383
- | `/gsd discuss` | Discuss architecture and decisions (works alongside auto mode) |
384
- | `/gsd rethink` | Conversational project reorganization |
385
- | `/gsd mcp` | MCP server status and connectivity |
386
- | `/gsd status` | Progress dashboard |
387
- | `/gsd queue` | Queue future milestones (safe during auto mode) |
388
- | `/gsd prefs` | Model selection, timeouts, budget ceiling |
389
- | `/gsd migrate` | Migrate a v1 `.planning` directory to `.gsd` format |
390
- | `/gsd help` | Categorized command reference for all GSD subcommands |
391
- | `/gsd mode` | Switch workflow mode (solo/team) with coordinated defaults |
392
- | `/gsd forensics` | Full-access GSD debugger for auto-mode failure investigation |
393
- | `/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 |
394
451
  | `/gsd doctor` | Runtime health checks — issues surface across widget, visualizer, and reports |
395
- | `/gsd keys` | API key manager — list, add, remove, test, rotate, doctor |
396
- | `/gsd logs` | Browse activity, debug, and metrics logs |
397
- | `/gsd export --html` | Generate HTML report for current or completed milestone |
398
- | `/worktree` (`/wt`) | Git worktree lifecycle — create, switch, merge, remove |
399
- | `/voice` | Toggle real-time speech-to-text (macOS, Linux) |
400
- | `/exit` | Graceful shutdown — saves session state before exiting |
401
- | `/kill` | Kill GSD process immediately |
402
- | `/clear` | Start a new session (alias for `/new`) |
403
- | `Ctrl+Alt+G` | Toggle dashboard overlay |
404
- | `Ctrl+Alt+V` | Toggle voice transcription |
405
- | `Ctrl+Alt+B` | Show background shell processes |
406
- | `Alt+V` | Paste clipboard image (macOS) |
407
- | `gsd config` | Re-run the setup wizard (LLM provider + tool keys) |
408
- | `gsd update` | Update GSD to the latest version |
409
- | `gsd headless [cmd]` | Run `/gsd` commands without TUI (CI, cron, scripts) |
410
- | `gsd headless query` | Instant JSON snapshot — state, next dispatch, costs (no LLM) |
411
- | `gsd --continue` (`-c`) | Resume the most recent session for the current directory |
412
- | `gsd --worktree` (`-w`) | Launch an isolated worktree session for the active milestone |
413
- | `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 |
414
471
 
415
472
  ---
416
473
 
@@ -497,7 +554,7 @@ version: 1
497
554
  models:
498
555
  research: claude-sonnet-4-6
499
556
  planning:
500
- model: claude-opus-4-6
557
+ model: claude-opus-4-7
501
558
  fallbacks:
502
559
  - openrouter/z-ai/glm-5
503
560
  - openrouter/minimax/minimax-m2.5
@@ -519,24 +576,24 @@ auto_report: true
519
576
 
520
577
  **Key settings:**
521
578
 
522
- | Setting | What it controls |
523
- | ---------------------- | ----------------------------------------------------------------------------------------------------- |
524
- | `models.*` | Per-phase model selection — string for a single model, or `{model, fallbacks}` for automatic failover |
525
- | `skill_discovery` | `auto` / `suggest` / `off` — how GSD finds and applies skills |
526
- | `auto_supervisor.*` | Timeout thresholds for auto mode supervision |
527
- | `budget_ceiling` | USD ceiling — auto mode pauses when reached |
528
- | `uat_dispatch` | Enable automatic UAT runs after slice completion |
529
- | `always_use_skills` | Skills to always load when relevant |
530
- | `skill_rules` | Situational rules for skill routing |
531
- | `skill_staleness_days` | Skills unused for N days get deprioritized (default: 60, 0 = disabled) |
532
- | `unique_milestone_ids` | Uses unique milestone names to avoid clashes when working in teams of people |
533
- | `git.isolation` | `none` (default), `worktree`, or `branch` — enable worktree or branch isolation for milestone work |
534
- | `git.manage_gitignore` | Set `false` to prevent GSD from modifying `.gitignore` |
535
- | `verification_commands`| Array of shell commands to run after task execution (e.g., `["npm run lint", "npm run test"]`) |
536
- | `verification_auto_fix`| Auto-retry on verification failures (default: true) |
537
- | `verification_max_retries` | Max retries for verification failures (default: 2) |
538
- | `phases.require_slice_discussion` | Pause auto-mode before each slice for human discussion review |
539
- | `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) |
540
597
 
541
598
  ### Agent Instructions
542
599
 
@@ -553,14 +610,14 @@ Start GSD with `gsd --debug` to enable structured JSONL diagnostic logging. Debu
553
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:
554
611
 
555
612
  ```yaml
556
- token_profile: budget # or balanced (default), quality
613
+ token_profile: budget # or balanced (default), quality
557
614
  ```
558
615
 
559
- | Profile | Savings | What It Does |
560
- |---------|---------|-------------|
561
- | `budget` | 40-60% | Cheap models, skip research/reassess, minimal context inlining |
562
- | `balanced` | 10-20% | Default models, skip slice research, standard context |
563
- | `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 |
564
621
 
565
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.
566
623
 
@@ -572,44 +629,44 @@ See the full [Token Optimization Guide](./docs/user-docs/token-optimization.md)
572
629
 
573
630
  GSD ships with 24 extensions, all loaded automatically:
574
631
 
575
- | Extension | What it provides |
576
- | ---------------------- | ---------------------------------------------------------------------------------------------------------------------- |
577
- | **GSD** | Core workflow engine, auto mode, commands, dashboard |
632
+ | Extension | What it provides |
633
+ | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
634
+ | **GSD** | Core workflow engine, auto mode, commands, dashboard |
578
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 |
579
- | **Search the Web** | Brave Search, Tavily, or Jina page extraction |
580
- | **Google Search** | Gemini-powered web search with AI-synthesized answers |
581
- | **Context7** | Up-to-date library/framework documentation |
582
- | **Background Shell** | Long-running process management with readiness detection |
583
- | **Async Jobs** | Background bash commands with job tracking and cancellation |
584
- | **Subagent** | Delegated tasks with isolated context windows |
585
- | **GitHub** | Full-suite GitHub issues and PR management via `/gh` command |
586
- | **Mac Tools** | macOS native app automation via Accessibility APIs |
587
- | **MCP Client** | Native MCP server integration via @modelcontextprotocol/sdk |
588
- | **Voice** | Real-time speech-to-text transcription (macOS, Linux — Ubuntu 22.04+) |
589
- | **Slash Commands** | Custom command creation |
590
- | **Ask User Questions** | Structured user input with single/multi-select |
591
- | **Secure Env Collect** | Masked secret collection without manual .env editing |
592
- | **Remote Questions** | Route decisions to Slack/Discord when human input is needed in headless/CI mode |
593
- | **Universal Config** | Discover and import MCP servers and rules from other AI coding tools |
594
- | **AWS Auth** | Automatic Bedrock credential refresh for AWS-hosted models |
595
- | **Ollama** | First-class local LLM support via Ollama |
596
- | **Claude Code CLI** | External provider extension for Claude Code CLI |
597
- | **cmux** | Claude multiplexer integration — desktop notifications, sidebar metadata, visual subagent splits |
598
- | **GitHub Sync** | Auto-sync milestones to GitHub Issues, PRs, and Milestones |
599
- | **LSP** | Language Server Protocol — diagnostics, definitions, references, hover, rename |
600
- | **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 |
601
658
 
602
659
  ### Bundled Agents
603
660
 
604
661
  Five specialized subagents for delegated work:
605
662
 
606
- | Agent | Role |
607
- | ------------------- | ------------------------------------------------------------ |
608
- | **Scout** | Fast codebase recon — returns compressed context for handoff |
609
- | **Researcher** | Web research — finds and synthesizes current information |
610
- | **Worker** | General-purpose execution in an isolated context window |
611
- | **JavaScript Pro** | JavaScript-specialized execution and debugging |
612
- | **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 |
613
670
 
614
671
  ---
615
672
 
@@ -756,7 +813,7 @@ In your preferences (`/gsd prefs`), assign different models to different phases:
756
813
  models:
757
814
  research: openrouter/deepseek/deepseek-r1
758
815
  planning:
759
- model: claude-opus-4-6
816
+ model: claude-opus-4-7
760
817
  fallbacks:
761
818
  - openrouter/z-ai/glm-5
762
819
  execution: claude-sonnet-4-6
@@ -769,8 +826,8 @@ Use expensive models where quality matters (planning, complex execution) and che
769
826
 
770
827
  ## Ecosystem
771
828
 
772
- | Project | Description |
773
- | ------- | ----------- |
829
+ | Project | Description |
830
+ | --------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
774
831
  | [GSD2 Config Utility](https://github.com/jeremymcs/gsd2-config) | Standalone configuration tool for managing GSD preferences, providers, and API keys |
775
832
 
776
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));
@@ -47,4 +47,4 @@ export declare function isInteractiveHeadlessTool(toolName: string | undefined):
47
47
  export declare function shouldArmHeadlessIdleTimeout(toolCallCount: number, interactiveToolCount: number): boolean;
48
48
  export declare const FIRE_AND_FORGET_METHODS: Set<string>;
49
49
  export declare const QUICK_COMMANDS: Set<string>;
50
- export declare function isQuickCommand(command: string): boolean;
50
+ export declare function isQuickCommand(command: string, commandArgs?: readonly string[]): boolean;
@@ -100,6 +100,9 @@ export const QUICK_COMMANDS = new Set([
100
100
  'cleanup', 'migrate', 'doctor', 'remote', 'help', 'steer',
101
101
  'triage', 'visualize',
102
102
  ]);
103
- export function isQuickCommand(command) {
104
- return QUICK_COMMANDS.has(command);
103
+ const QUICK_WORKFLOW_SUBCOMMANDS = new Set(['list', 'validate']);
104
+ export function isQuickCommand(command, commandArgs = []) {
105
+ if (QUICK_COMMANDS.has(command))
106
+ return true;
107
+ return command === 'workflow' && QUICK_WORKFLOW_SUBCOMMANDS.has(commandArgs[0] ?? '');
105
108
  }
package/dist/headless.js CHANGED
@@ -606,7 +606,7 @@ async function runHeadlessOnce(options, restartCount) {
606
606
  }
607
607
  }
608
608
  // Quick commands: resolve on first agent_end
609
- if (eventObj.type === 'agent_end' && isQuickCommand(options.command) && !completed) {
609
+ if (eventObj.type === 'agent_end' && isQuickCommand(options.command, options.commandArgs) && !completed) {
610
610
  completed = true;
611
611
  resolveCompletion();
612
612
  return;
@@ -622,10 +622,9 @@ async function runHeadlessOnce(options, restartCount) {
622
622
  // Kill child process — don't await, just fire and exit.
623
623
  // The main flow may be awaiting a promise that resolves when the child dies,
624
624
  // which would race with this handler. Exit synchronously to ensure correct exit code.
625
- try {
626
- client.stop().catch(() => { });
627
- }
628
- catch { }
625
+ void client.stop().catch((error) => {
626
+ process.stderr.write(`[headless] Warning: failed to stop child process: ${error instanceof Error ? error.message : String(error)}\n`);
627
+ });
629
628
  if (timeoutTimer)
630
629
  clearTimeout(timeoutTimer);
631
630
  if (idleTimer)
@@ -707,7 +706,7 @@ async function runHeadlessOnce(options, restartCount) {
707
706
  process.stdin.resume();
708
707
  }
709
708
  // Detect child process crash (read-only exit event subscription — not stdin access)
710
- const internalProcess = client.process;
709
+ const internalProcess = Reflect.get(client, 'process');
711
710
  if (internalProcess) {
712
711
  internalProcess.on('exit', (code) => {
713
712
  if (!completed) {
package/dist/loader.js CHANGED
File without changes