gsd-pi 2.74.0-dev.6e23363 → 2.74.0-dev.703eabc

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 (271) hide show
  1. package/dist/resources/extensions/gsd/auto-post-unit.js +7 -3
  2. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +10 -1
  3. package/dist/resources/extensions/gsd/bootstrap/register-hooks.js +45 -4
  4. package/dist/resources/extensions/gsd/commands/handlers/ops.js +5 -0
  5. package/dist/resources/extensions/gsd/commands-extract-learnings.js +225 -0
  6. package/dist/resources/extensions/gsd/ecosystem/gsd-extension-api.js +144 -0
  7. package/dist/resources/extensions/gsd/ecosystem/loader.js +145 -0
  8. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  9. package/dist/web/standalone/.next/BUILD_ID +1 -1
  10. package/dist/web/standalone/.next/app-path-routes-manifest.json +16 -16
  11. package/dist/web/standalone/.next/build-manifest.json +2 -2
  12. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  13. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  14. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  15. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  16. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  17. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  18. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  19. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  20. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  21. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  22. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  23. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  24. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  25. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  26. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  27. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  28. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  29. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  30. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
  31. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +1 -1
  32. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +1 -1
  33. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +1 -1
  34. package/dist/web/standalone/.next/server/app/index.html +1 -1
  35. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  36. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  37. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  38. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  39. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  40. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  41. package/dist/web/standalone/.next/server/app-paths-manifest.json +16 -16
  42. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  43. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  44. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  45. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  46. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  47. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  48. package/package.json +1 -1
  49. package/packages/mcp-server/dist/readers/graph.d.ts +1 -1
  50. package/packages/mcp-server/dist/readers/graph.d.ts.map +1 -1
  51. package/packages/mcp-server/dist/readers/graph.js +107 -0
  52. package/packages/mcp-server/dist/readers/graph.js.map +1 -1
  53. package/packages/mcp-server/src/readers/graph.test.ts +178 -0
  54. package/packages/mcp-server/src/readers/graph.ts +148 -1
  55. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  56. package/packages/pi-agent-core/tsconfig.tsbuildinfo +1 -1
  57. package/packages/pi-ai/dist/index.d.ts +1 -9
  58. package/packages/pi-ai/dist/index.d.ts.map +1 -1
  59. package/packages/pi-ai/dist/index.js +1 -9
  60. package/packages/pi-ai/dist/index.js.map +1 -1
  61. package/packages/pi-ai/dist/models/capability-patches.d.ts +19 -0
  62. package/packages/pi-ai/dist/models/capability-patches.d.ts.map +1 -0
  63. package/packages/pi-ai/dist/models/capability-patches.js +36 -0
  64. package/packages/pi-ai/dist/models/capability-patches.js.map +1 -0
  65. package/packages/pi-ai/dist/{models.custom.d.ts → models/custom.d.ts} +1 -1
  66. package/packages/pi-ai/dist/models/custom.d.ts.map +1 -0
  67. package/packages/pi-ai/dist/{models.custom.js → models/custom.js} +4 -4
  68. package/packages/pi-ai/dist/models/custom.js.map +1 -0
  69. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts +1482 -0
  70. package/packages/pi-ai/dist/models/generated/amazon-bedrock.d.ts.map +1 -0
  71. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js +1484 -0
  72. package/packages/pi-ai/dist/models/generated/amazon-bedrock.js.map +1 -0
  73. package/packages/pi-ai/dist/models/generated/anthropic.d.ts +377 -0
  74. package/packages/pi-ai/dist/models/generated/anthropic.d.ts.map +1 -0
  75. package/packages/pi-ai/dist/models/generated/anthropic.js +379 -0
  76. package/packages/pi-ai/dist/models/generated/anthropic.js.map +1 -0
  77. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts +700 -0
  78. package/packages/pi-ai/dist/models/generated/azure-openai-responses.d.ts.map +1 -0
  79. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js +702 -0
  80. package/packages/pi-ai/dist/models/generated/azure-openai-responses.js.map +1 -0
  81. package/packages/pi-ai/dist/models/generated/cerebras.d.ts +71 -0
  82. package/packages/pi-ai/dist/models/generated/cerebras.d.ts.map +1 -0
  83. package/packages/pi-ai/dist/models/generated/cerebras.js +73 -0
  84. package/packages/pi-ai/dist/models/generated/cerebras.js.map +1 -0
  85. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts +590 -0
  86. package/packages/pi-ai/dist/models/generated/github-copilot.d.ts.map +1 -0
  87. package/packages/pi-ai/dist/models/generated/github-copilot.js +444 -0
  88. package/packages/pi-ai/dist/models/generated/github-copilot.js.map +1 -0
  89. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts +156 -0
  90. package/packages/pi-ai/dist/models/generated/google-antigravity.d.ts.map +1 -0
  91. package/packages/pi-ai/dist/models/generated/google-antigravity.js +158 -0
  92. package/packages/pi-ai/dist/models/generated/google-antigravity.js.map +1 -0
  93. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts +105 -0
  94. package/packages/pi-ai/dist/models/generated/google-gemini-cli.d.ts.map +1 -0
  95. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js +107 -0
  96. package/packages/pi-ai/dist/models/generated/google-gemini-cli.js.map +1 -0
  97. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts +207 -0
  98. package/packages/pi-ai/dist/models/generated/google-vertex.d.ts.map +1 -0
  99. package/packages/pi-ai/dist/models/generated/google-vertex.js +209 -0
  100. package/packages/pi-ai/dist/models/generated/google-vertex.js.map +1 -0
  101. package/packages/pi-ai/dist/models/generated/google.d.ts +462 -0
  102. package/packages/pi-ai/dist/models/generated/google.d.ts.map +1 -0
  103. package/packages/pi-ai/dist/models/generated/google.js +464 -0
  104. package/packages/pi-ai/dist/models/generated/google.js.map +1 -0
  105. package/packages/pi-ai/dist/models/generated/groq.d.ts +309 -0
  106. package/packages/pi-ai/dist/models/generated/groq.d.ts.map +1 -0
  107. package/packages/pi-ai/dist/models/generated/groq.js +311 -0
  108. package/packages/pi-ai/dist/models/generated/groq.js.map +1 -0
  109. package/packages/pi-ai/dist/models/generated/huggingface.d.ts +383 -0
  110. package/packages/pi-ai/dist/models/generated/huggingface.d.ts.map +1 -0
  111. package/packages/pi-ai/dist/models/generated/huggingface.js +347 -0
  112. package/packages/pi-ai/dist/models/generated/huggingface.js.map +1 -0
  113. package/packages/pi-ai/dist/{models.generated.d.ts → models/generated/index.d.ts} +1 -1
  114. package/packages/pi-ai/dist/{models.generated.d.ts.map → models/generated/index.d.ts.map} +1 -1
  115. package/packages/pi-ai/dist/models/generated/index.js +51 -0
  116. package/packages/pi-ai/dist/models/generated/index.js.map +1 -0
  117. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts +37 -0
  118. package/packages/pi-ai/dist/models/generated/kimi-coding.d.ts.map +1 -0
  119. package/packages/pi-ai/dist/models/generated/kimi-coding.js +39 -0
  120. package/packages/pi-ai/dist/models/generated/kimi-coding.js.map +1 -0
  121. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts +105 -0
  122. package/packages/pi-ai/dist/models/generated/minimax-cn.d.ts.map +1 -0
  123. package/packages/pi-ai/dist/models/generated/minimax-cn.js +107 -0
  124. package/packages/pi-ai/dist/models/generated/minimax-cn.js.map +1 -0
  125. package/packages/pi-ai/dist/models/generated/minimax.d.ts +105 -0
  126. package/packages/pi-ai/dist/models/generated/minimax.d.ts.map +1 -0
  127. package/packages/pi-ai/dist/models/generated/minimax.js +107 -0
  128. package/packages/pi-ai/dist/models/generated/minimax.js.map +1 -0
  129. package/packages/pi-ai/dist/models/generated/mistral.d.ts +445 -0
  130. package/packages/pi-ai/dist/models/generated/mistral.d.ts.map +1 -0
  131. package/packages/pi-ai/dist/models/generated/mistral.js +447 -0
  132. package/packages/pi-ai/dist/models/generated/mistral.js.map +1 -0
  133. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts +139 -0
  134. package/packages/pi-ai/dist/models/generated/openai-codex.d.ts.map +1 -0
  135. package/packages/pi-ai/dist/models/generated/openai-codex.js +141 -0
  136. package/packages/pi-ai/dist/models/generated/openai-codex.js.map +1 -0
  137. package/packages/pi-ai/dist/models/generated/openai.d.ts +700 -0
  138. package/packages/pi-ai/dist/models/generated/openai.d.ts.map +1 -0
  139. package/packages/pi-ai/dist/models/generated/openai.js +702 -0
  140. package/packages/pi-ai/dist/models/generated/openai.js.map +1 -0
  141. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts +122 -0
  142. package/packages/pi-ai/dist/models/generated/opencode-go.d.ts.map +1 -0
  143. package/packages/pi-ai/dist/models/generated/opencode-go.js +124 -0
  144. package/packages/pi-ai/dist/models/generated/opencode-go.js.map +1 -0
  145. package/packages/pi-ai/dist/models/generated/opencode.d.ts +530 -0
  146. package/packages/pi-ai/dist/models/generated/opencode.d.ts.map +1 -0
  147. package/packages/pi-ai/dist/models/generated/opencode.js +532 -0
  148. package/packages/pi-ai/dist/models/generated/opencode.js.map +1 -0
  149. package/packages/pi-ai/dist/models/generated/openrouter.d.ts +4270 -0
  150. package/packages/pi-ai/dist/models/generated/openrouter.d.ts.map +1 -0
  151. package/packages/pi-ai/dist/models/generated/openrouter.js +4272 -0
  152. package/packages/pi-ai/dist/models/generated/openrouter.js.map +1 -0
  153. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts +2604 -0
  154. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.d.ts.map +1 -0
  155. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js +2606 -0
  156. package/packages/pi-ai/dist/models/generated/vercel-ai-gateway.js.map +1 -0
  157. package/packages/pi-ai/dist/models/generated/xai.d.ts +411 -0
  158. package/packages/pi-ai/dist/models/generated/xai.d.ts.map +1 -0
  159. package/packages/pi-ai/dist/models/generated/xai.js +413 -0
  160. package/packages/pi-ai/dist/models/generated/xai.js.map +1 -0
  161. package/packages/pi-ai/dist/models/generated/zai.d.ts +276 -0
  162. package/packages/pi-ai/dist/models/generated/zai.d.ts.map +1 -0
  163. package/packages/pi-ai/dist/models/generated/zai.js +239 -0
  164. package/packages/pi-ai/dist/models/generated/zai.js.map +1 -0
  165. package/packages/pi-ai/dist/models/index.d.ts +27 -0
  166. package/packages/pi-ai/dist/models/index.d.ts.map +1 -0
  167. package/packages/pi-ai/dist/models/index.js +80 -0
  168. package/packages/pi-ai/dist/models/index.js.map +1 -0
  169. package/packages/pi-ai/dist/models.d.ts +1 -36
  170. package/packages/pi-ai/dist/models.d.ts.map +1 -1
  171. package/packages/pi-ai/dist/models.generated.test.js +1 -2
  172. package/packages/pi-ai/dist/models.generated.test.js.map +1 -1
  173. package/packages/pi-ai/dist/models.js +3 -112
  174. package/packages/pi-ai/dist/models.js.map +1 -1
  175. package/packages/pi-ai/dist/models.test.js +6 -5
  176. package/packages/pi-ai/dist/models.test.js.map +1 -1
  177. package/packages/pi-ai/scripts/generate-models.ts +74 -40
  178. package/packages/pi-ai/src/index.ts +1 -9
  179. package/packages/pi-ai/src/models/capability-patches.ts +40 -0
  180. package/packages/pi-ai/src/{models.custom.ts → models/custom.ts} +4 -4
  181. package/packages/pi-ai/src/models/generated/amazon-bedrock.ts +1486 -0
  182. package/packages/pi-ai/src/models/generated/anthropic.ts +381 -0
  183. package/packages/pi-ai/src/models/generated/azure-openai-responses.ts +704 -0
  184. package/packages/pi-ai/src/models/generated/cerebras.ts +75 -0
  185. package/packages/pi-ai/src/models/generated/github-copilot.ts +446 -0
  186. package/packages/pi-ai/src/models/generated/google-antigravity.ts +160 -0
  187. package/packages/pi-ai/src/models/generated/google-gemini-cli.ts +109 -0
  188. package/packages/pi-ai/src/models/generated/google-vertex.ts +211 -0
  189. package/packages/pi-ai/src/models/generated/google.ts +466 -0
  190. package/packages/pi-ai/src/models/generated/groq.ts +313 -0
  191. package/packages/pi-ai/src/models/generated/huggingface.ts +349 -0
  192. package/packages/pi-ai/src/models/generated/index.ts +52 -0
  193. package/packages/pi-ai/src/models/generated/kimi-coding.ts +41 -0
  194. package/packages/pi-ai/src/models/generated/minimax-cn.ts +109 -0
  195. package/packages/pi-ai/src/models/generated/minimax.ts +109 -0
  196. package/packages/pi-ai/src/models/generated/mistral.ts +449 -0
  197. package/packages/pi-ai/src/models/generated/openai-codex.ts +143 -0
  198. package/packages/pi-ai/src/models/generated/openai.ts +704 -0
  199. package/packages/pi-ai/src/models/generated/opencode-go.ts +126 -0
  200. package/packages/pi-ai/src/models/generated/opencode.ts +534 -0
  201. package/packages/pi-ai/src/models/generated/openrouter.ts +4274 -0
  202. package/packages/pi-ai/src/models/generated/vercel-ai-gateway.ts +2608 -0
  203. package/packages/pi-ai/src/models/generated/xai.ts +415 -0
  204. package/packages/pi-ai/src/models/generated/zai.ts +241 -0
  205. package/packages/pi-ai/src/models/index.ts +106 -0
  206. package/packages/pi-ai/src/models.generated.test.ts +1 -2
  207. package/packages/pi-ai/src/models.test.ts +6 -5
  208. package/packages/pi-ai/src/models.ts +3 -153
  209. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  210. package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  211. package/packages/pi-coding-agent/dist/core/agent-session.js +8 -2
  212. package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  213. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js +359 -7
  214. package/packages/pi-coding-agent/dist/core/chat-controller-ordering.test.js.map +1 -1
  215. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +11 -0
  216. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  217. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts +1 -0
  218. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
  219. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js +23 -9
  220. package/packages/pi-coding-agent/dist/modes/interactive/components/assistant-message.js.map +1 -1
  221. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts +11 -0
  222. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.d.ts.map +1 -0
  223. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js +47 -0
  224. package/packages/pi-coding-agent/dist/modes/interactive/components/chat-frame.js.map +1 -0
  225. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  226. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +51 -8
  227. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  228. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.d.ts.map +1 -1
  229. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js +22 -22
  230. package/packages/pi-coding-agent/dist/modes/interactive/components/user-message.js.map +1 -1
  231. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
  232. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +192 -22
  233. package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
  234. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts +2 -0
  235. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.d.ts.map +1 -0
  236. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js +38 -0
  237. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-ordering.test.js.map +1 -0
  238. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +13 -0
  239. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  240. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +53 -6
  241. package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
  242. package/packages/pi-coding-agent/src/core/agent-session.ts +12 -6
  243. package/packages/pi-coding-agent/src/core/chat-controller-ordering.test.ts +453 -7
  244. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +19 -0
  245. package/packages/pi-coding-agent/src/modes/interactive/components/assistant-message.ts +25 -10
  246. package/packages/pi-coding-agent/src/modes/interactive/components/chat-frame.ts +67 -0
  247. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +66 -7
  248. package/packages/pi-coding-agent/src/modes/interactive/components/user-message.ts +23 -26
  249. package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +253 -45
  250. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-ordering.test.ts +44 -0
  251. package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +73 -6
  252. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  253. package/src/resources/extensions/gsd/auto-post-unit.ts +7 -3
  254. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +15 -1
  255. package/src/resources/extensions/gsd/bootstrap/register-hooks.ts +56 -3
  256. package/src/resources/extensions/gsd/commands/handlers/ops.ts +5 -0
  257. package/src/resources/extensions/gsd/commands-extract-learnings.ts +304 -0
  258. package/src/resources/extensions/gsd/ecosystem/gsd-extension-api.ts +228 -0
  259. package/src/resources/extensions/gsd/ecosystem/loader.ts +201 -0
  260. package/src/resources/extensions/gsd/tests/commands-extract-learnings.test.ts +340 -0
  261. package/src/resources/extensions/gsd/tests/health-widget.test.ts +1 -1
  262. package/src/resources/extensions/gsd/tests/register-hooks-depth-verification.test.ts +1 -1
  263. package/src/resources/extensions/gsd/types.ts +13 -0
  264. package/src/resources/extensions/gsd/workflow-logger.ts +2 -1
  265. package/packages/pi-ai/dist/models.custom.d.ts.map +0 -1
  266. package/packages/pi-ai/dist/models.custom.js.map +0 -1
  267. package/packages/pi-ai/dist/models.generated.js +0 -14343
  268. package/packages/pi-ai/dist/models.generated.js.map +0 -1
  269. package/packages/pi-ai/src/models.generated.ts +0 -14345
  270. /package/dist/web/standalone/.next/static/{bc2gRVFTgD7j--BsJE7vP → 3U-oZ5FT59BM7sm2GInic}/_buildManifest.js +0 -0
  271. /package/dist/web/standalone/.next/static/{bc2gRVFTgD7j--BsJE7vP → 3U-oZ5FT59BM7sm2GInic}/_ssgManifest.js +0 -0
@@ -127,6 +127,45 @@ function isExpandable(obj: unknown): obj is Expandable {
127
127
  return typeof obj === "object" && obj !== null && "setExpanded" in obj && typeof obj.setExpanded === "function";
128
128
  }
129
129
 
130
+ export type AssistantReplaySegment =
131
+ | { kind: "assistant"; startIndex: number; endIndex: number }
132
+ | { kind: "tool"; contentIndex: number };
133
+
134
+ /**
135
+ * Build replay segments for historical assistant messages so rebuild paths
136
+ * preserve the original content[] ordering between assistant prose and tools.
137
+ */
138
+ export function buildAssistantReplaySegments(contentBlocks: Array<any>): AssistantReplaySegment[] {
139
+ const segments: AssistantReplaySegment[] = [];
140
+ let runStart = -1;
141
+
142
+ for (let i = 0; i < contentBlocks.length; i++) {
143
+ const block = contentBlocks[i];
144
+ const isAssistantText = block?.type === "text" || block?.type === "thinking";
145
+ const isTool = block?.type === "toolCall" || block?.type === "serverToolUse";
146
+
147
+ if (isAssistantText) {
148
+ if (runStart === -1) runStart = i;
149
+ continue;
150
+ }
151
+
152
+ if (runStart !== -1) {
153
+ segments.push({ kind: "assistant", startIndex: runStart, endIndex: i - 1 });
154
+ runStart = -1;
155
+ }
156
+
157
+ if (isTool) {
158
+ segments.push({ kind: "tool", contentIndex: i });
159
+ }
160
+ }
161
+
162
+ if (runStart !== -1) {
163
+ segments.push({ kind: "assistant", startIndex: runStart, endIndex: contentBlocks.length - 1 });
164
+ }
165
+
166
+ return segments;
167
+ }
168
+
130
169
  type CompactionQueuedMessage = {
131
170
  text: string;
132
171
  mode: "steer" | "followUp";
@@ -2078,6 +2117,7 @@ export class InteractiveMode {
2078
2117
  }
2079
2118
 
2080
2119
  private addMessageToChat(message: AgentMessage, options?: { populateHistory?: boolean }): void {
2120
+ const timestampFormat = this.settingsManager.getTimestampFormat();
2081
2121
  switch (message.role) {
2082
2122
  case "bashExecution": {
2083
2123
  const component = new BashExecutionComponent(message.command, this.ui, message.excludeFromContext);
@@ -2135,12 +2175,12 @@ export class InteractiveMode {
2135
2175
  skillBlock.userMessage,
2136
2176
  this.getMarkdownThemeWithSettings(),
2137
2177
  message.timestamp,
2138
- this.settingsManager.getTimestampFormat(),
2178
+ timestampFormat,
2139
2179
  );
2140
2180
  this.chatContainer.addChild(userComponent);
2141
2181
  }
2142
2182
  } else {
2143
- const userComponent = new UserMessageComponent(textContent, this.getMarkdownThemeWithSettings(), message.timestamp, this.settingsManager.getTimestampFormat());
2183
+ const userComponent = new UserMessageComponent(textContent, this.getMarkdownThemeWithSettings(), message.timestamp, timestampFormat);
2144
2184
  this.chatContainer.addChild(userComponent);
2145
2185
  }
2146
2186
  if (options?.populateHistory) {
@@ -2154,7 +2194,7 @@ export class InteractiveMode {
2154
2194
  message,
2155
2195
  this.hideThinkingBlock,
2156
2196
  this.getMarkdownThemeWithSettings(),
2157
- this.settingsManager.getTimestampFormat(),
2197
+ timestampFormat,
2158
2198
  );
2159
2199
  this.chatContainer.addChild(assistantComponent);
2160
2200
  break;
@@ -2192,6 +2232,7 @@ export class InteractiveMode {
2192
2232
  options: { updateFooter?: boolean; populateHistory?: boolean } = {},
2193
2233
  ): void {
2194
2234
  this.pendingTools.clear();
2235
+ const timestampFormat = this.settingsManager.getTimestampFormat();
2195
2236
 
2196
2237
  if (options.updateFooter) {
2197
2238
  this.footer.invalidate();
@@ -2201,9 +2242,30 @@ export class InteractiveMode {
2201
2242
  for (const message of sessionContext.messages) {
2202
2243
  // Assistant messages need special handling for tool calls
2203
2244
  if (message.role === "assistant") {
2204
- this.addMessageToChat(message);
2205
- // Render tool call components
2206
- for (const content of message.content) {
2245
+ const hasToolBlocks = message.content.some((c) => c.type === "toolCall" || c.type === "serverToolUse");
2246
+ if (!hasToolBlocks) {
2247
+ this.addMessageToChat(message);
2248
+ continue;
2249
+ }
2250
+
2251
+ const assistantSegments: AssistantMessageComponent[] = [];
2252
+ const replaySegments = buildAssistantReplaySegments(message.content);
2253
+
2254
+ for (const segment of replaySegments) {
2255
+ if (segment.kind === "assistant") {
2256
+ const assistantComponent = new AssistantMessageComponent(
2257
+ message,
2258
+ this.hideThinkingBlock,
2259
+ this.getMarkdownThemeWithSettings(),
2260
+ timestampFormat,
2261
+ { startIndex: segment.startIndex, endIndex: segment.endIndex },
2262
+ );
2263
+ this.chatContainer.addChild(assistantComponent);
2264
+ assistantSegments.push(assistantComponent);
2265
+ continue;
2266
+ }
2267
+
2268
+ const content = message.content[segment.contentIndex];
2207
2269
  if (content.type === "toolCall") {
2208
2270
  const component = new ToolExecutionComponent(
2209
2271
  content.name,
@@ -2259,6 +2321,11 @@ export class InteractiveMode {
2259
2321
  }
2260
2322
  }
2261
2323
  }
2324
+
2325
+ // Match streaming-mode behavior: show metadata once on the final
2326
+ // assistant prose segment for this message.
2327
+ const lastAssistantSegment = assistantSegments[assistantSegments.length - 1];
2328
+ lastAssistantSegment?.setShowMetadata(true);
2262
2329
  } else if (message.role === "toolResult") {
2263
2330
  // Match tool results to pending tool components
2264
2331
  const component = this.pendingTools.get(message.toolCallId);