gsd-pi 2.77.0-dev.538325aea → 2.77.0

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 (709) hide show
  1. package/README.md +35 -17
  2. package/dist/cli.js +21 -13
  3. package/dist/extension-registry.js +1 -1
  4. package/dist/headless-ui.d.ts +1 -1
  5. package/dist/headless.js +4 -2
  6. package/dist/loader.js +1 -0
  7. package/dist/onboarding.js +5 -5
  8. package/dist/provider-migrations.d.ts +2 -2
  9. package/dist/provider-migrations.js +1 -2
  10. package/dist/remote-questions-config.js +1 -1
  11. package/dist/resources/extensions/async-jobs/async-bash-tool.js +1 -1
  12. package/dist/resources/extensions/aws-auth/index.js +1 -2
  13. package/dist/resources/extensions/bg-shell/bg-shell-lifecycle.js +9 -6
  14. package/dist/resources/extensions/bg-shell/process-manager.js +1 -2
  15. package/dist/resources/extensions/browser-tools/index.js +1 -0
  16. package/dist/resources/extensions/claude-code-cli/index.js +1 -1
  17. package/dist/resources/extensions/claude-code-cli/partial-builder.js +17 -106
  18. package/dist/resources/extensions/claude-code-cli/stream-adapter.js +10 -17
  19. package/dist/resources/extensions/gsd/auto-dispatch.js +14 -40
  20. package/dist/resources/extensions/gsd/auto-post-unit.js +0 -34
  21. package/dist/resources/extensions/gsd/auto-recovery.js +1 -38
  22. package/dist/resources/extensions/gsd/auto-start.js +2 -16
  23. package/dist/resources/extensions/gsd/dispatch-guard.js +3 -44
  24. package/dist/resources/extensions/gsd/guided-flow.js +1 -1
  25. package/dist/resources/extensions/gsd/prompts/system.md +0 -1
  26. package/dist/resources/extensions/mcp-client/index.js +1 -1
  27. package/dist/resources/extensions/ollama/index.js +2 -1
  28. package/dist/resources/extensions/ollama/ollama-chat-provider.js +15 -5
  29. package/dist/resources/extensions/remote-questions/config.js +1 -12
  30. package/dist/resources/extensions/universal-config/index.js +1 -1
  31. package/dist/security-overrides.d.ts +1 -4
  32. package/dist/security-overrides.js +3 -16
  33. package/dist/tsconfig.extensions.tsbuildinfo +1 -1
  34. package/dist/web/standalone/.next/BUILD_ID +1 -1
  35. package/dist/web/standalone/.next/app-path-routes-manifest.json +10 -10
  36. package/dist/web/standalone/.next/build-manifest.json +4 -4
  37. package/dist/web/standalone/.next/prerender-manifest.json +3 -3
  38. package/dist/web/standalone/.next/react-loadable-manifest.json +1 -1
  39. package/dist/web/standalone/.next/required-server-files.json +3 -3
  40. package/dist/web/standalone/.next/server/app/_global-error/page.js +3 -3
  41. package/dist/web/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  42. package/dist/web/standalone/.next/server/app/_global-error.html +1 -1
  43. package/dist/web/standalone/.next/server/app/_global-error.rsc +1 -1
  44. package/dist/web/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  45. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  46. package/dist/web/standalone/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  47. package/dist/web/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  48. package/dist/web/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  49. package/dist/web/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  50. package/dist/web/standalone/.next/server/app/_not-found/page.js +2 -2
  51. package/dist/web/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  52. package/dist/web/standalone/.next/server/app/_not-found.html +1 -1
  53. package/dist/web/standalone/.next/server/app/_not-found.rsc +3 -3
  54. package/dist/web/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +3 -3
  55. package/dist/web/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  56. package/dist/web/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +3 -3
  57. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  58. package/dist/web/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  59. package/dist/web/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  60. package/dist/web/standalone/.next/server/app/api/boot/route.js +1 -1
  61. package/dist/web/standalone/.next/server/app/api/boot/route_client-reference-manifest.js +1 -1
  62. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route.js +1 -1
  63. package/dist/web/standalone/.next/server/app/api/bridge-terminal/input/route_client-reference-manifest.js +1 -1
  64. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route.js +1 -1
  65. package/dist/web/standalone/.next/server/app/api/bridge-terminal/resize/route_client-reference-manifest.js +1 -1
  66. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route.js +2 -2
  67. package/dist/web/standalone/.next/server/app/api/bridge-terminal/stream/route_client-reference-manifest.js +1 -1
  68. package/dist/web/standalone/.next/server/app/api/browse-directories/route.js +1 -1
  69. package/dist/web/standalone/.next/server/app/api/browse-directories/route_client-reference-manifest.js +1 -1
  70. package/dist/web/standalone/.next/server/app/api/captures/route.js +1 -1
  71. package/dist/web/standalone/.next/server/app/api/captures/route_client-reference-manifest.js +1 -1
  72. package/dist/web/standalone/.next/server/app/api/cleanup/route.js +1 -1
  73. package/dist/web/standalone/.next/server/app/api/cleanup/route_client-reference-manifest.js +1 -1
  74. package/dist/web/standalone/.next/server/app/api/dev-mode/route.js +1 -1
  75. package/dist/web/standalone/.next/server/app/api/dev-mode/route_client-reference-manifest.js +1 -1
  76. package/dist/web/standalone/.next/server/app/api/doctor/route.js +1 -1
  77. package/dist/web/standalone/.next/server/app/api/doctor/route_client-reference-manifest.js +1 -1
  78. package/dist/web/standalone/.next/server/app/api/experimental/route.js +2 -2
  79. package/dist/web/standalone/.next/server/app/api/experimental/route_client-reference-manifest.js +1 -1
  80. package/dist/web/standalone/.next/server/app/api/export-data/route.js +1 -1
  81. package/dist/web/standalone/.next/server/app/api/export-data/route_client-reference-manifest.js +1 -1
  82. package/dist/web/standalone/.next/server/app/api/files/route.js +1 -1
  83. package/dist/web/standalone/.next/server/app/api/files/route_client-reference-manifest.js +1 -1
  84. package/dist/web/standalone/.next/server/app/api/forensics/route.js +1 -1
  85. package/dist/web/standalone/.next/server/app/api/forensics/route_client-reference-manifest.js +1 -1
  86. package/dist/web/standalone/.next/server/app/api/git/route.js +1 -1
  87. package/dist/web/standalone/.next/server/app/api/git/route_client-reference-manifest.js +1 -1
  88. package/dist/web/standalone/.next/server/app/api/history/route.js +1 -1
  89. package/dist/web/standalone/.next/server/app/api/history/route_client-reference-manifest.js +1 -1
  90. package/dist/web/standalone/.next/server/app/api/hooks/route.js +1 -1
  91. package/dist/web/standalone/.next/server/app/api/hooks/route_client-reference-manifest.js +1 -1
  92. package/dist/web/standalone/.next/server/app/api/inspect/route.js +1 -1
  93. package/dist/web/standalone/.next/server/app/api/inspect/route_client-reference-manifest.js +1 -1
  94. package/dist/web/standalone/.next/server/app/api/knowledge/route.js +1 -1
  95. package/dist/web/standalone/.next/server/app/api/knowledge/route_client-reference-manifest.js +1 -1
  96. package/dist/web/standalone/.next/server/app/api/live-state/route.js +1 -1
  97. package/dist/web/standalone/.next/server/app/api/live-state/route_client-reference-manifest.js +1 -1
  98. package/dist/web/standalone/.next/server/app/api/notifications/route.js +2 -2
  99. package/dist/web/standalone/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -1
  100. package/dist/web/standalone/.next/server/app/api/onboarding/route.js +1 -1
  101. package/dist/web/standalone/.next/server/app/api/onboarding/route_client-reference-manifest.js +1 -1
  102. package/dist/web/standalone/.next/server/app/api/preferences/route.js +1 -1
  103. package/dist/web/standalone/.next/server/app/api/preferences/route_client-reference-manifest.js +1 -1
  104. package/dist/web/standalone/.next/server/app/api/projects/route.js +1 -1
  105. package/dist/web/standalone/.next/server/app/api/projects/route_client-reference-manifest.js +1 -1
  106. package/dist/web/standalone/.next/server/app/api/recovery/route.js +1 -1
  107. package/dist/web/standalone/.next/server/app/api/recovery/route_client-reference-manifest.js +1 -1
  108. package/dist/web/standalone/.next/server/app/api/remote-questions/route.js +2 -2
  109. package/dist/web/standalone/.next/server/app/api/remote-questions/route_client-reference-manifest.js +1 -1
  110. package/dist/web/standalone/.next/server/app/api/session/browser/route.js +1 -1
  111. package/dist/web/standalone/.next/server/app/api/session/browser/route_client-reference-manifest.js +1 -1
  112. package/dist/web/standalone/.next/server/app/api/session/command/route.js +1 -1
  113. package/dist/web/standalone/.next/server/app/api/session/command/route_client-reference-manifest.js +1 -1
  114. package/dist/web/standalone/.next/server/app/api/session/events/route.js +2 -2
  115. package/dist/web/standalone/.next/server/app/api/session/events/route_client-reference-manifest.js +1 -1
  116. package/dist/web/standalone/.next/server/app/api/session/manage/route.js +1 -1
  117. package/dist/web/standalone/.next/server/app/api/session/manage/route_client-reference-manifest.js +1 -1
  118. package/dist/web/standalone/.next/server/app/api/settings-data/route.js +1 -1
  119. package/dist/web/standalone/.next/server/app/api/settings-data/route_client-reference-manifest.js +1 -1
  120. package/dist/web/standalone/.next/server/app/api/shutdown/route.js +1 -1
  121. package/dist/web/standalone/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  122. package/dist/web/standalone/.next/server/app/api/skill-health/route.js +1 -1
  123. package/dist/web/standalone/.next/server/app/api/skill-health/route_client-reference-manifest.js +1 -1
  124. package/dist/web/standalone/.next/server/app/api/steer/route.js +1 -1
  125. package/dist/web/standalone/.next/server/app/api/steer/route_client-reference-manifest.js +1 -1
  126. package/dist/web/standalone/.next/server/app/api/switch-root/route.js +1 -1
  127. package/dist/web/standalone/.next/server/app/api/switch-root/route_client-reference-manifest.js +1 -1
  128. package/dist/web/standalone/.next/server/app/api/terminal/input/route.js +2 -2
  129. package/dist/web/standalone/.next/server/app/api/terminal/input/route_client-reference-manifest.js +1 -1
  130. package/dist/web/standalone/.next/server/app/api/terminal/resize/route.js +2 -2
  131. package/dist/web/standalone/.next/server/app/api/terminal/resize/route_client-reference-manifest.js +1 -1
  132. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route.js +2 -2
  133. package/dist/web/standalone/.next/server/app/api/terminal/sessions/route_client-reference-manifest.js +1 -1
  134. package/dist/web/standalone/.next/server/app/api/terminal/stream/route.js +4 -4
  135. package/dist/web/standalone/.next/server/app/api/terminal/stream/route_client-reference-manifest.js +1 -1
  136. package/dist/web/standalone/.next/server/app/api/terminal/upload/route.js +1 -1
  137. package/dist/web/standalone/.next/server/app/api/terminal/upload/route_client-reference-manifest.js +1 -1
  138. package/dist/web/standalone/.next/server/app/api/undo/route.js +1 -1
  139. package/dist/web/standalone/.next/server/app/api/undo/route_client-reference-manifest.js +1 -1
  140. package/dist/web/standalone/.next/server/app/api/update/route.js +1 -1
  141. package/dist/web/standalone/.next/server/app/api/update/route_client-reference-manifest.js +1 -1
  142. package/dist/web/standalone/.next/server/app/api/visualizer/route.js +1 -1
  143. package/dist/web/standalone/.next/server/app/api/visualizer/route_client-reference-manifest.js +1 -1
  144. package/dist/web/standalone/.next/server/app/index.html +1 -1
  145. package/dist/web/standalone/.next/server/app/index.rsc +4 -4
  146. package/dist/web/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  147. package/dist/web/standalone/.next/server/app/index.segments/_full.segment.rsc +4 -4
  148. package/dist/web/standalone/.next/server/app/index.segments/_head.segment.rsc +1 -1
  149. package/dist/web/standalone/.next/server/app/index.segments/_index.segment.rsc +3 -3
  150. package/dist/web/standalone/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  151. package/dist/web/standalone/.next/server/app/page.js +2 -2
  152. package/dist/web/standalone/.next/server/app/page_client-reference-manifest.js +1 -1
  153. package/dist/web/standalone/.next/server/app-paths-manifest.json +10 -10
  154. package/dist/web/standalone/.next/server/chunks/63.js +3 -3
  155. package/dist/web/standalone/.next/server/chunks/6897.js +3 -3
  156. package/dist/web/standalone/.next/server/middleware-build-manifest.js +1 -1
  157. package/dist/web/standalone/.next/server/middleware-manifest.json +5 -5
  158. package/dist/web/standalone/.next/server/middleware-react-loadable-manifest.js +1 -1
  159. package/dist/web/standalone/.next/server/middleware.js +2 -2
  160. package/dist/web/standalone/.next/server/next-font-manifest.js +1 -1
  161. package/dist/web/standalone/.next/server/next-font-manifest.json +1 -1
  162. package/dist/web/standalone/.next/server/pages/404.html +1 -1
  163. package/dist/web/standalone/.next/server/pages/500.html +1 -1
  164. package/dist/web/standalone/.next/server/server-reference-manifest.json +1 -1
  165. package/dist/web/standalone/.next/static/chunks/2826.e59e8578e2e28639.js +9 -0
  166. package/dist/web/standalone/.next/static/chunks/app/_not-found/{page-f2a7482d42a5614b.js → page-2f24283c162b6ab3.js} +1 -1
  167. package/dist/web/standalone/.next/static/chunks/app/{layout-a16c7a7ecdf0c2cf.js → layout-9ecfd95f343793f0.js} +1 -1
  168. package/dist/web/standalone/.next/static/chunks/app/page-151349214571e2b6.js +1 -0
  169. package/dist/web/standalone/.next/static/chunks/main-app-d3d4c336195465f9.js +1 -0
  170. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-ab5a8926e07ec673.js +1 -0
  171. package/dist/web/standalone/.next/static/chunks/{webpack-1832629448831fdc.js → webpack-5fc74f13a25fa1bb.js} +1 -1
  172. package/dist/web/standalone/node_modules/node-pty/build/Makefile +2 -2
  173. package/dist/web/standalone/node_modules/node-pty/build/Release/pty.node +0 -0
  174. package/dist/web/standalone/node_modules/node-pty/build/pty.target.mk +14 -14
  175. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +14 -14
  176. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +14 -14
  177. package/dist/web/standalone/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +14 -14
  178. package/dist/web/standalone/server.js +1 -1
  179. package/dist/web-mode.js +1 -1
  180. package/dist/welcome-screen.js +20 -19
  181. package/dist/wizard.js +5 -2
  182. package/package.json +7 -25
  183. package/packages/mcp-server/dist/server.d.ts.map +1 -1
  184. package/packages/mcp-server/dist/server.js +11 -15
  185. package/packages/mcp-server/dist/server.js.map +1 -1
  186. package/packages/mcp-server/src/server.ts +16 -17
  187. package/packages/mcp-server/tsconfig.tsbuildinfo +1 -1
  188. package/packages/native/tsconfig.json +1 -2
  189. package/packages/native/tsconfig.tsbuildinfo +1 -0
  190. package/pkg/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
  191. package/pkg/dist/core/export-html/ansi-to-html.js +0 -1
  192. package/pkg/dist/core/export-html/ansi-to-html.js.map +1 -1
  193. package/pkg/dist/core/export-html/index.d.ts +1 -1
  194. package/pkg/dist/core/export-html/index.d.ts.map +1 -1
  195. package/pkg/dist/core/export-html/index.js +5 -39
  196. package/pkg/dist/core/export-html/index.js.map +1 -1
  197. package/pkg/dist/core/export-html/tool-renderer.d.ts +2 -2
  198. package/pkg/dist/core/export-html/tool-renderer.d.ts.map +1 -1
  199. package/pkg/dist/core/export-html/tool-renderer.js.map +1 -1
  200. package/scripts/ensure-workspace-builds.cjs +0 -2
  201. package/scripts/link-workspace-packages.cjs +0 -2
  202. package/scripts/postinstall.js +178 -9
  203. package/src/resources/extensions/async-jobs/async-bash-tool.ts +1 -1
  204. package/src/resources/extensions/aws-auth/index.ts +1 -2
  205. package/src/resources/extensions/bg-shell/bg-shell-lifecycle.ts +7 -4
  206. package/src/resources/extensions/bg-shell/index.ts +1 -2
  207. package/src/resources/extensions/bg-shell/process-manager.ts +1 -2
  208. package/src/resources/extensions/browser-tools/index.ts +1 -2
  209. package/src/resources/extensions/claude-code-cli/index.ts +1 -1
  210. package/src/resources/extensions/claude-code-cli/partial-builder.ts +23 -115
  211. package/src/resources/extensions/claude-code-cli/stream-adapter.ts +9 -19
  212. package/src/resources/extensions/claude-code-cli/tests/stream-adapter.test.ts +3 -27
  213. package/src/resources/extensions/gsd/auto-dispatch.ts +13 -43
  214. package/src/resources/extensions/gsd/auto-post-unit.ts +0 -33
  215. package/src/resources/extensions/gsd/auto-recovery.ts +1 -37
  216. package/src/resources/extensions/gsd/auto-start.ts +6 -20
  217. package/src/resources/extensions/gsd/dispatch-guard.ts +2 -44
  218. package/src/resources/extensions/gsd/guided-flow.ts +1 -1
  219. package/src/resources/extensions/gsd/prompts/system.md +0 -1
  220. package/src/resources/extensions/gsd/tests/auto-recovery.test.ts +0 -73
  221. package/src/resources/extensions/gsd/tests/complete-milestone-false-merge.test.ts +0 -15
  222. package/src/resources/extensions/gsd/tests/dispatch-complete-milestone-guard.test.ts +9 -9
  223. package/src/resources/extensions/gsd/tests/integration/worktree-e2e.test.ts +0 -11
  224. package/src/resources/extensions/gsd/tests/milestone-status-authoritative.test.ts +3 -3
  225. package/src/resources/extensions/gsd/tests/validate-milestone.test.ts +5 -127
  226. package/src/resources/extensions/mcp-client/index.ts +1 -1
  227. package/src/resources/extensions/ollama/index.ts +3 -3
  228. package/src/resources/extensions/ollama/ollama-chat-provider.ts +18 -6
  229. package/src/resources/extensions/remote-questions/config.ts +4 -15
  230. package/src/resources/extensions/search-the-web/index.ts +1 -2
  231. package/src/resources/extensions/shared/tests/format-utils.test.ts +3 -5
  232. package/src/resources/extensions/universal-config/index.ts +1 -1
  233. package/dist/web/standalone/.next/static/chunks/2826.d445fb428ef41fa1.js +0 -9
  234. package/dist/web/standalone/.next/static/chunks/app/page-5b113fd32bc2a1c3.js +0 -1
  235. package/dist/web/standalone/.next/static/chunks/main-app-fdab67f7802d7832.js +0 -1
  236. package/dist/web/standalone/.next/static/chunks/next/dist/client/components/builtin/global-error-459824ffb8c323dd.js +0 -1
  237. package/packages/gsd-agent-core/dist/agent-session.d.ts +0 -716
  238. package/packages/gsd-agent-core/dist/agent-session.d.ts.map +0 -1
  239. package/packages/gsd-agent-core/dist/agent-session.js +0 -2595
  240. package/packages/gsd-agent-core/dist/agent-session.js.map +0 -1
  241. package/packages/gsd-agent-core/dist/artifact-manager.d.ts +0 -52
  242. package/packages/gsd-agent-core/dist/artifact-manager.d.ts.map +0 -1
  243. package/packages/gsd-agent-core/dist/artifact-manager.js +0 -118
  244. package/packages/gsd-agent-core/dist/artifact-manager.js.map +0 -1
  245. package/packages/gsd-agent-core/dist/bash-executor.d.ts +0 -57
  246. package/packages/gsd-agent-core/dist/bash-executor.d.ts.map +0 -1
  247. package/packages/gsd-agent-core/dist/bash-executor.js +0 -282
  248. package/packages/gsd-agent-core/dist/bash-executor.js.map +0 -1
  249. package/packages/gsd-agent-core/dist/blob-store.d.ts +0 -39
  250. package/packages/gsd-agent-core/dist/blob-store.d.ts.map +0 -1
  251. package/packages/gsd-agent-core/dist/blob-store.js +0 -151
  252. package/packages/gsd-agent-core/dist/blob-store.js.map +0 -1
  253. package/packages/gsd-agent-core/dist/compaction/branch-summarization.d.ts +0 -90
  254. package/packages/gsd-agent-core/dist/compaction/branch-summarization.d.ts.map +0 -1
  255. package/packages/gsd-agent-core/dist/compaction/branch-summarization.js +0 -207
  256. package/packages/gsd-agent-core/dist/compaction/branch-summarization.js.map +0 -1
  257. package/packages/gsd-agent-core/dist/compaction/compaction.d.ts +0 -137
  258. package/packages/gsd-agent-core/dist/compaction/compaction.d.ts.map +0 -1
  259. package/packages/gsd-agent-core/dist/compaction/compaction.js +0 -621
  260. package/packages/gsd-agent-core/dist/compaction/compaction.js.map +0 -1
  261. package/packages/gsd-agent-core/dist/compaction/index.d.ts +0 -7
  262. package/packages/gsd-agent-core/dist/compaction/index.d.ts.map +0 -1
  263. package/packages/gsd-agent-core/dist/compaction/index.js +0 -7
  264. package/packages/gsd-agent-core/dist/compaction/index.js.map +0 -1
  265. package/packages/gsd-agent-core/dist/compaction/utils.d.ts +0 -78
  266. package/packages/gsd-agent-core/dist/compaction/utils.d.ts.map +0 -1
  267. package/packages/gsd-agent-core/dist/compaction/utils.js +0 -263
  268. package/packages/gsd-agent-core/dist/compaction/utils.js.map +0 -1
  269. package/packages/gsd-agent-core/dist/compaction-orchestrator.d.ts +0 -90
  270. package/packages/gsd-agent-core/dist/compaction-orchestrator.d.ts.map +0 -1
  271. package/packages/gsd-agent-core/dist/compaction-orchestrator.js +0 -338
  272. package/packages/gsd-agent-core/dist/compaction-orchestrator.js.map +0 -1
  273. package/packages/gsd-agent-core/dist/contextual-tips.d.ts +0 -43
  274. package/packages/gsd-agent-core/dist/contextual-tips.d.ts.map +0 -1
  275. package/packages/gsd-agent-core/dist/contextual-tips.js +0 -208
  276. package/packages/gsd-agent-core/dist/contextual-tips.js.map +0 -1
  277. package/packages/gsd-agent-core/dist/export-html/ansi-to-html.d.ts +0 -18
  278. package/packages/gsd-agent-core/dist/export-html/ansi-to-html.d.ts.map +0 -1
  279. package/packages/gsd-agent-core/dist/export-html/ansi-to-html.js +0 -250
  280. package/packages/gsd-agent-core/dist/export-html/ansi-to-html.js.map +0 -1
  281. package/packages/gsd-agent-core/dist/export-html/index.d.ts +0 -37
  282. package/packages/gsd-agent-core/dist/export-html/index.d.ts.map +0 -1
  283. package/packages/gsd-agent-core/dist/export-html/index.js +0 -257
  284. package/packages/gsd-agent-core/dist/export-html/index.js.map +0 -1
  285. package/packages/gsd-agent-core/dist/export-html/template.css +0 -971
  286. package/packages/gsd-agent-core/dist/export-html/template.html +0 -54
  287. package/packages/gsd-agent-core/dist/export-html/template.js +0 -1583
  288. package/packages/gsd-agent-core/dist/export-html/tool-renderer.d.ts +0 -38
  289. package/packages/gsd-agent-core/dist/export-html/tool-renderer.d.ts.map +0 -1
  290. package/packages/gsd-agent-core/dist/export-html/tool-renderer.js +0 -70
  291. package/packages/gsd-agent-core/dist/export-html/tool-renderer.js.map +0 -1
  292. package/packages/gsd-agent-core/dist/export-html/vendor/highlight.min.js +0 -1213
  293. package/packages/gsd-agent-core/dist/export-html/vendor/marked.min.js +0 -6
  294. package/packages/gsd-agent-core/dist/fallback-resolver.d.ts +0 -75
  295. package/packages/gsd-agent-core/dist/fallback-resolver.d.ts.map +0 -1
  296. package/packages/gsd-agent-core/dist/fallback-resolver.js +0 -118
  297. package/packages/gsd-agent-core/dist/fallback-resolver.js.map +0 -1
  298. package/packages/gsd-agent-core/dist/image-overflow-recovery.d.ts +0 -44
  299. package/packages/gsd-agent-core/dist/image-overflow-recovery.d.ts.map +0 -1
  300. package/packages/gsd-agent-core/dist/image-overflow-recovery.js +0 -99
  301. package/packages/gsd-agent-core/dist/image-overflow-recovery.js.map +0 -1
  302. package/packages/gsd-agent-core/dist/index.d.ts +0 -14
  303. package/packages/gsd-agent-core/dist/index.d.ts.map +0 -1
  304. package/packages/gsd-agent-core/dist/index.js +0 -19
  305. package/packages/gsd-agent-core/dist/index.js.map +0 -1
  306. package/packages/gsd-agent-core/dist/keybindings.d.ts +0 -47
  307. package/packages/gsd-agent-core/dist/keybindings.d.ts.map +0 -1
  308. package/packages/gsd-agent-core/dist/keybindings.js +0 -156
  309. package/packages/gsd-agent-core/dist/keybindings.js.map +0 -1
  310. package/packages/gsd-agent-core/dist/lifecycle-hooks.d.ts +0 -42
  311. package/packages/gsd-agent-core/dist/lifecycle-hooks.d.ts.map +0 -1
  312. package/packages/gsd-agent-core/dist/lifecycle-hooks.js +0 -204
  313. package/packages/gsd-agent-core/dist/lifecycle-hooks.js.map +0 -1
  314. package/packages/gsd-agent-core/dist/retry-handler.d.ts +0 -128
  315. package/packages/gsd-agent-core/dist/retry-handler.d.ts.map +0 -1
  316. package/packages/gsd-agent-core/dist/retry-handler.js +0 -518
  317. package/packages/gsd-agent-core/dist/retry-handler.js.map +0 -1
  318. package/packages/gsd-agent-core/dist/sdk.d.ts +0 -159
  319. package/packages/gsd-agent-core/dist/sdk.d.ts.map +0 -1
  320. package/packages/gsd-agent-core/dist/sdk.js +0 -375
  321. package/packages/gsd-agent-core/dist/sdk.js.map +0 -1
  322. package/packages/gsd-agent-core/dist/system-prompt.d.ts +0 -28
  323. package/packages/gsd-agent-core/dist/system-prompt.d.ts.map +0 -1
  324. package/packages/gsd-agent-core/dist/system-prompt.js +0 -201
  325. package/packages/gsd-agent-core/dist/system-prompt.js.map +0 -1
  326. package/packages/gsd-agent-core/package.json +0 -25
  327. package/packages/gsd-agent-core/scripts/copy-assets.cjs +0 -43
  328. package/packages/gsd-agent-core/src/agent-session.test.ts +0 -169
  329. package/packages/gsd-agent-core/src/agent-session.ts +0 -3358
  330. package/packages/gsd-agent-core/src/artifact-manager.ts +0 -126
  331. package/packages/gsd-agent-core/src/bash-executor.ts +0 -352
  332. package/packages/gsd-agent-core/src/blob-store.ts +0 -154
  333. package/packages/gsd-agent-core/src/compaction/branch-summarization.ts +0 -317
  334. package/packages/gsd-agent-core/src/compaction/compaction.ts +0 -855
  335. package/packages/gsd-agent-core/src/compaction/index.ts +0 -7
  336. package/packages/gsd-agent-core/src/compaction/utils.ts +0 -312
  337. package/packages/gsd-agent-core/src/compaction-orchestrator.ts +0 -449
  338. package/packages/gsd-agent-core/src/contextual-tips.ts +0 -232
  339. package/packages/gsd-agent-core/src/export-html/ansi-to-html.ts +0 -259
  340. package/packages/gsd-agent-core/src/export-html/index.ts +0 -345
  341. package/packages/gsd-agent-core/src/export-html/template.css +0 -971
  342. package/packages/gsd-agent-core/src/export-html/template.html +0 -54
  343. package/packages/gsd-agent-core/src/export-html/template.js +0 -1583
  344. package/packages/gsd-agent-core/src/export-html/tool-renderer.ts +0 -114
  345. package/packages/gsd-agent-core/src/export-html/vendor/highlight.min.js +0 -1213
  346. package/packages/gsd-agent-core/src/export-html/vendor/marked.min.js +0 -6
  347. package/packages/gsd-agent-core/src/fallback-resolver.ts +0 -193
  348. package/packages/gsd-agent-core/src/image-overflow-recovery.ts +0 -120
  349. package/packages/gsd-agent-core/src/index.ts +0 -68
  350. package/packages/gsd-agent-core/src/keybindings.ts +0 -220
  351. package/packages/gsd-agent-core/src/lifecycle-hooks.ts +0 -284
  352. package/packages/gsd-agent-core/src/retry-handler.ts +0 -620
  353. package/packages/gsd-agent-core/src/sdk.ts +0 -550
  354. package/packages/gsd-agent-core/src/system-prompt.ts +0 -270
  355. package/packages/gsd-agent-core/tsconfig.json +0 -28
  356. package/packages/gsd-agent-core/tsconfig.tsbuildinfo +0 -1
  357. package/packages/gsd-agent-modes/dist/cli/args.d.ts +0 -58
  358. package/packages/gsd-agent-modes/dist/cli/args.d.ts.map +0 -1
  359. package/packages/gsd-agent-modes/dist/cli/args.js +0 -324
  360. package/packages/gsd-agent-modes/dist/cli/args.js.map +0 -1
  361. package/packages/gsd-agent-modes/dist/cli/config-selector.d.ts +0 -13
  362. package/packages/gsd-agent-modes/dist/cli/config-selector.d.ts.map +0 -1
  363. package/packages/gsd-agent-modes/dist/cli/config-selector.js +0 -32
  364. package/packages/gsd-agent-modes/dist/cli/config-selector.js.map +0 -1
  365. package/packages/gsd-agent-modes/dist/cli/file-processor.d.ts +0 -15
  366. package/packages/gsd-agent-modes/dist/cli/file-processor.d.ts.map +0 -1
  367. package/packages/gsd-agent-modes/dist/cli/file-processor.js +0 -86
  368. package/packages/gsd-agent-modes/dist/cli/file-processor.js.map +0 -1
  369. package/packages/gsd-agent-modes/dist/cli/list-models.d.ts +0 -21
  370. package/packages/gsd-agent-modes/dist/cli/list-models.d.ts.map +0 -1
  371. package/packages/gsd-agent-modes/dist/cli/list-models.js +0 -114
  372. package/packages/gsd-agent-modes/dist/cli/list-models.js.map +0 -1
  373. package/packages/gsd-agent-modes/dist/cli/session-picker.d.ts +0 -10
  374. package/packages/gsd-agent-modes/dist/cli/session-picker.d.ts.map +0 -1
  375. package/packages/gsd-agent-modes/dist/cli/session-picker.js +0 -37
  376. package/packages/gsd-agent-modes/dist/cli/session-picker.js.map +0 -1
  377. package/packages/gsd-agent-modes/dist/index.d.ts +0 -7
  378. package/packages/gsd-agent-modes/dist/index.d.ts.map +0 -1
  379. package/packages/gsd-agent-modes/dist/index.js +0 -7
  380. package/packages/gsd-agent-modes/dist/index.js.map +0 -1
  381. package/packages/gsd-agent-modes/dist/main.d.ts +0 -8
  382. package/packages/gsd-agent-modes/dist/main.d.ts.map +0 -1
  383. package/packages/gsd-agent-modes/dist/main.js +0 -491
  384. package/packages/gsd-agent-modes/dist/main.js.map +0 -1
  385. package/packages/gsd-agent-modes/dist/modes/interactive/components/armin.d.ts +0 -34
  386. package/packages/gsd-agent-modes/dist/modes/interactive/components/armin.d.ts.map +0 -1
  387. package/packages/gsd-agent-modes/dist/modes/interactive/components/armin.js +0 -330
  388. package/packages/gsd-agent-modes/dist/modes/interactive/components/armin.js.map +0 -1
  389. package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.d.ts +0 -29
  390. package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.d.ts.map +0 -1
  391. package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.js +0 -141
  392. package/packages/gsd-agent-modes/dist/modes/interactive/components/assistant-message.js.map +0 -1
  393. package/packages/gsd-agent-modes/dist/modes/interactive/components/bash-execution.d.ts +0 -36
  394. package/packages/gsd-agent-modes/dist/modes/interactive/components/bash-execution.d.ts.map +0 -1
  395. package/packages/gsd-agent-modes/dist/modes/interactive/components/bash-execution.js +0 -157
  396. package/packages/gsd-agent-modes/dist/modes/interactive/components/bash-execution.js.map +0 -1
  397. package/packages/gsd-agent-modes/dist/modes/interactive/components/bordered-loader.d.ts +0 -16
  398. package/packages/gsd-agent-modes/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -1
  399. package/packages/gsd-agent-modes/dist/modes/interactive/components/bordered-loader.js +0 -48
  400. package/packages/gsd-agent-modes/dist/modes/interactive/components/bordered-loader.js.map +0 -1
  401. package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.d.ts +0 -16
  402. package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.d.ts.map +0 -1
  403. package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.js +0 -43
  404. package/packages/gsd-agent-modes/dist/modes/interactive/components/branch-summary-message.js.map +0 -1
  405. package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-frame.d.ts +0 -11
  406. package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-frame.d.ts.map +0 -1
  407. package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-frame.js +0 -47
  408. package/packages/gsd-agent-modes/dist/modes/interactive/components/chat-frame.js.map +0 -1
  409. package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -16
  410. package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.d.ts.map +0 -1
  411. package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.js +0 -44
  412. package/packages/gsd-agent-modes/dist/modes/interactive/components/compaction-summary-message.js.map +0 -1
  413. package/packages/gsd-agent-modes/dist/modes/interactive/components/config-selector.d.ts +0 -71
  414. package/packages/gsd-agent-modes/dist/modes/interactive/components/config-selector.d.ts.map +0 -1
  415. package/packages/gsd-agent-modes/dist/modes/interactive/components/config-selector.js +0 -474
  416. package/packages/gsd-agent-modes/dist/modes/interactive/components/config-selector.js.map +0 -1
  417. package/packages/gsd-agent-modes/dist/modes/interactive/components/countdown-timer.d.ts +0 -15
  418. package/packages/gsd-agent-modes/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -1
  419. package/packages/gsd-agent-modes/dist/modes/interactive/components/countdown-timer.js +0 -32
  420. package/packages/gsd-agent-modes/dist/modes/interactive/components/countdown-timer.js.map +0 -1
  421. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.d.ts +0 -22
  422. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.d.ts.map +0 -1
  423. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.js +0 -70
  424. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-editor.js.map +0 -1
  425. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-message.d.ts +0 -20
  426. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-message.d.ts.map +0 -1
  427. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-message.js +0 -75
  428. package/packages/gsd-agent-modes/dist/modes/interactive/components/custom-message.js.map +0 -1
  429. package/packages/gsd-agent-modes/dist/modes/interactive/components/daxnuts.d.ts +0 -23
  430. package/packages/gsd-agent-modes/dist/modes/interactive/components/daxnuts.d.ts.map +0 -1
  431. package/packages/gsd-agent-modes/dist/modes/interactive/components/daxnuts.js +0 -140
  432. package/packages/gsd-agent-modes/dist/modes/interactive/components/daxnuts.js.map +0 -1
  433. package/packages/gsd-agent-modes/dist/modes/interactive/components/diff.d.ts +0 -12
  434. package/packages/gsd-agent-modes/dist/modes/interactive/components/diff.d.ts.map +0 -1
  435. package/packages/gsd-agent-modes/dist/modes/interactive/components/diff.js +0 -133
  436. package/packages/gsd-agent-modes/dist/modes/interactive/components/diff.js.map +0 -1
  437. package/packages/gsd-agent-modes/dist/modes/interactive/components/dynamic-border.d.ts +0 -33
  438. package/packages/gsd-agent-modes/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -1
  439. package/packages/gsd-agent-modes/dist/modes/interactive/components/dynamic-border.js +0 -82
  440. package/packages/gsd-agent-modes/dist/modes/interactive/components/dynamic-border.js.map +0 -1
  441. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-editor.d.ts +0 -20
  442. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-editor.d.ts.map +0 -1
  443. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-editor.js +0 -111
  444. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-editor.js.map +0 -1
  445. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-input.d.ts +0 -24
  446. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-input.d.ts.map +0 -1
  447. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-input.js +0 -63
  448. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-input.js.map +0 -1
  449. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-selector.d.ts +0 -33
  450. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-selector.d.ts.map +0 -1
  451. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-selector.js +0 -118
  452. package/packages/gsd-agent-modes/dist/modes/interactive/components/extension-selector.js.map +0 -1
  453. package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.d.ts +0 -32
  454. package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.d.ts.map +0 -1
  455. package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.js +0 -230
  456. package/packages/gsd-agent-modes/dist/modes/interactive/components/footer.js.map +0 -1
  457. package/packages/gsd-agent-modes/dist/modes/interactive/components/index.d.ts +0 -34
  458. package/packages/gsd-agent-modes/dist/modes/interactive/components/index.d.ts.map +0 -1
  459. package/packages/gsd-agent-modes/dist/modes/interactive/components/index.js +0 -36
  460. package/packages/gsd-agent-modes/dist/modes/interactive/components/index.js.map +0 -1
  461. package/packages/gsd-agent-modes/dist/modes/interactive/components/keybinding-hints.d.ts +0 -48
  462. package/packages/gsd-agent-modes/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -1
  463. package/packages/gsd-agent-modes/dist/modes/interactive/components/keybinding-hints.js +0 -72
  464. package/packages/gsd-agent-modes/dist/modes/interactive/components/keybinding-hints.js.map +0 -1
  465. package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.d.ts +0 -63
  466. package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.d.ts.map +0 -1
  467. package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.js +0 -213
  468. package/packages/gsd-agent-modes/dist/modes/interactive/components/login-dialog.js.map +0 -1
  469. package/packages/gsd-agent-modes/dist/modes/interactive/components/model-selector.d.ts +0 -86
  470. package/packages/gsd-agent-modes/dist/modes/interactive/components/model-selector.d.ts.map +0 -1
  471. package/packages/gsd-agent-modes/dist/modes/interactive/components/model-selector.js +0 -536
  472. package/packages/gsd-agent-modes/dist/modes/interactive/components/model-selector.js.map +0 -1
  473. package/packages/gsd-agent-modes/dist/modes/interactive/components/oauth-selector.d.ts +0 -19
  474. package/packages/gsd-agent-modes/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -1
  475. package/packages/gsd-agent-modes/dist/modes/interactive/components/oauth-selector.js +0 -93
  476. package/packages/gsd-agent-modes/dist/modes/interactive/components/oauth-selector.js.map +0 -1
  477. package/packages/gsd-agent-modes/dist/modes/interactive/components/provider-manager.d.ts +0 -30
  478. package/packages/gsd-agent-modes/dist/modes/interactive/components/provider-manager.d.ts.map +0 -1
  479. package/packages/gsd-agent-modes/dist/modes/interactive/components/provider-manager.js +0 -169
  480. package/packages/gsd-agent-modes/dist/modes/interactive/components/provider-manager.js.map +0 -1
  481. package/packages/gsd-agent-modes/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -49
  482. package/packages/gsd-agent-modes/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -1
  483. package/packages/gsd-agent-modes/dist/modes/interactive/components/scoped-models-selector.js +0 -267
  484. package/packages/gsd-agent-modes/dist/modes/interactive/components/scoped-models-selector.js.map +0 -1
  485. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector-search.d.ts +0 -21
  486. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -1
  487. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector-search.js +0 -155
  488. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector-search.js.map +0 -1
  489. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector.d.ts +0 -97
  490. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector.d.ts.map +0 -1
  491. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector.js +0 -810
  492. package/packages/gsd-agent-modes/dist/modes/interactive/components/session-selector.js.map +0 -1
  493. package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.d.ts +0 -71
  494. package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.d.ts.map +0 -1
  495. package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.js +0 -320
  496. package/packages/gsd-agent-modes/dist/modes/interactive/components/settings-selector.js.map +0 -1
  497. package/packages/gsd-agent-modes/dist/modes/interactive/components/show-images-selector.d.ts +0 -10
  498. package/packages/gsd-agent-modes/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -1
  499. package/packages/gsd-agent-modes/dist/modes/interactive/components/show-images-selector.js +0 -34
  500. package/packages/gsd-agent-modes/dist/modes/interactive/components/show-images-selector.js.map +0 -1
  501. package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -17
  502. package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.d.ts.map +0 -1
  503. package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.js +0 -46
  504. package/packages/gsd-agent-modes/dist/modes/interactive/components/skill-invocation-message.js.map +0 -1
  505. package/packages/gsd-agent-modes/dist/modes/interactive/components/theme-selector.d.ts +0 -11
  506. package/packages/gsd-agent-modes/dist/modes/interactive/components/theme-selector.d.ts.map +0 -1
  507. package/packages/gsd-agent-modes/dist/modes/interactive/components/theme-selector.js +0 -45
  508. package/packages/gsd-agent-modes/dist/modes/interactive/components/theme-selector.js.map +0 -1
  509. package/packages/gsd-agent-modes/dist/modes/interactive/components/thinking-selector.d.ts +0 -11
  510. package/packages/gsd-agent-modes/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -1
  511. package/packages/gsd-agent-modes/dist/modes/interactive/components/thinking-selector.js +0 -46
  512. package/packages/gsd-agent-modes/dist/modes/interactive/components/thinking-selector.js.map +0 -1
  513. package/packages/gsd-agent-modes/dist/modes/interactive/components/timestamp.d.ts +0 -15
  514. package/packages/gsd-agent-modes/dist/modes/interactive/components/timestamp.d.ts.map +0 -1
  515. package/packages/gsd-agent-modes/dist/modes/interactive/components/timestamp.js +0 -40
  516. package/packages/gsd-agent-modes/dist/modes/interactive/components/timestamp.js.map +0 -1
  517. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts +0 -111
  518. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.d.ts.map +0 -1
  519. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js +0 -984
  520. package/packages/gsd-agent-modes/dist/modes/interactive/components/tool-execution.js.map +0 -1
  521. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-render-utils.d.ts +0 -44
  522. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-render-utils.d.ts.map +0 -1
  523. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-render-utils.js +0 -61
  524. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-render-utils.js.map +0 -1
  525. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-selector.d.ts +0 -109
  526. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-selector.d.ts.map +0 -1
  527. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-selector.js +0 -1035
  528. package/packages/gsd-agent-modes/dist/modes/interactive/components/tree-selector.js.map +0 -1
  529. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message-selector.d.ts +0 -30
  530. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -1
  531. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message-selector.js +0 -112
  532. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message-selector.js.map +0 -1
  533. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.d.ts +0 -12
  534. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.d.ts.map +0 -1
  535. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.js +0 -38
  536. package/packages/gsd-agent-modes/dist/modes/interactive/components/user-message.js.map +0 -1
  537. package/packages/gsd-agent-modes/dist/modes/interactive/components/visual-truncate.d.ts +0 -24
  538. package/packages/gsd-agent-modes/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -1
  539. package/packages/gsd-agent-modes/dist/modes/interactive/components/visual-truncate.js +0 -33
  540. package/packages/gsd-agent-modes/dist/modes/interactive/components/visual-truncate.js.map +0 -1
  541. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts +0 -27
  542. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.d.ts.map +0 -1
  543. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js +0 -793
  544. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/chat-controller.js.map +0 -1
  545. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.d.ts +0 -4
  546. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.d.ts.map +0 -1
  547. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.js +0 -62
  548. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/extension-ui-controller.js.map +0 -1
  549. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.d.ts +0 -22
  550. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.d.ts.map +0 -1
  551. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.js +0 -118
  552. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/input-controller.js.map +0 -1
  553. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/model-controller.d.ts +0 -7
  554. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/model-controller.d.ts.map +0 -1
  555. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/model-controller.js +0 -68
  556. package/packages/gsd-agent-modes/dist/modes/interactive/controllers/model-controller.js.map +0 -1
  557. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.d.ts +0 -50
  558. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.d.ts.map +0 -1
  559. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.js +0 -2
  560. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode-state.js.map +0 -1
  561. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.d.ts +0 -358
  562. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.d.ts.map +0 -1
  563. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.js +0 -3409
  564. package/packages/gsd-agent-modes/dist/modes/interactive/interactive-mode.js.map +0 -1
  565. package/packages/gsd-agent-modes/dist/modes/interactive/slash-command-handlers.d.ts +0 -77
  566. package/packages/gsd-agent-modes/dist/modes/interactive/slash-command-handlers.d.ts.map +0 -1
  567. package/packages/gsd-agent-modes/dist/modes/interactive/slash-command-handlers.js +0 -529
  568. package/packages/gsd-agent-modes/dist/modes/interactive/slash-command-handlers.js.map +0 -1
  569. package/packages/gsd-agent-modes/dist/modes/interactive/utils/shorten-path.d.ts +0 -6
  570. package/packages/gsd-agent-modes/dist/modes/interactive/utils/shorten-path.d.ts.map +0 -1
  571. package/packages/gsd-agent-modes/dist/modes/interactive/utils/shorten-path.js +0 -15
  572. package/packages/gsd-agent-modes/dist/modes/interactive/utils/shorten-path.js.map +0 -1
  573. package/packages/gsd-agent-modes/dist/modes/print-mode.d.ts +0 -28
  574. package/packages/gsd-agent-modes/dist/modes/print-mode.d.ts.map +0 -1
  575. package/packages/gsd-agent-modes/dist/modes/print-mode.js +0 -84
  576. package/packages/gsd-agent-modes/dist/modes/print-mode.js.map +0 -1
  577. package/packages/gsd-agent-modes/dist/modes/rpc/jsonl.d.ts +0 -17
  578. package/packages/gsd-agent-modes/dist/modes/rpc/jsonl.d.ts.map +0 -1
  579. package/packages/gsd-agent-modes/dist/modes/rpc/jsonl.js +0 -49
  580. package/packages/gsd-agent-modes/dist/modes/rpc/jsonl.js.map +0 -1
  581. package/packages/gsd-agent-modes/dist/modes/rpc/remote-terminal.d.ts +0 -37
  582. package/packages/gsd-agent-modes/dist/modes/rpc/remote-terminal.d.ts.map +0 -1
  583. package/packages/gsd-agent-modes/dist/modes/rpc/remote-terminal.js +0 -84
  584. package/packages/gsd-agent-modes/dist/modes/rpc/remote-terminal.js.map +0 -1
  585. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.d.ts +0 -243
  586. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.d.ts.map +0 -1
  587. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.js +0 -464
  588. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-client.js.map +0 -1
  589. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.d.ts +0 -25
  590. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.d.ts.map +0 -1
  591. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.js +0 -750
  592. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-mode.js.map +0 -1
  593. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-types.d.ts +0 -511
  594. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-types.d.ts.map +0 -1
  595. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-types.js +0 -8
  596. package/packages/gsd-agent-modes/dist/modes/rpc/rpc-types.js.map +0 -1
  597. package/packages/gsd-agent-modes/dist/modes/shared/command-context-actions.d.ts +0 -19
  598. package/packages/gsd-agent-modes/dist/modes/shared/command-context-actions.d.ts.map +0 -1
  599. package/packages/gsd-agent-modes/dist/modes/shared/command-context-actions.js +0 -45
  600. package/packages/gsd-agent-modes/dist/modes/shared/command-context-actions.js.map +0 -1
  601. package/packages/gsd-agent-modes/dist/pi-coding-agent-compat.d.ts +0 -22
  602. package/packages/gsd-agent-modes/dist/pi-coding-agent-compat.d.ts.map +0 -1
  603. package/packages/gsd-agent-modes/dist/pi-coding-agent-compat.js +0 -21
  604. package/packages/gsd-agent-modes/dist/pi-coding-agent-compat.js.map +0 -1
  605. package/packages/gsd-agent-modes/dist/pi-tui-compat.d.ts +0 -4
  606. package/packages/gsd-agent-modes/dist/pi-tui-compat.d.ts.map +0 -1
  607. package/packages/gsd-agent-modes/dist/pi-tui-compat.js +0 -3
  608. package/packages/gsd-agent-modes/dist/pi-tui-compat.js.map +0 -1
  609. package/packages/gsd-agent-modes/dist/theme.d.ts +0 -15
  610. package/packages/gsd-agent-modes/dist/theme.d.ts.map +0 -1
  611. package/packages/gsd-agent-modes/dist/theme.js +0 -23
  612. package/packages/gsd-agent-modes/dist/theme.js.map +0 -1
  613. package/packages/gsd-agent-modes/dist/utils/theme.d.ts +0 -16
  614. package/packages/gsd-agent-modes/dist/utils/theme.d.ts.map +0 -1
  615. package/packages/gsd-agent-modes/dist/utils/theme.js +0 -11
  616. package/packages/gsd-agent-modes/dist/utils/theme.js.map +0 -1
  617. package/packages/gsd-agent-modes/package.json +0 -23
  618. package/packages/gsd-agent-modes/src/cli/args.ts +0 -350
  619. package/packages/gsd-agent-modes/src/cli/config-selector.ts +0 -54
  620. package/packages/gsd-agent-modes/src/cli/file-processor.ts +0 -107
  621. package/packages/gsd-agent-modes/src/cli/list-models.ts +0 -141
  622. package/packages/gsd-agent-modes/src/cli/session-picker.ts +0 -59
  623. package/packages/gsd-agent-modes/src/index.ts +0 -6
  624. package/packages/gsd-agent-modes/src/main.ts +0 -614
  625. package/packages/gsd-agent-modes/src/modes/interactive/components/__tests__/login-dialog.test.ts +0 -24
  626. package/packages/gsd-agent-modes/src/modes/interactive/components/__tests__/provider-display-name.test.ts +0 -18
  627. package/packages/gsd-agent-modes/src/modes/interactive/components/__tests__/timestamp.test.ts +0 -38
  628. package/packages/gsd-agent-modes/src/modes/interactive/components/__tests__/tool-execution.test.ts +0 -171
  629. package/packages/gsd-agent-modes/src/modes/interactive/components/armin.ts +0 -382
  630. package/packages/gsd-agent-modes/src/modes/interactive/components/assistant-message.ts +0 -178
  631. package/packages/gsd-agent-modes/src/modes/interactive/components/bash-execution.ts +0 -212
  632. package/packages/gsd-agent-modes/src/modes/interactive/components/bordered-loader.ts +0 -66
  633. package/packages/gsd-agent-modes/src/modes/interactive/components/branch-summary-message.ts +0 -59
  634. package/packages/gsd-agent-modes/src/modes/interactive/components/chat-frame.ts +0 -67
  635. package/packages/gsd-agent-modes/src/modes/interactive/components/compaction-summary-message.ts +0 -60
  636. package/packages/gsd-agent-modes/src/modes/interactive/components/config-selector.ts +0 -597
  637. package/packages/gsd-agent-modes/src/modes/interactive/components/countdown-timer.ts +0 -41
  638. package/packages/gsd-agent-modes/src/modes/interactive/components/custom-editor.ts +0 -88
  639. package/packages/gsd-agent-modes/src/modes/interactive/components/custom-message.ts +0 -100
  640. package/packages/gsd-agent-modes/src/modes/interactive/components/daxnuts.ts +0 -165
  641. package/packages/gsd-agent-modes/src/modes/interactive/components/diff.ts +0 -147
  642. package/packages/gsd-agent-modes/src/modes/interactive/components/dynamic-border.test.ts +0 -73
  643. package/packages/gsd-agent-modes/src/modes/interactive/components/dynamic-border.ts +0 -89
  644. package/packages/gsd-agent-modes/src/modes/interactive/components/extension-editor.ts +0 -151
  645. package/packages/gsd-agent-modes/src/modes/interactive/components/extension-input.ts +0 -100
  646. package/packages/gsd-agent-modes/src/modes/interactive/components/extension-selector.ts +0 -156
  647. package/packages/gsd-agent-modes/src/modes/interactive/components/footer.ts +0 -257
  648. package/packages/gsd-agent-modes/src/modes/interactive/components/index.ts +0 -35
  649. package/packages/gsd-agent-modes/src/modes/interactive/components/keybinding-hints.ts +0 -84
  650. package/packages/gsd-agent-modes/src/modes/interactive/components/login-dialog.ts +0 -257
  651. package/packages/gsd-agent-modes/src/modes/interactive/components/model-selector.ts +0 -656
  652. package/packages/gsd-agent-modes/src/modes/interactive/components/oauth-selector.ts +0 -122
  653. package/packages/gsd-agent-modes/src/modes/interactive/components/provider-manager.ts +0 -210
  654. package/packages/gsd-agent-modes/src/modes/interactive/components/scoped-models-selector.ts +0 -342
  655. package/packages/gsd-agent-modes/src/modes/interactive/components/session-selector-search.ts +0 -194
  656. package/packages/gsd-agent-modes/src/modes/interactive/components/session-selector.ts +0 -1011
  657. package/packages/gsd-agent-modes/src/modes/interactive/components/settings-selector.ts +0 -452
  658. package/packages/gsd-agent-modes/src/modes/interactive/components/show-images-selector.ts +0 -45
  659. package/packages/gsd-agent-modes/src/modes/interactive/components/skill-invocation-message.ts +0 -56
  660. package/packages/gsd-agent-modes/src/modes/interactive/components/theme-selector.ts +0 -63
  661. package/packages/gsd-agent-modes/src/modes/interactive/components/thinking-selector.ts +0 -64
  662. package/packages/gsd-agent-modes/src/modes/interactive/components/timestamp.ts +0 -48
  663. package/packages/gsd-agent-modes/src/modes/interactive/components/tool-execution.ts +0 -1157
  664. package/packages/gsd-agent-modes/src/modes/interactive/components/tree-render-utils.ts +0 -81
  665. package/packages/gsd-agent-modes/src/modes/interactive/components/tree-selector.ts +0 -1208
  666. package/packages/gsd-agent-modes/src/modes/interactive/components/user-message-selector.ts +0 -145
  667. package/packages/gsd-agent-modes/src/modes/interactive/components/user-message.ts +0 -44
  668. package/packages/gsd-agent-modes/src/modes/interactive/components/visual-truncate.ts +0 -50
  669. package/packages/gsd-agent-modes/src/modes/interactive/controllers/chat-controller-ordering.test.ts +0 -1430
  670. package/packages/gsd-agent-modes/src/modes/interactive/controllers/chat-controller.test.ts +0 -71
  671. package/packages/gsd-agent-modes/src/modes/interactive/controllers/chat-controller.ts +0 -957
  672. package/packages/gsd-agent-modes/src/modes/interactive/controllers/extension-ui-controller.ts +0 -63
  673. package/packages/gsd-agent-modes/src/modes/interactive/controllers/input-controller.test.ts +0 -183
  674. package/packages/gsd-agent-modes/src/modes/interactive/controllers/input-controller.ts +0 -140
  675. package/packages/gsd-agent-modes/src/modes/interactive/controllers/model-controller.ts +0 -77
  676. package/packages/gsd-agent-modes/src/modes/interactive/interactive-mode-ordering.test.ts +0 -44
  677. package/packages/gsd-agent-modes/src/modes/interactive/interactive-mode-state.ts +0 -49
  678. package/packages/gsd-agent-modes/src/modes/interactive/interactive-mode.ts +0 -4195
  679. package/packages/gsd-agent-modes/src/modes/interactive/slash-command-handlers.ts +0 -670
  680. package/packages/gsd-agent-modes/src/modes/interactive/utils/shorten-path.ts +0 -14
  681. package/packages/gsd-agent-modes/src/modes/print-mode.ts +0 -106
  682. package/packages/gsd-agent-modes/src/modes/rpc/jsonl.ts +0 -58
  683. package/packages/gsd-agent-modes/src/modes/rpc/remote-terminal.ts +0 -109
  684. package/packages/gsd-agent-modes/src/modes/rpc/rpc-client.ts +0 -572
  685. package/packages/gsd-agent-modes/src/modes/rpc/rpc-mode.ts +0 -902
  686. package/packages/gsd-agent-modes/src/modes/rpc/rpc-protocol-v2.test.ts +0 -971
  687. package/packages/gsd-agent-modes/src/modes/rpc/rpc-types.ts +0 -335
  688. package/packages/gsd-agent-modes/src/modes/shared/command-context-actions.ts +0 -53
  689. package/packages/gsd-agent-modes/src/pi-coding-agent-compat.ts +0 -42
  690. package/packages/gsd-agent-modes/src/pi-tui-compat.ts +0 -4
  691. package/packages/gsd-agent-modes/src/theme.ts +0 -25
  692. package/packages/gsd-agent-modes/src/utils/theme.ts +0 -24
  693. package/packages/gsd-agent-modes/tsconfig.json +0 -28
  694. package/packages/gsd-agent-modes/tsconfig.tsbuildinfo +0 -1
  695. package/packages/gsd-agent-types/dist/index.d.ts +0 -176
  696. package/packages/gsd-agent-types/dist/index.d.ts.map +0 -1
  697. package/packages/gsd-agent-types/dist/index.js +0 -24
  698. package/packages/gsd-agent-types/dist/index.js.map +0 -1
  699. package/packages/gsd-agent-types/package.json +0 -24
  700. package/packages/gsd-agent-types/src/index.ts +0 -206
  701. package/packages/gsd-agent-types/tsconfig.json +0 -25
  702. package/packages/gsd-agent-types/tsconfig.tsbuildinfo +0 -1
  703. package/packages/native/dist/tsconfig.tsbuildinfo +0 -1
  704. package/scripts/install.js +0 -512
  705. package/src/resources/extensions/claude-code-cli/tests/provider-registration.test.ts +0 -27
  706. package/src/resources/extensions/gsd/tests/auto-start-clean-runtime-db-gated.test.ts +0 -63
  707. package/src/resources/extensions/gsd/tests/dispatch-guard-summary-db-mismatch.test.ts +0 -77
  708. /package/dist/web/standalone/.next/static/{gy6_foLMsEzdGBT19c3hr → pV-mPo7rYGb5JBC09C8GG}/_buildManifest.js +0 -0
  709. /package/dist/web/standalone/.next/static/{gy6_foLMsEzdGBT19c3hr → pV-mPo7rYGb5JBC09C8GG}/_ssgManifest.js +0 -0
@@ -1,156 +0,0 @@
1
- import { DEFAULT_EDITOR_KEYBINDINGS, EditorKeybindingsManager, matchesKey, setEditorKeybindings, } from "@gsd/pi-tui";
2
- import { existsSync, readFileSync } from "fs";
3
- import { join } from "path";
4
- import { getAgentDir } from "@gsd/pi-coding-agent";
5
- /**
6
- * Default application keybindings.
7
- */
8
- const DEFAULT_APP_KEYBINDINGS = {
9
- interrupt: "escape",
10
- clear: "ctrl+c",
11
- exit: "ctrl+d",
12
- suspend: "ctrl+z",
13
- cycleThinkingLevel: "shift+tab",
14
- cycleModelForward: "ctrl+p",
15
- cycleModelBackward: "shift+ctrl+p",
16
- selectModel: "ctrl+l",
17
- expandTools: "ctrl+o",
18
- toggleThinking: "ctrl+t",
19
- toggleSessionNamedFilter: "ctrl+n",
20
- externalEditor: "ctrl+g",
21
- followUp: "alt+enter",
22
- dequeue: "alt+up",
23
- pasteImage: process.platform === "win32" ? "alt+v" : ["ctrl+v", "alt+v"],
24
- newSession: [],
25
- tree: [],
26
- fork: [],
27
- resume: [],
28
- };
29
- /**
30
- * All default keybindings (app + editor).
31
- * TUI_KEYBINDINGS provides defaults for the editor actions; map to first default key.
32
- */
33
- const DEFAULT_EDITOR_KEYBINDING_DEFAULTS = Object.fromEntries(Object.entries(DEFAULT_EDITOR_KEYBINDINGS));
34
- const DEFAULT_KEYBINDINGS = {
35
- ...DEFAULT_EDITOR_KEYBINDING_DEFAULTS,
36
- ...DEFAULT_APP_KEYBINDINGS,
37
- };
38
- // App actions list for type checking
39
- const APP_ACTIONS = [
40
- "interrupt",
41
- "clear",
42
- "exit",
43
- "suspend",
44
- "cycleThinkingLevel",
45
- "cycleModelForward",
46
- "cycleModelBackward",
47
- "selectModel",
48
- "expandTools",
49
- "toggleThinking",
50
- "toggleSessionNamedFilter",
51
- "externalEditor",
52
- "followUp",
53
- "dequeue",
54
- "pasteImage",
55
- "newSession",
56
- "tree",
57
- "fork",
58
- "resume",
59
- ];
60
- function isAppAction(action) {
61
- return APP_ACTIONS.includes(action);
62
- }
63
- /**
64
- * Manages all keybindings (app + editor).
65
- */
66
- export class KeybindingsManager {
67
- constructor(config) {
68
- this.config = config;
69
- this.appActionToKeys = new Map();
70
- this.buildMaps();
71
- }
72
- /**
73
- * Create from config file and set up editor keybindings.
74
- */
75
- static create(agentDir = getAgentDir()) {
76
- const configPath = join(agentDir, "keybindings.json");
77
- const config = KeybindingsManager.loadFromFile(configPath);
78
- const manager = new KeybindingsManager(config);
79
- // Set up editor keybindings globally.
80
- // Include both editor actions and expandTools (shared between app and editor).
81
- // 0.67.2 KeybindingsManager takes (definitions, userBindings) where definitions
82
- // is the full keybinding definition map (TUI_KEYBINDINGS) and userBindings
83
- // are the user overrides (EditorKeybindingsConfig).
84
- const editorConfig = {};
85
- for (const [action, keys] of Object.entries(config)) {
86
- if (!isAppAction(action) || action === "expandTools") {
87
- editorConfig[action] = keys;
88
- }
89
- }
90
- setEditorKeybindings(new EditorKeybindingsManager(editorConfig));
91
- return manager;
92
- }
93
- /**
94
- * Create in-memory.
95
- */
96
- static inMemory(config = {}) {
97
- return new KeybindingsManager(config);
98
- }
99
- static loadFromFile(path) {
100
- if (!existsSync(path))
101
- return {};
102
- try {
103
- return JSON.parse(readFileSync(path, "utf-8"));
104
- }
105
- catch {
106
- return {};
107
- }
108
- }
109
- buildMaps() {
110
- this.appActionToKeys.clear();
111
- // Set defaults for app actions
112
- for (const [action, keys] of Object.entries(DEFAULT_APP_KEYBINDINGS)) {
113
- const keyArray = Array.isArray(keys) ? keys : [keys];
114
- this.appActionToKeys.set(action, [...keyArray]);
115
- }
116
- // Override with user config (app actions only)
117
- for (const [action, keys] of Object.entries(this.config)) {
118
- if (keys === undefined || !isAppAction(action))
119
- continue;
120
- const keyArray = Array.isArray(keys) ? keys : [keys];
121
- this.appActionToKeys.set(action, keyArray);
122
- }
123
- }
124
- /**
125
- * Check if input matches an app action.
126
- */
127
- matches(data, action) {
128
- const keys = this.appActionToKeys.get(action);
129
- if (!keys)
130
- return false;
131
- for (const key of keys) {
132
- if (matchesKey(data, key))
133
- return true;
134
- }
135
- return false;
136
- }
137
- /**
138
- * Get keys bound to an app action.
139
- */
140
- getKeys(action) {
141
- return this.appActionToKeys.get(action) ?? [];
142
- }
143
- /**
144
- * Get the full effective config.
145
- */
146
- getEffectiveConfig() {
147
- const result = { ...DEFAULT_KEYBINDINGS };
148
- for (const [action, keys] of Object.entries(this.config)) {
149
- if (keys !== undefined) {
150
- result[action] = keys;
151
- }
152
- }
153
- return result;
154
- }
155
- }
156
- //# sourceMappingURL=keybindings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keybindings.js","sourceRoot":"","sources":["../src/keybindings.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\tDEFAULT_EDITOR_KEYBINDINGS,\n\ttype EditorAction,\n\ttype EditorKeybindingsConfig,\n\tEditorKeybindingsManager,\n\ttype KeyId,\n\tmatchesKey,\n\tsetEditorKeybindings,\n} from \"@gsd/pi-tui\";\n\nimport { existsSync, readFileSync } from \"fs\";\nimport { join } from \"path\";\nimport { getAgentDir } from \"@gsd/pi-coding-agent\";\n\n/**\n * Application-level actions (coding agent specific).\n */\nexport type AppAction =\n\t| \"interrupt\"\n\t| \"clear\"\n\t| \"exit\"\n\t| \"suspend\"\n\t| \"cycleThinkingLevel\"\n\t| \"cycleModelForward\"\n\t| \"cycleModelBackward\"\n\t| \"selectModel\"\n\t| \"expandTools\"\n\t| \"toggleThinking\"\n\t| \"toggleSessionNamedFilter\"\n\t| \"externalEditor\"\n\t| \"followUp\"\n\t| \"dequeue\"\n\t| \"pasteImage\"\n\t| \"newSession\"\n\t| \"tree\"\n\t| \"fork\"\n\t| \"resume\";\n\n/**\n * All configurable actions.\n */\nexport type KeyAction = AppAction | EditorAction;\n\n/**\n * Full keybindings configuration (app + editor actions).\n */\nexport type KeybindingsConfig = {\n\t[K in KeyAction]?: KeyId | KeyId[];\n};\n\n/**\n * Default application keybindings.\n */\nconst DEFAULT_APP_KEYBINDINGS: Record<AppAction, KeyId | KeyId[]> = {\n\tinterrupt: \"escape\",\n\tclear: \"ctrl+c\",\n\texit: \"ctrl+d\",\n\tsuspend: \"ctrl+z\",\n\tcycleThinkingLevel: \"shift+tab\",\n\tcycleModelForward: \"ctrl+p\",\n\tcycleModelBackward: \"shift+ctrl+p\",\n\tselectModel: \"ctrl+l\",\n\texpandTools: \"ctrl+o\",\n\ttoggleThinking: \"ctrl+t\",\n\ttoggleSessionNamedFilter: \"ctrl+n\",\n\texternalEditor: \"ctrl+g\",\n\tfollowUp: \"alt+enter\",\n\tdequeue: \"alt+up\",\n\tpasteImage: process.platform === \"win32\" ? \"alt+v\" : [\"ctrl+v\", \"alt+v\"],\n\tnewSession: [],\n\ttree: [],\n\tfork: [],\n\tresume: [],\n};\n\n/**\n * All default keybindings (app + editor).\n * TUI_KEYBINDINGS provides defaults for the editor actions; map to first default key.\n */\nconst DEFAULT_EDITOR_KEYBINDING_DEFAULTS: Partial<Record<EditorAction, KeyId | KeyId[]>> = Object.fromEntries(\n\tObject.entries(DEFAULT_EDITOR_KEYBINDINGS),\n) as Partial<Record<EditorAction, KeyId | KeyId[]>>;\n\nconst DEFAULT_KEYBINDINGS: Required<KeybindingsConfig> = {\n\t...DEFAULT_EDITOR_KEYBINDING_DEFAULTS,\n\t...DEFAULT_APP_KEYBINDINGS,\n} as Required<KeybindingsConfig>;\n\n// App actions list for type checking\nconst APP_ACTIONS: AppAction[] = [\n\t\"interrupt\",\n\t\"clear\",\n\t\"exit\",\n\t\"suspend\",\n\t\"cycleThinkingLevel\",\n\t\"cycleModelForward\",\n\t\"cycleModelBackward\",\n\t\"selectModel\",\n\t\"expandTools\",\n\t\"toggleThinking\",\n\t\"toggleSessionNamedFilter\",\n\t\"externalEditor\",\n\t\"followUp\",\n\t\"dequeue\",\n\t\"pasteImage\",\n\t\"newSession\",\n\t\"tree\",\n\t\"fork\",\n\t\"resume\",\n];\n\nfunction isAppAction(action: string): action is AppAction {\n\treturn APP_ACTIONS.includes(action as AppAction);\n}\n\n/**\n * Manages all keybindings (app + editor).\n */\nexport class KeybindingsManager {\n\tprivate config: KeybindingsConfig;\n\tprivate appActionToKeys: Map<AppAction, KeyId[]>;\n\n\tprivate constructor(config: KeybindingsConfig) {\n\t\tthis.config = config;\n\t\tthis.appActionToKeys = new Map();\n\t\tthis.buildMaps();\n\t}\n\n\t/**\n\t * Create from config file and set up editor keybindings.\n\t */\n\tstatic create(agentDir: string = getAgentDir()): KeybindingsManager {\n\t\tconst configPath = join(agentDir, \"keybindings.json\");\n\t\tconst config = KeybindingsManager.loadFromFile(configPath);\n\t\tconst manager = new KeybindingsManager(config);\n\n\t\t// Set up editor keybindings globally.\n\t\t// Include both editor actions and expandTools (shared between app and editor).\n\t\t// 0.67.2 KeybindingsManager takes (definitions, userBindings) where definitions\n\t\t// is the full keybinding definition map (TUI_KEYBINDINGS) and userBindings\n\t\t// are the user overrides (EditorKeybindingsConfig).\n\t\tconst editorConfig: EditorKeybindingsConfig = {};\n\t\tfor (const [action, keys] of Object.entries(config)) {\n\t\t\tif (!isAppAction(action) || action === \"expandTools\") {\n\t\t\t\teditorConfig[action as EditorAction] = keys;\n\t\t\t}\n\t\t}\n\t\tsetEditorKeybindings(new EditorKeybindingsManager(editorConfig));\n\n\t\treturn manager;\n\t}\n\n\t/**\n\t * Create in-memory.\n\t */\n\tstatic inMemory(config: KeybindingsConfig = {}): KeybindingsManager {\n\t\treturn new KeybindingsManager(config);\n\t}\n\n\tprivate static loadFromFile(path: string): KeybindingsConfig {\n\t\tif (!existsSync(path)) return {};\n\t\ttry {\n\t\t\treturn JSON.parse(readFileSync(path, \"utf-8\"));\n\t\t} catch {\n\t\t\treturn {};\n\t\t}\n\t}\n\n\tprivate buildMaps(): void {\n\t\tthis.appActionToKeys.clear();\n\n\t\t// Set defaults for app actions\n\t\tfor (const [action, keys] of Object.entries(DEFAULT_APP_KEYBINDINGS)) {\n\t\t\tconst keyArray = Array.isArray(keys) ? keys : [keys];\n\t\t\tthis.appActionToKeys.set(action as AppAction, [...keyArray]);\n\t\t}\n\n\t\t// Override with user config (app actions only)\n\t\tfor (const [action, keys] of Object.entries(this.config)) {\n\t\t\tif (keys === undefined || !isAppAction(action)) continue;\n\t\t\tconst keyArray = Array.isArray(keys) ? keys : [keys];\n\t\t\tthis.appActionToKeys.set(action, keyArray);\n\t\t}\n\t}\n\n\t/**\n\t * Check if input matches an app action.\n\t */\n\tmatches(data: string, action: AppAction): boolean {\n\t\tconst keys = this.appActionToKeys.get(action);\n\t\tif (!keys) return false;\n\t\tfor (const key of keys) {\n\t\t\tif (matchesKey(data, key)) return true;\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Get keys bound to an app action.\n\t */\n\tgetKeys(action: AppAction): KeyId[] {\n\t\treturn this.appActionToKeys.get(action) ?? [];\n\t}\n\n\t/**\n\t * Get the full effective config.\n\t */\n\tgetEffectiveConfig(): Required<KeybindingsConfig> {\n\t\tconst result = { ...DEFAULT_KEYBINDINGS };\n\t\tfor (const [action, keys] of Object.entries(this.config)) {\n\t\t\tif (keys !== undefined) {\n\t\t\t\t(result as KeybindingsConfig)[action as KeyAction] = keys;\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n}\n\n// Re-export for convenience\nexport type { EditorAction, KeyId };\n"]}
@@ -1,42 +0,0 @@
1
- import type { PackageManager } from "@gsd/agent-types";
2
- import type { LifecycleHookMap, LifecycleHookPhase, LifecycleHookScope } from "@gsd/agent-types";
3
- export interface PackageLifecycleHooksOptions {
4
- source: string;
5
- local: boolean;
6
- cwd: string;
7
- agentDir: string;
8
- appName: string;
9
- packageManager: PackageManager;
10
- stdout: NodeJS.WriteStream;
11
- stderr: NodeJS.WriteStream;
12
- }
13
- export type LifecycleHooksTarget = "source" | "installed";
14
- export interface PrepareLifecycleHooksOptions {
15
- verifyRuntimeDependencies?: boolean;
16
- }
17
- export interface LifecycleHooksRunResult {
18
- phase: LifecycleHookPhase;
19
- hooksRun: number;
20
- hookErrors: number;
21
- legacyHooksRun: number;
22
- entryPathCount: number;
23
- skipped: boolean;
24
- }
25
- interface LoadedLifecycleHooks {
26
- source: string;
27
- scope: LifecycleHookScope;
28
- installedPath?: string;
29
- cwd: string;
30
- stdout: NodeJS.WriteStream;
31
- stderr: NodeJS.WriteStream;
32
- entryPaths: string[];
33
- hooksByPath: Map<string, LifecycleHookMap>;
34
- }
35
- export declare function readManifestRuntimeDeps(dir: string): string[];
36
- export declare function collectRuntimeDependencies(installedPath: string, entryPaths: string[]): string[];
37
- export declare function verifyRuntimeDependencies(runtimeDeps: string[], source: string, appName: string): void;
38
- export declare function resolveLocalSourcePath(source: string, cwd: string): string | undefined;
39
- export declare function prepareLifecycleHooks(options: PackageLifecycleHooksOptions, target: LifecycleHooksTarget, prepareOptions?: PrepareLifecycleHooksOptions): Promise<LoadedLifecycleHooks | null>;
40
- export declare function runLifecycleHooks(loaded: LoadedLifecycleHooks | null, phase: LifecycleHookPhase): Promise<LifecycleHooksRunResult>;
41
- export {};
42
- //# sourceMappingURL=lifecycle-hooks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle-hooks.d.ts","sourceRoot":"","sources":["../src/lifecycle-hooks.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAEX,gBAAgB,EAEhB,kBAAkB,EAClB,kBAAkB,EAClB,MAAM,kBAAkB,CAAC;AAQ1B,MAAM,WAAW,4BAA4B;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;CAC3B;AAED,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,WAAW,CAAC;AAE1D,MAAM,WAAW,4BAA4B;IAC5C,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,uBAAuB;IACvC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,oBAAoB;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,kBAAkB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAC3C;AAYD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAS7D;AAED,wBAAgB,0BAA0B,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAShG;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAatG;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAetF;AAsBD,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,4BAA4B,EACrC,MAAM,EAAE,oBAAoB,EAC5B,cAAc,CAAC,EAAE,4BAA4B,GAC3C,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAgCtC;AA+CD,wBAAsB,iBAAiB,CACtC,MAAM,EAAE,oBAAoB,GAAG,IAAI,EACnC,KAAK,EAAE,kBAAkB,GACvB,OAAO,CAAC,uBAAuB,CAAC,CAwDlC"}
@@ -1,204 +0,0 @@
1
- import { spawnSync } from "node:child_process";
2
- import { existsSync, readFileSync } from "node:fs";
3
- import { homedir } from "node:os";
4
- import { dirname, join, resolve } from "node:path";
5
- import { pathToFileURL } from "node:url";
6
- function toScope(local) {
7
- return local ? "project" : "user";
8
- }
9
- function isGitSource(source) {
10
- if (!source)
11
- return false;
12
- // https://host/owner/repo(.git), ssh://..., git://..., git@host:owner/repo.git
13
- return /^(?:git@[^:\s]+:[^\s]+|(?:https?|ssh|git):\/\/[^\s]+)$/i.test(source);
14
- }
15
- export function readManifestRuntimeDeps(dir) {
16
- const manifestPath = join(dir, "extension-manifest.json");
17
- if (!existsSync(manifestPath))
18
- return [];
19
- try {
20
- const manifest = JSON.parse(readFileSync(manifestPath, "utf-8"));
21
- return manifest.dependencies?.runtime?.filter((dep) => typeof dep === "string") ?? [];
22
- }
23
- catch {
24
- return [];
25
- }
26
- }
27
- export function collectRuntimeDependencies(installedPath, entryPaths) {
28
- const deps = new Set();
29
- const candidateDirs = new Set([installedPath, ...entryPaths.map((entryPath) => dirname(entryPath))]);
30
- for (const dir of candidateDirs) {
31
- for (const dep of readManifestRuntimeDeps(dir)) {
32
- deps.add(dep);
33
- }
34
- }
35
- return Array.from(deps);
36
- }
37
- export function verifyRuntimeDependencies(runtimeDeps, source, appName) {
38
- const missing = [];
39
- for (const dep of runtimeDeps) {
40
- const result = spawnSync(dep, ["--version"], { encoding: "utf-8", timeout: 5000 });
41
- if (result.error || result.status !== 0) {
42
- missing.push(dep);
43
- }
44
- }
45
- if (missing.length === 0)
46
- return;
47
- throw new Error(`Missing runtime dependencies: ${missing.join(", ")}.\n` +
48
- `Install them and retry: ${appName} install ${source}`);
49
- }
50
- export function resolveLocalSourcePath(source, cwd) {
51
- const trimmed = source.trim();
52
- if (!trimmed)
53
- return undefined;
54
- if (trimmed.startsWith("npm:"))
55
- return undefined;
56
- if (isGitSource(trimmed))
57
- return undefined;
58
- let normalized = trimmed;
59
- if (normalized === "~") {
60
- normalized = homedir();
61
- }
62
- else if (normalized.startsWith("~/")) {
63
- normalized = join(homedir(), normalized.slice(2));
64
- }
65
- const absolutePath = resolve(cwd, normalized);
66
- return existsSync(absolutePath) ? absolutePath : undefined;
67
- }
68
- async function resolveEntryPathsFromTarget(options, target, scope) {
69
- if (target === "source") {
70
- const localSourcePath = resolveLocalSourcePath(options.source, options.cwd);
71
- if (!localSourcePath)
72
- return { entryPaths: [] };
73
- const resolved = await options.packageManager.resolveExtensionSources([localSourcePath], { local: true });
74
- const entryPaths = resolved.extensions.filter((resource) => resource.enabled).map((resource) => resource.path);
75
- return { entryPaths, installedPath: localSourcePath };
76
- }
77
- const installedPath = options.packageManager.getInstalledPath(options.source, scope);
78
- if (!installedPath)
79
- return { entryPaths: [] };
80
- const resolved = await options.packageManager.resolveExtensionSources([installedPath], { local: true });
81
- const entryPaths = resolved.extensions.filter((resource) => resource.enabled).map((resource) => resource.path);
82
- return { entryPaths, installedPath };
83
- }
84
- export async function prepareLifecycleHooks(options, target, prepareOptions) {
85
- const scope = toScope(options.local);
86
- const { entryPaths, installedPath } = await resolveEntryPathsFromTarget(options, target, scope);
87
- if (entryPaths.length === 0) {
88
- return null;
89
- }
90
- if (prepareOptions?.verifyRuntimeDependencies && installedPath) {
91
- const runtimeDeps = collectRuntimeDependencies(installedPath, entryPaths);
92
- verifyRuntimeDependencies(runtimeDeps, options.source, options.appName);
93
- }
94
- // extension.lifecycleHooks and the loadExtensions-based registration path were
95
- // removed from the Extension interface in 0.67.2. Only the legacy export path
96
- // (runLegacyExportHook via dynamic import()) is used now. Pre-populate hooksByPath
97
- // with empty maps so runLifecycleHooks falls through to runLegacyExportHook for
98
- // every entry path.
99
- const hooksByPath = new Map();
100
- for (const entryPath of entryPaths) {
101
- hooksByPath.set(entryPath, {});
102
- }
103
- return {
104
- source: options.source,
105
- scope,
106
- installedPath,
107
- cwd: options.cwd,
108
- stdout: options.stdout,
109
- stderr: options.stderr,
110
- entryPaths,
111
- hooksByPath,
112
- };
113
- }
114
- async function runHookSafe(hook, context, stderr) {
115
- try {
116
- await hook(context);
117
- return true;
118
- }
119
- catch (error) {
120
- const message = error instanceof Error ? error.message : String(error);
121
- stderr.write(`[lifecycle-hooks:${context.phase}] Hook failed: ${message}\n`);
122
- return false;
123
- }
124
- }
125
- function getLegacyExportCandidates(phase) {
126
- return [phase];
127
- }
128
- const _legacyModuleCache = new Map();
129
- async function runLegacyExportHook(entryPath, phase, _context) {
130
- try {
131
- let module = _legacyModuleCache.get(entryPath);
132
- if (!module) {
133
- module = (await import(pathToFileURL(entryPath).href));
134
- if (!module)
135
- return null;
136
- _legacyModuleCache.set(entryPath, module);
137
- }
138
- for (const exportName of getLegacyExportCandidates(phase)) {
139
- const candidate = module[exportName];
140
- if (typeof candidate === "function") {
141
- return candidate;
142
- }
143
- }
144
- return null;
145
- }
146
- catch {
147
- return null;
148
- }
149
- }
150
- export async function runLifecycleHooks(loaded, phase) {
151
- if (!loaded) {
152
- return {
153
- phase,
154
- hooksRun: 0,
155
- hookErrors: 0,
156
- legacyHooksRun: 0,
157
- entryPathCount: 0,
158
- skipped: true,
159
- };
160
- }
161
- const context = {
162
- phase,
163
- source: loaded.source,
164
- installedPath: loaded.installedPath,
165
- scope: loaded.scope,
166
- cwd: loaded.cwd,
167
- interactive: Boolean(process.stdin.isTTY && process.stdout.isTTY),
168
- log: (message) => loaded.stdout.write(`${message}\n`),
169
- warn: (message) => loaded.stderr.write(`${message}\n`),
170
- error: (message) => loaded.stderr.write(`${message}\n`),
171
- };
172
- let hooksRun = 0;
173
- let hookErrors = 0;
174
- let legacyHooksRun = 0;
175
- for (const entryPath of loaded.entryPaths) {
176
- const hookMap = loaded.hooksByPath.get(entryPath);
177
- const registeredHooks = hookMap?.[phase] ?? [];
178
- if (registeredHooks.length > 0) {
179
- for (const hook of registeredHooks) {
180
- hooksRun += 1;
181
- const ok = await runHookSafe(hook, context, loaded.stderr);
182
- if (!ok)
183
- hookErrors += 1;
184
- }
185
- continue;
186
- }
187
- const legacyHook = await runLegacyExportHook(entryPath, phase, context);
188
- if (!legacyHook)
189
- continue;
190
- legacyHooksRun += 1;
191
- const ok = await runHookSafe(legacyHook, context, loaded.stderr);
192
- if (!ok)
193
- hookErrors += 1;
194
- }
195
- return {
196
- phase,
197
- hooksRun,
198
- hookErrors,
199
- legacyHooksRun,
200
- entryPathCount: loaded.entryPaths.length,
201
- skipped: false,
202
- };
203
- }
204
- //# sourceMappingURL=lifecycle-hooks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"lifecycle-hooks.js","sourceRoot":"","sources":["../src/lifecycle-hooks.ts"],"names":[],"mappings":"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","sourcesContent":["import { spawnSync } from \"node:child_process\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { homedir } from \"node:os\";\nimport { dirname, join, resolve } from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport type { PackageManager } from \"@gsd/agent-types\";\nimport type {\n\tLifecycleHookContext,\n\tLifecycleHookMap,\n\tLifecycleHookHandler,\n\tLifecycleHookPhase,\n\tLifecycleHookScope,\n} from \"@gsd/agent-types\";\n\ninterface ExtensionManifest {\n\tdependencies?: {\n\t\truntime?: string[];\n\t};\n}\n\nexport interface PackageLifecycleHooksOptions {\n\tsource: string;\n\tlocal: boolean;\n\tcwd: string;\n\tagentDir: string;\n\tappName: string;\n\tpackageManager: PackageManager;\n\tstdout: NodeJS.WriteStream;\n\tstderr: NodeJS.WriteStream;\n}\n\nexport type LifecycleHooksTarget = \"source\" | \"installed\";\n\nexport interface PrepareLifecycleHooksOptions {\n\tverifyRuntimeDependencies?: boolean;\n}\n\nexport interface LifecycleHooksRunResult {\n\tphase: LifecycleHookPhase;\n\thooksRun: number;\n\thookErrors: number;\n\tlegacyHooksRun: number;\n\tentryPathCount: number;\n\tskipped: boolean;\n}\n\ninterface LoadedLifecycleHooks {\n\tsource: string;\n\tscope: LifecycleHookScope;\n\tinstalledPath?: string;\n\tcwd: string;\n\tstdout: NodeJS.WriteStream;\n\tstderr: NodeJS.WriteStream;\n\tentryPaths: string[];\n\thooksByPath: Map<string, LifecycleHookMap>;\n}\n\nfunction toScope(local: boolean): LifecycleHookScope {\n\treturn local ? \"project\" : \"user\";\n}\n\nfunction isGitSource(source: string): boolean {\n\tif (!source) return false;\n\t// https://host/owner/repo(.git), ssh://..., git://..., git@host:owner/repo.git\n\treturn /^(?:git@[^:\\s]+:[^\\s]+|(?:https?|ssh|git):\\/\\/[^\\s]+)$/i.test(source);\n}\n\nexport function readManifestRuntimeDeps(dir: string): string[] {\n\tconst manifestPath = join(dir, \"extension-manifest.json\");\n\tif (!existsSync(manifestPath)) return [];\n\ttry {\n\t\tconst manifest = JSON.parse(readFileSync(manifestPath, \"utf-8\")) as ExtensionManifest;\n\t\treturn manifest.dependencies?.runtime?.filter((dep): dep is string => typeof dep === \"string\") ?? [];\n\t} catch {\n\t\treturn [];\n\t}\n}\n\nexport function collectRuntimeDependencies(installedPath: string, entryPaths: string[]): string[] {\n\tconst deps = new Set<string>();\n\tconst candidateDirs = new Set<string>([installedPath, ...entryPaths.map((entryPath) => dirname(entryPath))]);\n\tfor (const dir of candidateDirs) {\n\t\tfor (const dep of readManifestRuntimeDeps(dir)) {\n\t\t\tdeps.add(dep);\n\t\t}\n\t}\n\treturn Array.from(deps);\n}\n\nexport function verifyRuntimeDependencies(runtimeDeps: string[], source: string, appName: string): void {\n\tconst missing: string[] = [];\n\tfor (const dep of runtimeDeps) {\n\t\tconst result = spawnSync(dep, [\"--version\"], { encoding: \"utf-8\", timeout: 5000 });\n\t\tif (result.error || result.status !== 0) {\n\t\t\tmissing.push(dep);\n\t\t}\n\t}\n\tif (missing.length === 0) return;\n\tthrow new Error(\n\t\t`Missing runtime dependencies: ${missing.join(\", \")}.\\n` +\n\t\t\t`Install them and retry: ${appName} install ${source}`,\n\t);\n}\n\nexport function resolveLocalSourcePath(source: string, cwd: string): string | undefined {\n\tconst trimmed = source.trim();\n\tif (!trimmed) return undefined;\n\tif (trimmed.startsWith(\"npm:\")) return undefined;\n\tif (isGitSource(trimmed)) return undefined;\n\n\tlet normalized = trimmed;\n\tif (normalized === \"~\") {\n\t\tnormalized = homedir();\n\t} else if (normalized.startsWith(\"~/\")) {\n\t\tnormalized = join(homedir(), normalized.slice(2));\n\t}\n\n\tconst absolutePath = resolve(cwd, normalized);\n\treturn existsSync(absolutePath) ? absolutePath : undefined;\n}\n\nasync function resolveEntryPathsFromTarget(\n\toptions: PackageLifecycleHooksOptions,\n\ttarget: LifecycleHooksTarget,\n\tscope: LifecycleHookScope,\n): Promise<{ entryPaths: string[]; installedPath?: string }> {\n\tif (target === \"source\") {\n\t\tconst localSourcePath = resolveLocalSourcePath(options.source, options.cwd);\n\t\tif (!localSourcePath) return { entryPaths: [] };\n\t\tconst resolved = await options.packageManager.resolveExtensionSources([localSourcePath], { local: true });\n\t\tconst entryPaths = resolved.extensions.filter((resource) => resource.enabled).map((resource) => resource.path);\n\t\treturn { entryPaths, installedPath: localSourcePath };\n\t}\n\n\tconst installedPath = options.packageManager.getInstalledPath(options.source, scope);\n\tif (!installedPath) return { entryPaths: [] };\n\tconst resolved = await options.packageManager.resolveExtensionSources([installedPath], { local: true });\n\tconst entryPaths = resolved.extensions.filter((resource) => resource.enabled).map((resource) => resource.path);\n\treturn { entryPaths, installedPath };\n}\n\nexport async function prepareLifecycleHooks(\n\toptions: PackageLifecycleHooksOptions,\n\ttarget: LifecycleHooksTarget,\n\tprepareOptions?: PrepareLifecycleHooksOptions,\n): Promise<LoadedLifecycleHooks | null> {\n\tconst scope = toScope(options.local);\n\tconst { entryPaths, installedPath } = await resolveEntryPathsFromTarget(options, target, scope);\n\tif (entryPaths.length === 0) {\n\t\treturn null;\n\t}\n\n\tif (prepareOptions?.verifyRuntimeDependencies && installedPath) {\n\t\tconst runtimeDeps = collectRuntimeDependencies(installedPath, entryPaths);\n\t\tverifyRuntimeDependencies(runtimeDeps, options.source, options.appName);\n\t}\n\n\t// extension.lifecycleHooks and the loadExtensions-based registration path were\n\t// removed from the Extension interface in 0.67.2. Only the legacy export path\n\t// (runLegacyExportHook via dynamic import()) is used now. Pre-populate hooksByPath\n\t// with empty maps so runLifecycleHooks falls through to runLegacyExportHook for\n\t// every entry path.\n\tconst hooksByPath = new Map<string, LifecycleHookMap>();\n\tfor (const entryPath of entryPaths) {\n\t\thooksByPath.set(entryPath, {});\n\t}\n\n\treturn {\n\t\tsource: options.source,\n\t\tscope,\n\t\tinstalledPath,\n\t\tcwd: options.cwd,\n\t\tstdout: options.stdout,\n\t\tstderr: options.stderr,\n\t\tentryPaths,\n\t\thooksByPath,\n\t};\n}\n\nasync function runHookSafe(\n\thook: LifecycleHookHandler,\n\tcontext: LifecycleHookContext,\n\tstderr: NodeJS.WriteStream,\n): Promise<boolean> {\n\ttry {\n\t\tawait hook(context);\n\t\treturn true;\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tstderr.write(`[lifecycle-hooks:${context.phase}] Hook failed: ${message}\\n`);\n\t\treturn false;\n\t}\n}\n\nfunction getLegacyExportCandidates(phase: LifecycleHookPhase): string[] {\n\treturn [phase];\n}\n\nconst _legacyModuleCache = new Map<string, Record<string, unknown>>();\n\nasync function runLegacyExportHook(\n\tentryPath: string,\n\tphase: LifecycleHookPhase,\n\t_context: LifecycleHookContext,\n): Promise<LifecycleHookHandler | null> {\n\ttry {\n\t\tlet module: Record<string, unknown> | undefined = _legacyModuleCache.get(entryPath);\n\t\tif (!module) {\n\t\t\tmodule = (await import(pathToFileURL(entryPath).href)) as Record<string, unknown>;\n\t\t\tif (!module) return null;\n\t\t\t_legacyModuleCache.set(entryPath, module);\n\t\t}\n\t\tfor (const exportName of getLegacyExportCandidates(phase)) {\n\t\t\tconst candidate = module[exportName];\n\t\t\tif (typeof candidate === \"function\") {\n\t\t\t\treturn candidate as LifecycleHookHandler;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nexport async function runLifecycleHooks(\n\tloaded: LoadedLifecycleHooks | null,\n\tphase: LifecycleHookPhase,\n): Promise<LifecycleHooksRunResult> {\n\tif (!loaded) {\n\t\treturn {\n\t\t\tphase,\n\t\t\thooksRun: 0,\n\t\t\thookErrors: 0,\n\t\t\tlegacyHooksRun: 0,\n\t\t\tentryPathCount: 0,\n\t\t\tskipped: true,\n\t\t};\n\t}\n\n\tconst context: LifecycleHookContext = {\n\t\tphase,\n\t\tsource: loaded.source,\n\t\tinstalledPath: loaded.installedPath,\n\t\tscope: loaded.scope,\n\t\tcwd: loaded.cwd,\n\t\tinteractive: Boolean(process.stdin.isTTY && process.stdout.isTTY),\n\t\tlog: (message: string) => loaded.stdout.write(`${message}\\n`),\n\t\twarn: (message: string) => loaded.stderr.write(`${message}\\n`),\n\t\terror: (message: string) => loaded.stderr.write(`${message}\\n`),\n\t};\n\n\tlet hooksRun = 0;\n\tlet hookErrors = 0;\n\tlet legacyHooksRun = 0;\n\n\tfor (const entryPath of loaded.entryPaths) {\n\t\tconst hookMap = loaded.hooksByPath.get(entryPath);\n\t\tconst registeredHooks = hookMap?.[phase] ?? [];\n\t\tif (registeredHooks.length > 0) {\n\t\t\tfor (const hook of registeredHooks) {\n\t\t\t\thooksRun += 1;\n\t\t\t\tconst ok = await runHookSafe(hook, context, loaded.stderr);\n\t\t\t\tif (!ok) hookErrors += 1;\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst legacyHook = await runLegacyExportHook(entryPath, phase, context);\n\t\tif (!legacyHook) continue;\n\n\t\tlegacyHooksRun += 1;\n\t\tconst ok = await runHookSafe(legacyHook, context, loaded.stderr);\n\t\tif (!ok) hookErrors += 1;\n\t}\n\n\treturn {\n\t\tphase,\n\t\thooksRun,\n\t\thookErrors,\n\t\tlegacyHooksRun,\n\t\tentryPathCount: loaded.entryPaths.length,\n\t\tskipped: false,\n\t};\n}\n"]}
@@ -1,128 +0,0 @@
1
- /**
2
- * RetryHandler - Automatic retry logic with exponential backoff and credential/provider fallback.
3
- *
4
- * Handles retryable errors (overloaded, rate limit, server errors) by:
5
- * 1. Trying alternate credentials for the same provider
6
- * 2. Falling back to other providers via FallbackResolver
7
- * 3. Exponential backoff with configurable max retries
8
- *
9
- * Context overflow errors are NOT handled here (see compaction).
10
- *
11
- * Extracted from pi-coding-agent 0.57.1 (GSD-authored) and adapted for 0.67.2 Agent API.
12
- */
13
- import type { Agent } from "@gsd/pi-agent-core";
14
- import type { Api, AssistantMessage, Model } from "@gsd/pi-ai";
15
- import type { FallbackResolver } from "./fallback-resolver.js";
16
- import type { ModelRegistry } from "@gsd/agent-types";
17
- import type { SettingsManager } from "@gsd/agent-types";
18
- import type { AgentSessionEvent } from "./agent-session.js";
19
- interface GsdAssistantMessage extends AssistantMessage {
20
- retryAfterMs?: number;
21
- }
22
- /** Minimal ModelRegistry surface needed by RetryHandler. */
23
- interface ModelRegistryWithAuth extends ModelRegistry {
24
- find(provider: string, modelId: string): Model<Api> | undefined;
25
- }
26
- /** Dependencies injected from AgentSession into RetryHandler */
27
- export interface RetryHandlerDeps {
28
- readonly agent: Agent;
29
- readonly settingsManager: SettingsManager;
30
- readonly modelRegistry: ModelRegistryWithAuth;
31
- readonly fallbackResolver: FallbackResolver;
32
- getModel: () => Model<Api> | undefined;
33
- getSessionId: () => string;
34
- emit: (event: AgentSessionEvent) => void;
35
- /** Called when the retry handler switches to a fallback model */
36
- onModelChange: (model: Model<Api>) => void;
37
- /** Optional: check if the claude-code CLI provider is ready (installed + authed).
38
- * Injected from the app layer to preserve package boundary. */
39
- isClaudeCodeReady?: () => boolean;
40
- }
41
- export declare class RetryHandler {
42
- private readonly _deps;
43
- private _retryAbortController;
44
- private _retryAttempt;
45
- private _retryPromise;
46
- private _retryResolve;
47
- private _retryGeneration;
48
- private _continueTimeout;
49
- constructor(_deps: RetryHandlerDeps);
50
- /** Current retry attempt (0 if not retrying) */
51
- get retryAttempt(): number;
52
- /** Whether auto-retry is currently in progress */
53
- get isRetrying(): boolean;
54
- /** Whether auto-retry is enabled */
55
- get autoRetryEnabled(): boolean;
56
- /** Toggle auto-retry setting */
57
- setAutoRetryEnabled(enabled: boolean): void;
58
- /**
59
- * Create a retry promise synchronously for agent_end events.
60
- * Must be called synchronously from the agent event handler before
61
- * any async processing, so that waitForRetry() doesn't miss in-flight retries.
62
- */
63
- createRetryPromiseForAgentEnd(messages: ReadonlyArray<{
64
- role: string;
65
- [key: string]: unknown;
66
- }>): void;
67
- /**
68
- * Handle a successful assistant response by resetting retry state.
69
- * Call this when an assistant message completes without error.
70
- */
71
- handleSuccessfulResponse(): void;
72
- /**
73
- * Check if an error is retryable (overloaded, rate limit, server errors).
74
- * Context overflow errors are NOT retryable (handled by compaction instead).
75
- */
76
- isRetryableError(message: GsdAssistantMessage): boolean;
77
- /**
78
- * Handle retryable errors with exponential backoff.
79
- * When multiple credentials are available, marks the failing credential
80
- * as backed off and retries immediately with the next one.
81
- * @returns true if retry was initiated, false if max retries exceeded or disabled
82
- */
83
- handleRetryableError(message: GsdAssistantMessage): Promise<boolean>;
84
- /** Cancel in-progress retry */
85
- abortRetry(): void;
86
- /**
87
- * Wait for any in-progress retry to complete.
88
- * Returns immediately if no retry is in progress.
89
- */
90
- waitForRetry(): Promise<void>;
91
- /** Resolve the pending retry promise */
92
- resolveRetry(): void;
93
- private _resolveRetry;
94
- private _scheduleContinue;
95
- private _findLastAssistantInMessages;
96
- /**
97
- * Classify an error message into a retry error type for backoff decisions.
98
- */
99
- private _classifyErrorType;
100
- /**
101
- * Attempt a same-model retry by reducing maxTokens when provider reports
102
- * an affordability cap (e.g., "can only afford 329").
103
- */
104
- private _tryAffordableMaxTokensRetry;
105
- /**
106
- * Attempt to downgrade a long-context model (e.g. claude-opus-4-6[1m]) to its
107
- * base model (claude-opus-4-6) when the account lacks the long-context billing
108
- * entitlement. Returns true if the downgrade was initiated.
109
- */
110
- private _tryLongContextDowngrade;
111
- /**
112
- * Detect Anthropic subscription block errors (#3772).
113
- * These are hard policy blocks, not transient rate limits — credential
114
- * rotation will not help. Matches both the explicit "third-party" message
115
- * and the "out of extra usage" variant that subscription users receive.
116
- */
117
- private _isThirdPartyBlock;
118
- /**
119
- * Attempt to switch to the claude-code CLI provider when the current
120
- * Anthropic provider is blocked by the third-party policy (#3772).
121
- * Returns true if the switch was made and retry scheduled.
122
- */
123
- private _tryClaudeCodeFallback;
124
- /** Remove the last assistant error message from agent state */
125
- private _removeLastAssistantError;
126
- }
127
- export {};
128
- //# sourceMappingURL=retry-handler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"retry-handler.d.ts","sourceRoot":"","sources":["../src/retry-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAE/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAU5D,UAAU,mBAAoB,SAAQ,gBAAgB;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;CACtB;AAiBD,4DAA4D;AAC5D,UAAU,qBAAsB,SAAQ,aAAa;IACpD,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;CAChE;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAChC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;IAC9C,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,EAAE,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACvC,YAAY,EAAE,MAAM,MAAM,CAAC;IAC3B,IAAI,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACzC,iEAAiE;IACjE,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC;IAC3C;mEAC+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,OAAO,CAAC;CAClC;AAED,qBAAa,YAAY;IAQZ,OAAO,CAAC,QAAQ,CAAC,KAAK;IAPlC,OAAO,CAAC,qBAAqB,CAA0C;IACvE,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,aAAa,CAAwC;IAC7D,OAAO,CAAC,aAAa,CAAuC;IAC5D,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,gBAAgB,CAAwD;gBAEnD,KAAK,EAAE,gBAAgB;IAEpD,gDAAgD;IAChD,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,kDAAkD;IAClD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,oCAAoC;IACpC,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,gCAAgC;IAChC,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI3C;;;;OAIG;IACH,6BAA6B,CAAC,QAAQ,EAAE,aAAa,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC,GAAG,IAAI;IActG;;;OAGG;IACH,wBAAwB,IAAI,IAAI;IAYhC;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO;IAiBvD;;;;;OAKG;IACG,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAkN1E,+BAA+B;IAC/B,UAAU,IAAI,IAAI;IA2BlB;;;OAGG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAMnC,wCAAwC;IACxC,YAAY,IAAI,IAAI;IAQpB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,4BAA4B;IAYpC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IA6CpC;;;;OAIG;IACH,OAAO,CAAC,wBAAwB;IAqChC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAyC9B,+DAA+D;IAC/D,OAAO,CAAC,yBAAyB;CAMjC"}