gsd-pi 2.74.0-dev.6e23363 → 2.74.0-dev.b2838e6

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 (329) hide show
  1. package/dist/resources/extensions/gsd/auto/phases.js +51 -6
  2. package/dist/resources/extensions/gsd/auto-model-selection.js +3 -3
  3. package/dist/resources/extensions/gsd/auto-post-unit.js +7 -3
  4. package/dist/resources/extensions/gsd/auto-recovery.js +24 -10
  5. package/dist/resources/extensions/gsd/auto-worktree.js +2 -0
  6. package/dist/resources/extensions/gsd/bootstrap/provider-error-resume.js +5 -3
  7. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +10 -1
  8. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +61 -9
  9. package/dist/resources/extensions/gsd/cache.js +16 -5
  10. package/dist/resources/extensions/gsd/commands/catalog.js +6 -1
  11. package/dist/resources/extensions/gsd/commands/handlers/core.js +5 -1
  12. package/dist/resources/extensions/gsd/commands/handlers/ops.js +5 -0
  13. package/dist/resources/extensions/gsd/commands-extract-learnings.js +225 -0
  14. package/dist/resources/extensions/gsd/commands-prefs-wizard.js +50 -3
  15. package/dist/resources/extensions/gsd/docs/preferences-reference.md +2 -0
  16. package/dist/resources/extensions/gsd/ecosystem/gsd-extension-api.js +144 -0
  17. package/dist/resources/extensions/gsd/ecosystem/loader.js +145 -0
  18. package/dist/resources/extensions/gsd/guided-flow.js +8 -6
  19. package/dist/resources/extensions/gsd/preferences-types.js +1 -0
  20. package/dist/resources/extensions/gsd/preferences-validation.js +10 -0
  21. package/dist/resources/extensions/gsd/preferences.js +5 -0
  22. package/dist/resources/extensions/gsd/safety/evidence-collector.js +15 -30
  23. package/dist/resources/extensions/gsd/templates/PREFERENCES.md +1 -0
  24. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  25. package/dist/web/standalone/.next/BUILD_ID +1 -1
  26. package/dist/web/standalone/.next/app-path-routes-manifest.json +8 -8
  27. package/dist/web/standalone/.next/build-manifest.json +2 -2
  28. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  29. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  30. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  31. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  32. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  33. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  34. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  35. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  36. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  37. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  38. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  39. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  40. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  41. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  42. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  43. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  44. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  45. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  46. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
  47. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +1 -1
  48. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +1 -1
  49. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +1 -1
  50. package/dist/web/standalone/.next/server/app/index.html +1 -1
  51. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  52. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  53. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  54. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  55. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  56. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  57. package/dist/web/standalone/.next/server/app-paths-manifest.json +8 -8
  58. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  59. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  60. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  61. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  62. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  63. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  64. package/package.json +1 -1
  65. package/packages/mcp-server/dist/readers/graph.d.ts +1 -1
  66. package/packages/mcp-server/dist/readers/graph.d.ts.map +1 -1
  67. package/packages/mcp-server/dist/readers/graph.js +107 -0
  68. package/packages/mcp-server/dist/readers/graph.js.map +1 -1
  69. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  70. package/packages/mcp-server/dist/workflow-tools.js +88 -6
  71. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  72. package/packages/mcp-server/src/readers/graph.test.ts +178 -0
  73. package/packages/mcp-server/src/readers/graph.ts +148 -1
  74. package/packages/mcp-server/src/workflow-tools.ts +95 -10
  75. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  76. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
  77. package/packages/pi-ai/dist/index.d.ts +1 -9
  78. package/packages/pi-ai/dist/index.d.ts.map +1 -1
  79. package/packages/pi-ai/dist/index.js +1 -9
  80. package/packages/pi-ai/dist/index.js.map +1 -1
  81. package/packages/pi-ai/dist/models/capability-patches.d.ts +19 -0
  82. package/packages/pi-ai/dist/models/capability-patches.d.ts.map +1 -0
  83. package/packages/pi-ai/dist/models/capability-patches.js +36 -0
  84. package/packages/pi-ai/dist/models/capability-patches.js.map +1 -0
  85. package/packages/pi-ai/dist/{models.custom.d.ts → models/custom.d.ts} +1 -1
  86. package/packages/pi-ai/dist/models/custom.d.ts.map +1 -0
  87. package/packages/pi-ai/dist/{models.custom.js → models/custom.js} +4 -4
  88. package/packages/pi-ai/dist/models/custom.js.map +1 -0
  89. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts +1482 -0
  90. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts.map +1 -0
  91. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js +1484 -0
  92. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js.map +1 -0
  93. package/packages/pi-ai/dist/models/generated/anthropic.d.ts +377 -0
  94. package/packages/pi-ai/dist/models/generated/anthropic.d.ts.map +1 -0
  95. package/packages/pi-ai/dist/models/generated/anthropic.js +379 -0
  96. package/packages/pi-ai/dist/models/generated/anthropic.js.map +1 -0
  97. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts +700 -0
  98. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts.map +1 -0
  99. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js +702 -0
  100. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js.map +1 -0
  101. package/packages/pi-ai/dist/models/generated/cerebras.d.ts +71 -0
  102. package/packages/pi-ai/dist/models/generated/cerebras.d.ts.map +1 -0
  103. package/packages/pi-ai/dist/models/generated/cerebras.js +73 -0
  104. package/packages/pi-ai/dist/models/generated/cerebras.js.map +1 -0
  105. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts +590 -0
  106. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts.map +1 -0
  107. package/packages/pi-ai/dist/models/generated/github-copilot.js +444 -0
  108. package/packages/pi-ai/dist/models/generated/github-copilot.js.map +1 -0
  109. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts +156 -0
  110. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts.map +1 -0
  111. package/packages/pi-ai/dist/models/generated/google-antigravity.js +158 -0
  112. package/packages/pi-ai/dist/models/generated/google-antigravity.js.map +1 -0
  113. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts +105 -0
  114. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts.map +1 -0
  115. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js +107 -0
  116. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js.map +1 -0
  117. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts +207 -0
  118. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts.map +1 -0
  119. package/packages/pi-ai/dist/models/generated/google-vertex.js +209 -0
  120. package/packages/pi-ai/dist/models/generated/google-vertex.js.map +1 -0
  121. package/packages/pi-ai/dist/models/generated/google.d.ts +462 -0
  122. package/packages/pi-ai/dist/models/generated/google.d.ts.map +1 -0
  123. package/packages/pi-ai/dist/models/generated/google.js +464 -0
  124. package/packages/pi-ai/dist/models/generated/google.js.map +1 -0
  125. package/packages/pi-ai/dist/models/generated/groq.d.ts +309 -0
  126. package/packages/pi-ai/dist/models/generated/groq.d.ts.map +1 -0
  127. package/packages/pi-ai/dist/models/generated/groq.js +311 -0
  128. package/packages/pi-ai/dist/models/generated/groq.js.map +1 -0
  129. package/packages/pi-ai/dist/models/generated/huggingface.d.ts +383 -0
  130. package/packages/pi-ai/dist/models/generated/huggingface.d.ts.map +1 -0
  131. package/packages/pi-ai/dist/models/generated/huggingface.js +347 -0
  132. package/packages/pi-ai/dist/models/generated/huggingface.js.map +1 -0
  133. package/packages/pi-ai/dist/{models.generated.d.ts → models/generated/index.d.ts} +1 -1
  134. package/packages/pi-ai/dist/{models.generated.d.ts.map → models/generated/index.d.ts.map} +1 -1
  135. package/packages/pi-ai/dist/models/generated/index.js +51 -0
  136. package/packages/pi-ai/dist/models/generated/index.js.map +1 -0
  137. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts +37 -0
  138. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts.map +1 -0
  139. package/packages/pi-ai/dist/models/generated/kimi-coding.js +39 -0
  140. package/packages/pi-ai/dist/models/generated/kimi-coding.js.map +1 -0
  141. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts +105 -0
  142. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts.map +1 -0
  143. package/packages/pi-ai/dist/models/generated/minimax-cn.js +107 -0
  144. package/packages/pi-ai/dist/models/generated/minimax-cn.js.map +1 -0
  145. package/packages/pi-ai/dist/models/generated/minimax.d.ts +105 -0
  146. package/packages/pi-ai/dist/models/generated/minimax.d.ts.map +1 -0
  147. package/packages/pi-ai/dist/models/generated/minimax.js +107 -0
  148. package/packages/pi-ai/dist/models/generated/minimax.js.map +1 -0
  149. package/packages/pi-ai/dist/models/generated/mistral.d.ts +445 -0
  150. package/packages/pi-ai/dist/models/generated/mistral.d.ts.map +1 -0
  151. package/packages/pi-ai/dist/models/generated/mistral.js +447 -0
  152. package/packages/pi-ai/dist/models/generated/mistral.js.map +1 -0
  153. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts +139 -0
  154. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts.map +1 -0
  155. package/packages/pi-ai/dist/models/generated/openai-codex.js +141 -0
  156. package/packages/pi-ai/dist/models/generated/openai-codex.js.map +1 -0
  157. package/packages/pi-ai/dist/models/generated/openai.d.ts +700 -0
  158. package/packages/pi-ai/dist/models/generated/openai.d.ts.map +1 -0
  159. package/packages/pi-ai/dist/models/generated/openai.js +702 -0
  160. package/packages/pi-ai/dist/models/generated/openai.js.map +1 -0
  161. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts +122 -0
  162. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts.map +1 -0
  163. package/packages/pi-ai/dist/models/generated/opencode-go.js +124 -0
  164. package/packages/pi-ai/dist/models/generated/opencode-go.js.map +1 -0
  165. package/packages/pi-ai/dist/models/generated/opencode.d.ts +530 -0
  166. package/packages/pi-ai/dist/models/generated/opencode.d.ts.map +1 -0
  167. package/packages/pi-ai/dist/models/generated/opencode.js +532 -0
  168. package/packages/pi-ai/dist/models/generated/opencode.js.map +1 -0
  169. package/packages/pi-ai/dist/models/generated/openrouter.d.ts +4270 -0
  170. package/packages/pi-ai/dist/models/generated/openrouter.d.ts.map +1 -0
  171. package/packages/pi-ai/dist/models/generated/openrouter.js +4272 -0
  172. package/packages/pi-ai/dist/models/generated/openrouter.js.map +1 -0
  173. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts +2604 -0
  174. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts.map +1 -0
  175. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js +2606 -0
  176. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js.map +1 -0
  177. package/packages/pi-ai/dist/models/generated/xai.d.ts +411 -0
  178. package/packages/pi-ai/dist/models/generated/xai.d.ts.map +1 -0
  179. package/packages/pi-ai/dist/models/generated/xai.js +413 -0
  180. package/packages/pi-ai/dist/models/generated/xai.js.map +1 -0
  181. package/packages/pi-ai/dist/models/generated/zai.d.ts +276 -0
  182. package/packages/pi-ai/dist/models/generated/zai.d.ts.map +1 -0
  183. package/packages/pi-ai/dist/models/generated/zai.js +239 -0
  184. package/packages/pi-ai/dist/models/generated/zai.js.map +1 -0
  185. package/packages/pi-ai/dist/models/index.d.ts +27 -0
  186. package/packages/pi-ai/dist/models/index.d.ts.map +1 -0
  187. package/packages/pi-ai/dist/models/index.js +80 -0
  188. package/packages/pi-ai/dist/models/index.js.map +1 -0
  189. package/packages/pi-ai/dist/models.d.ts +1 -36
  190. package/packages/pi-ai/dist/models.d.ts.map +1 -1
  191. package/packages/pi-ai/dist/models.generated.test.js +1 -2
  192. package/packages/pi-ai/dist/models.generated.test.js.map +1 -1
  193. package/packages/pi-ai/dist/models.js +3 -112
  194. package/packages/pi-ai/dist/models.js.map +1 -1
  195. package/packages/pi-ai/dist/models.test.js +6 -5
  196. package/packages/pi-ai/dist/models.test.js.map +1 -1
  197. package/packages/pi-ai/scripts/generate-models.ts +74 -40
  198. package/packages/pi-ai/src/index.ts +1 -9
  199. package/packages/pi-ai/src/models/capability-patches.ts +40 -0
  200. package/packages/pi-ai/src/{models.custom.ts → models/custom.ts} +4 -4
  201. package/packages/pi-ai/src/models/generated/amazon-bedrock.ts +1486 -0
  202. package/packages/pi-ai/src/models/generated/anthropic.ts +381 -0
  203. package/packages/pi-ai/src/models/generated/azure-openai-responses.ts +704 -0
  204. package/packages/pi-ai/src/models/generated/cerebras.ts +75 -0
  205. package/packages/pi-ai/src/models/generated/github-copilot.ts +446 -0
  206. package/packages/pi-ai/src/models/generated/google-antigravity.ts +160 -0
  207. package/packages/pi-ai/src/models/generated/google-gemini-cli.ts +109 -0
  208. package/packages/pi-ai/src/models/generated/google-vertex.ts +211 -0
  209. package/packages/pi-ai/src/models/generated/google.ts +466 -0
  210. package/packages/pi-ai/src/models/generated/groq.ts +313 -0
  211. package/packages/pi-ai/src/models/generated/huggingface.ts +349 -0
  212. package/packages/pi-ai/src/models/generated/index.ts +52 -0
  213. package/packages/pi-ai/src/models/generated/kimi-coding.ts +41 -0
  214. package/packages/pi-ai/src/models/generated/minimax-cn.ts +109 -0
  215. package/packages/pi-ai/src/models/generated/minimax.ts +109 -0
  216. package/packages/pi-ai/src/models/generated/mistral.ts +449 -0
  217. package/packages/pi-ai/src/models/generated/openai-codex.ts +143 -0
  218. package/packages/pi-ai/src/models/generated/openai.ts +704 -0
  219. package/packages/pi-ai/src/models/generated/opencode-go.ts +126 -0
  220. package/packages/pi-ai/src/models/generated/opencode.ts +534 -0
  221. package/packages/pi-ai/src/models/generated/openrouter.ts +4274 -0
  222. package/packages/pi-ai/src/models/generated/vercel-ai-gateway.ts +2608 -0
  223. package/packages/pi-ai/src/models/generated/xai.ts +415 -0
  224. package/packages/pi-ai/src/models/generated/zai.ts +241 -0
  225. package/packages/pi-ai/src/models/index.ts +106 -0
  226. package/packages/pi-ai/src/models.generated.test.ts +1 -2
  227. package/packages/pi-ai/src/models.test.ts +6 -5
  228. package/packages/pi-ai/src/models.ts +3 -153
  229. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  230. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  231. package/packages/pi-coding-agent/dist/core/agent-session.js +8 -2
  232. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  233. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +359 -7
  234. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  235. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.d.ts +2 -0
  236. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.d.ts.map +1 -0
  237. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js +61 -0
  238. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.js.map +1 -0
  239. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +11 -0
  240. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  241. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts +1 -0
  242. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  243. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +23 -9
  244. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
  245. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts +11 -0
  246. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -0
  247. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +53 -0
  248. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -0
  249. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts +8 -5
  250. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
  251. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.js +27 -13
  252. package/packages/pi-coding-agent/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
  253. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +8 -0
  254. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  255. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +68 -8
  256. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  257. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  258. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js +22 -22
  259. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js.map +1 -1
  260. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  261. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +192 -22
  262. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  263. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts +2 -0
  264. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts.map +1 -0
  265. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js +38 -0
  266. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js.map +1 -0
  267. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +14 -0
  268. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  269. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +70 -6
  270. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  271. package/packages/pi-coding-agent/src/core/agent-session.ts +12 -6
  272. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +453 -7
  273. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/chat-frame-compaction-tone.test.ts +92 -0
  274. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +19 -0
  275. package/packages/pi-coding-agent/src/modes/interactive/components/assistant-message.ts +25 -10
  276. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +75 -0
  277. package/packages/pi-coding-agent/src/modes/interactive/components/compaction-summary-message.ts +36 -15
  278. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +83 -7
  279. package/packages/pi-coding-agent/src/modes/interactive/components/user-message.ts +23 -26
  280. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +253 -45
  281. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-ordering.test.ts +44 -0
  282. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +92 -6
  283. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  284. package/packages/pi-tui/dist/tui.d.ts.map +1 -1
  285. package/packages/pi-tui/dist/tui.js +9 -2
  286. package/packages/pi-tui/dist/tui.js.map +1 -1
  287. package/packages/pi-tui/src/tui.ts +9 -1
  288. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
  289. package/src/resources/extensions/gsd/auto/phases.ts +70 -6
  290. package/src/resources/extensions/gsd/auto-model-selection.ts +3 -3
  291. package/src/resources/extensions/gsd/auto-post-unit.ts +7 -3
  292. package/src/resources/extensions/gsd/auto-recovery.ts +29 -9
  293. package/src/resources/extensions/gsd/auto-worktree.ts +1 -0
  294. package/src/resources/extensions/gsd/bootstrap/provider-error-resume.ts +5 -3
  295. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +15 -1
  296. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +72 -8
  297. package/src/resources/extensions/gsd/cache.ts +16 -5
  298. package/src/resources/extensions/gsd/commands/catalog.ts +6 -1
  299. package/src/resources/extensions/gsd/commands/handlers/core.ts +5 -1
  300. package/src/resources/extensions/gsd/commands/handlers/ops.ts +5 -0
  301. package/src/resources/extensions/gsd/commands-extract-learnings.ts +304 -0
  302. package/src/resources/extensions/gsd/commands-prefs-wizard.ts +57 -3
  303. package/src/resources/extensions/gsd/docs/preferences-reference.md +2 -0
  304. package/src/resources/extensions/gsd/ecosystem/gsd-extension-api.ts +228 -0
  305. package/src/resources/extensions/gsd/ecosystem/loader.ts +201 -0
  306. package/src/resources/extensions/gsd/guided-flow.ts +4 -2
  307. package/src/resources/extensions/gsd/preferences-types.ts +6 -0
  308. package/src/resources/extensions/gsd/preferences-validation.ts +10 -0
  309. package/src/resources/extensions/gsd/preferences.ts +6 -0
  310. package/src/resources/extensions/gsd/safety/evidence-collector.ts +15 -31
  311. package/src/resources/extensions/gsd/templates/PREFERENCES.md +1 -0
  312. package/src/resources/extensions/gsd/tests/artifacts-table-preserved-on-cache-invalidate.test.ts +177 -0
  313. package/src/resources/extensions/gsd/tests/auto-retry-mcp-churn-fixes.test.ts +272 -0
  314. package/src/resources/extensions/gsd/tests/auto-warning-noise-regression.test.ts +117 -0
  315. package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +340 -0
  316. package/src/resources/extensions/gsd/tests/health-widget.test.ts +1 -1
  317. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +3 -3
  318. package/src/resources/extensions/gsd/tests/preferences.test.ts +145 -0
  319. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +57 -2
  320. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +1 -1
  321. package/src/resources/extensions/gsd/types.ts +13 -0
  322. package/src/resources/extensions/gsd/workflow-logger.ts +2 -1
  323. package/packages/pi-ai/dist/models.custom.d.ts.map +0 -1
  324. package/packages/pi-ai/dist/models.custom.js.map +0 -1
  325. package/packages/pi-ai/dist/models.generated.js +0 -14343
  326. package/packages/pi-ai/dist/models.generated.js.map +0 -1
  327. package/packages/pi-ai/src/models.generated.ts +0 -14345
  328. /package/dist/web/standalone/.next/static/{bc2gRVFTgD7j--BsJE7vP → wuiYdNtJdo9ISED55DAkz}/_buildManifest.js +0 -0
  329. /package/dist/web/standalone/.next/static/{bc2gRVFTgD7j--BsJE7vP → wuiYdNtJdo9ISED55DAkz}/_ssgManifest.js +0 -0
@@ -32,11 +32,11 @@ export function getFilePaths() {
32
32
  * Record a tool call at dispatch time (before execution).
33
33
  * Exit codes and output are filled in by recordToolResult after execution.
34
34
  */
35
- export function recordToolCall(toolName, input) {
35
+ export function recordToolCall(toolCallId, toolName, input) {
36
36
  if (toolName === "bash" || toolName === "Bash") {
37
37
  unitEvidence.push({
38
38
  kind: "bash",
39
- toolCallId: "",
39
+ toolCallId,
40
40
  command: String(input.command ?? ""),
41
41
  exitCode: -1,
42
42
  outputSnippet: "",
@@ -46,7 +46,7 @@ export function recordToolCall(toolName, input) {
46
46
  else if (toolName === "write" || toolName === "Write") {
47
47
  unitEvidence.push({
48
48
  kind: "write",
49
- toolCallId: "",
49
+ toolCallId,
50
50
  path: String(input.file_path ?? input.path ?? ""),
51
51
  timestamp: Date.now(),
52
52
  });
@@ -54,44 +54,29 @@ export function recordToolCall(toolName, input) {
54
54
  else if (toolName === "edit" || toolName === "Edit") {
55
55
  unitEvidence.push({
56
56
  kind: "edit",
57
- toolCallId: "",
57
+ toolCallId,
58
58
  path: String(input.file_path ?? input.path ?? ""),
59
59
  timestamp: Date.now(),
60
60
  });
61
61
  }
62
62
  }
63
63
  /**
64
- * Record a tool execution result. Matches the most recent unresolved entry
65
- * of the same kind and fills in the toolCallId, exit code, and output.
64
+ * Record a tool execution result. Matches the entry by toolCallId (assigned
65
+ * at dispatch time) and fills in exit code + output. Prior versions matched
66
+ * by `kind + empty-string` which corrupted parallel tool calls.
66
67
  */
67
68
  export function recordToolResult(toolCallId, toolName, result, isError) {
68
- const normalizedName = toolName.toLowerCase();
69
- if (normalizedName === "bash") {
70
- const entry = findLastUnresolved("bash");
71
- if (entry) {
72
- entry.toolCallId = toolCallId;
73
- const text = extractResultText(result);
74
- entry.outputSnippet = text.slice(0, 500);
75
- const exitMatch = text.match(/Command exited with code (\d+)/);
76
- entry.exitCode = exitMatch ? Number(exitMatch[1]) : (isError ? 1 : 0);
77
- }
78
- }
79
- else if (normalizedName === "write" || normalizedName === "edit") {
80
- const entry = findLastUnresolved(normalizedName);
81
- if (entry) {
82
- entry.toolCallId = toolCallId;
83
- }
69
+ const entry = unitEvidence.find(e => e.toolCallId === toolCallId);
70
+ if (!entry)
71
+ return;
72
+ if (entry.kind === "bash") {
73
+ const text = extractResultText(result);
74
+ entry.outputSnippet = text.slice(0, 500);
75
+ const exitMatch = text.match(/Command exited with code (\d+)/);
76
+ entry.exitCode = exitMatch ? Number(exitMatch[1]) : (isError ? 1 : 0);
84
77
  }
85
78
  }
86
79
  // ─── Internals ──────────────────────────────────────────────────────────────
87
- function findLastUnresolved(kind) {
88
- for (let i = unitEvidence.length - 1; i >= 0; i--) {
89
- if (unitEvidence[i].kind === kind && unitEvidence[i].toolCallId === "") {
90
- return unitEvidence[i];
91
- }
92
- }
93
- return undefined;
94
- }
95
80
  function extractResultText(result) {
96
81
  if (typeof result === "string")
97
82
  return result;
@@ -89,6 +89,7 @@ remote_questions:
89
89
  uat_dispatch:
90
90
  post_unit_hooks: []
91
91
  pre_dispatch_hooks: []
92
+ # language:
92
93
  # experimental:
93
94
  # rtk: false
94
95
  ---