gsd-pi 2.75.0 → 2.76.0-dev.4c866b677

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 (1089) 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/resource-loader.d.ts +1 -1
  11. package/dist/resource-loader.js +2 -8
  12. package/dist/resources/agents/researcher.md +1 -1
  13. package/dist/resources/extensions/ask-user-questions.js +17 -5
  14. package/dist/resources/extensions/claude-code-cli/models.js +9 -0
  15. package/dist/resources/extensions/claude-code-cli/readiness.js +34 -2
  16. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +76 -4
  17. package/dist/resources/extensions/gsd/auto/detect-stuck.js +9 -0
  18. package/dist/resources/extensions/gsd/auto/loop.js +67 -4
  19. package/dist/resources/extensions/gsd/auto/phases.js +122 -54
  20. package/dist/resources/extensions/gsd/auto/resolve.js +1 -1
  21. package/dist/resources/extensions/gsd/auto/run-unit.js +10 -1
  22. package/dist/resources/extensions/gsd/auto/session.js +9 -0
  23. package/dist/resources/extensions/gsd/auto-artifact-paths.js +20 -0
  24. package/dist/resources/extensions/gsd/auto-dashboard.js +37 -8
  25. package/dist/resources/extensions/gsd/auto-direct-dispatch.js +8 -2
  26. package/dist/resources/extensions/gsd/auto-dispatch.js +120 -14
  27. package/dist/resources/extensions/gsd/auto-loop.js +1 -1
  28. package/dist/resources/extensions/gsd/auto-model-selection.js +66 -19
  29. package/dist/resources/extensions/gsd/auto-post-unit.js +10 -8
  30. package/dist/resources/extensions/gsd/auto-prompts.js +190 -46
  31. package/dist/resources/extensions/gsd/auto-recovery.js +57 -0
  32. package/dist/resources/extensions/gsd/auto-start.js +33 -13
  33. package/dist/resources/extensions/gsd/auto-verification.js +36 -3
  34. package/dist/resources/extensions/gsd/auto-worktree.js +71 -2
  35. package/dist/resources/extensions/gsd/auto.js +61 -26
  36. package/dist/resources/extensions/gsd/blocked-models.js +68 -0
  37. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +84 -21
  38. package/dist/resources/extensions/gsd/bootstrap/db-tools.js +45 -23
  39. package/dist/resources/extensions/gsd/bootstrap/memory-tools.js +131 -0
  40. package/dist/resources/extensions/gsd/bootstrap/query-tools.js +29 -0
  41. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +12 -0
  42. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +22 -0
  43. package/dist/resources/extensions/gsd/bootstrap/system-context.js +84 -10
  44. package/dist/resources/extensions/gsd/commands/catalog.js +81 -9
  45. package/dist/resources/extensions/gsd/commands/handlers/core.js +64 -24
  46. package/dist/resources/extensions/gsd/commands/handlers/escalate.js +171 -0
  47. package/dist/resources/extensions/gsd/commands/handlers/onboarding.js +159 -0
  48. package/dist/resources/extensions/gsd/commands/handlers/ops.js +21 -0
  49. package/dist/resources/extensions/gsd/commands/handlers/workflow.js +228 -29
  50. package/dist/resources/extensions/gsd/commands-cmux.js +5 -2
  51. package/dist/resources/extensions/gsd/commands-config.js +5 -0
  52. package/dist/resources/extensions/gsd/commands-debug.js +388 -0
  53. package/dist/resources/extensions/gsd/commands-do.js +1 -0
  54. package/dist/resources/extensions/gsd/commands-extract-learnings.js +200 -77
  55. package/dist/resources/extensions/gsd/commands-handlers.js +21 -2
  56. package/dist/resources/extensions/gsd/commands-memory.js +462 -0
  57. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +40 -12
  58. package/dist/resources/extensions/gsd/commands-scan.js +94 -0
  59. package/dist/resources/extensions/gsd/commands-workflow-templates.js +101 -2
  60. package/dist/resources/extensions/gsd/complexity-classifier.js +5 -3
  61. package/dist/resources/extensions/gsd/custom-workflow-engine.js +74 -54
  62. package/dist/resources/extensions/gsd/db-writer.js +89 -16
  63. package/dist/resources/extensions/gsd/debug-session-store.js +238 -0
  64. package/dist/resources/extensions/gsd/definition-loader.js +7 -0
  65. package/dist/resources/extensions/gsd/docs/preferences-reference.md +9 -9
  66. package/dist/resources/extensions/gsd/doctor-environment.js +2 -1
  67. package/dist/resources/extensions/gsd/doctor-git-checks.js +50 -32
  68. package/dist/resources/extensions/gsd/doctor-proactive.js +4 -1
  69. package/dist/resources/extensions/gsd/doctor-providers.js +96 -22
  70. package/dist/resources/extensions/gsd/doctor-runtime-checks.js +22 -4
  71. package/dist/resources/extensions/gsd/doctor.js +7 -1
  72. package/dist/resources/extensions/gsd/ecosystem/gsd-extension-api.js +1 -0
  73. package/dist/resources/extensions/gsd/error-classifier.js +27 -3
  74. package/dist/resources/extensions/gsd/escalation.js +321 -0
  75. package/dist/resources/extensions/gsd/forensics.js +26 -29
  76. package/dist/resources/extensions/gsd/git-service.js +0 -1
  77. package/dist/resources/extensions/gsd/graph.js +26 -2
  78. package/dist/resources/extensions/gsd/gsd-db.js +576 -35
  79. package/dist/resources/extensions/gsd/health-widget-core.js +42 -14
  80. package/dist/resources/extensions/gsd/health-widget.js +7 -4
  81. package/dist/resources/extensions/gsd/hook-emitter.js +108 -0
  82. package/dist/resources/extensions/gsd/init-wizard.js +101 -46
  83. package/dist/resources/extensions/gsd/markdown-renderer.js +5 -5
  84. package/dist/resources/extensions/gsd/memory-backfill.js +126 -0
  85. package/dist/resources/extensions/gsd/memory-embeddings.js +219 -0
  86. package/dist/resources/extensions/gsd/memory-extractor.js +78 -27
  87. package/dist/resources/extensions/gsd/memory-ingest.js +218 -0
  88. package/dist/resources/extensions/gsd/memory-relations.js +189 -0
  89. package/dist/resources/extensions/gsd/memory-source-store.js +113 -0
  90. package/dist/resources/extensions/gsd/memory-store.js +318 -6
  91. package/dist/resources/extensions/gsd/metrics.js +1 -0
  92. package/dist/resources/extensions/gsd/model-cost-table.js +3 -1
  93. package/dist/resources/extensions/gsd/model-router.js +16 -6
  94. package/dist/resources/extensions/gsd/native-git-bridge.js +137 -5
  95. package/dist/resources/extensions/gsd/notification-overlay.js +7 -22
  96. package/dist/resources/extensions/gsd/notification-widget.js +24 -39
  97. package/dist/resources/extensions/gsd/notifications.js +4 -0
  98. package/dist/resources/extensions/gsd/onboarding-state.js +133 -0
  99. package/dist/resources/extensions/gsd/post-execution-checks.js +27 -11
  100. package/dist/resources/extensions/gsd/pre-execution-checks.js +105 -8
  101. package/dist/resources/extensions/gsd/preferences-models.js +1 -0
  102. package/dist/resources/extensions/gsd/preferences-types.js +2 -1
  103. package/dist/resources/extensions/gsd/preferences-validation.js +42 -8
  104. package/dist/resources/extensions/gsd/preferences.js +10 -10
  105. package/dist/resources/extensions/gsd/prompt-loader.js +22 -7
  106. package/dist/resources/extensions/gsd/prompts/add-tests.md +1 -0
  107. package/dist/resources/extensions/gsd/prompts/complete-milestone.md +4 -1
  108. package/dist/resources/extensions/gsd/prompts/complete-slice.md +2 -2
  109. package/dist/resources/extensions/gsd/prompts/debug-diagnose.md +27 -0
  110. package/dist/resources/extensions/gsd/prompts/debug-session-manager.md +80 -0
  111. package/dist/resources/extensions/gsd/prompts/execute-task.md +16 -3
  112. package/dist/resources/extensions/gsd/prompts/plan-milestone.md +12 -0
  113. package/dist/resources/extensions/gsd/prompts/plan-slice.md +2 -0
  114. package/dist/resources/extensions/gsd/prompts/refine-slice.md +69 -0
  115. package/dist/resources/extensions/gsd/prompts/research-slice.md +1 -0
  116. package/dist/resources/extensions/gsd/prompts/scan.md +79 -0
  117. package/dist/resources/extensions/gsd/prompts/workflow-oneshot.md +26 -0
  118. package/dist/resources/extensions/gsd/python-resolver.js +70 -0
  119. package/dist/resources/extensions/gsd/run-manager.js +37 -17
  120. package/dist/resources/extensions/gsd/safety/file-change-validator.js +1 -1
  121. package/dist/resources/extensions/gsd/setup-catalog.js +75 -0
  122. package/dist/resources/extensions/gsd/state.js +90 -7
  123. package/dist/resources/extensions/gsd/templates/PREFERENCES.md +7 -7
  124. package/dist/resources/extensions/gsd/tools/complete-task.js +80 -0
  125. package/dist/resources/extensions/gsd/tools/memory-tools.js +331 -0
  126. package/dist/resources/extensions/gsd/tools/plan-milestone.js +37 -12
  127. package/dist/resources/extensions/gsd/tools/plan-slice.js +5 -2
  128. package/dist/resources/extensions/gsd/tools/skip-slice.js +78 -0
  129. package/dist/resources/extensions/gsd/tools/workflow-tool-executors.js +14 -0
  130. package/dist/resources/extensions/gsd/uok/flags.js +7 -7
  131. package/dist/resources/extensions/gsd/uok/kernel.js +8 -3
  132. package/dist/resources/extensions/gsd/verification-gate.js +2 -1
  133. package/dist/resources/extensions/gsd/workflow-dispatch.js +64 -0
  134. package/dist/resources/extensions/gsd/workflow-install.js +327 -0
  135. package/dist/resources/extensions/gsd/workflow-manifest.js +8 -0
  136. package/dist/resources/extensions/gsd/workflow-mcp.js +1 -6
  137. package/dist/resources/extensions/gsd/workflow-plugins.js +346 -0
  138. package/dist/resources/extensions/gsd/workflow-projections.js +17 -15
  139. package/dist/resources/extensions/gsd/workflow-templates/accessibility-audit.md +88 -0
  140. package/dist/resources/extensions/gsd/workflow-templates/api-breaking-change.md +117 -0
  141. package/dist/resources/extensions/gsd/workflow-templates/bugfix.md +1 -0
  142. package/dist/resources/extensions/gsd/workflow-templates/changelog-gen.md +82 -0
  143. package/dist/resources/extensions/gsd/workflow-templates/ci-bootstrap.md +144 -0
  144. package/dist/resources/extensions/gsd/workflow-templates/dead-code.md +81 -0
  145. package/dist/resources/extensions/gsd/workflow-templates/dep-upgrade.md +1 -0
  146. package/dist/resources/extensions/gsd/workflow-templates/docs-sync.yaml +76 -0
  147. package/dist/resources/extensions/gsd/workflow-templates/env-audit.yaml +88 -0
  148. package/dist/resources/extensions/gsd/workflow-templates/full-project.md +1 -0
  149. package/dist/resources/extensions/gsd/workflow-templates/hotfix.md +1 -0
  150. package/dist/resources/extensions/gsd/workflow-templates/issue-triage.md +84 -0
  151. package/dist/resources/extensions/gsd/workflow-templates/observability-setup.md +133 -0
  152. package/dist/resources/extensions/gsd/workflow-templates/onboarding-check.md +74 -0
  153. package/dist/resources/extensions/gsd/workflow-templates/performance-audit.md +125 -0
  154. package/dist/resources/extensions/gsd/workflow-templates/pr-review.md +67 -0
  155. package/dist/resources/extensions/gsd/workflow-templates/pr-triage.md +83 -0
  156. package/dist/resources/extensions/gsd/workflow-templates/refactor.md +1 -0
  157. package/dist/resources/extensions/gsd/workflow-templates/registry.json +184 -0
  158. package/dist/resources/extensions/gsd/workflow-templates/release.md +118 -0
  159. package/dist/resources/extensions/gsd/workflow-templates/rename-symbol.yaml +99 -0
  160. package/dist/resources/extensions/gsd/workflow-templates/security-audit.md +1 -0
  161. package/dist/resources/extensions/gsd/workflow-templates/small-feature.md +1 -0
  162. package/dist/resources/extensions/gsd/workflow-templates/spike.md +7 -0
  163. package/dist/resources/extensions/gsd/workflow-templates/test-backfill.yaml +73 -0
  164. package/dist/resources/extensions/gsd/worktree-resolver.js +42 -1
  165. package/dist/resources/extensions/remote-questions/commands.js +380 -0
  166. package/dist/resources/extensions/remote-questions/manager.js +39 -5
  167. package/dist/resources/extensions/remote-questions/telegram-adapter.js +79 -4
  168. package/dist/resources/extensions/search-the-web/command-search-provider.js +5 -1
  169. package/dist/resources/extensions/search-the-web/native-search.js +46 -3
  170. package/dist/resources/extensions/shared/interview-ui.js +189 -1
  171. package/dist/resources/extensions/shared/layout-utils.js +17 -0
  172. package/dist/resources/extensions/shared/rtk-shared.js +47 -0
  173. package/dist/resources/extensions/shared/rtk.js +3 -46
  174. package/dist/resources/skills/api-design/SKILL.md +190 -0
  175. package/dist/resources/skills/create-mcp-server/SKILL.md +121 -0
  176. package/dist/resources/skills/create-workflow/SKILL.md +33 -6
  177. package/dist/resources/skills/decompose-into-slices/SKILL.md +139 -0
  178. package/dist/resources/skills/dependency-upgrade/SKILL.md +158 -0
  179. package/dist/resources/skills/design-an-interface/SKILL.md +102 -0
  180. package/dist/resources/skills/forensics/SKILL.md +153 -0
  181. package/dist/resources/skills/grill-me/SKILL.md +93 -0
  182. package/dist/resources/skills/handoff/SKILL.md +121 -0
  183. package/dist/resources/skills/observability/SKILL.md +174 -0
  184. package/dist/resources/skills/security-review/SKILL.md +181 -0
  185. package/dist/resources/skills/spike-wrap-up/SKILL.md +138 -0
  186. package/dist/resources/skills/tdd/SKILL.md +112 -0
  187. package/dist/resources/skills/verify-before-complete/SKILL.md +97 -0
  188. package/dist/resources/skills/write-docs/SKILL.md +81 -0
  189. package/dist/resources/skills/write-milestone-brief/SKILL.md +135 -0
  190. package/dist/rtk-shared.d.ts +10 -0
  191. package/dist/rtk-shared.js +47 -0
  192. package/dist/rtk.d.ts +2 -6
  193. package/dist/rtk.js +3 -48
  194. package/dist/shared/workspace-types.d.ts +52 -0
  195. package/dist/shared/workspace-types.js +1 -0
  196. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  197. package/dist/update-check.d.ts +10 -0
  198. package/dist/update-check.js +24 -3
  199. package/dist/web/standalone/.next/BUILD_ID +1 -1
  200. package/dist/web/standalone/.next/app-path-routes-manifest.json +18 -18
  201. package/dist/web/standalone/.next/build-manifest.json +4 -4
  202. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  203. package/dist/web/standalone/.next/react-loadable-manifest.json +2 -2
  204. package/dist/web/standalone/.next/required-server-files.json +3 -3
  205. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  206. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  207. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  208. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  209. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  210. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  211. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  212. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  213. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  214. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  215. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  216. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  217. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  218. package/dist/web/standalone/.next/server/app/_not-found.rsc +4 -4
  219. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  220. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  221. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  222. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  223. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  224. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  225. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  226. package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
  227. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  228. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  229. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
  230. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  231. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  232. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
  233. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  234. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  235. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
  236. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  237. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  238. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  239. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  240. package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
  241. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  242. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  243. package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  244. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  245. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  246. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  247. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  248. package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
  249. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  250. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  251. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  252. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  253. package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
  254. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  255. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  256. package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  257. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  258. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  259. package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
  260. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  261. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  262. package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  263. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  264. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  265. package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  266. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  267. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  268. package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
  269. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  270. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  271. package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
  272. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  273. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  274. package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
  275. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  276. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  277. package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
  278. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  279. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  280. package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  281. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  282. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  283. package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  284. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  285. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  286. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  287. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  288. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  289. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  290. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  291. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  292. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  293. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  294. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  295. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  296. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  297. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  298. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  299. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  300. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  301. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  302. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  303. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  304. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  305. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  306. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  307. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  308. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  309. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  310. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  311. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  312. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  313. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  314. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  315. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  316. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  317. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  318. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  319. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  320. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  321. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  322. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  323. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  324. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  325. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  326. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  327. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  328. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  329. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  330. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  331. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  332. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  333. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  334. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  335. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  336. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  337. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  338. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  339. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  340. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  341. package/dist/web/standalone/.next/server/app/index.html +1 -1
  342. package/dist/web/standalone/.next/server/app/index.rsc +5 -5
  343. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  344. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +5 -5
  345. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  346. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +4 -4
  347. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  348. package/dist/web/standalone/.next/server/app/page.js +2 -2
  349. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  350. package/dist/web/standalone/.next/server/app-paths-manifest.json +18 -18
  351. package/dist/web/standalone/.next/server/chunks/63.js +3 -3
  352. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  353. package/dist/web/standalone/.next/server/chunks/7461.js +1 -0
  354. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  355. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  356. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  357. package/dist/web/standalone/.next/server/middleware.js +2 -2
  358. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  359. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  360. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  361. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  362. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  363. package/dist/web/standalone/.next/static/chunks/2826.e59e8578e2e28639.js +9 -0
  364. package/dist/web/standalone/.next/static/chunks/{2008.71ee9230ad78df21.js → 3621.fc7480022c972438.js} +2 -2
  365. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-2f24283c162b6ab3.js → page-f2a7482d42a5614b.js} +1 -1
  366. package/dist/web/standalone/.next/static/chunks/app/{layout-9ecfd95f343793f0.js → layout-a16c7a7ecdf0c2cf.js} +1 -1
  367. package/dist/web/standalone/.next/static/chunks/app/page-5b113fd32bc2a1c3.js +1 -0
  368. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +1 -0
  369. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +1 -0
  370. package/dist/web/standalone/.next/static/chunks/{webpack-b868033a5834586d.js → webpack-5fc74f13a25fa1bb.js} +1 -1
  371. package/dist/web/standalone/.next/static/css/632cd626b1731d88.css +1 -0
  372. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  373. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  374. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  375. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  376. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  377. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  378. package/dist/web/standalone/server.js +1 -1
  379. package/dist/welcome-screen.js +48 -24
  380. package/dist/wizard.js +2 -2
  381. package/dist/worktree-cli.d.ts +6 -5
  382. package/dist/worktree-cli.js +23 -7
  383. package/package.json +3 -3
  384. package/packages/daemon/package.json +2 -2
  385. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  386. package/packages/mcp-server/dist/server.js +12 -10
  387. package/packages/mcp-server/dist/server.js.map +1 -1
  388. package/packages/mcp-server/dist/session-manager.d.ts.map +1 -1
  389. package/packages/mcp-server/dist/session-manager.js +8 -1
  390. package/packages/mcp-server/dist/session-manager.js.map +1 -1
  391. package/packages/mcp-server/dist/workflow-tools.d.ts +2 -1
  392. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  393. package/packages/mcp-server/dist/workflow-tools.js +306 -71
  394. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  395. package/packages/mcp-server/package.json +2 -2
  396. package/packages/mcp-server/src/mcp-server.test.ts +40 -4
  397. package/packages/mcp-server/src/server.ts +12 -10
  398. package/packages/mcp-server/src/session-manager.ts +10 -3
  399. package/packages/mcp-server/src/workflow-tools.test.ts +346 -1
  400. package/packages/mcp-server/src/workflow-tools.ts +359 -75
  401. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  402. package/packages/native/package.json +1 -1
  403. package/packages/native/tsconfig.tsbuildinfo +1 -1
  404. package/packages/pi-agent-core/dist/agent-loop.js +12 -0
  405. package/packages/pi-agent-core/dist/agent-loop.js.map +1 -1
  406. package/packages/pi-agent-core/dist/types.d.ts +30 -0
  407. package/packages/pi-agent-core/dist/types.d.ts.map +1 -1
  408. package/packages/pi-agent-core/dist/types.js.map +1 -1
  409. package/packages/pi-agent-core/package.json +1 -1
  410. package/packages/pi-agent-core/src/agent-loop.ts +14 -0
  411. package/packages/pi-agent-core/src/types.ts +34 -0
  412. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
  413. package/packages/pi-ai/dist/index.d.ts +1 -0
  414. package/packages/pi-ai/dist/index.d.ts.map +1 -1
  415. package/packages/pi-ai/dist/index.js +1 -0
  416. package/packages/pi-ai/dist/index.js.map +1 -1
  417. package/packages/pi-ai/dist/models/capability-patches.d.ts.map +1 -1
  418. package/packages/pi-ai/dist/models/capability-patches.js +3 -2
  419. package/packages/pi-ai/dist/models/capability-patches.js.map +1 -1
  420. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts +68 -0
  421. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts.map +1 -1
  422. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js +68 -0
  423. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js.map +1 -1
  424. package/packages/pi-ai/dist/models/generated/anthropic.d.ts +17 -0
  425. package/packages/pi-ai/dist/models/generated/anthropic.d.ts.map +1 -1
  426. package/packages/pi-ai/dist/models/generated/anthropic.js +17 -0
  427. package/packages/pi-ai/dist/models/generated/anthropic.js.map +1 -1
  428. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts +17 -0
  429. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts.map +1 -1
  430. package/packages/pi-ai/dist/models/generated/google-antigravity.js +17 -0
  431. package/packages/pi-ai/dist/models/generated/google-antigravity.js.map +1 -1
  432. package/packages/pi-ai/dist/models/generated/groq.d.ts +0 -153
  433. package/packages/pi-ai/dist/models/generated/groq.d.ts.map +1 -1
  434. package/packages/pi-ai/dist/models/generated/groq.js +0 -153
  435. package/packages/pi-ai/dist/models/generated/groq.js.map +1 -1
  436. package/packages/pi-ai/dist/models/generated/index.d.ts +136 -153
  437. package/packages/pi-ai/dist/models/generated/index.d.ts.map +1 -1
  438. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts +17 -0
  439. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts.map +1 -1
  440. package/packages/pi-ai/dist/models/generated/openai-codex.js +17 -0
  441. package/packages/pi-ai/dist/models/generated/openai-codex.js.map +1 -1
  442. package/packages/pi-ai/dist/models/generated/openrouter.d.ts +17 -0
  443. package/packages/pi-ai/dist/models/generated/openrouter.d.ts.map +1 -1
  444. package/packages/pi-ai/dist/models/generated/openrouter.js +17 -0
  445. package/packages/pi-ai/dist/models/generated/openrouter.js.map +1 -1
  446. package/packages/pi-ai/dist/models.generated.test.js +17 -0
  447. package/packages/pi-ai/dist/models.generated.test.js.map +1 -1
  448. package/packages/pi-ai/dist/providers/amazon-bedrock.d.ts +22 -1
  449. package/packages/pi-ai/dist/providers/amazon-bedrock.d.ts.map +1 -1
  450. package/packages/pi-ai/dist/providers/amazon-bedrock.js +40 -6
  451. package/packages/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
  452. package/packages/pi-ai/dist/providers/amazon-bedrock.test.d.ts +2 -0
  453. package/packages/pi-ai/dist/providers/amazon-bedrock.test.d.ts.map +1 -0
  454. package/packages/pi-ai/dist/providers/amazon-bedrock.test.js +106 -0
  455. package/packages/pi-ai/dist/providers/amazon-bedrock.test.js.map +1 -0
  456. package/packages/pi-ai/dist/providers/anthropic-auth.test.js +42 -1
  457. package/packages/pi-ai/dist/providers/anthropic-auth.test.js.map +1 -1
  458. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.d.ts +2 -0
  459. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.d.ts.map +1 -0
  460. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js +13 -0
  461. package/packages/pi-ai/dist/providers/anthropic-bearer-auth.test.js.map +1 -0
  462. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts +20 -1
  463. package/packages/pi-ai/dist/providers/anthropic-shared.d.ts.map +1 -1
  464. package/packages/pi-ai/dist/providers/anthropic-shared.js +32 -2
  465. package/packages/pi-ai/dist/providers/anthropic-shared.js.map +1 -1
  466. package/packages/pi-ai/dist/providers/anthropic-shared.test.js +12 -1
  467. package/packages/pi-ai/dist/providers/anthropic-shared.test.js.map +1 -1
  468. package/packages/pi-ai/dist/providers/anthropic.d.ts +11 -0
  469. package/packages/pi-ai/dist/providers/anthropic.d.ts.map +1 -1
  470. package/packages/pi-ai/dist/providers/anthropic.js +23 -2
  471. package/packages/pi-ai/dist/providers/anthropic.js.map +1 -1
  472. package/packages/pi-ai/dist/providers/api-family.d.ts +27 -0
  473. package/packages/pi-ai/dist/providers/api-family.d.ts.map +1 -0
  474. package/packages/pi-ai/dist/providers/api-family.js +47 -0
  475. package/packages/pi-ai/dist/providers/api-family.js.map +1 -0
  476. package/packages/pi-ai/dist/providers/api-family.test.d.ts +2 -0
  477. package/packages/pi-ai/dist/providers/api-family.test.d.ts.map +1 -0
  478. package/packages/pi-ai/dist/providers/api-family.test.js +101 -0
  479. package/packages/pi-ai/dist/providers/api-family.test.js.map +1 -0
  480. package/packages/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
  481. package/packages/pi-ai/dist/providers/openai-completions.js +60 -15
  482. package/packages/pi-ai/dist/providers/openai-completions.js.map +1 -1
  483. package/packages/pi-ai/dist/providers/think-tag-parser.d.ts +17 -0
  484. package/packages/pi-ai/dist/providers/think-tag-parser.d.ts.map +1 -0
  485. package/packages/pi-ai/dist/providers/think-tag-parser.js +75 -0
  486. package/packages/pi-ai/dist/providers/think-tag-parser.js.map +1 -0
  487. package/packages/pi-ai/dist/providers/think-tag-parser.test.d.ts +2 -0
  488. package/packages/pi-ai/dist/providers/think-tag-parser.test.d.ts.map +1 -0
  489. package/packages/pi-ai/dist/providers/think-tag-parser.test.js +41 -0
  490. package/packages/pi-ai/dist/providers/think-tag-parser.test.js.map +1 -0
  491. package/packages/pi-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -1
  492. package/packages/pi-ai/dist/utils/oauth/github-copilot.js +12 -2
  493. package/packages/pi-ai/dist/utils/oauth/github-copilot.js.map +1 -1
  494. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.js +164 -14
  495. package/packages/pi-ai/dist/utils/oauth/github-copilot.test.js.map +1 -1
  496. package/packages/pi-ai/dist/utils/oauth/google-antigravity.d.ts.map +1 -1
  497. package/packages/pi-ai/dist/utils/oauth/google-antigravity.js +15 -3
  498. package/packages/pi-ai/dist/utils/oauth/google-antigravity.js.map +1 -1
  499. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.d.ts +2 -0
  500. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.d.ts.map +1 -0
  501. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.js +67 -0
  502. package/packages/pi-ai/dist/utils/oauth/google-antigravity.test.js.map +1 -0
  503. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.d.ts.map +1 -1
  504. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.js +16 -3
  505. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.js.map +1 -1
  506. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.d.ts +2 -0
  507. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.d.ts.map +1 -0
  508. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.js +67 -0
  509. package/packages/pi-ai/dist/utils/oauth/google-gemini-cli.test.js.map +1 -0
  510. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.d.ts +2 -0
  511. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.d.ts.map +1 -0
  512. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.js +289 -0
  513. package/packages/pi-ai/dist/utils/oauth/oauth-providers.test.js.map +1 -0
  514. package/packages/pi-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -1
  515. package/packages/pi-ai/dist/utils/oauth/openai-codex.js +12 -0
  516. package/packages/pi-ai/dist/utils/oauth/openai-codex.js.map +1 -1
  517. package/packages/pi-ai/package.json +2 -2
  518. package/packages/pi-ai/scripts/generate-models.ts +50 -0
  519. package/packages/pi-ai/src/index.ts +1 -0
  520. package/packages/pi-ai/src/models/capability-patches.ts +5 -2
  521. package/packages/pi-ai/src/models/generated/amazon-bedrock.ts +68 -0
  522. package/packages/pi-ai/src/models/generated/anthropic.ts +17 -0
  523. package/packages/pi-ai/src/models/generated/google-antigravity.ts +17 -0
  524. package/packages/pi-ai/src/models/generated/groq.ts +0 -153
  525. package/packages/pi-ai/src/models/generated/openai-codex.ts +17 -0
  526. package/packages/pi-ai/src/models/generated/openrouter.ts +17 -0
  527. package/packages/pi-ai/src/models.generated.test.ts +17 -0
  528. package/packages/pi-ai/src/providers/amazon-bedrock.test.ts +164 -0
  529. package/packages/pi-ai/src/providers/amazon-bedrock.ts +41 -7
  530. package/packages/pi-ai/src/providers/anthropic-auth.test.ts +47 -1
  531. package/packages/pi-ai/src/providers/anthropic-bearer-auth.test.ts +26 -0
  532. package/packages/pi-ai/src/providers/anthropic-shared.test.ts +15 -1
  533. package/packages/pi-ai/src/providers/anthropic-shared.ts +36 -3
  534. package/packages/pi-ai/src/providers/anthropic.ts +25 -2
  535. package/packages/pi-ai/src/providers/api-family.test.ts +129 -0
  536. package/packages/pi-ai/src/providers/api-family.ts +57 -0
  537. package/packages/pi-ai/src/providers/openai-completions.ts +57 -16
  538. package/packages/pi-ai/src/providers/think-tag-parser.test.ts +44 -0
  539. package/packages/pi-ai/src/providers/think-tag-parser.ts +94 -0
  540. package/packages/pi-ai/src/utils/oauth/github-copilot.test.ts +200 -23
  541. package/packages/pi-ai/src/utils/oauth/github-copilot.ts +12 -2
  542. package/packages/pi-ai/src/utils/oauth/google-antigravity.test.ts +84 -0
  543. package/packages/pi-ai/src/utils/oauth/google-antigravity.ts +15 -5
  544. package/packages/pi-ai/src/utils/oauth/google-gemini-cli.test.ts +84 -0
  545. package/packages/pi-ai/src/utils/oauth/google-gemini-cli.ts +16 -5
  546. package/packages/pi-ai/src/utils/oauth/oauth-providers.test.ts +363 -0
  547. package/packages/pi-ai/src/utils/oauth/openai-codex.ts +15 -0
  548. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  549. package/packages/pi-coding-agent/dist/cli/args.d.ts +6 -0
  550. package/packages/pi-coding-agent/dist/cli/args.d.ts.map +1 -1
  551. package/packages/pi-coding-agent/dist/cli/args.js +14 -4
  552. package/packages/pi-coding-agent/dist/cli/args.js.map +1 -1
  553. package/packages/pi-coding-agent/dist/cli/args.test.d.ts +2 -0
  554. package/packages/pi-coding-agent/dist/cli/args.test.d.ts.map +1 -0
  555. package/packages/pi-coding-agent/dist/cli/args.test.js +38 -0
  556. package/packages/pi-coding-agent/dist/cli/args.test.js.map +1 -0
  557. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.d.ts +2 -0
  558. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.d.ts.map +1 -0
  559. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js +38 -0
  560. package/packages/pi-coding-agent/dist/core/agent-session-abort-order.test.js.map +1 -0
  561. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  562. package/packages/pi-coding-agent/dist/core/agent-session.js +25 -2
  563. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  564. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts +14 -0
  565. package/packages/pi-coding-agent/dist/core/auth-storage.d.ts.map +1 -1
  566. package/packages/pi-coding-agent/dist/core/auth-storage.js +34 -0
  567. package/packages/pi-coding-agent/dist/core/auth-storage.js.map +1 -1
  568. package/packages/pi-coding-agent/dist/core/auth-storage.test.js +74 -0
  569. package/packages/pi-coding-agent/dist/core/auth-storage.test.js.map +1 -1
  570. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +4 -1
  571. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  572. package/packages/pi-coding-agent/dist/core/extensions/index.d.ts +1 -1
  573. package/packages/pi-coding-agent/dist/core/extensions/index.d.ts.map +1 -1
  574. package/packages/pi-coding-agent/dist/core/extensions/index.js.map +1 -1
  575. package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
  576. package/packages/pi-coding-agent/dist/core/extensions/loader.js +4 -0
  577. package/packages/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
  578. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts +34 -2
  579. package/packages/pi-coding-agent/dist/core/extensions/runner.d.ts.map +1 -1
  580. package/packages/pi-coding-agent/dist/core/extensions/runner.js +233 -0
  581. package/packages/pi-coding-agent/dist/core/extensions/runner.js.map +1 -1
  582. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts +200 -3
  583. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
  584. package/packages/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
  585. package/packages/pi-coding-agent/dist/core/hooks-runner.d.ts +53 -0
  586. package/packages/pi-coding-agent/dist/core/hooks-runner.d.ts.map +1 -0
  587. package/packages/pi-coding-agent/dist/core/hooks-runner.js +337 -0
  588. package/packages/pi-coding-agent/dist/core/hooks-runner.js.map +1 -0
  589. package/packages/pi-coding-agent/dist/core/hooks-runner.test.d.ts +2 -0
  590. package/packages/pi-coding-agent/dist/core/hooks-runner.test.d.ts.map +1 -0
  591. package/packages/pi-coding-agent/dist/core/hooks-runner.test.js +234 -0
  592. package/packages/pi-coding-agent/dist/core/hooks-runner.test.js.map +1 -0
  593. package/packages/pi-coding-agent/dist/core/index.d.ts +1 -0
  594. package/packages/pi-coding-agent/dist/core/index.d.ts.map +1 -1
  595. package/packages/pi-coding-agent/dist/core/index.js +1 -0
  596. package/packages/pi-coding-agent/dist/core/index.js.map +1 -1
  597. package/packages/pi-coding-agent/dist/core/model-discovery.d.ts +3 -1
  598. package/packages/pi-coding-agent/dist/core/model-discovery.d.ts.map +1 -1
  599. package/packages/pi-coding-agent/dist/core/model-discovery.js +92 -12
  600. package/packages/pi-coding-agent/dist/core/model-discovery.js.map +1 -1
  601. package/packages/pi-coding-agent/dist/core/model-discovery.test.js +16 -1
  602. package/packages/pi-coding-agent/dist/core/model-discovery.test.js.map +1 -1
  603. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.d.ts +2 -0
  604. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.d.ts.map +1 -0
  605. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.js +40 -0
  606. package/packages/pi-coding-agent/dist/core/model-registry-auth-header.test.js.map +1 -0
  607. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js +32 -0
  608. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js.map +1 -1
  609. package/packages/pi-coding-agent/dist/core/model-registry-discovery.test.js +61 -1
  610. package/packages/pi-coding-agent/dist/core/model-registry-discovery.test.js.map +1 -1
  611. package/packages/pi-coding-agent/dist/core/model-registry.d.ts +5 -0
  612. package/packages/pi-coding-agent/dist/core/model-registry.d.ts.map +1 -1
  613. package/packages/pi-coding-agent/dist/core/model-registry.js +76 -10
  614. package/packages/pi-coding-agent/dist/core/model-registry.js.map +1 -1
  615. package/packages/pi-coding-agent/dist/core/retry-handler.d.ts.map +1 -1
  616. package/packages/pi-coding-agent/dist/core/retry-handler.js +4 -1
  617. package/packages/pi-coding-agent/dist/core/retry-handler.js.map +1 -1
  618. package/packages/pi-coding-agent/dist/core/sdk.d.ts +10 -0
  619. package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  620. package/packages/pi-coding-agent/dist/core/sdk.js +39 -1
  621. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  622. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +55 -0
  623. package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
  624. package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
  625. package/packages/pi-coding-agent/dist/core/skill-tool.test.js +2 -2
  626. package/packages/pi-coding-agent/dist/core/skill-tool.test.js.map +1 -1
  627. package/packages/pi-coding-agent/dist/index.d.ts +1 -1
  628. package/packages/pi-coding-agent/dist/index.d.ts.map +1 -1
  629. package/packages/pi-coding-agent/dist/index.js.map +1 -1
  630. package/packages/pi-coding-agent/dist/main.d.ts.map +1 -1
  631. package/packages/pi-coding-agent/dist/main.js +3 -0
  632. package/packages/pi-coding-agent/dist/main.js.map +1 -1
  633. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts +1 -1
  634. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -1
  635. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +21 -10
  636. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -1
  637. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
  638. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js +48 -34
  639. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
  640. package/packages/pi-coding-agent/dist/modes/interactive/components/provider-manager.d.ts.map +1 -1
  641. package/packages/pi-coding-agent/dist/modes/interactive/components/provider-manager.js +13 -7
  642. package/packages/pi-coding-agent/dist/modes/interactive/components/provider-manager.js.map +1 -1
  643. package/packages/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.d.ts +7 -6
  644. package/packages/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
  645. package/packages/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.js +29 -21
  646. package/packages/pi-coding-agent/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
  647. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts +4 -0
  648. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  649. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +83 -33
  650. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  651. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts +70 -0
  652. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  653. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js +77 -0
  654. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  655. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +1 -66
  656. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  657. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +1 -75
  658. package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
  659. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts +1 -1
  660. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  661. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +192 -24
  662. package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
  663. package/packages/pi-coding-agent/package.json +1 -1
  664. package/packages/pi-coding-agent/src/cli/args.test.ts +44 -0
  665. package/packages/pi-coding-agent/src/cli/args.ts +21 -6
  666. package/packages/pi-coding-agent/src/core/agent-session-abort-order.test.ts +56 -0
  667. package/packages/pi-coding-agent/src/core/agent-session.ts +27 -2
  668. package/packages/pi-coding-agent/src/core/auth-storage.test.ts +83 -0
  669. package/packages/pi-coding-agent/src/core/auth-storage.ts +35 -0
  670. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +4 -1
  671. package/packages/pi-coding-agent/src/core/extensions/index.ts +16 -0
  672. package/packages/pi-coding-agent/src/core/extensions/loader.ts +5 -0
  673. package/packages/pi-coding-agent/src/core/extensions/runner.ts +353 -1
  674. package/packages/pi-coding-agent/src/core/extensions/types.ts +253 -2
  675. package/packages/pi-coding-agent/src/core/hooks-runner.test.ts +269 -0
  676. package/packages/pi-coding-agent/src/core/hooks-runner.ts +460 -0
  677. package/packages/pi-coding-agent/src/core/index.ts +10 -0
  678. package/packages/pi-coding-agent/src/core/model-discovery.test.ts +19 -0
  679. package/packages/pi-coding-agent/src/core/model-discovery.ts +99 -12
  680. package/packages/pi-coding-agent/src/core/model-registry-auth-header.test.ts +44 -0
  681. package/packages/pi-coding-agent/src/core/model-registry-auth-mode.test.ts +37 -1
  682. package/packages/pi-coding-agent/src/core/model-registry-discovery.test.ts +75 -0
  683. package/packages/pi-coding-agent/src/core/model-registry.ts +86 -10
  684. package/packages/pi-coding-agent/src/core/retry-handler.ts +4 -1
  685. package/packages/pi-coding-agent/src/core/sdk.ts +58 -1
  686. package/packages/pi-coding-agent/src/core/settings-manager.ts +57 -0
  687. package/packages/pi-coding-agent/src/core/skill-tool.test.ts +2 -2
  688. package/packages/pi-coding-agent/src/index.ts +16 -0
  689. package/packages/pi-coding-agent/src/main.ts +4 -0
  690. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +24 -12
  691. package/packages/pi-coding-agent/src/modes/interactive/components/footer.ts +53 -31
  692. package/packages/pi-coding-agent/src/modes/interactive/components/provider-manager.ts +16 -7
  693. package/packages/pi-coding-agent/src/modes/interactive/components/skill-invocation-message.ts +36 -22
  694. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +88 -36
  695. package/packages/pi-coding-agent/src/modes/interactive/theme/theme-schema.ts +83 -0
  696. package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +2 -83
  697. package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +208 -27
  698. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  699. package/packages/pi-tui/package.json +1 -1
  700. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
  701. package/packages/rpc-client/package.json +1 -1
  702. package/packages/rpc-client/tsconfig.tsbuildinfo +1 -1
  703. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts +70 -0
  704. package/pkg/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -0
  705. package/pkg/dist/modes/interactive/theme/theme-schema.js +77 -0
  706. package/pkg/dist/modes/interactive/theme/theme-schema.js.map +1 -0
  707. package/pkg/dist/modes/interactive/theme/theme.d.ts +1 -66
  708. package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  709. package/pkg/dist/modes/interactive/theme/theme.js +1 -75
  710. package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
  711. package/pkg/dist/modes/interactive/theme/themes.d.ts +1 -1
  712. package/pkg/dist/modes/interactive/theme/themes.d.ts.map +1 -1
  713. package/pkg/dist/modes/interactive/theme/themes.js +192 -24
  714. package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
  715. package/pkg/package.json +1 -1
  716. package/scripts/link-workspace-packages.cjs +1 -0
  717. package/src/resources/agents/researcher.md +1 -1
  718. package/src/resources/extensions/ask-user-questions.ts +24 -6
  719. package/src/resources/extensions/claude-code-cli/models.ts +9 -0
  720. package/src/resources/extensions/claude-code-cli/readiness.ts +36 -2
  721. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +94 -4
  722. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +84 -0
  723. package/src/resources/extensions/gsd/auto/detect-stuck.ts +10 -0
  724. package/src/resources/extensions/gsd/auto/loop-deps.ts +3 -9
  725. package/src/resources/extensions/gsd/auto/loop.ts +109 -3
  726. package/src/resources/extensions/gsd/auto/phases.ts +150 -66
  727. package/src/resources/extensions/gsd/auto/resolve.ts +1 -1
  728. package/src/resources/extensions/gsd/auto/run-unit.ts +11 -1
  729. package/src/resources/extensions/gsd/auto/session.ts +14 -1
  730. package/src/resources/extensions/gsd/auto-artifact-paths.ts +20 -0
  731. package/src/resources/extensions/gsd/auto-dashboard.ts +46 -5
  732. package/src/resources/extensions/gsd/auto-direct-dispatch.ts +15 -2
  733. package/src/resources/extensions/gsd/auto-dispatch.ts +141 -9
  734. package/src/resources/extensions/gsd/auto-loop.ts +1 -1
  735. package/src/resources/extensions/gsd/auto-model-selection.ts +87 -18
  736. package/src/resources/extensions/gsd/auto-post-unit.ts +10 -8
  737. package/src/resources/extensions/gsd/auto-prompts.ts +232 -47
  738. package/src/resources/extensions/gsd/auto-recovery.ts +63 -1
  739. package/src/resources/extensions/gsd/auto-start.ts +36 -16
  740. package/src/resources/extensions/gsd/auto-verification.ts +36 -3
  741. package/src/resources/extensions/gsd/auto-worktree.ts +81 -1
  742. package/src/resources/extensions/gsd/auto.ts +65 -29
  743. package/src/resources/extensions/gsd/blocked-models.ts +98 -0
  744. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +105 -21
  745. package/src/resources/extensions/gsd/bootstrap/db-tools.ts +46 -24
  746. package/src/resources/extensions/gsd/bootstrap/memory-tools.ts +163 -0
  747. package/src/resources/extensions/gsd/bootstrap/query-tools.ts +31 -0
  748. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +15 -0
  749. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +22 -0
  750. package/src/resources/extensions/gsd/bootstrap/system-context.ts +89 -10
  751. package/src/resources/extensions/gsd/commands/catalog.ts +74 -9
  752. package/src/resources/extensions/gsd/commands/handlers/core.ts +69 -27
  753. package/src/resources/extensions/gsd/commands/handlers/escalate.ts +216 -0
  754. package/src/resources/extensions/gsd/commands/handlers/onboarding.ts +196 -0
  755. package/src/resources/extensions/gsd/commands/handlers/ops.ts +21 -0
  756. package/src/resources/extensions/gsd/commands/handlers/workflow.ts +279 -29
  757. package/src/resources/extensions/gsd/commands-cmux.ts +6 -2
  758. package/src/resources/extensions/gsd/commands-config.ts +10 -0
  759. package/src/resources/extensions/gsd/commands-debug.ts +484 -0
  760. package/src/resources/extensions/gsd/commands-do.ts +1 -0
  761. package/src/resources/extensions/gsd/commands-extract-learnings.ts +262 -78
  762. package/src/resources/extensions/gsd/commands-handlers.ts +19 -2
  763. package/src/resources/extensions/gsd/commands-memory.ts +551 -0
  764. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +49 -12
  765. package/src/resources/extensions/gsd/commands-scan.ts +125 -0
  766. package/src/resources/extensions/gsd/commands-workflow-templates.ts +129 -2
  767. package/src/resources/extensions/gsd/complexity-classifier.ts +5 -3
  768. package/src/resources/extensions/gsd/custom-workflow-engine.ts +85 -60
  769. package/src/resources/extensions/gsd/db-writer.ts +91 -17
  770. package/src/resources/extensions/gsd/debug-session-store.ts +377 -0
  771. package/src/resources/extensions/gsd/definition-loader.ts +7 -0
  772. package/src/resources/extensions/gsd/docs/preferences-reference.md +9 -9
  773. package/src/resources/extensions/gsd/doctor-environment.ts +2 -1
  774. package/src/resources/extensions/gsd/doctor-git-checks.ts +51 -30
  775. package/src/resources/extensions/gsd/doctor-proactive.ts +4 -1
  776. package/src/resources/extensions/gsd/doctor-providers.ts +109 -26
  777. package/src/resources/extensions/gsd/doctor-runtime-checks.ts +23 -4
  778. package/src/resources/extensions/gsd/doctor-types.ts +1 -0
  779. package/src/resources/extensions/gsd/doctor.ts +7 -1
  780. package/src/resources/extensions/gsd/ecosystem/gsd-extension-api.ts +2 -0
  781. package/src/resources/extensions/gsd/error-classifier.ts +32 -3
  782. package/src/resources/extensions/gsd/escalation.ts +367 -0
  783. package/src/resources/extensions/gsd/forensics.ts +25 -29
  784. package/src/resources/extensions/gsd/git-service.ts +0 -1
  785. package/src/resources/extensions/gsd/graph.ts +33 -3
  786. package/src/resources/extensions/gsd/gsd-db.ts +682 -35
  787. package/src/resources/extensions/gsd/health-widget-core.ts +43 -14
  788. package/src/resources/extensions/gsd/health-widget.ts +7 -3
  789. package/src/resources/extensions/gsd/hook-emitter.ts +188 -0
  790. package/src/resources/extensions/gsd/init-wizard.ts +102 -55
  791. package/src/resources/extensions/gsd/markdown-renderer.ts +5 -5
  792. package/src/resources/extensions/gsd/memory-backfill.ts +140 -0
  793. package/src/resources/extensions/gsd/memory-embeddings.ts +235 -0
  794. package/src/resources/extensions/gsd/memory-extractor.ts +100 -34
  795. package/src/resources/extensions/gsd/memory-ingest.ts +286 -0
  796. package/src/resources/extensions/gsd/memory-relations.ts +240 -0
  797. package/src/resources/extensions/gsd/memory-source-store.ts +138 -0
  798. package/src/resources/extensions/gsd/memory-store.ts +377 -7
  799. package/src/resources/extensions/gsd/metrics.ts +1 -0
  800. package/src/resources/extensions/gsd/model-cost-table.ts +3 -1
  801. package/src/resources/extensions/gsd/model-router.ts +25 -6
  802. package/src/resources/extensions/gsd/native-git-bridge.ts +134 -6
  803. package/src/resources/extensions/gsd/notification-overlay.ts +9 -19
  804. package/src/resources/extensions/gsd/notification-widget.ts +25 -43
  805. package/src/resources/extensions/gsd/notifications.ts +6 -0
  806. package/src/resources/extensions/gsd/onboarding-state.ts +146 -0
  807. package/src/resources/extensions/gsd/post-execution-checks.ts +37 -14
  808. package/src/resources/extensions/gsd/pre-execution-checks.ts +106 -12
  809. package/src/resources/extensions/gsd/preferences-models.ts +1 -0
  810. package/src/resources/extensions/gsd/preferences-types.ts +10 -2
  811. package/src/resources/extensions/gsd/preferences-validation.ts +33 -7
  812. package/src/resources/extensions/gsd/preferences.ts +10 -10
  813. package/src/resources/extensions/gsd/prompt-loader.ts +30 -7
  814. package/src/resources/extensions/gsd/prompts/add-tests.md +1 -0
  815. package/src/resources/extensions/gsd/prompts/complete-milestone.md +4 -1
  816. package/src/resources/extensions/gsd/prompts/complete-slice.md +2 -2
  817. package/src/resources/extensions/gsd/prompts/debug-diagnose.md +27 -0
  818. package/src/resources/extensions/gsd/prompts/debug-session-manager.md +80 -0
  819. package/src/resources/extensions/gsd/prompts/execute-task.md +16 -3
  820. package/src/resources/extensions/gsd/prompts/plan-milestone.md +12 -0
  821. package/src/resources/extensions/gsd/prompts/plan-slice.md +2 -0
  822. package/src/resources/extensions/gsd/prompts/refine-slice.md +69 -0
  823. package/src/resources/extensions/gsd/prompts/research-slice.md +1 -0
  824. package/src/resources/extensions/gsd/prompts/scan.md +79 -0
  825. package/src/resources/extensions/gsd/prompts/workflow-oneshot.md +26 -0
  826. package/src/resources/extensions/gsd/python-resolver.ts +76 -0
  827. package/src/resources/extensions/gsd/run-manager.ts +53 -19
  828. package/src/resources/extensions/gsd/safety/file-change-validator.ts +1 -1
  829. package/src/resources/extensions/gsd/setup-catalog.ts +105 -0
  830. package/src/resources/extensions/gsd/state.ts +95 -6
  831. package/src/resources/extensions/gsd/templates/PREFERENCES.md +7 -7
  832. package/src/resources/extensions/gsd/tests/agent-end-retry.test.ts +1 -34
  833. package/src/resources/extensions/gsd/tests/artifact-corruption-2630.test.ts +7 -0
  834. package/src/resources/extensions/gsd/tests/auto-dashboard.test.ts +49 -0
  835. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +45 -31
  836. package/src/resources/extensions/gsd/tests/auto-migrating-recovery.test.ts +63 -0
  837. package/src/resources/extensions/gsd/tests/auto-model-selection.test.ts +107 -1
  838. package/src/resources/extensions/gsd/tests/auto-prompts-fallback.test.ts +35 -0
  839. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +123 -1
  840. package/src/resources/extensions/gsd/tests/auto-start-model-capture.test.ts +33 -3
  841. package/src/resources/extensions/gsd/tests/auto-thinking-restore.test.ts +38 -0
  842. package/src/resources/extensions/gsd/tests/auto-wrapup-inflight-guard.test.ts +39 -0
  843. package/src/resources/extensions/gsd/tests/autocomplete-regressions-1675.test.ts +39 -0
  844. package/src/resources/extensions/gsd/tests/blocked-models.test.ts +98 -0
  845. package/src/resources/extensions/gsd/tests/bundled-skill-triggers.test.ts +54 -0
  846. package/src/resources/extensions/gsd/tests/commands-do.test.ts +48 -0
  847. package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +335 -21
  848. package/src/resources/extensions/gsd/tests/commands-scan.test.ts +351 -0
  849. package/src/resources/extensions/gsd/tests/commands-workflow-custom.test.ts +8 -6
  850. package/src/resources/extensions/gsd/tests/complete-slice.test.ts +6 -8
  851. package/src/resources/extensions/gsd/tests/complete-task.test.ts +2 -2
  852. package/src/resources/extensions/gsd/tests/complexity-classifier.test.ts +3 -3
  853. package/src/resources/extensions/gsd/tests/custom-workflow-engine.test.ts +63 -0
  854. package/src/resources/extensions/gsd/tests/debug-command-handler.test.ts +905 -0
  855. package/src/resources/extensions/gsd/tests/debug-command-lifecycle.integration.test.ts +1229 -0
  856. package/src/resources/extensions/gsd/tests/debug-session-store.test.ts +565 -0
  857. package/src/resources/extensions/gsd/tests/derive-state-db.test.ts +42 -0
  858. package/src/resources/extensions/gsd/tests/derive-state-helpers.test.ts +8 -4
  859. package/src/resources/extensions/gsd/tests/discuss-milestone-structured-questions.test.ts +64 -0
  860. package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +67 -0
  861. package/src/resources/extensions/gsd/tests/doctor-providers.test.ts +175 -17
  862. package/src/resources/extensions/gsd/tests/enhanced-verification-integration.test.ts +5 -0
  863. package/src/resources/extensions/gsd/tests/ensure-db-open.test.ts +306 -1
  864. package/src/resources/extensions/gsd/tests/escalation.test.ts +818 -0
  865. package/src/resources/extensions/gsd/tests/file-change-validator.test.ts +20 -0
  866. package/src/resources/extensions/gsd/tests/finalize-timeout-guard.test.ts +29 -12
  867. package/src/resources/extensions/gsd/tests/flat-rate-routing-guard.test.ts +145 -8
  868. package/src/resources/extensions/gsd/tests/forensics-hook-key-parse.test.ts +74 -0
  869. package/src/resources/extensions/gsd/tests/freeform-decisions.test.ts +62 -0
  870. package/src/resources/extensions/gsd/tests/graph-operations.test.ts +0 -4
  871. package/src/resources/extensions/gsd/tests/gsd-db.test.ts +131 -1
  872. package/src/resources/extensions/gsd/tests/health-widget.test.ts +8 -2
  873. package/src/resources/extensions/gsd/tests/init-prefs-routing.test.ts +190 -0
  874. package/src/resources/extensions/gsd/tests/init-wizard.test.ts +27 -0
  875. package/src/resources/extensions/gsd/tests/integration/doctor-git-symlink-cwd.test.ts +90 -0
  876. package/src/resources/extensions/gsd/tests/integration/doctor-git.test.ts +117 -0
  877. package/src/resources/extensions/gsd/tests/integration/doctor-proactive.test.ts +44 -0
  878. package/src/resources/extensions/gsd/tests/integration/doctor-runtime.test.ts +68 -1
  879. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +109 -11
  880. package/src/resources/extensions/gsd/tests/integration/idle-recovery.test.ts +51 -0
  881. package/src/resources/extensions/gsd/tests/integration/integration-proof.test.ts +2 -2
  882. package/src/resources/extensions/gsd/tests/integration/test-isolation.ts +53 -0
  883. package/src/resources/extensions/gsd/tests/interactive-routing-bypass.test.ts +1 -1
  884. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +206 -1
  885. package/src/resources/extensions/gsd/tests/load-memory-block.test.ts +36 -0
  886. package/src/resources/extensions/gsd/tests/md-importer.test.ts +1 -1
  887. package/src/resources/extensions/gsd/tests/memory-embeddings.test.ts +213 -0
  888. package/src/resources/extensions/gsd/tests/memory-ingest.test.ts +153 -0
  889. package/src/resources/extensions/gsd/tests/memory-maintenance.test.ts +107 -0
  890. package/src/resources/extensions/gsd/tests/memory-relations.test.ts +175 -0
  891. package/src/resources/extensions/gsd/tests/memory-store.test.ts +2 -2
  892. package/src/resources/extensions/gsd/tests/memory-tools.test.ts +295 -0
  893. package/src/resources/extensions/gsd/tests/milestone-status-tool.test.ts +3 -2
  894. package/src/resources/extensions/gsd/tests/model-cost-table.test.ts +2 -2
  895. package/src/resources/extensions/gsd/tests/model-router.test.ts +51 -1
  896. package/src/resources/extensions/gsd/tests/model-unittype-mapping.test.ts +59 -0
  897. package/src/resources/extensions/gsd/tests/notification-overlay.test.ts +56 -37
  898. package/src/resources/extensions/gsd/tests/notification-widget.test.ts +1 -1
  899. package/src/resources/extensions/gsd/tests/onboarding-state.test.ts +105 -0
  900. package/src/resources/extensions/gsd/tests/plan-milestone-boundary-map-preservation.test.ts +114 -0
  901. package/src/resources/extensions/gsd/tests/plan-milestone.test.ts +4 -5
  902. package/src/resources/extensions/gsd/tests/plan-slice.test.ts +17 -0
  903. package/src/resources/extensions/gsd/tests/post-execution-checks.test.ts +105 -1
  904. package/src/resources/extensions/gsd/tests/pre-execution-checks.test.ts +341 -6
  905. package/src/resources/extensions/gsd/tests/preferences.test.ts +69 -1
  906. package/src/resources/extensions/gsd/tests/progressive-planning.test.ts +539 -0
  907. package/src/resources/extensions/gsd/tests/projection-no-plan-overwrite.test.ts +11 -2
  908. package/src/resources/extensions/gsd/tests/projection-regression.test.ts +7 -0
  909. package/src/resources/extensions/gsd/tests/prompt-budget-enforcement.test.ts +159 -8
  910. package/src/resources/extensions/gsd/tests/prompt-contracts.test.ts +24 -0
  911. package/src/resources/extensions/gsd/tests/prompt-db.test.ts +1 -1
  912. package/src/resources/extensions/gsd/tests/prompt-loader-extension-dir.test.ts +49 -0
  913. package/src/resources/extensions/gsd/tests/prompts-no-gitignored-test-refs.test.ts +56 -0
  914. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +88 -4
  915. package/src/resources/extensions/gsd/tests/python-resolver.test.ts +131 -0
  916. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +67 -0
  917. package/src/resources/extensions/gsd/tests/remote-notification-from-desktop.test.ts +107 -0
  918. package/src/resources/extensions/gsd/tests/requirements.test.ts +9 -0
  919. package/src/resources/extensions/gsd/tests/session-start-footer.test.ts +153 -0
  920. package/src/resources/extensions/gsd/tests/skip-slice-cascades-tasks.test.ts +125 -0
  921. package/src/resources/extensions/gsd/tests/slice-context-injection.test.ts +16 -4
  922. package/src/resources/extensions/gsd/tests/stash-queued-context-files.test.ts +54 -0
  923. package/src/resources/extensions/gsd/tests/state-corruption-2945.test.ts +3 -0
  924. package/src/resources/extensions/gsd/tests/stuck-detection-coverage.test.ts +15 -0
  925. package/src/resources/extensions/gsd/tests/summary-render-parity.test.ts +5 -0
  926. package/src/resources/extensions/gsd/tests/uok-contracts.test.ts +2 -1
  927. package/src/resources/extensions/gsd/tests/uok-flags.test.ts +31 -1
  928. package/src/resources/extensions/gsd/tests/uok-kernel-path.test.ts +166 -0
  929. package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +9 -3
  930. package/src/resources/extensions/gsd/tests/verification-gate.test.ts +35 -0
  931. package/src/resources/extensions/gsd/tests/workflow-install.test.ts +113 -0
  932. package/src/resources/extensions/gsd/tests/workflow-logger-wiring.test.ts +15 -6
  933. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +2 -2
  934. package/src/resources/extensions/gsd/tests/workflow-plugins.test.ts +310 -0
  935. package/src/resources/extensions/gsd/tests/workflow-projections.test.ts +7 -0
  936. package/src/resources/extensions/gsd/tests/workflow-templates.test.ts +8 -2
  937. package/src/resources/extensions/gsd/tests/workflow-tool-executors.test.ts +97 -0
  938. package/src/resources/extensions/gsd/tests/worktree-journal-events.test.ts +2 -1
  939. package/src/resources/extensions/gsd/tests/worktree-resolver.test.ts +77 -2
  940. package/src/resources/extensions/gsd/tools/complete-task.ts +87 -0
  941. package/src/resources/extensions/gsd/tools/memory-tools.ts +410 -0
  942. package/src/resources/extensions/gsd/tools/plan-milestone.ts +42 -8
  943. package/src/resources/extensions/gsd/tools/plan-slice.ts +6 -1
  944. package/src/resources/extensions/gsd/tools/skip-slice.ts +133 -0
  945. package/src/resources/extensions/gsd/tools/workflow-tool-executors.ts +14 -0
  946. package/src/resources/extensions/gsd/types.ts +62 -0
  947. package/src/resources/extensions/gsd/unit-runtime.ts +1 -0
  948. package/src/resources/extensions/gsd/uok/contracts.ts +2 -1
  949. package/src/resources/extensions/gsd/uok/flags.ts +7 -7
  950. package/src/resources/extensions/gsd/uok/kernel.ts +16 -4
  951. package/src/resources/extensions/gsd/verification-gate.ts +2 -1
  952. package/src/resources/extensions/gsd/workflow-dispatch.ts +106 -0
  953. package/src/resources/extensions/gsd/workflow-install.ts +423 -0
  954. package/src/resources/extensions/gsd/workflow-logger.ts +4 -1
  955. package/src/resources/extensions/gsd/workflow-manifest.ts +8 -0
  956. package/src/resources/extensions/gsd/workflow-mcp.ts +1 -6
  957. package/src/resources/extensions/gsd/workflow-plugins.ts +403 -0
  958. package/src/resources/extensions/gsd/workflow-projections.ts +18 -16
  959. package/src/resources/extensions/gsd/workflow-templates/accessibility-audit.md +88 -0
  960. package/src/resources/extensions/gsd/workflow-templates/api-breaking-change.md +117 -0
  961. package/src/resources/extensions/gsd/workflow-templates/bugfix.md +1 -0
  962. package/src/resources/extensions/gsd/workflow-templates/changelog-gen.md +82 -0
  963. package/src/resources/extensions/gsd/workflow-templates/ci-bootstrap.md +144 -0
  964. package/src/resources/extensions/gsd/workflow-templates/dead-code.md +81 -0
  965. package/src/resources/extensions/gsd/workflow-templates/dep-upgrade.md +1 -0
  966. package/src/resources/extensions/gsd/workflow-templates/docs-sync.yaml +76 -0
  967. package/src/resources/extensions/gsd/workflow-templates/env-audit.yaml +88 -0
  968. package/src/resources/extensions/gsd/workflow-templates/full-project.md +1 -0
  969. package/src/resources/extensions/gsd/workflow-templates/hotfix.md +1 -0
  970. package/src/resources/extensions/gsd/workflow-templates/issue-triage.md +84 -0
  971. package/src/resources/extensions/gsd/workflow-templates/observability-setup.md +133 -0
  972. package/src/resources/extensions/gsd/workflow-templates/onboarding-check.md +74 -0
  973. package/src/resources/extensions/gsd/workflow-templates/performance-audit.md +125 -0
  974. package/src/resources/extensions/gsd/workflow-templates/pr-review.md +67 -0
  975. package/src/resources/extensions/gsd/workflow-templates/pr-triage.md +83 -0
  976. package/src/resources/extensions/gsd/workflow-templates/refactor.md +1 -0
  977. package/src/resources/extensions/gsd/workflow-templates/registry.json +184 -0
  978. package/src/resources/extensions/gsd/workflow-templates/release.md +118 -0
  979. package/src/resources/extensions/gsd/workflow-templates/rename-symbol.yaml +99 -0
  980. package/src/resources/extensions/gsd/workflow-templates/security-audit.md +1 -0
  981. package/src/resources/extensions/gsd/workflow-templates/small-feature.md +1 -0
  982. package/src/resources/extensions/gsd/workflow-templates/spike.md +7 -0
  983. package/src/resources/extensions/gsd/workflow-templates/test-backfill.yaml +73 -0
  984. package/src/resources/extensions/gsd/workflow-templates.ts +7 -0
  985. package/src/resources/extensions/gsd/workspace-index.ts +9 -4
  986. package/src/resources/extensions/gsd/worktree-resolver.ts +47 -1
  987. package/src/resources/extensions/remote-questions/commands.ts +480 -0
  988. package/src/resources/extensions/remote-questions/manager.ts +49 -4
  989. package/src/resources/extensions/remote-questions/telegram-adapter.ts +86 -4
  990. package/src/resources/extensions/remote-questions/tests/command-polling.test.ts +246 -0
  991. package/src/resources/extensions/remote-questions/tests/remote-answer-normalization.test.ts +92 -0
  992. package/src/resources/extensions/remote-questions/tests/telegram-commands.test.ts +267 -0
  993. package/src/resources/extensions/search-the-web/command-search-provider.ts +5 -1
  994. package/src/resources/extensions/search-the-web/native-search.ts +50 -4
  995. package/src/resources/extensions/shared/interview-ui.ts +195 -1
  996. package/src/resources/extensions/shared/layout-utils.ts +26 -0
  997. package/src/resources/extensions/shared/rtk-shared.ts +58 -0
  998. package/src/resources/extensions/shared/rtk.ts +12 -52
  999. package/src/resources/extensions/shared/tests/interview-preview.test.ts +177 -0
  1000. package/src/resources/extensions/shared/tests/preview-layout.test.ts +120 -0
  1001. package/src/resources/skills/api-design/SKILL.md +190 -0
  1002. package/src/resources/skills/create-mcp-server/SKILL.md +121 -0
  1003. package/src/resources/skills/create-workflow/SKILL.md +33 -6
  1004. package/src/resources/skills/decompose-into-slices/SKILL.md +139 -0
  1005. package/src/resources/skills/dependency-upgrade/SKILL.md +158 -0
  1006. package/src/resources/skills/design-an-interface/SKILL.md +102 -0
  1007. package/src/resources/skills/forensics/SKILL.md +153 -0
  1008. package/src/resources/skills/grill-me/SKILL.md +93 -0
  1009. package/src/resources/skills/handoff/SKILL.md +121 -0
  1010. package/src/resources/skills/observability/SKILL.md +174 -0
  1011. package/src/resources/skills/security-review/SKILL.md +181 -0
  1012. package/src/resources/skills/spike-wrap-up/SKILL.md +138 -0
  1013. package/src/resources/skills/tdd/SKILL.md +112 -0
  1014. package/src/resources/skills/verify-before-complete/SKILL.md +97 -0
  1015. package/src/resources/skills/write-docs/SKILL.md +81 -0
  1016. package/src/resources/skills/write-milestone-brief/SKILL.md +135 -0
  1017. package/dist/web/standalone/.next/static/chunks/2826.dd3dc8bbd3025fa5.js +0 -9
  1018. package/dist/web/standalone/.next/static/chunks/app/page-7115e62689b5fd84.js +0 -1
  1019. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +0 -1
  1020. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +0 -1
  1021. package/dist/web/standalone/.next/static/css/f6e8833d46e738d8.css +0 -1
  1022. package/packages/native/dist/ps/types.d.ts +0 -5
  1023. package/packages/native/dist/ps/types.js +0 -2
  1024. package/packages/native/src/ps/types.ts +0 -5
  1025. package/packages/pi-ai/node_modules/@smithy/node-http-handler/LICENSE +0 -201
  1026. package/packages/pi-ai/node_modules/@smithy/node-http-handler/README.md +0 -9
  1027. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-cjs/index.js +0 -762
  1028. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/build-abort-error.js +0 -19
  1029. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/constants.js +0 -1
  1030. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/get-transformed-headers.js +0 -9
  1031. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/index.js +0 -3
  1032. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http-handler.js +0 -230
  1033. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-manager.js +0 -87
  1034. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-connection-pool.js +0 -32
  1035. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/node-http2-handler.js +0 -169
  1036. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/readable.mock.js +0 -21
  1037. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/server.mock.js +0 -88
  1038. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-connection-timeout.js +0 -36
  1039. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-request-timeout.js +0 -21
  1040. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-socket-keep-alive.js +0 -22
  1041. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/set-socket-timeout.js +0 -23
  1042. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/collector.js +0 -8
  1043. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/index.js +0 -41
  1044. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/stream-collector/readable.mock.js +0 -21
  1045. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/timing.js +0 -4
  1046. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-es/write-request-body.js +0 -63
  1047. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/build-abort-error.d.ts +0 -10
  1048. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/constants.d.ts +0 -5
  1049. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/get-transformed-headers.d.ts +0 -4
  1050. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/index.d.ts +0 -3
  1051. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http-handler.d.ts +0 -46
  1052. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-manager.d.ts +0 -24
  1053. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-connection-pool.d.ts +0 -12
  1054. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/node-http2-handler.d.ts +0 -63
  1055. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/readable.mock.d.ts +0 -13
  1056. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/server.mock.d.ts +0 -12
  1057. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-connection-timeout.d.ts +0 -2
  1058. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-request-timeout.d.ts +0 -6
  1059. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-socket-keep-alive.d.ts +0 -6
  1060. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/set-socket-timeout.d.ts +0 -2
  1061. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/collector.d.ts +0 -5
  1062. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/index.d.ts +0 -6
  1063. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/stream-collector/readable.mock.d.ts +0 -13
  1064. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/timing.d.ts +0 -8
  1065. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/build-abort-error.d.ts +0 -10
  1066. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/constants.d.ts +0 -5
  1067. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/get-transformed-headers.d.ts +0 -4
  1068. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/index.d.ts +0 -3
  1069. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http-handler.d.ts +0 -46
  1070. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-manager.d.ts +0 -24
  1071. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-connection-pool.d.ts +0 -12
  1072. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/node-http2-handler.d.ts +0 -63
  1073. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/readable.mock.d.ts +0 -13
  1074. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/server.mock.d.ts +0 -12
  1075. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-connection-timeout.d.ts +0 -2
  1076. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-request-timeout.d.ts +0 -6
  1077. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-keep-alive.d.ts +0 -6
  1078. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/set-socket-timeout.d.ts +0 -2
  1079. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/collector.d.ts +0 -5
  1080. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/index.d.ts +0 -6
  1081. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/stream-collector/readable.mock.d.ts +0 -13
  1082. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/timing.d.ts +0 -8
  1083. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/ts3.4/write-request-body.d.ts +0 -12
  1084. package/packages/pi-ai/node_modules/@smithy/node-http-handler/dist-types/write-request-body.d.ts +0 -12
  1085. package/packages/pi-ai/node_modules/@smithy/node-http-handler/package.json +0 -68
  1086. package/packages/pi-ai/oauth.d.ts +0 -1
  1087. package/packages/pi-ai/oauth.js +0 -1
  1088. /package/dist/web/standalone/.next/static/{prkokVQFxWtUVIku57_0z → jDqWYbuP_CG6Kjc-uKwkN}/_buildManifest.js +0 -0
  1089. /package/dist/web/standalone/.next/static/{prkokVQFxWtUVIku57_0z → jDqWYbuP_CG6Kjc-uKwkN}/_ssgManifest.js +0 -0
@@ -421,10 +421,14 @@ export function registerDbTools(pi) {
421
421
  depends: Type.Array(Type.String(), { description: "Slice dependency IDs" }),
422
422
  demo: Type.String({ description: "Roadmap demo text / After this" }),
423
423
  goal: Type.String({ description: "Slice goal" }),
424
- successCriteria: Type.String({ description: "Slice success criteria block" }),
425
- proofLevel: Type.String({ description: "Slice proof level" }),
426
- integrationClosure: Type.String({ description: "Slice integration closure" }),
427
- observabilityImpact: Type.String({ description: "Slice observability impact" }),
424
+ // ADR-011: heavy planning fields are optional for sketch slices; required for full slices.
425
+ successCriteria: Type.Optional(Type.String({ description: "Slice success criteria block (required for full slices; omit for sketches)" })),
426
+ proofLevel: Type.Optional(Type.String({ description: "Slice proof level (required for full slices; omit for sketches)" })),
427
+ integrationClosure: Type.Optional(Type.String({ description: "Slice integration closure (required for full slices; omit for sketches)" })),
428
+ observabilityImpact: Type.Optional(Type.String({ description: "Slice observability impact (required for full slices; omit for sketches)" })),
429
+ // ADR-011 sketch-then-refine fields.
430
+ isSketch: Type.Optional(Type.Boolean({ description: "ADR-011: true marks this slice as a sketch awaiting refine-slice expansion" })),
431
+ sketchScope: Type.Optional(Type.String({ description: "ADR-011: 2–3 sentence scope boundary, required when isSketch=true" })),
428
432
  }), { description: "Planned slices for the milestone" }),
429
433
  // ── Enrichment metadata (optional — defaults to empty) ────────────
430
434
  status: Type.Optional(Type.String({ description: "Milestone status (defaults to active)" })),
@@ -589,6 +593,20 @@ export function registerDbTools(pi) {
589
593
  keyFiles: Type.Optional(Type.Array(Type.String(), { description: "List of key files created or modified" })),
590
594
  keyDecisions: Type.Optional(Type.Array(Type.String(), { description: "List of key decisions made during this task" })),
591
595
  blockerDiscovered: Type.Optional(Type.Boolean({ description: "Whether a plan-invalidating blocker was discovered" })),
596
+ // ADR-011 Phase 2: mid-execution escalation — agent asks the user to resolve an ambiguity.
597
+ escalation: Type.Optional(Type.Object({
598
+ question: Type.String({ description: "The question the user needs to answer — one clear sentence." }),
599
+ options: Type.Array(Type.Object({
600
+ id: Type.String({ description: "Short id (e.g. 'A', 'B') used by /gsd escalate resolve." }),
601
+ label: Type.String({ description: "One-line label." }),
602
+ tradeoffs: Type.String({ description: "1-2 sentences on the tradeoffs of this option." }),
603
+ }), { minItems: 2, maxItems: 4, description: "2–4 options the user can choose between." }),
604
+ recommendation: Type.String({ description: "Option id the executor recommends." }),
605
+ recommendationRationale: Type.String({ description: "Why the recommendation — 1–2 sentences." }),
606
+ continueWithDefault: Type.Boolean({
607
+ description: "When true, loop continues (artifact logged for later review). When false, auto-mode pauses until the user resolves via /gsd escalate resolve.",
608
+ }),
609
+ }, { description: "ADR-011 Phase 2: optional escalation payload. Only honored when phases.mid_execution_escalation is true." })),
592
610
  verificationEvidence: Type.Optional(Type.Array(Type.Union([
593
611
  Type.Object({
594
612
  command: Type.String({ description: "Verification command that was run" }),
@@ -690,28 +708,23 @@ export function registerDbTools(pi) {
690
708
  };
691
709
  }
692
710
  try {
693
- const { getSlice, updateSliceStatus } = await import("../gsd-db.js");
711
+ const { handleSkipSlice } = await import("../tools/skip-slice.js");
694
712
  const { invalidateStateCache } = await import("../state.js");
695
- const slice = getSlice(params.milestoneId, params.sliceId);
696
- if (!slice) {
697
- return {
698
- content: [{ type: "text", text: `Error: Slice ${params.sliceId} not found in milestone ${params.milestoneId}` }],
699
- details: { operation: "skip_slice", error: "slice_not_found" },
700
- };
701
- }
702
- if (slice.status === "complete" || slice.status === "done") {
703
- return {
704
- content: [{ type: "text", text: `Error: Slice ${params.sliceId} is already complete — cannot skip.` }],
705
- details: { operation: "skip_slice", error: "already_complete" },
706
- };
707
- }
708
- if (slice.status === "skipped") {
713
+ const result = handleSkipSlice({
714
+ milestoneId: params.milestoneId,
715
+ sliceId: params.sliceId,
716
+ reason: params.reason,
717
+ });
718
+ if (result.error) {
709
719
  return {
710
- content: [{ type: "text", text: `Slice ${params.sliceId} is already skipped.` }],
711
- details: { operation: "skip_slice", sliceId: params.sliceId, milestoneId: params.milestoneId },
720
+ content: [{ type: "text", text: `Error: ${result.error}` }],
721
+ details: {
722
+ operation: "skip_slice",
723
+ error: result.error,
724
+ errorCode: result.errorCode ?? "skip_failed",
725
+ },
712
726
  };
713
727
  }
714
- updateSliceStatus(params.milestoneId, params.sliceId, "skipped");
715
728
  invalidateStateCache();
716
729
  // Rebuild STATE.md so it reflects the skip immediately (#3477).
717
730
  // Without this, /gsd auto reads stale STATE.md and resumes the skipped slice.
@@ -723,13 +736,20 @@ export function registerDbTools(pi) {
723
736
  catch (err) {
724
737
  logError("tool", `skip_slice rebuildState failed: ${err.message}`, { tool: "gsd_skip_slice" });
725
738
  }
739
+ const suffix = result.wasAlreadySkipped
740
+ ? result.tasksSkipped > 0
741
+ ? ` (already skipped; cascaded ${result.tasksSkipped} leftover task(s) to skipped).`
742
+ : " (already skipped; no pending tasks to cascade)."
743
+ : ` Cascaded ${result.tasksSkipped} task(s) to skipped. Auto-mode will advance past this slice.`;
726
744
  return {
727
- content: [{ type: "text", text: `Skipped slice ${params.sliceId} (${params.milestoneId}). Reason: ${params.reason ?? "User-directed skip"}. Auto-mode will advance past this slice.` }],
745
+ content: [{ type: "text", text: `Skipped slice ${params.sliceId} (${params.milestoneId}). Reason: ${params.reason ?? "User-directed skip"}.${suffix}` }],
728
746
  details: {
729
747
  operation: "skip_slice",
730
748
  sliceId: params.sliceId,
731
749
  milestoneId: params.milestoneId,
732
750
  reason: params.reason,
751
+ tasksSkipped: result.tasksSkipped,
752
+ wasAlreadySkipped: result.wasAlreadySkipped,
733
753
  },
734
754
  };
735
755
  }
@@ -746,12 +766,14 @@ export function registerDbTools(pi) {
746
766
  name: "gsd_skip_slice",
747
767
  label: "Skip Slice",
748
768
  description: "Mark a slice as skipped so auto-mode advances past it without executing. " +
769
+ "Non-closed tasks within the slice are cascaded to skipped so milestone completion is not blocked by leftover pending tasks (#4375). " +
749
770
  "The slice data is preserved for reference. The state machine treats skipped slices like completed ones for dependency satisfaction.",
750
771
  promptSnippet: "Skip a GSD slice (mark as skipped, auto-mode will advance past it)",
751
772
  promptGuidelines: [
752
773
  "Use gsd_skip_slice when a slice should be bypassed — descoped, superseded, or no longer relevant.",
753
774
  "Cannot skip a slice that is already complete.",
754
775
  "Skipped slices satisfy downstream dependencies just like completed slices.",
776
+ "All pending/active tasks in the slice are cascaded to skipped; completed tasks are never downgraded.",
755
777
  ],
756
778
  parameters: Type.Object({
757
779
  sliceId: Type.String({ description: "Slice ID (e.g. S02)" }),
@@ -0,0 +1,131 @@
1
+ // GSD2 — Memory tool registration
2
+ //
3
+ // Exposes the memory-layer tools (capture_thought, memory_query, gsd_graph)
4
+ // to the LLM over MCP. All three degrade gracefully when the GSD database
5
+ // is unavailable.
6
+ import { Type } from "@sinclair/typebox";
7
+ import { ensureDbOpen } from "./dynamic-tools.js";
8
+ import { executeGsdGraph, executeMemoryCapture, executeMemoryQuery, } from "../tools/memory-tools.js";
9
+ export function registerMemoryTools(pi) {
10
+ // ─── capture_thought ────────────────────────────────────────────────────
11
+ pi.registerTool({
12
+ name: "capture_thought",
13
+ label: "Capture Thought",
14
+ description: "Record a durable piece of project knowledge (decision, convention, gotcha, pattern, " +
15
+ "preference, or environment detail) into the GSD memory store. Use sparingly — one memory " +
16
+ "per genuinely reusable insight, not per task.",
17
+ promptSnippet: "Capture a durable project insight into the GSD memory store (categories: architecture, convention, gotcha, pattern, preference, environment)",
18
+ promptGuidelines: [
19
+ "Use capture_thought for insights that will remain useful across future sessions.",
20
+ "Do NOT capture one-off bug fixes, temporary state, secrets, or task-specific details.",
21
+ "Keep content to 1–3 sentences.",
22
+ "Set confidence: 0.6 tentative, 0.8 solid, 0.95 well-confirmed (default 0.8).",
23
+ ],
24
+ parameters: Type.Object({
25
+ category: Type.Union([
26
+ Type.Literal("architecture"),
27
+ Type.Literal("convention"),
28
+ Type.Literal("gotcha"),
29
+ Type.Literal("preference"),
30
+ Type.Literal("environment"),
31
+ Type.Literal("pattern"),
32
+ ], { description: "Memory category" }),
33
+ content: Type.String({ description: "The memory text (1–3 sentences, no secrets)" }),
34
+ confidence: Type.Optional(Type.Number({ description: "0.1–0.99, default 0.8", minimum: 0.1, maximum: 0.99 })),
35
+ tags: Type.Optional(Type.Array(Type.String(), { description: "Free-form tags (reserved for future use)" })),
36
+ scope: Type.Optional(Type.String({ description: "Scope name (reserved for future use; defaults to project)" })),
37
+ structuredFields: Type.Optional(Type.Record(Type.String(), Type.Unknown(), {
38
+ description: "Optional structured payload preserved alongside content (ADR-013). Use for decisions to retain scope/decision/choice/rationale/made_by/revisable. Omit for plain captures.",
39
+ })),
40
+ }),
41
+ async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
42
+ const ok = await ensureDbOpen();
43
+ if (!ok) {
44
+ return {
45
+ content: [{ type: "text", text: "Error: GSD database is not available. Cannot capture memory." }],
46
+ details: { operation: "memory_capture", error: "db_unavailable" },
47
+ isError: true,
48
+ };
49
+ }
50
+ return executeMemoryCapture(params);
51
+ },
52
+ });
53
+ // ─── memory_query ───────────────────────────────────────────────────────
54
+ pi.registerTool({
55
+ name: "memory_query",
56
+ label: "Query Memory",
57
+ description: "Search the GSD memory store for relevant memories. Phase 1 uses keyword matching ranked " +
58
+ "by confidence and reinforcement; future phases add semantic (embedding) retrieval.",
59
+ promptSnippet: "Search the GSD memory store by keyword; returns ranked memories with id, category, and content",
60
+ promptGuidelines: [
61
+ "Use memory_query when you need durable project context that may not be in the current prompt.",
62
+ "Provide a short keyword-style query — not a full question.",
63
+ "Use category to narrow results to gotchas, conventions, architecture notes, etc.",
64
+ ],
65
+ parameters: Type.Object({
66
+ query: Type.String({ description: "Keyword query (2+ char terms)" }),
67
+ k: Type.Optional(Type.Number({ description: "Max results (default 10, max 50)", minimum: 1, maximum: 50 })),
68
+ category: Type.Optional(Type.Union([
69
+ Type.Literal("architecture"),
70
+ Type.Literal("convention"),
71
+ Type.Literal("gotcha"),
72
+ Type.Literal("preference"),
73
+ Type.Literal("environment"),
74
+ Type.Literal("pattern"),
75
+ ], { description: "Restrict results to a single category" })),
76
+ scope: Type.Optional(Type.String({ description: "Only include memories with this scope (e.g. 'project', 'global')" })),
77
+ tag: Type.Optional(Type.String({ description: "Only include memories tagged with this value" })),
78
+ include_superseded: Type.Optional(Type.Boolean({ description: "Include superseded memories (default false)" })),
79
+ reinforce_hits: Type.Optional(Type.Boolean({ description: "Increment hit_count on returned memories (default false)" })),
80
+ }),
81
+ async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
82
+ const ok = await ensureDbOpen();
83
+ if (!ok) {
84
+ return {
85
+ content: [{ type: "text", text: "Error: GSD database is not available. Cannot query memory." }],
86
+ details: { operation: "memory_query", error: "db_unavailable" },
87
+ isError: true,
88
+ };
89
+ }
90
+ return executeMemoryQuery(params);
91
+ },
92
+ });
93
+ // ─── gsd_graph ──────────────────────────────────────────────────────────
94
+ pi.registerTool({
95
+ name: "gsd_graph",
96
+ label: "GSD Knowledge Graph",
97
+ description: "Inspect the relationship graph between memories. mode=query walks supersedes edges from a " +
98
+ "given memoryId; mode=build is a placeholder that future phases will use to rebuild graph " +
99
+ "edges from milestone LEARNINGS artifacts.",
100
+ promptSnippet: "Query the memory relationship graph or trigger a rebuild",
101
+ promptGuidelines: [
102
+ "Use mode=query with a memoryId when you want to see how a memory relates to others.",
103
+ "Phase 1 only exposes supersedes edges; additional relation types arrive in later phases.",
104
+ ],
105
+ parameters: Type.Object({
106
+ mode: Type.Union([Type.Literal("build"), Type.Literal("query")], {
107
+ description: "build = recompute graph (placeholder), query = inspect edges",
108
+ }),
109
+ memoryId: Type.Optional(Type.String({ description: "Memory ID (required when mode=query)" })),
110
+ depth: Type.Optional(Type.Number({ description: "Hops to traverse (0–5, default 1)", minimum: 0, maximum: 5 })),
111
+ rel: Type.Optional(Type.Union([
112
+ Type.Literal("related_to"),
113
+ Type.Literal("depends_on"),
114
+ Type.Literal("contradicts"),
115
+ Type.Literal("elaborates"),
116
+ Type.Literal("supersedes"),
117
+ ], { description: "Only include edges with this relation type" })),
118
+ }),
119
+ async execute(_toolCallId, params, _signal, _onUpdate, _ctx) {
120
+ const ok = await ensureDbOpen();
121
+ if (!ok) {
122
+ return {
123
+ content: [{ type: "text", text: "Error: GSD database is not available." }],
124
+ details: { operation: "gsd_graph", error: "db_unavailable" },
125
+ isError: true,
126
+ };
127
+ }
128
+ return executeGsdGraph(params);
129
+ },
130
+ });
131
+ }
@@ -2,6 +2,7 @@
2
2
  import { Type } from "@sinclair/typebox";
3
3
  import { ensureDbOpen } from "./dynamic-tools.js";
4
4
  import { executeMilestoneStatus } from "../tools/workflow-tool-executors.js";
5
+ import { checkpointDatabase } from "../gsd-db.js";
5
6
  export function registerQueryTools(pi) {
6
7
  pi.registerTool({
7
8
  name: "gsd_milestone_status",
@@ -27,4 +28,32 @@ export function registerQueryTools(pi) {
27
28
  return executeMilestoneStatus(params);
28
29
  },
29
30
  });
31
+ pi.registerTool({
32
+ name: "gsd_checkpoint_db",
33
+ label: "Checkpoint GSD Database",
34
+ description: "Flush the SQLite WAL (Write-Ahead Log) into the base gsd.db file. " +
35
+ "Call this before `git add .gsd/gsd.db` to ensure the committed database " +
36
+ "contains current milestone/slice/task state rather than stale pre-session content. " +
37
+ "Safe to call at any time while GSD is running.",
38
+ promptSnippet: "Flush WAL into gsd.db so git add stages current state",
39
+ promptGuidelines: [
40
+ "Call gsd_checkpoint_db immediately before staging .gsd/gsd.db with git add.",
41
+ "Do not use sqlite3 or shell commands to checkpoint — they are blocked. Use this tool instead.",
42
+ ],
43
+ parameters: Type.Object({}),
44
+ async execute(_toolCallId, _params, _signal, _onUpdate, _ctx) {
45
+ const dbAvailable = await ensureDbOpen();
46
+ if (!dbAvailable) {
47
+ return {
48
+ content: [{ type: "text", text: "Error: GSD database is not available. Cannot checkpoint." }],
49
+ details: { operation: "checkpoint_db", error: "db_unavailable" },
50
+ };
51
+ }
52
+ checkpointDatabase();
53
+ return {
54
+ content: [{ type: "text", text: "WAL checkpoint complete. gsd.db is now up to date and safe to stage with git add." }],
55
+ details: { operation: "checkpoint_db", status: "ok" },
56
+ };
57
+ },
58
+ });
30
59
  }
@@ -5,6 +5,7 @@ import { loadEcosystemExtensions } from "../ecosystem/loader.js";
5
5
  import { registerDbTools } from "./db-tools.js";
6
6
  import { registerDynamicTools } from "./dynamic-tools.js";
7
7
  import { registerJournalTools } from "./journal-tools.js";
8
+ import { registerMemoryTools } from "./memory-tools.js";
8
9
  import { registerQueryTools } from "./query-tools.js";
9
10
  import { registerHooks } from "./register-hooks.js";
10
11
  import { registerShortcuts } from "./register-shortcuts.js";
@@ -57,6 +58,16 @@ export function registerGsdExtension(pi) {
57
58
  // so we intentionally skip it here to avoid double-registration.
58
59
  registerWorktreeCommand(pi);
59
60
  registerExitCommand(pi);
61
+ // Wire the Layer 2 event emitter bridge so deeply-nested GSD code can emit
62
+ // extension events (git lifecycle, verify, budget, milestone, unit) without
63
+ // threading `pi` through every call site.
64
+ import("../hook-emitter.js")
65
+ .then(({ setHookEmitter }) => setHookEmitter(pi))
66
+ .catch((err) => {
67
+ // Non-fatal — emitters simply become no-ops if this import fails, but
68
+ // surface the failure so silent bootstrap breakage is debuggable.
69
+ process.stderr.write(`[gsd] Failed to bootstrap hook-emitter bridge: ${err instanceof Error ? err.stack ?? err.message : String(err)}\n`);
70
+ });
60
71
  installEpipeGuard();
61
72
  // Ecosystem handlers captured by the GSDExtensionAPI wrapper for the
62
73
  // GSD-owned `before_agent_start` dispatch step (#3338).
@@ -74,6 +85,7 @@ export function registerGsdExtension(pi) {
74
85
  ["db-tools", () => registerDbTools(pi)],
75
86
  ["journal-tools", () => registerJournalTools(pi)],
76
87
  ["query-tools", () => registerQueryTools(pi)],
88
+ ["memory-tools", () => registerMemoryTools(pi)],
77
89
  ["shortcuts", () => registerShortcuts(pi)],
78
90
  ["hooks", () => registerHooks(pi, ecosystemHandlers)],
79
91
  ["ecosystem", () => {
@@ -13,6 +13,7 @@ import { loadToolApiKeys } from "../commands-config.js";
13
13
  import { loadFile, saveFile, formatContinue } from "../files.js";
14
14
  import { deriveState } from "../state.js";
15
15
  import { getAutoDashboardData, isAutoActive, isAutoPaused, markToolEnd, markToolStart, recordToolInvocationError } from "../auto.js";
16
+ import { hideFooter } from "../auto-dashboard.js";
16
17
  import { isParallelActive, shutdownParallel } from "../parallel-orchestrator.js";
17
18
  import { checkToolCallLoop, resetToolCallLoopGuard } from "./tool-call-loop-guard.js";
18
19
  import { saveActivityLog } from "../activity-log.js";
@@ -77,6 +78,9 @@ export function registerHooks(pi, ecosystemHandlers) {
77
78
  catch { /* non-fatal */ }
78
79
  }
79
80
  loadToolApiKeys();
81
+ if (isAutoActive()) {
82
+ ctx.ui.setFooter(hideFooter);
83
+ }
80
84
  });
81
85
  pi.on("session_switch", async (_event, ctx) => {
82
86
  initNotificationStore(process.cwd());
@@ -96,6 +100,9 @@ export function registerHooks(pi, ecosystemHandlers) {
96
100
  prepareWorkflowMcpForProject(ctx, process.cwd());
97
101
  }
98
102
  loadToolApiKeys();
103
+ if (isAutoActive()) {
104
+ ctx.ui.setFooter(hideFooter);
105
+ }
99
106
  });
100
107
  pi.on("before_agent_start", async (event, ctx) => {
101
108
  // Wait for ecosystem loader to finish (no-op after first turn).
@@ -292,6 +299,7 @@ export function registerHooks(pi, ecosystemHandlers) {
292
299
  pi.on("tool_call", async (event, ctx) => {
293
300
  if (!isAutoActive())
294
301
  return;
302
+ markToolStart(event.toolCallId, event.toolName);
295
303
  safetyRecordToolCall(event.toolCallId, event.toolName, event.input);
296
304
  // Destructive command classification (warn only, never block)
297
305
  if (isToolCallEventType("bash", event)) {
@@ -305,6 +313,20 @@ export function registerHooks(pi, ecosystemHandlers) {
305
313
  }
306
314
  });
307
315
  pi.on("tool_result", async (event) => {
316
+ if (isAutoActive() && typeof event.toolCallId === "string") {
317
+ markToolEnd(event.toolCallId);
318
+ }
319
+ if (isAutoActive() && event.isError && event.toolName.startsWith("gsd_")) {
320
+ const resultPayload = ("result" in event ? event.result : undefined);
321
+ const errorText = typeof resultPayload === "string"
322
+ ? resultPayload
323
+ : (typeof resultPayload?.content?.[0]?.text === "string"
324
+ ? resultPayload.content[0].text
325
+ : (typeof event.content === "string"
326
+ ? event.content
327
+ : String(resultPayload ?? "")));
328
+ recordToolInvocationError(event.toolName, errorText);
329
+ }
308
330
  if (event.toolName !== "ask_user_questions")
309
331
  return;
310
332
  const milestoneId = getDiscussionMilestoneId(process.cwd());
@@ -24,10 +24,30 @@ const gsdHome = process.env.GSD_HOME || join(homedir(), ".gsd");
24
24
  * hardcoding absolute paths in the system prompt template. Only skills
25
25
  * that actually exist on disk are included in the table. (#3575)
26
26
  */
27
- const BUNDLED_SKILL_TRIGGERS = [
27
+ export const BUNDLED_SKILL_TRIGGERS = [
28
28
  { trigger: "Frontend UI - web components, pages, landing pages, dashboards, React/HTML/CSS, styling", skill: "frontend-design" },
29
29
  { trigger: "macOS or iOS apps - SwiftUI, Xcode, App Store", skill: "swiftui" },
30
30
  { trigger: "Debugging - complex bugs, failing tests, root-cause investigation after standard approaches fail", skill: "debug-like-expert" },
31
+ { trigger: "Code review - security, performance, bugs, quality review of staged/unstaged diffs or PRs", skill: "review" },
32
+ { trigger: "Test generation or execution - auto-detect framework, generate tests, run suite, analyze failures", skill: "test" },
33
+ { trigger: "Linting/formatting - run the detected linter/formatter with auto-fix, report remaining issues", skill: "lint" },
34
+ { trigger: "Polishing UI details - animations, hover states, typography, borders, micro-interactions, optical alignment", skill: "make-interfaces-feel-better" },
35
+ { trigger: "Accessibility audit - WCAG, screen reader, keyboard navigation, a11y review", skill: "accessibility" },
36
+ { trigger: "Planning interviews - stress-test a plan, grill the user, resolve decision trees one branch at a time", skill: "grill-me" },
37
+ { trigger: "Interface design - produce 3+ radically different designs for a module/API, compare in prose, synthesize", skill: "design-an-interface" },
38
+ { trigger: "TDD - red-green-refactor vertical slices, never refactor while red, tests survive refactors", skill: "tdd" },
39
+ { trigger: "Draft a milestone brief (M###-CONTEXT.md) or PRD from current conversation context", skill: "write-milestone-brief" },
40
+ { trigger: "Break a plan into vertical-slice roadmap slices (M###-ROADMAP.md) or GitHub issues with dependency ordering", skill: "decompose-into-slices" },
41
+ { trigger: "Package spike findings into a reusable project-local skill at .claude/skills/", skill: "spike-wrap-up" },
42
+ { trigger: "Block completion claims until verification evidence has been produced in this message", skill: "verify-before-complete" },
43
+ { trigger: "Create a Model Context Protocol (MCP) server — tool design, error handling, Inspector testing, evals", skill: "create-mcp-server" },
44
+ { trigger: "Write documentation, proposals, specs, RFCs, or READMEs for a fresh reader", skill: "write-docs" },
45
+ { trigger: "Post-mortem a failed GSD auto-mode run using .gsd/activity, .gsd/journal, and .gsd/metrics.json", skill: "forensics" },
46
+ { trigger: "Prepare a clean cross-session handoff — continue.md + summary updates (pause/resume work)", skill: "handoff" },
47
+ { trigger: "Security review with STRIDE threat modeling and exploit-scenario reporting", skill: "security-review" },
48
+ { trigger: "HTTP/REST/GraphQL API design — verbs, status codes, pagination, errors, idempotency, versioning", skill: "api-design" },
49
+ { trigger: "Dependency upgrades — risk-batched, verified between batches, one major per commit", skill: "dependency-upgrade" },
50
+ { trigger: "Agent-first observability — structured logs, persisted failure state, health surfaces, explicit failure modes", skill: "observability" },
31
51
  ];
32
52
  function buildBundledSkillsTable() {
33
53
  const cwd = process.cwd();
@@ -87,20 +107,20 @@ export async function buildBeforeAgentStartResult(event, ctx) {
87
107
  if (globalSizeKb > 4) {
88
108
  ctx.ui.notify(`GSD: ~/.gsd/agent/KNOWLEDGE.md is ${globalSizeKb.toFixed(1)}KB — consider trimming to keep system prompt lean.`, "warning");
89
109
  }
90
- let memoryBlock = "";
110
+ // ADR-013 step 5: opportunistic decisions->memories backfill. Idempotent
111
+ // and best-effort — first run absorbs the existing decisions table into
112
+ // the memory store; subsequent runs are a single sentinel SELECT.
91
113
  try {
92
- const { formatMemoriesForPrompt, getActiveMemoriesRanked } = await import("../memory-store.js");
93
- const memories = getActiveMemoriesRanked(30);
94
- if (memories.length > 0) {
95
- const formatted = formatMemoriesForPrompt(memories, 2000);
96
- if (formatted) {
97
- memoryBlock = `\n\n${formatted}`;
98
- }
114
+ const { backfillDecisionsToMemories } = await import("../memory-backfill.js");
115
+ const written = backfillDecisionsToMemories();
116
+ if (written > 0) {
117
+ ctx.ui.notify(`GSD: backfilled ${written} decision${written === 1 ? "" : "s"} into the memory store (ADR-013).`, "info");
99
118
  }
100
119
  }
101
120
  catch (e) {
102
- logWarning("bootstrap", `memory block fetch failed: ${e.message}`);
121
+ logWarning("bootstrap", `decisions backfill failed: ${e.message}`);
103
122
  }
123
+ const memoryBlock = await loadMemoryBlock(event.prompt ?? "");
104
124
  let newSkillsBlock = "";
105
125
  if (hasSkillSnapshot()) {
106
126
  const newSkills = detectNewSkills();
@@ -170,6 +190,60 @@ export async function buildBeforeAgentStartResult(event, ctx) {
170
190
  ...(contextMessage ? { message: contextMessage } : {}),
171
191
  };
172
192
  }
193
+ /**
194
+ * ADR-013 step 4 — auto-injection parity for the memories table.
195
+ *
196
+ * Mirrors loadKnowledgeBlock by producing a labeled, deterministic block
197
+ * combining two memory sets:
198
+ *
199
+ * 1. Always-on "critical" set — top-ranked active memories in categories
200
+ * that future GSD turns generally want without asking. After ADR-013
201
+ * expands this to include "architecture", these memories serve as the
202
+ * auto-injected replacement for inlineDecisionsFromDb when the cutover
203
+ * in step 6 lands.
204
+ * 2. Prompt-relevance set — FTS5/semantic hits against the current user
205
+ * prompt, deduplicated against the critical set.
206
+ *
207
+ * Both sets are ranked, merged, and rendered via formatMemoriesForPrompt
208
+ * with a token-budget cap. Failures degrade gracefully — the function never
209
+ * throws and returns "" so the system prompt construction continues.
210
+ */
211
+ export async function loadMemoryBlock(userPrompt) {
212
+ try {
213
+ const { formatMemoriesForPrompt, getActiveMemoriesRanked, queryMemoriesRanked } = await import("../memory-store.js");
214
+ // Categories that belong in every turn. Pre-ADR-013 this was just
215
+ // {gotcha, environment, convention}. ADR-013 adds "architecture" so
216
+ // decision-equivalent memories survive the inlineDecisionsFromDb cutover
217
+ // in step 6.
218
+ const CRITICAL_CATEGORIES = new Set(["gotcha", "environment", "convention", "architecture"]);
219
+ const CRITICAL_CAP = 8;
220
+ const QUERY_K = 10;
221
+ // ~1 token ≈ 4 chars. 4000 chars ≈ 1000 tokens — comfortably under the
222
+ // KNOWLEDGE.md 4KB warning threshold and roughly twice the pre-ADR-013
223
+ // budget so the absorbed DECISIONS surface fits.
224
+ const CHAR_BUDGET = 4000;
225
+ const allRanked = getActiveMemoriesRanked(80);
226
+ const critical = allRanked.filter((m) => CRITICAL_CATEGORIES.has(m.category)).slice(0, CRITICAL_CAP);
227
+ const criticalIds = new Set(critical.map((m) => m.id));
228
+ let relevant = [];
229
+ const trimmed = userPrompt.trim();
230
+ if (trimmed) {
231
+ const hits = queryMemoriesRanked({ query: trimmed, k: QUERY_K });
232
+ relevant = hits.map((h) => h.memory).filter((m) => !criticalIds.has(m.id));
233
+ }
234
+ const merged = [...critical, ...relevant];
235
+ if (merged.length === 0)
236
+ return "";
237
+ const formatted = formatMemoriesForPrompt(merged, CHAR_BUDGET);
238
+ if (!formatted)
239
+ return "";
240
+ return `\n\n[MEMORY — Critical and prompt-relevant memories from the GSD memory store]\n\n${formatted}`;
241
+ }
242
+ catch (e) {
243
+ logWarning("bootstrap", `memory block fetch failed: ${e.message}`);
244
+ return "";
245
+ }
246
+ }
173
247
  export function loadKnowledgeBlock(gsdHomeDir, cwd) {
174
248
  // 1. Global knowledge (~/.gsd/agent/KNOWLEDGE.md) — cross-project, user-maintained
175
249
  let globalKnowledge = "";