gsd-pi 2.77.0-dev.538325aea → 2.77.0-dev.58d3d4d6c

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 (1018) hide show
  1. package/dist/cli-web-branch.d.ts +1 -0
  2. package/dist/cli-web-branch.js +3 -0
  3. package/dist/cli.js +59 -15
  4. package/dist/extension-discovery.d.ts +6 -0
  5. package/dist/extension-discovery.js +37 -0
  6. package/dist/extension-registry.d.ts +3 -0
  7. package/dist/extension-registry.js +1 -1
  8. package/dist/extension-sort.d.ts +18 -0
  9. package/dist/extension-sort.js +114 -0
  10. package/dist/extension-validator.d.ts +47 -0
  11. package/dist/extension-validator.js +127 -0
  12. package/dist/headless-ui.d.ts +1 -1
  13. package/dist/headless.js +4 -2
  14. package/dist/loader.js +36 -7
  15. package/dist/onboarding.js +5 -5
  16. package/dist/provider-migrations.d.ts +20 -2
  17. package/dist/provider-migrations.js +15 -2
  18. package/dist/remote-questions-config.js +1 -1
  19. package/dist/resources/extensions/async-jobs/async-bash-tool.js +1 -1
  20. package/dist/resources/extensions/aws-auth/index.js +1 -2
  21. package/dist/resources/extensions/bg-shell/bg-shell-lifecycle.js +9 -6
  22. package/dist/resources/extensions/bg-shell/process-manager.js +1 -2
  23. package/dist/resources/extensions/browser-tools/index.js +1 -0
  24. package/dist/resources/extensions/claude-code-cli/index.js +1 -1
  25. package/dist/resources/extensions/claude-code-cli/partial-builder.js +17 -106
  26. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +71 -57
  27. package/dist/resources/extensions/cmux/index.js +20 -0
  28. package/dist/resources/extensions/github-sync/templates.js +103 -0
  29. package/dist/resources/extensions/google-search/extension-manifest.json +5 -4
  30. package/dist/resources/extensions/google-search/index.js +3 -375
  31. package/dist/resources/extensions/gsd/abandon-detect.js +44 -0
  32. package/dist/resources/extensions/gsd/auto/loop.js +81 -2
  33. package/dist/resources/extensions/gsd/auto/phases.js +42 -18
  34. package/dist/resources/extensions/gsd/auto/resolve.js +24 -0
  35. package/dist/resources/extensions/gsd/auto/run-unit.js +10 -2
  36. package/dist/resources/extensions/gsd/auto/session.js +6 -0
  37. package/dist/resources/extensions/gsd/auto/turn-epoch.js +95 -0
  38. package/dist/resources/extensions/gsd/auto-dispatch.js +64 -5
  39. package/dist/resources/extensions/gsd/auto-loop.js +1 -1
  40. package/dist/resources/extensions/gsd/auto-post-unit.js +110 -0
  41. package/dist/resources/extensions/gsd/auto-prompts.js +48 -7
  42. package/dist/resources/extensions/gsd/auto-recovery.js +2 -25
  43. package/dist/resources/extensions/gsd/auto-start.js +73 -5
  44. package/dist/resources/extensions/gsd/auto-timeout-recovery.js +11 -5
  45. package/dist/resources/extensions/gsd/auto-unit-closeout.js +11 -2
  46. package/dist/resources/extensions/gsd/auto-worktree.js +58 -8
  47. package/dist/resources/extensions/gsd/auto.js +76 -15
  48. package/dist/resources/extensions/gsd/bootstrap/agent-end-recovery.js +10 -0
  49. package/dist/resources/extensions/gsd/bootstrap/provider-error-resume.js +4 -2
  50. package/dist/resources/extensions/gsd/bootstrap/register-extension.js +11 -0
  51. package/dist/resources/extensions/gsd/bootstrap/system-context.js +11 -6
  52. package/dist/resources/extensions/gsd/commands/handlers/workflow.js +31 -4
  53. package/dist/resources/extensions/gsd/commands-cmux.js +9 -6
  54. package/dist/resources/extensions/gsd/commands-extensions.js +634 -43
  55. package/dist/resources/extensions/gsd/context-store.js +23 -7
  56. package/dist/resources/extensions/gsd/dispatch-guard.js +2 -17
  57. package/dist/resources/extensions/gsd/file-lock.js +49 -9
  58. package/dist/resources/extensions/gsd/forensics.js +106 -0
  59. package/dist/resources/extensions/gsd/git-service.js +1 -0
  60. package/dist/resources/extensions/gsd/gitignore.js +1 -0
  61. package/dist/resources/extensions/gsd/guided-flow-queue.js +4 -1
  62. package/dist/resources/extensions/gsd/guided-flow.js +23 -9
  63. package/dist/resources/extensions/gsd/journal.js +17 -2
  64. package/dist/resources/extensions/gsd/milestone-actions.js +15 -0
  65. package/dist/resources/extensions/gsd/milestone-summary-classifier.js +37 -0
  66. package/dist/resources/extensions/gsd/notifications.js +30 -16
  67. package/dist/resources/extensions/gsd/preferences-validation.js +23 -0
  68. package/dist/resources/extensions/gsd/prompt-cache-optimizer.js +4 -0
  69. package/dist/resources/extensions/gsd/prompts/discuss-headless.md +23 -4
  70. package/dist/resources/extensions/gsd/prompts/doctor-heal.md +5 -4
  71. package/dist/resources/extensions/gsd/reports.js +5 -4
  72. package/dist/resources/extensions/gsd/slice-cadence.js +238 -0
  73. package/dist/resources/extensions/gsd/state-transition-matrix.js +118 -0
  74. package/dist/resources/extensions/gsd/state.js +25 -25
  75. package/dist/resources/extensions/gsd/tools/complete-slice.js +21 -0
  76. package/dist/resources/extensions/gsd/tools/complete-task.js +31 -0
  77. package/dist/resources/extensions/gsd/tools/validate-milestone.js +7 -2
  78. package/dist/resources/extensions/gsd/uok/audit.js +18 -2
  79. package/dist/resources/extensions/gsd/uok/dispatch-envelope.js +33 -0
  80. package/dist/resources/extensions/gsd/uok/execution-graph.js +10 -0
  81. package/dist/resources/extensions/gsd/uok/gitops.js +2 -1
  82. package/dist/resources/extensions/gsd/uok/loop-adapter.js +37 -10
  83. package/dist/resources/extensions/gsd/uok/parity-report.js +58 -0
  84. package/dist/resources/extensions/gsd/uok/plan-v2.js +10 -4
  85. package/dist/resources/extensions/gsd/uok/writer.js +82 -0
  86. package/dist/resources/extensions/gsd/workflow-logger.js +10 -2
  87. package/dist/resources/extensions/gsd/worktree-manager.js +52 -0
  88. package/dist/resources/extensions/gsd/worktree-resolver.js +86 -7
  89. package/dist/resources/extensions/gsd/worktree-telemetry.js +198 -0
  90. package/dist/resources/extensions/mcp-client/auth.js +10 -1
  91. package/dist/resources/extensions/mcp-client/index.js +119 -10
  92. package/dist/resources/extensions/ollama/index.js +2 -1
  93. package/dist/resources/extensions/ollama/ollama-chat-provider.js +15 -5
  94. package/dist/resources/extensions/remote-questions/config.js +1 -12
  95. package/dist/resources/extensions/shared/cmux-events.js +12 -0
  96. package/dist/resources/extensions/shared/rtk-session-stats.js +1 -2
  97. package/dist/resources/extensions/universal-config/index.js +1 -1
  98. package/dist/resources/skills/create-skill/SKILL.md +2 -2
  99. package/dist/resources/skills/create-skill/references/gsd-skill-ecosystem.md +4 -4
  100. package/dist/resources/skills/create-skill/workflows/audit-skill.md +4 -4
  101. package/dist/resources/skills/create-skill/workflows/create-new-skill.md +5 -5
  102. package/dist/security-overrides.d.ts +1 -4
  103. package/dist/security-overrides.js +3 -16
  104. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  105. package/dist/web/standalone/.next/BUILD_ID +1 -1
  106. package/dist/web/standalone/.next/app-path-routes-manifest.json +4 -4
  107. package/dist/web/standalone/.next/build-manifest.json +3 -3
  108. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  109. package/dist/web/standalone/.next/react-loadable-manifest.json +1 -1
  110. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  111. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  112. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  113. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  114. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  115. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  116. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  117. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  118. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  119. package/dist/web/standalone/.next/server/app/_not-found.rsc +1 -1
  120. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  121. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  122. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  123. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  124. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  125. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  126. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  127. package/dist/web/standalone/.next/server/app/api/boot/route.js.nft.json +1 -1
  128. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  129. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js.nft.json +1 -1
  130. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  131. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js.nft.json +1 -1
  132. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +1 -1
  133. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js.nft.json +1 -1
  134. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  135. package/dist/web/standalone/.next/server/app/api/captures/route.js.nft.json +1 -1
  136. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  137. package/dist/web/standalone/.next/server/app/api/cleanup/route.js.nft.json +1 -1
  138. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  139. package/dist/web/standalone/.next/server/app/api/doctor/route.js.nft.json +1 -1
  140. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  141. package/dist/web/standalone/.next/server/app/api/export-data/route.js.nft.json +1 -1
  142. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  143. package/dist/web/standalone/.next/server/app/api/files/route.js.nft.json +1 -1
  144. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  145. package/dist/web/standalone/.next/server/app/api/forensics/route.js.nft.json +1 -1
  146. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  147. package/dist/web/standalone/.next/server/app/api/git/route.js.nft.json +1 -1
  148. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  149. package/dist/web/standalone/.next/server/app/api/history/route.js.nft.json +1 -1
  150. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  151. package/dist/web/standalone/.next/server/app/api/hooks/route.js.nft.json +1 -1
  152. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  153. package/dist/web/standalone/.next/server/app/api/inspect/route.js.nft.json +1 -1
  154. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  155. package/dist/web/standalone/.next/server/app/api/knowledge/route.js.nft.json +1 -1
  156. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  157. package/dist/web/standalone/.next/server/app/api/live-state/route.js.nft.json +1 -1
  158. package/dist/web/standalone/.next/server/app/api/notifications/route.js +1 -1
  159. package/dist/web/standalone/.next/server/app/api/notifications/route.js.nft.json +1 -1
  160. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  161. package/dist/web/standalone/.next/server/app/api/onboarding/route.js.nft.json +1 -1
  162. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  163. package/dist/web/standalone/.next/server/app/api/projects/route.js.nft.json +1 -1
  164. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  165. package/dist/web/standalone/.next/server/app/api/recovery/route.js.nft.json +1 -1
  166. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  167. package/dist/web/standalone/.next/server/app/api/session/browser/route.js.nft.json +1 -1
  168. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  169. package/dist/web/standalone/.next/server/app/api/session/command/route.js.nft.json +1 -1
  170. package/dist/web/standalone/.next/server/app/api/session/events/route.js +1 -1
  171. package/dist/web/standalone/.next/server/app/api/session/events/route.js.nft.json +1 -1
  172. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  173. package/dist/web/standalone/.next/server/app/api/session/manage/route.js.nft.json +1 -1
  174. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  175. package/dist/web/standalone/.next/server/app/api/settings-data/route.js.nft.json +1 -1
  176. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  177. package/dist/web/standalone/.next/server/app/api/skill-health/route.js.nft.json +1 -1
  178. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  179. package/dist/web/standalone/.next/server/app/api/steer/route.js.nft.json +1 -1
  180. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  181. package/dist/web/standalone/.next/server/app/api/switch-root/route.js.nft.json +1 -1
  182. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +1 -1
  183. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +1 -1
  184. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +1 -1
  185. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js.nft.json +1 -1
  186. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +1 -1
  187. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js.nft.json +1 -1
  188. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  189. package/dist/web/standalone/.next/server/app/api/undo/route.js.nft.json +1 -1
  190. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  191. package/dist/web/standalone/.next/server/app/api/visualizer/route.js.nft.json +1 -1
  192. package/dist/web/standalone/.next/server/app/index.html +1 -1
  193. package/dist/web/standalone/.next/server/app/index.rsc +1 -1
  194. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  195. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +1 -1
  196. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  197. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +1 -1
  198. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  199. package/dist/web/standalone/.next/server/app-paths-manifest.json +4 -4
  200. package/dist/web/standalone/.next/server/chunks/1926.js +1 -0
  201. package/dist/web/standalone/.next/server/chunks/6897.js +2 -2
  202. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  203. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  204. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  205. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  206. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  207. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  208. package/dist/web/standalone/.next/static/chunks/2826.e9f5195e91f9cad2.js +11 -0
  209. package/dist/web/standalone/.next/static/chunks/{webpack-1832629448831fdc.js → webpack-2e68521d7c82f7c2.js} +1 -1
  210. package/dist/web-mode.js +1 -1
  211. package/dist/welcome-screen.js +20 -19
  212. package/dist/wizard.js +5 -2
  213. package/package.json +16 -32
  214. package/packages/mcp-server/README.md +3 -3
  215. package/packages/mcp-server/dist/env-writer.d.ts +1 -0
  216. package/packages/mcp-server/dist/env-writer.d.ts.map +1 -1
  217. package/packages/mcp-server/dist/env-writer.js +74 -6
  218. package/packages/mcp-server/dist/env-writer.js.map +1 -1
  219. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  220. package/packages/mcp-server/dist/server.js +36 -17
  221. package/packages/mcp-server/dist/server.js.map +1 -1
  222. package/packages/mcp-server/dist/workflow-tools.d.ts.map +1 -1
  223. package/packages/mcp-server/dist/workflow-tools.js +15 -6
  224. package/packages/mcp-server/dist/workflow-tools.js.map +1 -1
  225. package/packages/mcp-server/package.json +5 -0
  226. package/packages/mcp-server/src/env-writer.test.ts +79 -1
  227. package/packages/mcp-server/src/env-writer.ts +76 -6
  228. package/packages/mcp-server/src/readers/readers.test.ts +5 -1
  229. package/packages/mcp-server/src/server.ts +45 -19
  230. package/packages/mcp-server/src/workflow-tools.test.ts +44 -0
  231. package/packages/mcp-server/src/workflow-tools.ts +19 -6
  232. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  233. package/packages/native/package.json +5 -0
  234. package/packages/native/src/__tests__/clipboard.test.mjs +69 -23
  235. package/packages/native/tsconfig.json +1 -2
  236. package/packages/native/tsconfig.tsbuildinfo +1 -0
  237. package/packages/pi-agent-core/package.json +5 -0
  238. package/packages/pi-agent-core/src/agent-loop.test.ts +220 -15
  239. package/packages/pi-ai/package.json +5 -0
  240. package/packages/pi-ai/tsconfig.tsbuildinfo +1 -1
  241. package/packages/pi-coding-agent/dist/core/compaction/compaction.d.ts +25 -0
  242. package/packages/pi-coding-agent/dist/core/compaction/compaction.d.ts.map +1 -1
  243. package/packages/pi-coding-agent/dist/core/compaction/compaction.js +105 -6
  244. package/packages/pi-coding-agent/dist/core/compaction/compaction.js.map +1 -1
  245. package/packages/pi-coding-agent/dist/core/compaction/compaction.test.js +230 -28
  246. package/packages/pi-coding-agent/dist/core/compaction/compaction.test.js.map +1 -1
  247. package/packages/pi-coding-agent/dist/core/compaction/utils.d.ts +30 -2
  248. package/packages/pi-coding-agent/dist/core/compaction/utils.d.ts.map +1 -1
  249. package/packages/pi-coding-agent/dist/core/compaction/utils.js +113 -12
  250. package/packages/pi-coding-agent/dist/core/compaction/utils.js.map +1 -1
  251. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.d.ts +1 -0
  252. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.d.ts.map +1 -1
  253. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.js +29 -18
  254. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.js.map +1 -1
  255. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.test.d.ts +2 -0
  256. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.test.d.ts.map +1 -0
  257. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.test.js +130 -0
  258. package/packages/pi-coding-agent/dist/core/compaction-orchestrator.test.js.map +1 -0
  259. package/packages/pi-coding-agent/dist/core/compaction-utils.test.js +56 -1
  260. package/packages/pi-coding-agent/dist/core/compaction-utils.test.js.map +1 -1
  261. package/packages/pi-coding-agent/dist/core/discovery-cache.test.js +8 -15
  262. package/packages/pi-coding-agent/dist/core/discovery-cache.test.js.map +1 -1
  263. package/packages/pi-coding-agent/dist/core/extensions/extension-discovery.d.ts +25 -0
  264. package/packages/pi-coding-agent/dist/core/extensions/extension-discovery.d.ts.map +1 -0
  265. package/packages/pi-coding-agent/dist/core/extensions/extension-discovery.js +109 -0
  266. package/packages/pi-coding-agent/dist/core/extensions/extension-discovery.js.map +1 -0
  267. package/packages/pi-coding-agent/dist/core/extensions/extension-registry.d.ts +67 -0
  268. package/packages/pi-coding-agent/dist/core/extensions/extension-registry.d.ts.map +1 -0
  269. package/packages/pi-coding-agent/dist/core/extensions/extension-registry.js +167 -0
  270. package/packages/pi-coding-agent/dist/core/extensions/extension-registry.js.map +1 -0
  271. package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts +3 -2
  272. package/packages/pi-coding-agent/dist/core/extensions/loader.d.ts.map +1 -1
  273. package/packages/pi-coding-agent/dist/core/extensions/loader.js +24 -8
  274. package/packages/pi-coding-agent/dist/core/extensions/loader.js.map +1 -1
  275. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts +7 -0
  276. package/packages/pi-coding-agent/dist/core/extensions/types.d.ts.map +1 -1
  277. package/packages/pi-coding-agent/dist/core/extensions/types.js.map +1 -1
  278. package/packages/pi-coding-agent/dist/core/lsp/lsp-integration.test.js +11 -0
  279. package/packages/pi-coding-agent/dist/core/lsp/lsp-integration.test.js.map +1 -1
  280. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js +2 -2
  281. package/packages/pi-coding-agent/dist/core/model-registry-auth-mode.test.js.map +1 -1
  282. package/packages/pi-coding-agent/dist/core/resource-loader.js +1 -1
  283. package/packages/pi-coding-agent/dist/core/resource-loader.js.map +1 -1
  284. package/packages/pi-coding-agent/dist/core/sdk.d.ts +1 -0
  285. package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
  286. package/packages/pi-coding-agent/dist/core/sdk.js +4 -1
  287. package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
  288. package/packages/pi-coding-agent/dist/core/sdk.test.js +19 -1
  289. package/packages/pi-coding-agent/dist/core/sdk.test.js.map +1 -1
  290. package/packages/pi-coding-agent/dist/core/system-prompt.js +3 -3
  291. package/packages/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
  292. package/packages/pi-coding-agent/dist/core/tools/path-utils.test.js +2 -1
  293. package/packages/pi-coding-agent/dist/core/tools/path-utils.test.js.map +1 -1
  294. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/provider-display-name.test.js +15 -6
  295. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/provider-display-name.test.js.map +1 -1
  296. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js +36 -5
  297. package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-execution.test.js.map +1 -1
  298. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
  299. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js +14 -5
  300. package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
  301. package/packages/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts +7 -1
  302. package/packages/pi-coding-agent/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  303. package/packages/pi-coding-agent/dist/modes/interactive/components/model-selector.js +31 -9
  304. package/packages/pi-coding-agent/dist/modes/interactive/components/model-selector.js.map +1 -1
  305. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  306. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +30 -12
  307. package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
  308. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js +14 -0
  309. package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.test.js.map +1 -1
  310. package/packages/pi-coding-agent/package.json +5 -0
  311. package/packages/pi-coding-agent/src/core/compaction/compaction.test.ts +368 -28
  312. package/packages/pi-coding-agent/src/core/compaction/compaction.ts +122 -6
  313. package/packages/pi-coding-agent/src/core/compaction/utils.ts +111 -13
  314. package/packages/pi-coding-agent/src/core/compaction-orchestrator.test.ts +154 -0
  315. package/packages/pi-coding-agent/src/core/compaction-orchestrator.ts +32 -18
  316. package/packages/pi-coding-agent/src/core/compaction-utils.test.ts +68 -1
  317. package/packages/pi-coding-agent/src/core/discovery-cache.test.ts +9 -18
  318. package/packages/pi-coding-agent/src/core/extensions/extension-discovery.ts +119 -0
  319. package/packages/pi-coding-agent/src/core/extensions/extension-registry.ts +222 -0
  320. package/packages/pi-coding-agent/src/core/extensions/loader.ts +24 -11
  321. package/packages/pi-coding-agent/src/core/extensions/types.ts +8 -0
  322. package/packages/pi-coding-agent/src/core/lsp/lsp-integration.test.ts +13 -0
  323. package/packages/pi-coding-agent/src/core/model-registry-auth-mode.test.ts +2 -2
  324. package/packages/pi-coding-agent/src/core/resource-loader.ts +1 -1
  325. package/packages/pi-coding-agent/src/core/sdk.test.ts +25 -1
  326. package/packages/pi-coding-agent/src/core/sdk.ts +10 -3
  327. package/packages/pi-coding-agent/src/core/system-prompt.ts +3 -3
  328. package/packages/pi-coding-agent/src/core/tools/path-utils.test.ts +2 -1
  329. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/provider-display-name.test.ts +17 -7
  330. package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-execution.test.ts +49 -3
  331. package/packages/pi-coding-agent/src/modes/interactive/components/footer.ts +14 -5
  332. package/packages/pi-coding-agent/src/modes/interactive/components/model-selector.ts +45 -11
  333. package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +48 -9
  334. package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.test.ts +14 -0
  335. package/packages/pi-coding-agent/tsconfig.tsbuildinfo +1 -1
  336. package/packages/pi-tui/dist/__tests__/autocomplete.test.js +12 -5
  337. package/packages/pi-tui/dist/__tests__/autocomplete.test.js.map +1 -1
  338. package/packages/pi-tui/dist/__tests__/stdin-buffer.test.js +21 -0
  339. package/packages/pi-tui/dist/__tests__/stdin-buffer.test.js.map +1 -1
  340. package/packages/pi-tui/dist/stdin-buffer.d.ts +7 -0
  341. package/packages/pi-tui/dist/stdin-buffer.d.ts.map +1 -1
  342. package/packages/pi-tui/dist/stdin-buffer.js +20 -0
  343. package/packages/pi-tui/dist/stdin-buffer.js.map +1 -1
  344. package/packages/pi-tui/package.json +5 -0
  345. package/packages/pi-tui/src/__tests__/autocomplete.test.ts +20 -5
  346. package/packages/pi-tui/src/__tests__/stdin-buffer.test.ts +27 -0
  347. package/packages/pi-tui/src/stdin-buffer.ts +26 -0
  348. package/packages/pi-tui/tsconfig.tsbuildinfo +1 -1
  349. package/packages/rpc-client/package.json +5 -0
  350. package/pkg/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  351. package/pkg/dist/core/export-html/ansi-to-html.js +0 -1
  352. package/pkg/dist/core/export-html/ansi-to-html.js.map +1 -1
  353. package/pkg/dist/core/export-html/index.d.ts +1 -1
  354. package/pkg/dist/core/export-html/index.d.ts.map +1 -1
  355. package/pkg/dist/core/export-html/index.js +5 -39
  356. package/pkg/dist/core/export-html/index.js.map +1 -1
  357. package/pkg/dist/core/export-html/tool-renderer.d.ts +2 -2
  358. package/pkg/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  359. package/pkg/dist/core/export-html/tool-renderer.js.map +1 -1
  360. package/scripts/ensure-workspace-builds.cjs +0 -2
  361. package/scripts/lib/workspace-manifest.cjs +86 -0
  362. package/scripts/link-workspace-packages.cjs +5 -19
  363. package/src/resources/extensions/async-jobs/async-bash-tool.ts +1 -1
  364. package/src/resources/extensions/aws-auth/index.ts +1 -2
  365. package/src/resources/extensions/bg-shell/bg-shell-lifecycle.ts +7 -4
  366. package/src/resources/extensions/bg-shell/index.ts +1 -2
  367. package/src/resources/extensions/bg-shell/process-manager.ts +1 -2
  368. package/src/resources/extensions/browser-tools/index.ts +1 -2
  369. package/src/resources/extensions/claude-code-cli/index.ts +1 -1
  370. package/src/resources/extensions/claude-code-cli/partial-builder.ts +23 -115
  371. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +81 -61
  372. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +91 -22
  373. package/src/resources/extensions/cmux/index.ts +35 -10
  374. package/src/resources/extensions/github-sync/templates.ts +151 -0
  375. package/src/resources/extensions/github-sync/tests/templates.test.ts +59 -0
  376. package/src/resources/extensions/google-search/extension-manifest.json +5 -4
  377. package/src/resources/extensions/google-search/index.ts +9 -470
  378. package/src/resources/extensions/gsd/abandon-detect.ts +62 -0
  379. package/src/resources/extensions/gsd/auto/loop-deps.ts +1 -1
  380. package/src/resources/extensions/gsd/auto/loop.ts +95 -2
  381. package/src/resources/extensions/gsd/auto/phases.ts +46 -18
  382. package/src/resources/extensions/gsd/auto/resolve.ts +29 -0
  383. package/src/resources/extensions/gsd/auto/run-unit.ts +16 -2
  384. package/src/resources/extensions/gsd/auto/session.ts +7 -0
  385. package/src/resources/extensions/gsd/auto/turn-epoch.ts +108 -0
  386. package/src/resources/extensions/gsd/auto/types.ts +1 -1
  387. package/src/resources/extensions/gsd/auto-dispatch.ts +63 -5
  388. package/src/resources/extensions/gsd/auto-loop.ts +1 -1
  389. package/src/resources/extensions/gsd/auto-post-unit.ts +111 -0
  390. package/src/resources/extensions/gsd/auto-prompts.ts +59 -7
  391. package/src/resources/extensions/gsd/auto-recovery.ts +5 -27
  392. package/src/resources/extensions/gsd/auto-start.ts +73 -3
  393. package/src/resources/extensions/gsd/auto-timeout-recovery.ts +12 -5
  394. package/src/resources/extensions/gsd/auto-unit-closeout.ts +14 -3
  395. package/src/resources/extensions/gsd/auto-worktree.ts +60 -5
  396. package/src/resources/extensions/gsd/auto.ts +84 -19
  397. package/src/resources/extensions/gsd/bootstrap/agent-end-recovery.ts +11 -0
  398. package/src/resources/extensions/gsd/bootstrap/provider-error-resume.ts +6 -2
  399. package/src/resources/extensions/gsd/bootstrap/register-extension.ts +11 -0
  400. package/src/resources/extensions/gsd/bootstrap/system-context.ts +13 -9
  401. package/src/resources/extensions/gsd/commands/handlers/workflow.ts +27 -8
  402. package/src/resources/extensions/gsd/commands-cmux.ts +10 -6
  403. package/src/resources/extensions/gsd/commands-extensions.ts +747 -41
  404. package/src/resources/extensions/gsd/context-store.ts +25 -8
  405. package/src/resources/extensions/gsd/dispatch-guard.ts +2 -20
  406. package/src/resources/extensions/gsd/file-lock.ts +84 -11
  407. package/src/resources/extensions/gsd/forensics.ts +118 -1
  408. package/src/resources/extensions/gsd/git-service.ts +17 -0
  409. package/src/resources/extensions/gsd/gitignore.ts +1 -0
  410. package/src/resources/extensions/gsd/guided-flow-queue.ts +4 -1
  411. package/src/resources/extensions/gsd/guided-flow.ts +38 -10
  412. package/src/resources/extensions/gsd/journal.ts +38 -3
  413. package/src/resources/extensions/gsd/milestone-actions.ts +18 -0
  414. package/src/resources/extensions/gsd/milestone-summary-classifier.ts +42 -0
  415. package/src/resources/extensions/gsd/notifications.ts +27 -15
  416. package/src/resources/extensions/gsd/preferences-validation.ts +21 -0
  417. package/src/resources/extensions/gsd/prompt-cache-optimizer.ts +4 -0
  418. package/src/resources/extensions/gsd/prompts/discuss-headless.md +23 -4
  419. package/src/resources/extensions/gsd/prompts/doctor-heal.md +5 -4
  420. package/src/resources/extensions/gsd/reports.ts +5 -4
  421. package/src/resources/extensions/gsd/slice-cadence.ts +299 -0
  422. package/src/resources/extensions/gsd/state-transition-matrix.ts +152 -0
  423. package/src/resources/extensions/gsd/state.ts +35 -30
  424. package/src/resources/extensions/gsd/tests/artifacts-table-preserved-on-cache-invalidate.test.ts +2 -1
  425. package/src/resources/extensions/gsd/tests/auto-loop.test.ts +55 -10
  426. package/src/resources/extensions/gsd/tests/auto-mode-guards.test.ts +79 -0
  427. package/src/resources/extensions/gsd/tests/auto-remediate-slice-status.test.ts +4 -1
  428. package/src/resources/extensions/gsd/tests/auto-retry-mcp-churn-fixes.test.ts +12 -9
  429. package/src/resources/extensions/gsd/tests/auto-start-clean-runtime-db-gated.test.ts +3 -2
  430. package/src/resources/extensions/gsd/tests/auto-start-cold-db-bootstrap.test.ts +2 -2
  431. package/src/resources/extensions/gsd/tests/auto-start-model-capture.test.ts +4 -3
  432. package/src/resources/extensions/gsd/tests/auto-start-worktree-db-path.test.ts +2 -2
  433. package/src/resources/extensions/gsd/tests/auto-thinking-restore.test.ts +3 -2
  434. package/src/resources/extensions/gsd/tests/auto-warning-noise-regression.test.ts +3 -2
  435. package/src/resources/extensions/gsd/tests/bootstrap-derive-state-db-open.test.ts +2 -1
  436. package/src/resources/extensions/gsd/tests/canonical-milestone-root.test.ts +108 -0
  437. package/src/resources/extensions/gsd/tests/cmux.test.ts +5 -9
  438. package/src/resources/extensions/gsd/tests/complete-slice-verification-gate.test.ts +2 -1
  439. package/src/resources/extensions/gsd/tests/context-store.test.ts +79 -0
  440. package/src/resources/extensions/gsd/tests/copy-planning-artifacts-samepath.test.ts +2 -1
  441. package/src/resources/extensions/gsd/tests/custom-engine-loop-integration.test.ts +159 -0
  442. package/src/resources/extensions/gsd/tests/db-access-guardrails.test.ts +1 -0
  443. package/src/resources/extensions/gsd/tests/derive-state.test.ts +1 -2
  444. package/src/resources/extensions/gsd/tests/discuss-slice-structured-questions.test.ts +2 -1
  445. package/src/resources/extensions/gsd/tests/discuss-tool-scope-leak.test.ts +2 -1
  446. package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +5 -0
  447. package/src/resources/extensions/gsd/tests/dispatch-guard.test.ts +25 -0
  448. package/src/resources/extensions/gsd/tests/dispatch-missing-task-plans.test.ts +14 -0
  449. package/src/resources/extensions/gsd/tests/double-merge-guard.test.ts +4 -3
  450. package/src/resources/extensions/gsd/tests/empty-content-abort-loop.test.ts +4 -3
  451. package/src/resources/extensions/gsd/tests/execution-entry-missing-context-4671.test.ts +173 -0
  452. package/src/resources/extensions/gsd/tests/file-lock.test.ts +86 -12
  453. package/src/resources/extensions/gsd/tests/finalize-timeout-guard.test.ts +2 -2
  454. package/src/resources/extensions/gsd/tests/forensics-hook-key-parse.test.ts +2 -1
  455. package/src/resources/extensions/gsd/tests/forensics-worktree-telemetry.test.ts +145 -0
  456. package/src/resources/extensions/gsd/tests/google-search-stub.test.ts +131 -0
  457. package/src/resources/extensions/gsd/tests/headless-milestone-parity.test.ts +117 -0
  458. package/src/resources/extensions/gsd/tests/idle-watchdog-stall-override.test.ts +6 -1
  459. package/src/resources/extensions/gsd/tests/import-done-milestones.test.ts +2 -1
  460. package/src/resources/extensions/gsd/tests/integration/all-milestones-complete-merge.test.ts +2 -1
  461. package/src/resources/extensions/gsd/tests/integration/auto-worktree-milestone-merge.test.ts +30 -0
  462. package/src/resources/extensions/gsd/tests/integration/git-service.test.ts +3 -2
  463. package/src/resources/extensions/gsd/tests/interactive-routing-bypass.test.ts +9 -3
  464. package/src/resources/extensions/gsd/tests/journal-integration.test.ts +64 -0
  465. package/src/resources/extensions/gsd/tests/knowledge.test.ts +93 -1
  466. package/src/resources/extensions/gsd/tests/mcp-client-security.test.ts +76 -0
  467. package/src/resources/extensions/gsd/tests/merge-conflict-stops-loop.test.ts +10 -3
  468. package/src/resources/extensions/gsd/tests/milestone-summary-classifier.test.ts +30 -0
  469. package/src/resources/extensions/gsd/tests/milestone-transition-state-rebuild.test.ts +4 -2
  470. package/src/resources/extensions/gsd/tests/native-git-bridge-exec-fallback.test.ts +2 -1
  471. package/src/resources/extensions/gsd/tests/orphaned-worktree-audit.test.ts +59 -2
  472. package/src/resources/extensions/gsd/tests/parallel-commit-scope.test.ts +5 -0
  473. package/src/resources/extensions/gsd/tests/parallel-research-dispatch.test.ts +4 -1
  474. package/src/resources/extensions/gsd/tests/parallel-skill-prompt-integration.test.ts +150 -0
  475. package/src/resources/extensions/gsd/tests/preferences-worktree-sync.test.ts +2 -1
  476. package/src/resources/extensions/gsd/tests/prompt-cache-optimizer.test.ts +12 -0
  477. package/src/resources/extensions/gsd/tests/prompt-step-ordering.test.ts +15 -4
  478. package/src/resources/extensions/gsd/tests/provider-errors.test.ts +39 -25
  479. package/src/resources/extensions/gsd/tests/queue-auto-guard.test.ts +181 -0
  480. package/src/resources/extensions/gsd/tests/queue-draft-detection.test.ts +3 -2
  481. package/src/resources/extensions/gsd/tests/queued-discuss-fast-path.test.ts +4 -5
  482. package/src/resources/extensions/gsd/tests/quick-auto-guard.test.ts +13 -7
  483. package/src/resources/extensions/gsd/tests/require-slice-discussion-dispatch.test.ts +170 -0
  484. package/src/resources/extensions/gsd/tests/restore-tools-after-discuss.test.ts +6 -3
  485. package/src/resources/extensions/gsd/tests/rewrite-docs-abandon-detect.test.ts +195 -0
  486. package/src/resources/extensions/gsd/tests/sidecar-queue.test.ts +3 -2
  487. package/src/resources/extensions/gsd/tests/slice-cadence.test.ts +242 -0
  488. package/src/resources/extensions/gsd/tests/slice-context-injection.test.ts +3 -2
  489. package/src/resources/extensions/gsd/tests/smart-entry-draft.test.ts +2 -1
  490. package/src/resources/extensions/gsd/tests/stale-dirlistcache-4648.test.ts +112 -0
  491. package/src/resources/extensions/gsd/tests/state-machine-full-walkthrough.test.ts +24 -0
  492. package/src/resources/extensions/gsd/tests/state-transition-matrix.test.ts +44 -0
  493. package/src/resources/extensions/gsd/tests/stop-auto-race-null-unit.test.ts +3 -3
  494. package/src/resources/extensions/gsd/tests/stuck-detection-coverage.test.ts +2 -2
  495. package/src/resources/extensions/gsd/tests/subagent-model-dispatch.test.ts +7 -6
  496. package/src/resources/extensions/gsd/tests/sync-worktree-skip-current.test.ts +4 -3
  497. package/src/resources/extensions/gsd/tests/test-helpers.test.ts +147 -0
  498. package/src/resources/extensions/gsd/tests/test-helpers.ts +140 -0
  499. package/src/resources/extensions/gsd/tests/token-profile.test.ts +8 -1
  500. package/src/resources/extensions/gsd/tests/triage-resolution.test.ts +50 -2
  501. package/src/resources/extensions/gsd/tests/turn-epoch.test.ts +162 -0
  502. package/src/resources/extensions/gsd/tests/uok-contracts.test.ts +51 -0
  503. package/src/resources/extensions/gsd/tests/uok-execution-graph.test.ts +16 -0
  504. package/src/resources/extensions/gsd/tests/uok-loop-adapter-writer.test.ts +65 -0
  505. package/src/resources/extensions/gsd/tests/uok-parity-report.test.ts +42 -0
  506. package/src/resources/extensions/gsd/tests/uok-plan-v2-wiring.test.ts +19 -2
  507. package/src/resources/extensions/gsd/tests/uok-writer.test.ts +75 -0
  508. package/src/resources/extensions/gsd/tests/validate-extension-package.test.ts +168 -0
  509. package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +11 -0
  510. package/src/resources/extensions/gsd/tests/verify-artifact-tightened.test.ts +6 -5
  511. package/src/resources/extensions/gsd/tests/workflow-mcp.test.ts +25 -2
  512. package/src/resources/extensions/gsd/tests/worktree-health-monorepo.test.ts +2 -2
  513. package/src/resources/extensions/gsd/tests/worktree-nested-git-safety.test.ts +2 -2
  514. package/src/resources/extensions/gsd/tests/worktree-submodule-safety.test.ts +2 -2
  515. package/src/resources/extensions/gsd/tests/worktree-telemetry.test.ts +210 -0
  516. package/src/resources/extensions/gsd/tests/zombie-gsd-state.test.ts +3 -3
  517. package/src/resources/extensions/gsd/tools/complete-slice.ts +38 -0
  518. package/src/resources/extensions/gsd/tools/complete-task.ts +49 -0
  519. package/src/resources/extensions/gsd/tools/validate-milestone.ts +8 -2
  520. package/src/resources/extensions/gsd/uok/audit.ts +20 -2
  521. package/src/resources/extensions/gsd/uok/contracts.ts +65 -0
  522. package/src/resources/extensions/gsd/uok/dispatch-envelope.ts +56 -0
  523. package/src/resources/extensions/gsd/uok/execution-graph.ts +22 -0
  524. package/src/resources/extensions/gsd/uok/gitops.ts +6 -1
  525. package/src/resources/extensions/gsd/uok/loop-adapter.ts +45 -10
  526. package/src/resources/extensions/gsd/uok/parity-report.ts +84 -0
  527. package/src/resources/extensions/gsd/uok/plan-v2.ts +13 -5
  528. package/src/resources/extensions/gsd/uok/writer.ts +113 -0
  529. package/src/resources/extensions/gsd/workflow-logger.ts +22 -3
  530. package/src/resources/extensions/gsd/worktree-manager.ts +54 -0
  531. package/src/resources/extensions/gsd/worktree-resolver.ts +96 -9
  532. package/src/resources/extensions/gsd/worktree-telemetry.ts +322 -0
  533. package/src/resources/extensions/mcp-client/auth.ts +12 -1
  534. package/src/resources/extensions/mcp-client/index.ts +130 -11
  535. package/src/resources/extensions/ollama/index.ts +3 -3
  536. package/src/resources/extensions/ollama/ollama-chat-provider.ts +18 -6
  537. package/src/resources/extensions/remote-questions/config.ts +4 -15
  538. package/src/resources/extensions/search-the-web/index.ts +1 -2
  539. package/src/resources/extensions/shared/cmux-events.ts +59 -0
  540. package/src/resources/extensions/shared/rtk-session-stats.ts +1 -2
  541. package/src/resources/extensions/shared/tests/format-utils.test.ts +3 -5
  542. package/src/resources/extensions/universal-config/index.ts +1 -1
  543. package/src/resources/skills/create-skill/SKILL.md +2 -2
  544. package/src/resources/skills/create-skill/references/gsd-skill-ecosystem.md +4 -4
  545. package/src/resources/skills/create-skill/workflows/audit-skill.md +4 -4
  546. package/src/resources/skills/create-skill/workflows/create-new-skill.md +5 -5
  547. package/dist/web/standalone/.next/server/chunks/7461.js +0 -1
  548. package/dist/web/standalone/.next/static/chunks/2826.d445fb428ef41fa1.js +0 -9
  549. package/packages/gsd-agent-core/dist/agent-session.d.ts +0 -716
  550. package/packages/gsd-agent-core/dist/agent-session.d.ts.map +0 -1
  551. package/packages/gsd-agent-core/dist/agent-session.js +0 -2595
  552. package/packages/gsd-agent-core/dist/agent-session.js.map +0 -1
  553. package/packages/gsd-agent-core/dist/artifact-manager.d.ts +0 -52
  554. package/packages/gsd-agent-core/dist/artifact-manager.d.ts.map +0 -1
  555. package/packages/gsd-agent-core/dist/artifact-manager.js +0 -118
  556. package/packages/gsd-agent-core/dist/artifact-manager.js.map +0 -1
  557. package/packages/gsd-agent-core/dist/bash-executor.d.ts +0 -57
  558. package/packages/gsd-agent-core/dist/bash-executor.d.ts.map +0 -1
  559. package/packages/gsd-agent-core/dist/bash-executor.js +0 -282
  560. package/packages/gsd-agent-core/dist/bash-executor.js.map +0 -1
  561. package/packages/gsd-agent-core/dist/blob-store.d.ts +0 -39
  562. package/packages/gsd-agent-core/dist/blob-store.d.ts.map +0 -1
  563. package/packages/gsd-agent-core/dist/blob-store.js +0 -151
  564. package/packages/gsd-agent-core/dist/blob-store.js.map +0 -1
  565. package/packages/gsd-agent-core/dist/compaction/branch-summarization.d.ts +0 -90
  566. package/packages/gsd-agent-core/dist/compaction/branch-summarization.d.ts.map +0 -1
  567. package/packages/gsd-agent-core/dist/compaction/branch-summarization.js +0 -207
  568. package/packages/gsd-agent-core/dist/compaction/branch-summarization.js.map +0 -1
  569. package/packages/gsd-agent-core/dist/compaction/compaction.d.ts +0 -137
  570. package/packages/gsd-agent-core/dist/compaction/compaction.d.ts.map +0 -1
  571. package/packages/gsd-agent-core/dist/compaction/compaction.js +0 -621
  572. package/packages/gsd-agent-core/dist/compaction/compaction.js.map +0 -1
  573. package/packages/gsd-agent-core/dist/compaction/index.d.ts +0 -7
  574. package/packages/gsd-agent-core/dist/compaction/index.d.ts.map +0 -1
  575. package/packages/gsd-agent-core/dist/compaction/index.js +0 -7
  576. package/packages/gsd-agent-core/dist/compaction/index.js.map +0 -1
  577. package/packages/gsd-agent-core/dist/compaction/utils.d.ts +0 -78
  578. package/packages/gsd-agent-core/dist/compaction/utils.d.ts.map +0 -1
  579. package/packages/gsd-agent-core/dist/compaction/utils.js +0 -263
  580. package/packages/gsd-agent-core/dist/compaction/utils.js.map +0 -1
  581. package/packages/gsd-agent-core/dist/compaction-orchestrator.d.ts +0 -90
  582. package/packages/gsd-agent-core/dist/compaction-orchestrator.d.ts.map +0 -1
  583. package/packages/gsd-agent-core/dist/compaction-orchestrator.js +0 -338
  584. package/packages/gsd-agent-core/dist/compaction-orchestrator.js.map +0 -1
  585. package/packages/gsd-agent-core/dist/contextual-tips.d.ts +0 -43
  586. package/packages/gsd-agent-core/dist/contextual-tips.d.ts.map +0 -1
  587. package/packages/gsd-agent-core/dist/contextual-tips.js +0 -208
  588. package/packages/gsd-agent-core/dist/contextual-tips.js.map +0 -1
  589. package/packages/gsd-agent-core/dist/export-html/ansi-to-html.d.ts +0 -18
  590. package/packages/gsd-agent-core/dist/export-html/ansi-to-html.d.ts.map +0 -1
  591. package/packages/gsd-agent-core/dist/export-html/ansi-to-html.js +0 -250
  592. package/packages/gsd-agent-core/dist/export-html/ansi-to-html.js.map +0 -1
  593. package/packages/gsd-agent-core/dist/export-html/index.d.ts +0 -37
  594. package/packages/gsd-agent-core/dist/export-html/index.d.ts.map +0 -1
  595. package/packages/gsd-agent-core/dist/export-html/index.js +0 -257
  596. package/packages/gsd-agent-core/dist/export-html/index.js.map +0 -1
  597. package/packages/gsd-agent-core/dist/export-html/template.css +0 -971
  598. package/packages/gsd-agent-core/dist/export-html/template.html +0 -54
  599. package/packages/gsd-agent-core/dist/export-html/template.js +0 -1583
  600. package/packages/gsd-agent-core/dist/export-html/tool-renderer.d.ts +0 -38
  601. package/packages/gsd-agent-core/dist/export-html/tool-renderer.d.ts.map +0 -1
  602. package/packages/gsd-agent-core/dist/export-html/tool-renderer.js +0 -70
  603. package/packages/gsd-agent-core/dist/export-html/tool-renderer.js.map +0 -1
  604. package/packages/gsd-agent-core/dist/export-html/vendor/highlight.min.js +0 -1213
  605. package/packages/gsd-agent-core/dist/export-html/vendor/marked.min.js +0 -6
  606. package/packages/gsd-agent-core/dist/fallback-resolver.d.ts +0 -75
  607. package/packages/gsd-agent-core/dist/fallback-resolver.d.ts.map +0 -1
  608. package/packages/gsd-agent-core/dist/fallback-resolver.js +0 -118
  609. package/packages/gsd-agent-core/dist/fallback-resolver.js.map +0 -1
  610. package/packages/gsd-agent-core/dist/image-overflow-recovery.d.ts +0 -44
  611. package/packages/gsd-agent-core/dist/image-overflow-recovery.d.ts.map +0 -1
  612. package/packages/gsd-agent-core/dist/image-overflow-recovery.js +0 -99
  613. package/packages/gsd-agent-core/dist/image-overflow-recovery.js.map +0 -1
  614. package/packages/gsd-agent-core/dist/index.d.ts +0 -14
  615. package/packages/gsd-agent-core/dist/index.d.ts.map +0 -1
  616. package/packages/gsd-agent-core/dist/index.js +0 -19
  617. package/packages/gsd-agent-core/dist/index.js.map +0 -1
  618. package/packages/gsd-agent-core/dist/keybindings.d.ts +0 -47
  619. package/packages/gsd-agent-core/dist/keybindings.d.ts.map +0 -1
  620. package/packages/gsd-agent-core/dist/keybindings.js +0 -156
  621. package/packages/gsd-agent-core/dist/keybindings.js.map +0 -1
  622. package/packages/gsd-agent-core/dist/lifecycle-hooks.d.ts +0 -42
  623. package/packages/gsd-agent-core/dist/lifecycle-hooks.d.ts.map +0 -1
  624. package/packages/gsd-agent-core/dist/lifecycle-hooks.js +0 -204
  625. package/packages/gsd-agent-core/dist/lifecycle-hooks.js.map +0 -1
  626. package/packages/gsd-agent-core/dist/retry-handler.d.ts +0 -128
  627. package/packages/gsd-agent-core/dist/retry-handler.d.ts.map +0 -1
  628. package/packages/gsd-agent-core/dist/retry-handler.js +0 -518
  629. package/packages/gsd-agent-core/dist/retry-handler.js.map +0 -1
  630. package/packages/gsd-agent-core/dist/sdk.d.ts +0 -159
  631. package/packages/gsd-agent-core/dist/sdk.d.ts.map +0 -1
  632. package/packages/gsd-agent-core/dist/sdk.js +0 -375
  633. package/packages/gsd-agent-core/dist/sdk.js.map +0 -1
  634. package/packages/gsd-agent-core/dist/system-prompt.d.ts +0 -28
  635. package/packages/gsd-agent-core/dist/system-prompt.d.ts.map +0 -1
  636. package/packages/gsd-agent-core/dist/system-prompt.js +0 -201
  637. package/packages/gsd-agent-core/dist/system-prompt.js.map +0 -1
  638. package/packages/gsd-agent-core/package.json +0 -25
  639. package/packages/gsd-agent-core/scripts/copy-assets.cjs +0 -43
  640. package/packages/gsd-agent-core/src/agent-session.test.ts +0 -169
  641. package/packages/gsd-agent-core/src/agent-session.ts +0 -3358
  642. package/packages/gsd-agent-core/src/artifact-manager.ts +0 -126
  643. package/packages/gsd-agent-core/src/bash-executor.ts +0 -352
  644. package/packages/gsd-agent-core/src/blob-store.ts +0 -154
  645. package/packages/gsd-agent-core/src/compaction/branch-summarization.ts +0 -317
  646. package/packages/gsd-agent-core/src/compaction/compaction.ts +0 -855
  647. package/packages/gsd-agent-core/src/compaction/index.ts +0 -7
  648. package/packages/gsd-agent-core/src/compaction/utils.ts +0 -312
  649. package/packages/gsd-agent-core/src/compaction-orchestrator.ts +0 -449
  650. package/packages/gsd-agent-core/src/contextual-tips.ts +0 -232
  651. package/packages/gsd-agent-core/src/export-html/ansi-to-html.ts +0 -259
  652. package/packages/gsd-agent-core/src/export-html/index.ts +0 -345
  653. package/packages/gsd-agent-core/src/export-html/template.css +0 -971
  654. package/packages/gsd-agent-core/src/export-html/template.html +0 -54
  655. package/packages/gsd-agent-core/src/export-html/template.js +0 -1583
  656. package/packages/gsd-agent-core/src/export-html/tool-renderer.ts +0 -114
  657. package/packages/gsd-agent-core/src/export-html/vendor/highlight.min.js +0 -1213
  658. package/packages/gsd-agent-core/src/export-html/vendor/marked.min.js +0 -6
  659. package/packages/gsd-agent-core/src/fallback-resolver.ts +0 -193
  660. package/packages/gsd-agent-core/src/image-overflow-recovery.ts +0 -120
  661. package/packages/gsd-agent-core/src/index.ts +0 -68
  662. package/packages/gsd-agent-core/src/keybindings.ts +0 -220
  663. package/packages/gsd-agent-core/src/lifecycle-hooks.ts +0 -284
  664. package/packages/gsd-agent-core/src/retry-handler.ts +0 -620
  665. package/packages/gsd-agent-core/src/sdk.ts +0 -550
  666. package/packages/gsd-agent-core/src/system-prompt.ts +0 -270
  667. package/packages/gsd-agent-core/tsconfig.json +0 -28
  668. package/packages/gsd-agent-core/tsconfig.tsbuildinfo +0 -1
  669. package/packages/gsd-agent-modes/dist/cli/args.d.ts +0 -58
  670. package/packages/gsd-agent-modes/dist/cli/args.d.ts.map +0 -1
  671. package/packages/gsd-agent-modes/dist/cli/args.js +0 -324
  672. package/packages/gsd-agent-modes/dist/cli/args.js.map +0 -1
  673. package/packages/gsd-agent-modes/dist/cli/config-selector.d.ts +0 -13
  674. package/packages/gsd-agent-modes/dist/cli/config-selector.d.ts.map +0 -1
  675. package/packages/gsd-agent-modes/dist/cli/config-selector.js +0 -32
  676. package/packages/gsd-agent-modes/dist/cli/config-selector.js.map +0 -1
  677. package/packages/gsd-agent-modes/dist/cli/file-processor.d.ts +0 -15
  678. package/packages/gsd-agent-modes/dist/cli/file-processor.d.ts.map +0 -1
  679. package/packages/gsd-agent-modes/dist/cli/file-processor.js +0 -86
  680. package/packages/gsd-agent-modes/dist/cli/file-processor.js.map +0 -1
  681. package/packages/gsd-agent-modes/dist/cli/list-models.d.ts +0 -21
  682. package/packages/gsd-agent-modes/dist/cli/list-models.d.ts.map +0 -1
  683. package/packages/gsd-agent-modes/dist/cli/list-models.js +0 -114
  684. package/packages/gsd-agent-modes/dist/cli/list-models.js.map +0 -1
  685. package/packages/gsd-agent-modes/dist/cli/session-picker.d.ts +0 -10
  686. package/packages/gsd-agent-modes/dist/cli/session-picker.d.ts.map +0 -1
  687. package/packages/gsd-agent-modes/dist/cli/session-picker.js +0 -37
  688. package/packages/gsd-agent-modes/dist/cli/session-picker.js.map +0 -1
  689. package/packages/gsd-agent-modes/dist/index.d.ts +0 -7
  690. package/packages/gsd-agent-modes/dist/index.d.ts.map +0 -1
  691. package/packages/gsd-agent-modes/dist/index.js +0 -7
  692. package/packages/gsd-agent-modes/dist/index.js.map +0 -1
  693. package/packages/gsd-agent-modes/dist/main.d.ts +0 -8
  694. package/packages/gsd-agent-modes/dist/main.d.ts.map +0 -1
  695. package/packages/gsd-agent-modes/dist/main.js +0 -491
  696. package/packages/gsd-agent-modes/dist/main.js.map +0 -1
  697. package/packages/gsd-agent-modes/dist/modes/interactive/components/armin.d.ts +0 -34
  698. package/packages/gsd-agent-modes/dist/modes/interactive/components/armin.d.ts.map +0 -1
  699. package/packages/gsd-agent-modes/dist/modes/interactive/components/armin.js +0 -330
  700. package/packages/gsd-agent-modes/dist/modes/interactive/components/armin.js.map +0 -1
  701. package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.d.ts +0 -29
  702. package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  703. package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.js +0 -141
  704. package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.js.map +0 -1
  705. package/packages/gsd-agent-modes/dist/modes/interactive/components/bash-execution.d.ts +0 -36
  706. package/packages/gsd-agent-modes/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  707. package/packages/gsd-agent-modes/dist/modes/interactive/components/bash-execution.js +0 -157
  708. package/packages/gsd-agent-modes/dist/modes/interactive/components/bash-execution.js.map +0 -1
  709. package/packages/gsd-agent-modes/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  710. package/packages/gsd-agent-modes/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  711. package/packages/gsd-agent-modes/dist/modes/interactive/components/bordered-loader.js +0 -48
  712. package/packages/gsd-agent-modes/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  713. package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  714. package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  715. package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.js +0 -43
  716. package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  717. package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-frame.d.ts +0 -11
  718. package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-frame.d.ts.map +0 -1
  719. package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-frame.js +0 -47
  720. package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-frame.js.map +0 -1
  721. package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  722. package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  723. package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.js +0 -44
  724. package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  725. package/packages/gsd-agent-modes/dist/modes/interactive/components/config-selector.d.ts +0 -71
  726. package/packages/gsd-agent-modes/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  727. package/packages/gsd-agent-modes/dist/modes/interactive/components/config-selector.js +0 -474
  728. package/packages/gsd-agent-modes/dist/modes/interactive/components/config-selector.js.map +0 -1
  729. package/packages/gsd-agent-modes/dist/modes/interactive/components/countdown-timer.d.ts +0 -15
  730. package/packages/gsd-agent-modes/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  731. package/packages/gsd-agent-modes/dist/modes/interactive/components/countdown-timer.js +0 -32
  732. package/packages/gsd-agent-modes/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  733. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.d.ts +0 -22
  734. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  735. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.js +0 -70
  736. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.js.map +0 -1
  737. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-message.d.ts +0 -20
  738. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  739. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-message.js +0 -75
  740. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-message.js.map +0 -1
  741. package/packages/gsd-agent-modes/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  742. package/packages/gsd-agent-modes/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  743. package/packages/gsd-agent-modes/dist/modes/interactive/components/daxnuts.js +0 -140
  744. package/packages/gsd-agent-modes/dist/modes/interactive/components/daxnuts.js.map +0 -1
  745. package/packages/gsd-agent-modes/dist/modes/interactive/components/diff.d.ts +0 -12
  746. package/packages/gsd-agent-modes/dist/modes/interactive/components/diff.d.ts.map +0 -1
  747. package/packages/gsd-agent-modes/dist/modes/interactive/components/diff.js +0 -133
  748. package/packages/gsd-agent-modes/dist/modes/interactive/components/diff.js.map +0 -1
  749. package/packages/gsd-agent-modes/dist/modes/interactive/components/dynamic-border.d.ts +0 -33
  750. package/packages/gsd-agent-modes/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  751. package/packages/gsd-agent-modes/dist/modes/interactive/components/dynamic-border.js +0 -82
  752. package/packages/gsd-agent-modes/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  753. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  754. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  755. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-editor.js +0 -111
  756. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-editor.js.map +0 -1
  757. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-input.d.ts +0 -24
  758. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  759. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-input.js +0 -63
  760. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-input.js.map +0 -1
  761. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-selector.d.ts +0 -33
  762. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  763. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-selector.js +0 -118
  764. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-selector.js.map +0 -1
  765. package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.d.ts +0 -32
  766. package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.d.ts.map +0 -1
  767. package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.js +0 -230
  768. package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.js.map +0 -1
  769. package/packages/gsd-agent-modes/dist/modes/interactive/components/index.d.ts +0 -34
  770. package/packages/gsd-agent-modes/dist/modes/interactive/components/index.d.ts.map +0 -1
  771. package/packages/gsd-agent-modes/dist/modes/interactive/components/index.js +0 -36
  772. package/packages/gsd-agent-modes/dist/modes/interactive/components/index.js.map +0 -1
  773. package/packages/gsd-agent-modes/dist/modes/interactive/components/keybinding-hints.d.ts +0 -48
  774. package/packages/gsd-agent-modes/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  775. package/packages/gsd-agent-modes/dist/modes/interactive/components/keybinding-hints.js +0 -72
  776. package/packages/gsd-agent-modes/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  777. package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.d.ts +0 -63
  778. package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  779. package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.js +0 -213
  780. package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.js.map +0 -1
  781. package/packages/gsd-agent-modes/dist/modes/interactive/components/model-selector.d.ts +0 -86
  782. package/packages/gsd-agent-modes/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  783. package/packages/gsd-agent-modes/dist/modes/interactive/components/model-selector.js +0 -536
  784. package/packages/gsd-agent-modes/dist/modes/interactive/components/model-selector.js.map +0 -1
  785. package/packages/gsd-agent-modes/dist/modes/interactive/components/oauth-selector.d.ts +0 -19
  786. package/packages/gsd-agent-modes/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  787. package/packages/gsd-agent-modes/dist/modes/interactive/components/oauth-selector.js +0 -93
  788. package/packages/gsd-agent-modes/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  789. package/packages/gsd-agent-modes/dist/modes/interactive/components/provider-manager.d.ts +0 -30
  790. package/packages/gsd-agent-modes/dist/modes/interactive/components/provider-manager.d.ts.map +0 -1
  791. package/packages/gsd-agent-modes/dist/modes/interactive/components/provider-manager.js +0 -169
  792. package/packages/gsd-agent-modes/dist/modes/interactive/components/provider-manager.js.map +0 -1
  793. package/packages/gsd-agent-modes/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -49
  794. package/packages/gsd-agent-modes/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  795. package/packages/gsd-agent-modes/dist/modes/interactive/components/scoped-models-selector.js +0 -267
  796. package/packages/gsd-agent-modes/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  797. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector-search.d.ts +0 -21
  798. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  799. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector-search.js +0 -155
  800. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  801. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector.d.ts +0 -97
  802. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  803. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector.js +0 -810
  804. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector.js.map +0 -1
  805. package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.d.ts +0 -71
  806. package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  807. package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.js +0 -320
  808. package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.js.map +0 -1
  809. package/packages/gsd-agent-modes/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  810. package/packages/gsd-agent-modes/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  811. package/packages/gsd-agent-modes/dist/modes/interactive/components/show-images-selector.js +0 -34
  812. package/packages/gsd-agent-modes/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  813. package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  814. package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  815. package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.js +0 -46
  816. package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  817. package/packages/gsd-agent-modes/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  818. package/packages/gsd-agent-modes/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  819. package/packages/gsd-agent-modes/dist/modes/interactive/components/theme-selector.js +0 -45
  820. package/packages/gsd-agent-modes/dist/modes/interactive/components/theme-selector.js.map +0 -1
  821. package/packages/gsd-agent-modes/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  822. package/packages/gsd-agent-modes/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  823. package/packages/gsd-agent-modes/dist/modes/interactive/components/thinking-selector.js +0 -46
  824. package/packages/gsd-agent-modes/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  825. package/packages/gsd-agent-modes/dist/modes/interactive/components/timestamp.d.ts +0 -15
  826. package/packages/gsd-agent-modes/dist/modes/interactive/components/timestamp.d.ts.map +0 -1
  827. package/packages/gsd-agent-modes/dist/modes/interactive/components/timestamp.js +0 -40
  828. package/packages/gsd-agent-modes/dist/modes/interactive/components/timestamp.js.map +0 -1
  829. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts +0 -111
  830. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  831. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js +0 -984
  832. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js.map +0 -1
  833. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-render-utils.d.ts +0 -44
  834. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-render-utils.d.ts.map +0 -1
  835. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-render-utils.js +0 -61
  836. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-render-utils.js.map +0 -1
  837. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-selector.d.ts +0 -109
  838. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  839. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-selector.js +0 -1035
  840. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-selector.js.map +0 -1
  841. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  842. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  843. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message-selector.js +0 -112
  844. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  845. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.d.ts +0 -12
  846. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  847. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.js +0 -38
  848. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.js.map +0 -1
  849. package/packages/gsd-agent-modes/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  850. package/packages/gsd-agent-modes/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  851. package/packages/gsd-agent-modes/dist/modes/interactive/components/visual-truncate.js +0 -33
  852. package/packages/gsd-agent-modes/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  853. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts +0 -27
  854. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts.map +0 -1
  855. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js +0 -793
  856. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js.map +0 -1
  857. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.d.ts +0 -4
  858. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.d.ts.map +0 -1
  859. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.js +0 -62
  860. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.js.map +0 -1
  861. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.d.ts +0 -22
  862. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.d.ts.map +0 -1
  863. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.js +0 -118
  864. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.js.map +0 -1
  865. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/model-controller.d.ts +0 -7
  866. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/model-controller.d.ts.map +0 -1
  867. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/model-controller.js +0 -68
  868. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/model-controller.js.map +0 -1
  869. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.d.ts +0 -50
  870. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.d.ts.map +0 -1
  871. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.js +0 -2
  872. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.js.map +0 -1
  873. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.d.ts +0 -358
  874. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  875. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.js +0 -3409
  876. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.js.map +0 -1
  877. package/packages/gsd-agent-modes/dist/modes/interactive/slash-command-handlers.d.ts +0 -77
  878. package/packages/gsd-agent-modes/dist/modes/interactive/slash-command-handlers.d.ts.map +0 -1
  879. package/packages/gsd-agent-modes/dist/modes/interactive/slash-command-handlers.js +0 -529
  880. package/packages/gsd-agent-modes/dist/modes/interactive/slash-command-handlers.js.map +0 -1
  881. package/packages/gsd-agent-modes/dist/modes/interactive/utils/shorten-path.d.ts +0 -6
  882. package/packages/gsd-agent-modes/dist/modes/interactive/utils/shorten-path.d.ts.map +0 -1
  883. package/packages/gsd-agent-modes/dist/modes/interactive/utils/shorten-path.js +0 -15
  884. package/packages/gsd-agent-modes/dist/modes/interactive/utils/shorten-path.js.map +0 -1
  885. package/packages/gsd-agent-modes/dist/modes/print-mode.d.ts +0 -28
  886. package/packages/gsd-agent-modes/dist/modes/print-mode.d.ts.map +0 -1
  887. package/packages/gsd-agent-modes/dist/modes/print-mode.js +0 -84
  888. package/packages/gsd-agent-modes/dist/modes/print-mode.js.map +0 -1
  889. package/packages/gsd-agent-modes/dist/modes/rpc/jsonl.d.ts +0 -17
  890. package/packages/gsd-agent-modes/dist/modes/rpc/jsonl.d.ts.map +0 -1
  891. package/packages/gsd-agent-modes/dist/modes/rpc/jsonl.js +0 -49
  892. package/packages/gsd-agent-modes/dist/modes/rpc/jsonl.js.map +0 -1
  893. package/packages/gsd-agent-modes/dist/modes/rpc/remote-terminal.d.ts +0 -37
  894. package/packages/gsd-agent-modes/dist/modes/rpc/remote-terminal.d.ts.map +0 -1
  895. package/packages/gsd-agent-modes/dist/modes/rpc/remote-terminal.js +0 -84
  896. package/packages/gsd-agent-modes/dist/modes/rpc/remote-terminal.js.map +0 -1
  897. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.d.ts +0 -243
  898. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  899. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.js +0 -464
  900. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.js.map +0 -1
  901. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.d.ts +0 -25
  902. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  903. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.js +0 -750
  904. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.js.map +0 -1
  905. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-types.d.ts +0 -511
  906. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  907. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-types.js +0 -8
  908. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-types.js.map +0 -1
  909. package/packages/gsd-agent-modes/dist/modes/shared/command-context-actions.d.ts +0 -19
  910. package/packages/gsd-agent-modes/dist/modes/shared/command-context-actions.d.ts.map +0 -1
  911. package/packages/gsd-agent-modes/dist/modes/shared/command-context-actions.js +0 -45
  912. package/packages/gsd-agent-modes/dist/modes/shared/command-context-actions.js.map +0 -1
  913. package/packages/gsd-agent-modes/dist/pi-coding-agent-compat.d.ts +0 -22
  914. package/packages/gsd-agent-modes/dist/pi-coding-agent-compat.d.ts.map +0 -1
  915. package/packages/gsd-agent-modes/dist/pi-coding-agent-compat.js +0 -21
  916. package/packages/gsd-agent-modes/dist/pi-coding-agent-compat.js.map +0 -1
  917. package/packages/gsd-agent-modes/dist/pi-tui-compat.d.ts +0 -4
  918. package/packages/gsd-agent-modes/dist/pi-tui-compat.d.ts.map +0 -1
  919. package/packages/gsd-agent-modes/dist/pi-tui-compat.js +0 -3
  920. package/packages/gsd-agent-modes/dist/pi-tui-compat.js.map +0 -1
  921. package/packages/gsd-agent-modes/dist/theme.d.ts +0 -15
  922. package/packages/gsd-agent-modes/dist/theme.d.ts.map +0 -1
  923. package/packages/gsd-agent-modes/dist/theme.js +0 -23
  924. package/packages/gsd-agent-modes/dist/theme.js.map +0 -1
  925. package/packages/gsd-agent-modes/dist/utils/theme.d.ts +0 -16
  926. package/packages/gsd-agent-modes/dist/utils/theme.d.ts.map +0 -1
  927. package/packages/gsd-agent-modes/dist/utils/theme.js +0 -11
  928. package/packages/gsd-agent-modes/dist/utils/theme.js.map +0 -1
  929. package/packages/gsd-agent-modes/package.json +0 -23
  930. package/packages/gsd-agent-modes/src/cli/args.ts +0 -350
  931. package/packages/gsd-agent-modes/src/cli/config-selector.ts +0 -54
  932. package/packages/gsd-agent-modes/src/cli/file-processor.ts +0 -107
  933. package/packages/gsd-agent-modes/src/cli/list-models.ts +0 -141
  934. package/packages/gsd-agent-modes/src/cli/session-picker.ts +0 -59
  935. package/packages/gsd-agent-modes/src/index.ts +0 -6
  936. package/packages/gsd-agent-modes/src/main.ts +0 -614
  937. package/packages/gsd-agent-modes/src/modes/interactive/components/__tests__/login-dialog.test.ts +0 -24
  938. package/packages/gsd-agent-modes/src/modes/interactive/components/__tests__/provider-display-name.test.ts +0 -18
  939. package/packages/gsd-agent-modes/src/modes/interactive/components/__tests__/timestamp.test.ts +0 -38
  940. package/packages/gsd-agent-modes/src/modes/interactive/components/__tests__/tool-execution.test.ts +0 -171
  941. package/packages/gsd-agent-modes/src/modes/interactive/components/armin.ts +0 -382
  942. package/packages/gsd-agent-modes/src/modes/interactive/components/assistant-message.ts +0 -178
  943. package/packages/gsd-agent-modes/src/modes/interactive/components/bash-execution.ts +0 -212
  944. package/packages/gsd-agent-modes/src/modes/interactive/components/bordered-loader.ts +0 -66
  945. package/packages/gsd-agent-modes/src/modes/interactive/components/branch-summary-message.ts +0 -59
  946. package/packages/gsd-agent-modes/src/modes/interactive/components/chat-frame.ts +0 -67
  947. package/packages/gsd-agent-modes/src/modes/interactive/components/compaction-summary-message.ts +0 -60
  948. package/packages/gsd-agent-modes/src/modes/interactive/components/config-selector.ts +0 -597
  949. package/packages/gsd-agent-modes/src/modes/interactive/components/countdown-timer.ts +0 -41
  950. package/packages/gsd-agent-modes/src/modes/interactive/components/custom-editor.ts +0 -88
  951. package/packages/gsd-agent-modes/src/modes/interactive/components/custom-message.ts +0 -100
  952. package/packages/gsd-agent-modes/src/modes/interactive/components/daxnuts.ts +0 -165
  953. package/packages/gsd-agent-modes/src/modes/interactive/components/diff.ts +0 -147
  954. package/packages/gsd-agent-modes/src/modes/interactive/components/dynamic-border.test.ts +0 -73
  955. package/packages/gsd-agent-modes/src/modes/interactive/components/dynamic-border.ts +0 -89
  956. package/packages/gsd-agent-modes/src/modes/interactive/components/extension-editor.ts +0 -151
  957. package/packages/gsd-agent-modes/src/modes/interactive/components/extension-input.ts +0 -100
  958. package/packages/gsd-agent-modes/src/modes/interactive/components/extension-selector.ts +0 -156
  959. package/packages/gsd-agent-modes/src/modes/interactive/components/footer.ts +0 -257
  960. package/packages/gsd-agent-modes/src/modes/interactive/components/index.ts +0 -35
  961. package/packages/gsd-agent-modes/src/modes/interactive/components/keybinding-hints.ts +0 -84
  962. package/packages/gsd-agent-modes/src/modes/interactive/components/login-dialog.ts +0 -257
  963. package/packages/gsd-agent-modes/src/modes/interactive/components/model-selector.ts +0 -656
  964. package/packages/gsd-agent-modes/src/modes/interactive/components/oauth-selector.ts +0 -122
  965. package/packages/gsd-agent-modes/src/modes/interactive/components/provider-manager.ts +0 -210
  966. package/packages/gsd-agent-modes/src/modes/interactive/components/scoped-models-selector.ts +0 -342
  967. package/packages/gsd-agent-modes/src/modes/interactive/components/session-selector-search.ts +0 -194
  968. package/packages/gsd-agent-modes/src/modes/interactive/components/session-selector.ts +0 -1011
  969. package/packages/gsd-agent-modes/src/modes/interactive/components/settings-selector.ts +0 -452
  970. package/packages/gsd-agent-modes/src/modes/interactive/components/show-images-selector.ts +0 -45
  971. package/packages/gsd-agent-modes/src/modes/interactive/components/skill-invocation-message.ts +0 -56
  972. package/packages/gsd-agent-modes/src/modes/interactive/components/theme-selector.ts +0 -63
  973. package/packages/gsd-agent-modes/src/modes/interactive/components/thinking-selector.ts +0 -64
  974. package/packages/gsd-agent-modes/src/modes/interactive/components/timestamp.ts +0 -48
  975. package/packages/gsd-agent-modes/src/modes/interactive/components/tool-execution.ts +0 -1157
  976. package/packages/gsd-agent-modes/src/modes/interactive/components/tree-render-utils.ts +0 -81
  977. package/packages/gsd-agent-modes/src/modes/interactive/components/tree-selector.ts +0 -1208
  978. package/packages/gsd-agent-modes/src/modes/interactive/components/user-message-selector.ts +0 -145
  979. package/packages/gsd-agent-modes/src/modes/interactive/components/user-message.ts +0 -44
  980. package/packages/gsd-agent-modes/src/modes/interactive/components/visual-truncate.ts +0 -50
  981. package/packages/gsd-agent-modes/src/modes/interactive/controllers/chat-controller-ordering.test.ts +0 -1430
  982. package/packages/gsd-agent-modes/src/modes/interactive/controllers/chat-controller.test.ts +0 -71
  983. package/packages/gsd-agent-modes/src/modes/interactive/controllers/chat-controller.ts +0 -957
  984. package/packages/gsd-agent-modes/src/modes/interactive/controllers/extension-ui-controller.ts +0 -63
  985. package/packages/gsd-agent-modes/src/modes/interactive/controllers/input-controller.test.ts +0 -183
  986. package/packages/gsd-agent-modes/src/modes/interactive/controllers/input-controller.ts +0 -140
  987. package/packages/gsd-agent-modes/src/modes/interactive/controllers/model-controller.ts +0 -77
  988. package/packages/gsd-agent-modes/src/modes/interactive/interactive-mode-ordering.test.ts +0 -44
  989. package/packages/gsd-agent-modes/src/modes/interactive/interactive-mode-state.ts +0 -49
  990. package/packages/gsd-agent-modes/src/modes/interactive/interactive-mode.ts +0 -4195
  991. package/packages/gsd-agent-modes/src/modes/interactive/slash-command-handlers.ts +0 -670
  992. package/packages/gsd-agent-modes/src/modes/interactive/utils/shorten-path.ts +0 -14
  993. package/packages/gsd-agent-modes/src/modes/print-mode.ts +0 -106
  994. package/packages/gsd-agent-modes/src/modes/rpc/jsonl.ts +0 -58
  995. package/packages/gsd-agent-modes/src/modes/rpc/remote-terminal.ts +0 -109
  996. package/packages/gsd-agent-modes/src/modes/rpc/rpc-client.ts +0 -572
  997. package/packages/gsd-agent-modes/src/modes/rpc/rpc-mode.ts +0 -902
  998. package/packages/gsd-agent-modes/src/modes/rpc/rpc-protocol-v2.test.ts +0 -971
  999. package/packages/gsd-agent-modes/src/modes/rpc/rpc-types.ts +0 -335
  1000. package/packages/gsd-agent-modes/src/modes/shared/command-context-actions.ts +0 -53
  1001. package/packages/gsd-agent-modes/src/pi-coding-agent-compat.ts +0 -42
  1002. package/packages/gsd-agent-modes/src/pi-tui-compat.ts +0 -4
  1003. package/packages/gsd-agent-modes/src/theme.ts +0 -25
  1004. package/packages/gsd-agent-modes/src/utils/theme.ts +0 -24
  1005. package/packages/gsd-agent-modes/tsconfig.json +0 -28
  1006. package/packages/gsd-agent-modes/tsconfig.tsbuildinfo +0 -1
  1007. package/packages/gsd-agent-types/dist/index.d.ts +0 -176
  1008. package/packages/gsd-agent-types/dist/index.d.ts.map +0 -1
  1009. package/packages/gsd-agent-types/dist/index.js +0 -24
  1010. package/packages/gsd-agent-types/dist/index.js.map +0 -1
  1011. package/packages/gsd-agent-types/package.json +0 -24
  1012. package/packages/gsd-agent-types/src/index.ts +0 -206
  1013. package/packages/gsd-agent-types/tsconfig.json +0 -25
  1014. package/packages/gsd-agent-types/tsconfig.tsbuildinfo +0 -1
  1015. package/packages/native/dist/tsconfig.tsbuildinfo +0 -1
  1016. package/src/resources/extensions/claude-code-cli/tests/provider-registration.test.ts +0 -27
  1017. /package/dist/web/standalone/.next/static/{gy6_foLMsEzdGBT19c3hr → Cev5xrAYA3ZGTRLyjR2fX}/_buildManifest.js +0 -0
  1018. /package/dist/web/standalone/.next/static/{gy6_foLMsEzdGBT19c3hr → Cev5xrAYA3ZGTRLyjR2fX}/_ssgManifest.js +0 -0
@@ -0,0 +1,322 @@
1
+ /**
2
+ * Worktree telemetry — #4764
3
+ *
4
+ * Thin emit helpers + aggregator on top of the existing journal. Separate
5
+ * module so callers import a tiny surface and don't have to assemble
6
+ * JournalEntry records by hand. Kernighan: the underlying emit path
7
+ * (emitJournalEvent) is already battle-tested; this module is just
8
+ * structured call sites + a summarizer.
9
+ *
10
+ * Emitted event types (see journal.ts):
11
+ * - worktree-created worktree entered/created for a milestone
12
+ * - worktree-merged worktree merge back to main completed
13
+ * - worktree-orphaned audit detected an orphaned branch/worktree
14
+ * - auto-exit auto-mode exited (pause/stop/blocked/error)
15
+ * - worktree-sync syncStateToProjectRoot snapshot
16
+ * - canonical-root-redirect resolveCanonicalMilestoneRoot redirected
17
+ *
18
+ * These events are purely observational. They never block, never throw,
19
+ * and never carry code content — only IDs, counts, durations, and reasons.
20
+ */
21
+
22
+ import { randomUUID } from "node:crypto";
23
+ import { emitJournalEvent, queryJournal } from "./journal.js";
24
+ import type { JournalEntry } from "./journal.js";
25
+
26
+ function now(): string {
27
+ return new Date().toISOString();
28
+ }
29
+
30
+ function baseEntry(eventType: JournalEntry["eventType"], data: Record<string, unknown>): JournalEntry {
31
+ return {
32
+ ts: now(),
33
+ flowId: (typeof data.flowId === "string" ? data.flowId : undefined) ?? randomUUID(),
34
+ seq: typeof data.seq === "number" ? data.seq : 0,
35
+ eventType,
36
+ data,
37
+ };
38
+ }
39
+
40
+ // ─── Reason literal unions ───────────────────────────────────────────────
41
+ // Closed sets so typos at call sites are rejected at compile time and can't
42
+ // silently fragment the telemetry buckets produced by summarizeWorktreeTelemetry.
43
+
44
+ export type WorktreeCreatedReason = "create-milestone" | "enter-milestone";
45
+ export type AutoExitReason =
46
+ | "pause"
47
+ | "stop"
48
+ | "blocked"
49
+ | "merge-conflict"
50
+ | "merge-failed"
51
+ | "slice-merge-conflict"
52
+ | "all-complete"
53
+ | "no-active-milestone"
54
+ | "other";
55
+
56
+ // ─── Emitters ────────────────────────────────────────────────────────────
57
+
58
+ export function emitWorktreeCreated(
59
+ projectRoot: string,
60
+ milestoneId: string,
61
+ meta: { flowId?: string; reason?: WorktreeCreatedReason } = {},
62
+ ): void {
63
+ emitJournalEvent(projectRoot, baseEntry("worktree-created", {
64
+ milestoneId,
65
+ startedAt: now(),
66
+ flowId: meta.flowId,
67
+ reason: meta.reason ?? "enter-milestone",
68
+ }));
69
+ }
70
+
71
+ export function emitWorktreeMerged(
72
+ projectRoot: string,
73
+ milestoneId: string,
74
+ meta: {
75
+ flowId?: string;
76
+ reason?: "milestone-complete" | "all-complete" | "stop-fallback" | "transition" | "other";
77
+ startedAt?: string;
78
+ durationMs?: number;
79
+ sliceCount?: number;
80
+ taskCount?: number;
81
+ conflict?: boolean;
82
+ conflictedFiles?: number;
83
+ } = {},
84
+ ): void {
85
+ emitJournalEvent(projectRoot, baseEntry("worktree-merged", {
86
+ milestoneId,
87
+ endedAt: now(),
88
+ flowId: meta.flowId,
89
+ reason: meta.reason ?? "other",
90
+ startedAt: meta.startedAt,
91
+ durationMs: meta.durationMs,
92
+ sliceCount: meta.sliceCount,
93
+ taskCount: meta.taskCount,
94
+ conflict: meta.conflict ?? false,
95
+ conflictedFiles: meta.conflictedFiles ?? 0,
96
+ }));
97
+ }
98
+
99
+ export function emitWorktreeOrphaned(
100
+ projectRoot: string,
101
+ milestoneId: string,
102
+ meta: {
103
+ flowId?: string;
104
+ reason: "in-progress-unmerged" | "complete-unmerged" | "stale-branch";
105
+ commitsAhead?: number;
106
+ worktreeDirExists?: boolean;
107
+ },
108
+ ): void {
109
+ emitJournalEvent(projectRoot, baseEntry("worktree-orphaned", {
110
+ milestoneId,
111
+ flowId: meta.flowId,
112
+ reason: meta.reason,
113
+ commitsAhead: meta.commitsAhead,
114
+ worktreeDirExists: meta.worktreeDirExists ?? false,
115
+ detectedAt: now(),
116
+ }));
117
+ }
118
+
119
+ export function emitAutoExit(
120
+ projectRoot: string,
121
+ meta: {
122
+ flowId?: string;
123
+ /** Must come from the closed AutoExitReason set. Callers with free-form
124
+ * reasons (e.g. stopAuto's `reason?: string` parameter) should map to
125
+ * the closed set before emitting. */
126
+ reason: AutoExitReason;
127
+ milestoneId?: string;
128
+ milestoneMerged: boolean;
129
+ },
130
+ ): void {
131
+ emitJournalEvent(projectRoot, baseEntry("auto-exit", {
132
+ reason: meta.reason,
133
+ flowId: meta.flowId,
134
+ milestoneId: meta.milestoneId,
135
+ milestoneMerged: meta.milestoneMerged,
136
+ exitedAt: now(),
137
+ }));
138
+ }
139
+
140
+ export function emitWorktreeSync(
141
+ projectRoot: string,
142
+ milestoneId: string,
143
+ meta: {
144
+ flowId?: string;
145
+ filesCopied?: number;
146
+ bytesCopied?: number;
147
+ commitsAhead?: number;
148
+ worktreeAgeMs?: number;
149
+ },
150
+ ): void {
151
+ emitJournalEvent(projectRoot, baseEntry("worktree-sync", {
152
+ milestoneId,
153
+ flowId: meta.flowId,
154
+ filesCopied: meta.filesCopied,
155
+ bytesCopied: meta.bytesCopied,
156
+ commitsAhead: meta.commitsAhead,
157
+ worktreeAgeMs: meta.worktreeAgeMs,
158
+ }));
159
+ }
160
+
161
+ export function emitCanonicalRootRedirect(
162
+ projectRoot: string,
163
+ milestoneId: string,
164
+ redirectedTo: string,
165
+ meta: { flowId?: string } = {},
166
+ ): void {
167
+ emitJournalEvent(projectRoot, baseEntry("canonical-root-redirect", {
168
+ milestoneId,
169
+ redirectedTo,
170
+ flowId: meta.flowId,
171
+ }));
172
+ }
173
+
174
+ // #4765 — slice-cadence collapse events
175
+
176
+ export function emitSliceMerged(
177
+ projectRoot: string,
178
+ milestoneId: string,
179
+ sliceId: string,
180
+ meta: { durationMs?: number; conflict?: boolean; commitSha?: string; flowId?: string } = {},
181
+ ): void {
182
+ emitJournalEvent(projectRoot, baseEntry("slice-merged", {
183
+ milestoneId,
184
+ sliceId,
185
+ mergedAt: now(),
186
+ durationMs: meta.durationMs,
187
+ conflict: meta.conflict ?? false,
188
+ commitSha: meta.commitSha,
189
+ flowId: meta.flowId,
190
+ }));
191
+ }
192
+
193
+ export function emitMilestoneResquash(
194
+ projectRoot: string,
195
+ milestoneId: string,
196
+ meta: { sliceCount: number; startSha?: string; endSha?: string; flowId?: string } = { sliceCount: 0 },
197
+ ): void {
198
+ emitJournalEvent(projectRoot, baseEntry("milestone-resquash", {
199
+ milestoneId,
200
+ sliceCount: meta.sliceCount,
201
+ startSha: meta.startSha,
202
+ endSha: meta.endSha,
203
+ resquashedAt: now(),
204
+ flowId: meta.flowId,
205
+ }));
206
+ }
207
+
208
+ // ─── Aggregator ──────────────────────────────────────────────────────────
209
+
210
+ export interface WorktreeTelemetrySummary {
211
+ /** Count of worktrees created within the window */
212
+ worktreesCreated: number;
213
+ /** Count of worktrees merged within the window */
214
+ worktreesMerged: number;
215
+ /** Count of orphan detections within the window */
216
+ orphansDetected: number;
217
+ /** Breakdown by orphan reason */
218
+ orphansByReason: Record<string, number>;
219
+ /** Merge durations in milliseconds, sorted ascending */
220
+ mergeDurationsMs: number[];
221
+ /** Number of merges that hit a conflict */
222
+ mergeConflicts: number;
223
+ /** Auto-exit reasons and their counts */
224
+ exitsByReason: Record<string, number>;
225
+ /** Auto-exits where the milestone was NOT merged before exit — the #4761 producer metric */
226
+ exitsWithUnmergedWork: number;
227
+ /** Count of canonical-root-redirects (how often #4761 validation would have read stale state) */
228
+ canonicalRedirects: number;
229
+ /** #4765 — count of successful slice-level merges (slice-cadence feature) */
230
+ slicesMerged: number;
231
+ /** #4765 — count of slice-level merge conflicts */
232
+ sliceMergeConflicts: number;
233
+ /** #4765 — count of milestone-level re-squash operations */
234
+ milestoneResquashes: number;
235
+ }
236
+
237
+ /**
238
+ * Summarize worktree telemetry across the journal. Optional time window
239
+ * via filters.after / filters.before (ISO-8601).
240
+ */
241
+ export function summarizeWorktreeTelemetry(
242
+ projectRoot: string,
243
+ filters?: { after?: string; before?: string },
244
+ ): WorktreeTelemetrySummary {
245
+ const entries = queryJournal(projectRoot, filters);
246
+
247
+ const summary: WorktreeTelemetrySummary = {
248
+ worktreesCreated: 0,
249
+ worktreesMerged: 0,
250
+ orphansDetected: 0,
251
+ orphansByReason: {},
252
+ mergeDurationsMs: [],
253
+ mergeConflicts: 0,
254
+ exitsByReason: {},
255
+ exitsWithUnmergedWork: 0,
256
+ canonicalRedirects: 0,
257
+ slicesMerged: 0,
258
+ sliceMergeConflicts: 0,
259
+ milestoneResquashes: 0,
260
+ };
261
+
262
+ for (const e of entries) {
263
+ const d = e.data ?? {};
264
+ switch (e.eventType) {
265
+ case "worktree-created":
266
+ summary.worktreesCreated++;
267
+ break;
268
+ case "worktree-merged":
269
+ summary.worktreesMerged++;
270
+ if (typeof d.durationMs === "number") summary.mergeDurationsMs.push(d.durationMs);
271
+ if (d.conflict === true) summary.mergeConflicts++;
272
+ break;
273
+ case "worktree-orphaned": {
274
+ summary.orphansDetected++;
275
+ const reason = typeof d.reason === "string" ? d.reason : "unknown";
276
+ summary.orphansByReason[reason] = (summary.orphansByReason[reason] ?? 0) + 1;
277
+ break;
278
+ }
279
+ case "auto-exit": {
280
+ const reason = typeof d.reason === "string" ? d.reason : "unknown";
281
+ summary.exitsByReason[reason] = (summary.exitsByReason[reason] ?? 0) + 1;
282
+ if (d.milestoneMerged === false) summary.exitsWithUnmergedWork++;
283
+ break;
284
+ }
285
+ case "canonical-root-redirect":
286
+ summary.canonicalRedirects++;
287
+ break;
288
+ case "slice-merged":
289
+ summary.slicesMerged++;
290
+ if (d.conflict === true) summary.sliceMergeConflicts++;
291
+ break;
292
+ case "milestone-resquash":
293
+ summary.milestoneResquashes++;
294
+ break;
295
+ default:
296
+ break;
297
+ }
298
+ }
299
+
300
+ summary.mergeDurationsMs.sort((a, b) => a - b);
301
+ return summary;
302
+ }
303
+
304
+ /**
305
+ * Return the p{quantile} of a sorted array using the nearest-rank method.
306
+ * Quantile in [0,1].
307
+ *
308
+ * Prior implementation used Math.floor(q*n), which overstates exact-rank
309
+ * quantiles by one sample (e.g. p95 of 20 values returned the max instead
310
+ * of the 19th value). The nearest-rank index is ceil(q*n) - 1, clamped to
311
+ * [0, n-1].
312
+ */
313
+ export function percentile(sortedValues: number[], q: number): number | null {
314
+ if (sortedValues.length === 0) return null;
315
+ if (q <= 0) return sortedValues[0];
316
+ if (q >= 1) return sortedValues[sortedValues.length - 1];
317
+ const idx = Math.min(
318
+ sortedValues.length - 1,
319
+ Math.max(0, Math.ceil(q * sortedValues.length) - 1),
320
+ );
321
+ return sortedValues[idx];
322
+ }
@@ -37,7 +37,18 @@ export type McpHttpAuthConfig = McpHttpAuthHeaders & McpHttpOAuthConfig;
37
37
  function resolveEnvValue(value: string): string {
38
38
  return value.replace(
39
39
  /\$\{([^}]+)\}/g,
40
- (_match, varName) => process.env[varName] ?? "",
40
+ (_match, varName) => {
41
+ const resolved = process.env[varName];
42
+ if (resolved === undefined || resolved === "") {
43
+ // eslint-disable-next-line no-console
44
+ console.warn(
45
+ `[mcp-client auth] Environment variable "${varName}" referenced in MCP server config is unset. ` +
46
+ `Requests will go out with a malformed header and the remote server will likely reject them with 401.`,
47
+ );
48
+ return "";
49
+ }
50
+ return resolved;
51
+ },
41
52
  );
42
53
  }
43
54
 
@@ -11,7 +11,7 @@
11
11
  * mcp_call — Call a tool on an MCP server (lazy connect)
12
12
  */
13
13
 
14
- import type { ExtensionAPI } from "@gsd/pi-coding-agent";
14
+ import type { ExtensionAPI, ExtensionContext } from "@gsd/pi-coding-agent";
15
15
  import {
16
16
  truncateHead,
17
17
  DEFAULT_MAX_BYTES,
@@ -33,6 +33,7 @@ import type { McpHttpAuthConfig } from "./auth.js";
33
33
  interface McpServerConfig {
34
34
  name: string;
35
35
  transport: "stdio" | "http" | "unknown";
36
+ sourcePath: string;
36
37
  command?: string;
37
38
  args?: string[];
38
39
  env?: Record<string, string>;
@@ -58,8 +59,40 @@ interface ManagedConnection {
58
59
  // ─── Connection Manager ───────────────────────────────────────────────────────
59
60
 
60
61
  const connections = new Map<string, ManagedConnection>();
62
+ const pendingConnections = new Map<string, Promise<Client>>();
61
63
  let configCache: McpServerConfig[] | null = null;
62
64
  const toolCache = new Map<string, McpToolSchema[]>();
65
+ const trustedStdioServers = new Set<string>();
66
+
67
+ const CHILD_ENV_ALLOWLIST = new Set([
68
+ "PATH",
69
+ "Path",
70
+ "HOME",
71
+ "USER",
72
+ "USERNAME",
73
+ "USERPROFILE",
74
+ "SHELL",
75
+ "TMPDIR",
76
+ "TEMP",
77
+ "TMP",
78
+ "SystemRoot",
79
+ "WINDIR",
80
+ "APPDATA",
81
+ "LOCALAPPDATA",
82
+ "XDG_CONFIG_HOME",
83
+ "XDG_CACHE_HOME",
84
+ ]);
85
+
86
+ function stdioTrustKey(config: McpServerConfig): string {
87
+ return JSON.stringify({
88
+ name: config.name,
89
+ sourcePath: config.sourcePath,
90
+ command: config.command,
91
+ args: config.args ?? [],
92
+ cwd: config.cwd,
93
+ env: config.env ?? {},
94
+ });
95
+ }
63
96
 
64
97
  function readConfigs(): McpServerConfig[] {
65
98
  if (configCache) return configCache;
@@ -99,6 +132,7 @@ function readConfigs(): McpServerConfig[] {
99
132
  servers.push({
100
133
  name,
101
134
  transport,
135
+ sourcePath: configPath,
102
136
  ...(hasCommand && {
103
137
  command: config.command as string,
104
138
  args: Array.isArray(config.args) ? (config.args as string[]) : undefined,
@@ -121,6 +155,54 @@ function readConfigs(): McpServerConfig[] {
121
155
  return servers;
122
156
  }
123
157
 
158
+ export function _buildMcpChildEnvForTest(configEnv: Record<string, string> | undefined): Record<string, string> {
159
+ const childEnv: Record<string, string> = {};
160
+ for (const key of CHILD_ENV_ALLOWLIST) {
161
+ const value = process.env[key];
162
+ if (typeof value === "string") childEnv[key] = value;
163
+ }
164
+ return {
165
+ ...childEnv,
166
+ ...(configEnv ? resolveEnv(configEnv) : {}),
167
+ };
168
+ }
169
+
170
+ export function _buildMcpTrustConfirmOptionsForTest(signal?: AbortSignal): { timeout: number; signal?: AbortSignal } {
171
+ return signal ? { timeout: 120_000, signal } : { timeout: 120_000 };
172
+ }
173
+
174
+ async function assertTrustedStdioServer(
175
+ config: McpServerConfig,
176
+ ctx?: ExtensionContext,
177
+ signal?: AbortSignal,
178
+ ): Promise<string | undefined> {
179
+ if (config.transport !== "stdio") return undefined;
180
+ const trustKey = stdioTrustKey(config);
181
+ if (trustedStdioServers.has(trustKey)) return undefined;
182
+
183
+ if (!ctx?.hasUI) {
184
+ throw new Error(
185
+ `MCP server "${config.name}" is a project-local stdio command from ${config.sourcePath}. ` +
186
+ "Run this from an interactive GSD session and approve the server before use.",
187
+ );
188
+ }
189
+
190
+ const commandLine = [config.command, ...(config.args ?? [])].filter(Boolean).join(" ");
191
+ const envKeys = Object.keys(config.env ?? {});
192
+ const envSummary = envKeys.length > 0
193
+ ? `\n\nConfigured environment keys: ${envKeys.join(", ")}`
194
+ : "\n\nNo explicit environment keys configured.";
195
+ const approved = await ctx.ui.confirm(
196
+ `Trust MCP server "${config.name}"?`,
197
+ `Project config ${config.sourcePath} wants to start:\n\n${commandLine}${envSummary}\n\nOnly approve MCP servers you trust.`,
198
+ _buildMcpTrustConfirmOptionsForTest(signal),
199
+ );
200
+ if (!approved) {
201
+ throw new Error(`MCP server "${config.name}" was not approved by the user.`);
202
+ }
203
+ return trustKey;
204
+ }
205
+
124
206
  function getServerConfig(name: string): McpServerConfig | undefined {
125
207
  const trimmed = name.trim();
126
208
  return readConfigs().find((s) =>
@@ -145,7 +227,7 @@ function resolveEnv(env: Record<string, string>): Record<string, string> {
145
227
  return resolved;
146
228
  }
147
229
 
148
- async function getOrConnect(name: string, signal?: AbortSignal): Promise<Client> {
230
+ async function getOrConnect(name: string, signal?: AbortSignal, ctx?: ExtensionContext): Promise<Client> {
149
231
  const config = getServerConfig(name);
150
232
  if (!config) throw new Error(`Unknown MCP server: "${name}". Use mcp_servers to list available servers.`);
151
233
 
@@ -154,14 +236,29 @@ async function getOrConnect(name: string, signal?: AbortSignal): Promise<Client>
154
236
  const existing = connections.get(config.name);
155
237
  if (existing) return existing.client;
156
238
 
239
+ const pending = pendingConnections.get(config.name);
240
+ if (pending) return pending;
241
+
242
+ const connectionPromise = connectServer(config, signal, ctx);
243
+ pendingConnections.set(config.name, connectionPromise);
244
+ try {
245
+ return await connectionPromise;
246
+ } finally {
247
+ pendingConnections.delete(config.name);
248
+ }
249
+ }
250
+
251
+ async function connectServer(config: McpServerConfig, signal?: AbortSignal, ctx?: ExtensionContext): Promise<Client> {
157
252
  const client = new Client({ name: "gsd", version: "1.0.0" });
158
253
  let transport: StdioClientTransport | StreamableHTTPClientTransport;
254
+ let approvedTrustKey: string | undefined;
159
255
 
160
256
  if (config.transport === "stdio" && config.command) {
257
+ approvedTrustKey = await assertTrustedStdioServer(config, ctx, signal);
161
258
  transport = new StdioClientTransport({
162
259
  command: config.command,
163
260
  args: config.args,
164
- env: config.env ? { ...process.env, ...resolveEnv(config.env) } as Record<string, string> : undefined,
261
+ env: _buildMcpChildEnvForTest(config.env),
165
262
  cwd: config.cwd,
166
263
  stderr: "pipe",
167
264
  });
@@ -179,9 +276,24 @@ async function getOrConnect(name: string, signal?: AbortSignal): Promise<Client>
179
276
  throw new Error(`Server "${config.name}" has unsupported transport: ${config.transport}`);
180
277
  }
181
278
 
182
- await client.connect(transport, { signal, timeout: 30000 });
183
- connections.set(config.name, { client, transport });
184
- return client;
279
+ try {
280
+ await client.connect(transport, { signal, timeout: 30000 });
281
+ if (approvedTrustKey) trustedStdioServers.add(approvedTrustKey);
282
+ connections.set(config.name, { client, transport });
283
+ return client;
284
+ } catch (err) {
285
+ try {
286
+ await transport.close();
287
+ } catch {
288
+ // Best-effort cleanup after a failed or aborted connection attempt.
289
+ }
290
+ try {
291
+ await client.close();
292
+ } catch {
293
+ // Best-effort cleanup after a failed or aborted connection attempt.
294
+ }
295
+ throw err;
296
+ }
185
297
  }
186
298
 
187
299
  async function closeAll(): Promise<void> {
@@ -191,9 +303,16 @@ async function closeAll(): Promise<void> {
191
303
  } catch {
192
304
  // Best-effort cleanup
193
305
  }
306
+ try {
307
+ await conn.transport.close();
308
+ } catch {
309
+ // Best-effort cleanup
310
+ }
194
311
  connections.delete(name);
195
312
  });
196
313
  await Promise.allSettled(closing);
314
+ pendingConnections.clear();
315
+ trustedStdioServers.clear();
197
316
  toolCache.clear();
198
317
  }
199
318
 
@@ -331,7 +450,7 @@ export default function (pi: ExtensionAPI) {
331
450
  }),
332
451
  }),
333
452
 
334
- async execute(_id, params, signal) {
453
+ async execute(_id, params, signal, _onUpdate, ctx) {
335
454
  try {
336
455
  // Return cached tools if available
337
456
  const cached = toolCache.get(params.server);
@@ -348,7 +467,7 @@ export default function (pi: ExtensionAPI) {
348
467
  };
349
468
  }
350
469
 
351
- const client = await getOrConnect(params.server, signal);
470
+ const client = await getOrConnect(params.server, signal, ctx);
352
471
  const result = await client.listTools(undefined, { signal, timeout: 30000 });
353
472
  const tools: McpToolSchema[] = (result.tools ?? []).map((t) => ({
354
473
  name: t.name,
@@ -423,9 +542,9 @@ export default function (pi: ExtensionAPI) {
423
542
  ),
424
543
  }),
425
544
 
426
- async execute(_id, params, signal) {
545
+ async execute(_id, params, signal, _onUpdate, ctx) {
427
546
  try {
428
- const client = await getOrConnect(params.server, signal);
547
+ const client = await getOrConnect(params.server, signal, ctx);
429
548
  const result = await client.callTool(
430
549
  { name: params.tool, arguments: params.args ?? {} },
431
550
  undefined,
@@ -514,7 +633,7 @@ export default function (pi: ExtensionAPI) {
514
633
  await closeAll();
515
634
  });
516
635
 
517
- pi.on("session_before_switch", async () => {
636
+ pi.on("session_switch", async () => {
518
637
  await closeAll();
519
638
  configCache = null;
520
639
  });
@@ -16,8 +16,7 @@
16
16
  * Respects OLLAMA_HOST env var for non-default endpoints.
17
17
  */
18
18
 
19
- import { type ExtensionAPI } from "@gsd/pi-coding-agent";
20
- import { importExtensionModule } from "@gsd/pi-coding-agent";
19
+ import { importExtensionModule, type ExtensionAPI } from "@gsd/pi-coding-agent";
21
20
  import * as client from "./ollama-client.js";
22
21
  import { discoverModels } from "./ollama-discovery.js";
23
22
  import { registerOllamaCommands } from "./ollama-commands.js";
@@ -74,11 +73,12 @@ async function probeAndRegister(pi: ExtensionAPI): Promise<boolean> {
74
73
  // so the "ollama" fallback is harmless. For cloud endpoints (OLLAMA_HOST pointing
75
74
  // to ollama.com or a remote instance), OLLAMA_API_KEY is picked up here.
76
75
  pi.registerProvider("ollama", {
77
- // authMode and isReady removed from ProviderConfig in pi 0.67.2
76
+ authMode: "apiKey",
78
77
  apiKey: process.env.OLLAMA_API_KEY ?? "ollama",
79
78
  baseUrl,
80
79
  api: "ollama-chat",
81
80
  streamSimple: streamOllamaChat,
81
+ isReady: () => true,
82
82
  models: models.map((m) => ({
83
83
  id: m.id,
84
84
  name: m.name,
@@ -14,6 +14,7 @@ import {
14
14
  type AssistantMessageEventStream,
15
15
  type Context,
16
16
  type ImageContent,
17
+ type InferenceMetrics,
17
18
  type Message,
18
19
  type Model,
19
20
  type SimpleStreamOptions,
@@ -167,7 +168,7 @@ export function streamOllamaChat(
167
168
  endBlock();
168
169
 
169
170
  output.usage = buildUsage(chunk);
170
- // inferenceMetrics removed from AssistantMessage in pi 0.67.2
171
+ output.inferenceMetrics = extractMetrics(chunk);
171
172
  // Preserve "toolUse" if tool calls were processed
172
173
  if (output.stopReason !== "toolUse") {
173
174
  output.stopReason = mapStopReason(chunk.done_reason);
@@ -193,8 +194,7 @@ function buildRequest(
193
194
  context: Context,
194
195
  options?: SimpleStreamOptions,
195
196
  ): OllamaChatRequest {
196
- // providerOptions removed from Model in pi 0.67.2; cast via unknown for extension data
197
- const ollamaOpts = ((model as unknown as { providerOptions?: OllamaChatOptions }).providerOptions ?? {}) as OllamaChatOptions;
197
+ const ollamaOpts = (model.providerOptions ?? {}) as OllamaChatOptions;
198
198
 
199
199
  const request: OllamaChatRequest = {
200
200
  model: model.id,
@@ -388,9 +388,21 @@ function buildUsage(chunk: OllamaChatResponse): Usage {
388
388
  };
389
389
  }
390
390
 
391
- // extractMetrics removed: InferenceMetrics was removed from pi-ai in pi 0.67.2
392
- // and inferenceMetrics was removed from AssistantMessage. Ollama perf metrics
393
- // (tokensPerSecond, evalDurationMs, etc.) are no longer surfaced via this path.
391
+ function extractMetrics(chunk: OllamaChatResponse): InferenceMetrics | undefined {
392
+ if (!chunk.eval_duration && !chunk.total_duration) return undefined;
393
+
394
+ const evalCount = chunk.eval_count ?? 0;
395
+ const evalDurationNs = chunk.eval_duration ?? 0;
396
+ const evalDurationMs = evalDurationNs / 1e6;
397
+ const tokensPerSecond = evalDurationNs > 0 ? evalCount / (evalDurationNs / 1e9) : 0;
398
+
399
+ return {
400
+ tokensPerSecond,
401
+ totalDurationMs: (chunk.total_duration ?? 0) / 1e6,
402
+ evalDurationMs,
403
+ promptEvalDurationMs: (chunk.prompt_eval_duration ?? 0) / 1e6,
404
+ };
405
+ }
394
406
 
395
407
  // ─── Stream lifecycle helpers ───────────────────────────────────────────────
396
408
  // Replicated from openai-shared.ts (not exported from @gsd/pi-ai)
@@ -55,24 +55,13 @@ function hydrateRemoteTokensFromAuth(): void {
55
55
 
56
56
  try {
57
57
  const auth = AuthStorage.create();
58
- const authData = (auth as unknown as {
59
- data?: Record<string, { type?: string; key?: string } | Array<{ type?: string; key?: string }>>;
60
- }).data ?? {};
61
58
 
62
59
  for (const [providerId, envVar] of needed) {
63
60
  try {
64
- const raw = authData[providerId];
65
- const creds = Array.isArray(raw)
66
- ? raw
67
- : raw
68
- ? [raw]
69
- : [];
70
- if (creds.length === 0) {
71
- const fallbackCred = auth.get(providerId) as { type?: string; key?: string } | undefined;
72
- if (fallbackCred) creds.push(fallbackCred);
73
- }
74
-
75
- const apiKeyCred = creds.find((c) => c.type === "api_key" && !!c.key);
61
+ const creds = auth.getCredentialsForProvider(providerId);
62
+ const apiKeyCred = creds.find((c: { type: string; key?: string }) => c.type === "api_key" && !!c.key) as
63
+ | { type: "api_key"; key: string }
64
+ | undefined;
76
65
  if (apiKeyCred?.key) {
77
66
  process.env[envVar] = apiKeyCred.key;
78
67
  }