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 +0,0 @@
1
- {"version":3,"file":"slash-command-handlers.js","sourceRoot":"","sources":["../../../src/modes/interactive/slash-command-handlers.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Slash command dispatch and handler implementations extracted from InteractiveMode.\n *\n * The `dispatchSlashCommand` function contains the dispatch logic (routing text\n * to handlers), and individual handler functions implement each command.\n *\n * Handlers that are also invoked from keybindings or other subsystems remain on\n * InteractiveMode and are called through the `SlashCommandContext` interface.\n */\n\nimport * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\nimport type { ThinkingLevel } from \"@gsd/pi-agent-core\";\nimport type {\n\tEditorComponent,\n\tMarkdownTheme,\n} from \"@gsd/pi-tui\";\nimport {\n\ttype Component,\n\tContainer,\n\tMarkdown,\n\tSpacer,\n\tText,\n} from \"@gsd/pi-tui\";\nimport { spawn, spawnSync } from \"child_process\";\nimport { getShareViewerUrl, getChangelogPath, parseChangelog } from \"../../pi-coding-agent-compat.js\";\nimport type { AgentSession } from \"@gsd/agent-core\";\nimport type { AppAction } from \"@gsd/agent-types\";\nimport { KeybindingsManager } from \"@gsd/agent-core\";\nimport type { SessionManager } from \"@gsd/agent-types\";\nimport type { SettingsManager } from \"@gsd/agent-types\";\nimport { copyToClipboard } from \"@gsd/pi-coding-agent\";\nimport { ArminComponent } from \"./components/armin.js\";\nimport { BorderedLoader } from \"./components/bordered-loader.js\";\nimport { DynamicBorder } from \"./components/dynamic-border.js\";\nimport { appKey, editorKey, formatKeyForDisplay } from \"./components/keybinding-hints.js\";\nimport { SelectSubmenu, THINKING_DESCRIPTIONS } from \"./components/settings-selector.js\";\nimport { theme } from \"../../theme.js\";\n\nimport type { TUI } from \"@gsd/pi-tui\";\nimport type { Keybinding } from \"../../pi-tui-compat.js\";\n\n// ---------------------------------------------------------------------------\n// Context interface — the subset of InteractiveMode needed by slash commands\n// ---------------------------------------------------------------------------\n\n/**\n * Provides slash command handlers with access to the parts of InteractiveMode\n * they need without coupling them to the entire class.\n */\nexport interface SlashCommandContext {\n\t// Core objects\n\treadonly session: AgentSession;\n\treadonly ui: TUI;\n\treadonly keybindings: KeybindingsManager;\n\n\t// Containers\n\treadonly chatContainer: Container;\n\treadonly statusContainer: Container;\n\treadonly editorContainer: Container;\n\treadonly headerContainer: Container;\n\treadonly pendingMessagesContainer: Container;\n\n\t// Editor\n\treadonly editor: EditorComponent;\n\treadonly defaultEditor: EditorComponent & {\n\t\tonEscape?: () => void;\n\t};\n\n\t// Accessors\n\treadonly sessionManager: SessionManager;\n\treadonly settingsManager: SettingsManager;\n\n\t// Footer\n\tinvalidateFooter(): void;\n\n\t// UI helpers\n\tshowStatus(message: string): void;\n\tshowError(message: string): void;\n\tshowWarning(message: string): void;\n\tshowSelector(create: (done: () => void) => { component: Component; focus: Component }): void;\n\tupdateEditorBorderColor(): void;\n\tgetMarkdownThemeWithSettings(): MarkdownTheme;\n\trequestRender(): void;\n\n\tupdateTerminalTitle(): void;\n\n\t// Methods that stay on InteractiveMode (called from both dispatch and keybindings/events)\n\tshowSettingsSelector(): void;\n\tshowModelsSelector(): Promise<void>;\n\thandleModelCommand(searchTerm?: string): Promise<void>;\n\tshowUserMessageSelector(): void;\n\tshowTreeSelector(): void;\n\tshowProviderManager(): void;\n\tshowOAuthSelector(mode: \"login\" | \"logout\"): Promise<void>;\n\tshowSessionSelector(): void;\n\thandleClearCommand(): Promise<void>;\n\thandleReloadCommand(): Promise<void>;\n\thandleDebugCommand(): void;\n\tshutdown(): Promise<void>;\n\n\t// For compaction\n\texecuteCompaction(customInstructions?: string, isAuto?: boolean): Promise<unknown>;\n\n\t// Bash execution\n\thandleBashCommand(command: string, options?: { excludeFromContext?: boolean; displayCommand?: string; loginShell?: boolean }): Promise<void>;\n}\n\n// ---------------------------------------------------------------------------\n// Dispatch\n// ---------------------------------------------------------------------------\n\n/**\n * Routes a slash command string to the appropriate handler.\n *\n * @returns `true` if the text was handled as a slash command (caller should\n * not process it further), `false` otherwise.\n */\nexport async function dispatchSlashCommand(\n\ttext: string,\n\tctx: SlashCommandContext,\n): Promise<boolean> {\n\tif (text === \"/settings\") {\n\t\tctx.showSettingsSelector();\n\t\treturn true;\n\t}\n\tif (text === \"/scoped-models\") {\n\t\tawait ctx.showModelsSelector();\n\t\treturn true;\n\t}\n\tif (text === \"/model\" || text.startsWith(\"/model \")) {\n\t\tconst searchTerm = text.startsWith(\"/model \") ? text.slice(7).trim() : undefined;\n\t\tawait ctx.handleModelCommand(searchTerm);\n\t\treturn true;\n\t}\n\tif (text === \"/export\" || text.startsWith(\"/export \")) {\n\t\tawait handleExportCommand(text, ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/share\") {\n\t\tawait handleShareCommand(ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/copy\") {\n\t\thandleCopyCommand(ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/name\" || text.startsWith(\"/name \")) {\n\t\thandleNameCommand(text, ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/session\") {\n\t\thandleSessionCommand(ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/changelog\") {\n\t\thandleChangelogCommand(ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/hotkeys\") {\n\t\thandleHotkeysCommand(ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/fork\") {\n\t\tctx.showUserMessageSelector();\n\t\treturn true;\n\t}\n\tif (text === \"/tree\") {\n\t\tctx.showTreeSelector();\n\t\treturn true;\n\t}\n\tif (text === \"/provider\") {\n\t\tctx.showProviderManager();\n\t\treturn true;\n\t}\n\tif (text === \"/login\") {\n\t\tawait ctx.showOAuthSelector(\"login\");\n\t\treturn true;\n\t}\n\tif (text === \"/logout\") {\n\t\tawait ctx.showOAuthSelector(\"logout\");\n\t\treturn true;\n\t}\n\tif (text === \"/new\") {\n\t\tawait ctx.handleClearCommand();\n\t\treturn true;\n\t}\n\tif (text === \"/compact\" || text.startsWith(\"/compact \")) {\n\t\tconst customInstructions = text.startsWith(\"/compact \") ? text.slice(9).trim() : undefined;\n\t\tawait handleCompactCommand(customInstructions, ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/reload\") {\n\t\tawait ctx.handleReloadCommand();\n\t\treturn true;\n\t}\n\tif (text === \"/thinking\" || text.startsWith(\"/thinking \")) {\n\t\tconst arg = text.startsWith(\"/thinking \") ? text.slice(10).trim() : undefined;\n\t\thandleThinkingCommand(arg, ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/edit-mode\" || text.startsWith(\"/edit-mode \")) {\n\t\tconst arg = text.startsWith(\"/edit-mode \") ? text.slice(11).trim() : undefined;\n\t\thandleEditModeCommand(arg, ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/debug\") {\n\t\tctx.handleDebugCommand();\n\t\treturn true;\n\t}\n\tif (text === \"/arminsayshi\") {\n\t\thandleArminSaysHi(ctx);\n\t\treturn true;\n\t}\n\tif (text === \"/resume\") {\n\t\tctx.showSessionSelector();\n\t\treturn true;\n\t}\n\tif (text === \"/quit\") {\n\t\tawait ctx.shutdown();\n\t\treturn true;\n\t}\n\tif (text === \"/terminal\" || text.startsWith(\"/terminal \")) {\n\t\tconst command = text.startsWith(\"/terminal \") ? text.slice(10).trim() : \"\";\n\t\tif (!command) {\n\t\t\tctx.showWarning(\"Usage: /terminal <command> (e.g. /terminal ping -c3 1.1.1.1)\");\n\t\t\treturn true;\n\t\t}\n\t\t// Run in the user's login shell ($SHELL -l -c) so PATH additions\n\t\t// and env vars from shell profiles (.zprofile/.profile) are available.\n\t\t// Note: shell aliases are not loaded (requires -i which has side effects).\n\t\tawait ctx.handleBashCommand(command, { loginShell: true });\n\t\treturn true;\n\t}\n\n\treturn false;\n}\n\n// ---------------------------------------------------------------------------\n// Individual command handlers\n// ---------------------------------------------------------------------------\n\nasync function handleExportCommand(text: string, ctx: SlashCommandContext): Promise<void> {\n\tconst parts = text.split(/\\s+/);\n\tconst outputPath = parts.length > 1 ? parts[1] : undefined;\n\n\ttry {\n\t\tconst filePath = await ctx.session.exportToHtml(outputPath);\n\t\tctx.showStatus(`Session exported to: ${filePath}`);\n\t} catch (error: unknown) {\n\t\tctx.showError(`Failed to export session: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n\t}\n}\n\nasync function handleShareCommand(ctx: SlashCommandContext): Promise<void> {\n\t// Check if gh is available and logged in\n\ttry {\n\t\tconst authResult = spawnSync(\"gh\", [\"auth\", \"status\"], { encoding: \"utf-8\" });\n\t\tif (authResult.status !== 0) {\n\t\t\tctx.showError(\"GitHub CLI is not logged in. Run 'gh auth login' first.\");\n\t\t\treturn;\n\t\t}\n\t} catch {\n\t\tctx.showError(\"GitHub CLI (gh) is not installed. Install it from https://cli.github.com/\");\n\t\treturn;\n\t}\n\n\t// Export to a temp file\n\tconst tmpFile = path.join(os.tmpdir(), \"session.html\");\n\ttry {\n\t\tawait ctx.session.exportToHtml(tmpFile);\n\t} catch (error: unknown) {\n\t\tctx.showError(`Failed to export session: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n\t\treturn;\n\t}\n\n\t// Show cancellable loader, replacing the editor\n\tconst loader = new BorderedLoader(ctx.ui, theme, \"Creating gist...\");\n\tctx.editorContainer.clear();\n\tctx.editorContainer.addChild(loader);\n\tctx.ui.setFocus(loader);\n\tctx.requestRender();\n\n\tconst restoreEditor = (): void => {\n\t\tloader.dispose();\n\t\tctx.editorContainer.clear();\n\t\tctx.editorContainer.addChild(ctx.editor);\n\t\tctx.ui.setFocus(ctx.editor);\n\t\ttry {\n\t\t\tfs.unlinkSync(tmpFile);\n\t\t} catch {\n\t\t\t// Ignore cleanup errors\n\t\t}\n\t};\n\n\t// Create a secret gist asynchronously\n\tlet proc: ReturnType<typeof spawn> | null = null;\n\n\tloader.onAbort = () => {\n\t\tproc?.kill();\n\t\trestoreEditor();\n\t\tctx.showStatus(\"Share cancelled\");\n\t};\n\n\t\ttry {\n\t\t\tconst result = await new Promise<{ stdout: string; stderr: string; code: number | null }>((resolve) => {\n\t\t\t\tproc = spawn(\"gh\", [\"gist\", \"create\", \"--public=false\", tmpFile], {\n\t\t\t\t\tshell: process.platform === \"win32\",\n\t\t\t\t});\n\t\t\t\tlet stdout = \"\";\n\t\t\t\tlet stderr = \"\";\n\t\t\tproc.stdout?.on(\"data\", (data) => {\n\t\t\t\tstdout += data.toString();\n\t\t\t});\n\t\t\tproc.stderr?.on(\"data\", (data) => {\n\t\t\t\tstderr += data.toString();\n\t\t\t});\n\t\t\tproc.on(\"close\", (code) => resolve({ stdout, stderr, code }));\n\t\t});\n\n\t\tif (loader.signal.aborted) return;\n\n\t\trestoreEditor();\n\n\t\tif (result.code !== 0) {\n\t\t\tconst errorMsg = result.stderr?.trim() || \"Unknown error\";\n\t\t\tctx.showError(`Failed to create gist: ${errorMsg}`);\n\t\t\treturn;\n\t\t}\n\n\t\t// Extract gist ID from the URL returned by gh\n\t\t// gh returns something like: https://gist.github.com/username/GIST_ID\n\t\tconst gistUrl = result.stdout?.trim();\n\t\tconst gistId = gistUrl?.split(\"/\").pop();\n\t\tif (!gistId) {\n\t\t\tctx.showError(\"Failed to parse gist ID from gh output\");\n\t\t\treturn;\n\t\t}\n\n\t\t// Create the preview URL\n\t\tconst previewUrl = getShareViewerUrl(gistId);\n\t\tctx.showStatus(`Share URL: ${previewUrl}\\nGist: ${gistUrl}`);\n\t} catch (error: unknown) {\n\t\tif (!loader.signal.aborted) {\n\t\t\trestoreEditor();\n\t\t\tctx.showError(`Failed to create gist: ${error instanceof Error ? error.message : \"Unknown error\"}`);\n\t\t}\n\t}\n}\n\nfunction handleCopyCommand(ctx: SlashCommandContext): void {\n\tconst text = ctx.session.getLastAssistantText();\n\tif (!text) {\n\t\tctx.showError(\"No agent messages to copy yet.\");\n\t\treturn;\n\t}\n\n\ttry {\n\t\tcopyToClipboard(text);\n\t\tctx.showStatus(\"Copied last agent message to clipboard\");\n\t} catch (error) {\n\t\tctx.showError(error instanceof Error ? error.message : String(error));\n\t}\n}\n\nfunction handleNameCommand(text: string, ctx: SlashCommandContext): void {\n\tconst name = text.replace(/^\\/name\\s*/, \"\").trim();\n\tif (!name) {\n\t\tconst currentName = ctx.sessionManager.getSessionName();\n\t\tif (currentName) {\n\t\t\tctx.chatContainer.addChild(new Spacer(1));\n\t\t\tctx.chatContainer.addChild(new Text(theme.fg(\"dim\", `Session name: ${currentName}`), 1, 0));\n\t\t} else {\n\t\t\tctx.showWarning(\"Usage: /name <name>\");\n\t\t}\n\t\tctx.requestRender();\n\t\treturn;\n\t}\n\n\tctx.sessionManager.appendSessionInfo(name);\n\tctx.updateTerminalTitle();\n\tctx.chatContainer.addChild(new Spacer(1));\n\tctx.chatContainer.addChild(new Text(theme.fg(\"dim\", `Session name set: ${name}`), 1, 0));\n\tctx.requestRender();\n}\n\nfunction handleSessionCommand(ctx: SlashCommandContext): void {\n\tconst stats = ctx.session.getSessionStats();\n\tconst sessionName = ctx.sessionManager.getSessionName();\n\n\tlet info = `${theme.bold(\"Session Info\")}\\n\\n`;\n\tif (sessionName) {\n\t\tinfo += `${theme.fg(\"dim\", \"Name:\")} ${sessionName}\\n`;\n\t}\n\tinfo += `${theme.fg(\"dim\", \"File:\")} ${stats.sessionFile ?? \"In-memory\"}\\n`;\n\tinfo += `${theme.fg(\"dim\", \"ID:\")} ${stats.sessionId}\\n\\n`;\n\tinfo += `${theme.bold(\"Messages\")}\\n`;\n\tinfo += `${theme.fg(\"dim\", \"User:\")} ${stats.userMessages}\\n`;\n\tinfo += `${theme.fg(\"dim\", \"Assistant:\")} ${stats.assistantMessages}\\n`;\n\tinfo += `${theme.fg(\"dim\", \"Tool Calls:\")} ${stats.toolCalls}\\n`;\n\tinfo += `${theme.fg(\"dim\", \"Tool Results:\")} ${stats.toolResults}\\n`;\n\tinfo += `${theme.fg(\"dim\", \"Total:\")} ${stats.totalMessages}\\n\\n`;\n\tinfo += `${theme.bold(\"Tokens\")}\\n`;\n\tinfo += `${theme.fg(\"dim\", \"Input:\")} ${stats.tokens.input.toLocaleString()}\\n`;\n\tinfo += `${theme.fg(\"dim\", \"Output:\")} ${stats.tokens.output.toLocaleString()}\\n`;\n\tif (stats.tokens.cacheRead > 0) {\n\t\tinfo += `${theme.fg(\"dim\", \"Cache Read:\")} ${stats.tokens.cacheRead.toLocaleString()}\\n`;\n\t}\n\tif (stats.tokens.cacheWrite > 0) {\n\t\tinfo += `${theme.fg(\"dim\", \"Cache Write:\")} ${stats.tokens.cacheWrite.toLocaleString()}\\n`;\n\t}\n\tinfo += `${theme.fg(\"dim\", \"Total:\")} ${stats.tokens.total.toLocaleString()}\\n`;\n\n\tif (stats.cost > 0) {\n\t\tinfo += `\\n${theme.bold(\"Cost\")}\\n`;\n\t\tinfo += `${theme.fg(\"dim\", \"Total:\")} ${stats.cost.toFixed(4)}`;\n\t}\n\n\tctx.chatContainer.addChild(new Spacer(1));\n\tctx.chatContainer.addChild(new Text(info, 1, 0));\n\tctx.requestRender();\n}\n\nfunction handleChangelogCommand(ctx: SlashCommandContext): void {\n\tconst changelogPath = getChangelogPath();\n\tconst allEntries = parseChangelog(changelogPath);\n\n\tconst changelogMarkdown =\n\t\tallEntries.length > 0\n\t\t\t? allEntries\n\t\t\t\t\t.reverse()\n\t\t\t\t\t.map((e) => e.content)\n\t\t\t\t\t.join(\"\\n\\n\")\n\t\t\t: \"No changelog entries found.\";\n\n\tctx.chatContainer.addChild(new Spacer(1));\n\tctx.chatContainer.addChild(new DynamicBorder());\n\tctx.chatContainer.addChild(new Text(theme.bold(theme.fg(\"accent\", \"What's New\")), 1, 0));\n\tctx.chatContainer.addChild(new Spacer(1));\n\tctx.chatContainer.addChild(new Markdown(changelogMarkdown, 1, 1, ctx.getMarkdownThemeWithSettings()));\n\tctx.chatContainer.addChild(new DynamicBorder());\n\tctx.requestRender();\n}\n\n// ---------------------------------------------------------------------------\n// /hotkeys helpers\n// ---------------------------------------------------------------------------\n\nexport function capitalizeKey(key: string): string {\n\treturn key\n\t\t.split(\"/\")\n\t\t.map((k) =>\n\t\t\tk\n\t\t\t\t.split(\"+\")\n\t\t\t\t.map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n\t\t\t\t.join(\"+\"),\n\t\t)\n\t\t.join(\"/\");\n}\n\nexport function getAppKeyDisplay(keybindings: KeybindingsManager, action: AppAction): string {\n\treturn capitalizeKey(appKey(keybindings, action));\n}\n\nfunction getEditorKeyDisplay(action: Keybinding): string {\n\treturn capitalizeKey(editorKey(action));\n}\n\nfunction handleHotkeysCommand(ctx: SlashCommandContext): void {\n\t// Navigation keybindings\n\tconst cursorWordLeft = getEditorKeyDisplay(\"cursorWordLeft\");\n\tconst cursorWordRight = getEditorKeyDisplay(\"cursorWordRight\");\n\tconst cursorLineStart = getEditorKeyDisplay(\"cursorLineStart\");\n\tconst cursorLineEnd = getEditorKeyDisplay(\"cursorLineEnd\");\n\tconst jumpForward = getEditorKeyDisplay(\"jumpForward\");\n\tconst jumpBackward = getEditorKeyDisplay(\"jumpBackward\");\n\tconst pageUp = getEditorKeyDisplay(\"pageUp\");\n\tconst pageDown = getEditorKeyDisplay(\"pageDown\");\n\n\t// Editing keybindings\n\tconst submit = getEditorKeyDisplay(\"submit\");\n\tconst newLine = getEditorKeyDisplay(\"newLine\");\n\tconst deleteWordBackward = getEditorKeyDisplay(\"deleteWordBackward\");\n\tconst deleteWordForward = getEditorKeyDisplay(\"deleteWordForward\");\n\tconst deleteToLineStart = getEditorKeyDisplay(\"deleteToLineStart\");\n\tconst deleteToLineEnd = getEditorKeyDisplay(\"deleteToLineEnd\");\n\tconst yank = getEditorKeyDisplay(\"yank\");\n\tconst yankPop = getEditorKeyDisplay(\"yankPop\");\n\tconst undo = getEditorKeyDisplay(\"undo\");\n\tconst tab = getEditorKeyDisplay(\"tab\");\n\n\t// App keybindings\n\tconst interrupt = getAppKeyDisplay(ctx.keybindings, \"interrupt\");\n\tconst clear = getAppKeyDisplay(ctx.keybindings, \"clear\");\n\tconst exit = getAppKeyDisplay(ctx.keybindings, \"exit\");\n\tconst suspend = getAppKeyDisplay(ctx.keybindings, \"suspend\");\n\tconst cycleThinkingLevel = getAppKeyDisplay(ctx.keybindings, \"cycleThinkingLevel\");\n\tconst cycleModelForward = getAppKeyDisplay(ctx.keybindings, \"cycleModelForward\");\n\tconst cycleModelBackward = getAppKeyDisplay(ctx.keybindings, \"cycleModelBackward\");\n\tconst selectModel = getAppKeyDisplay(ctx.keybindings, \"selectModel\");\n\tconst expandTools = getAppKeyDisplay(ctx.keybindings, \"expandTools\");\n\tconst toggleThinking = getAppKeyDisplay(ctx.keybindings, \"toggleThinking\");\n\tconst externalEditor = getAppKeyDisplay(ctx.keybindings, \"externalEditor\");\n\tconst followUp = getAppKeyDisplay(ctx.keybindings, \"followUp\");\n\tconst dequeue = getAppKeyDisplay(ctx.keybindings, \"dequeue\");\n\tconst pasteImage = getAppKeyDisplay(ctx.keybindings, \"pasteImage\");\n\n\tlet hotkeys = `\n**Navigation**\n| Key | Action |\n|-----|--------|\n| \\`Arrow keys\\` | Move cursor / browse history (Up when empty) |\n| \\`${cursorWordLeft}\\` / \\`${cursorWordRight}\\` | Move by word |\n| \\`${cursorLineStart}\\` | Start of line |\n| \\`${cursorLineEnd}\\` | End of line |\n| \\`${jumpForward}\\` | Jump forward to character |\n| \\`${jumpBackward}\\` | Jump backward to character |\n| \\`${pageUp}\\` / \\`${pageDown}\\` | Scroll by page |\n\n**Editing**\n| Key | Action |\n|-----|--------|\n| \\`${submit}\\` | Send message |\n| \\`${newLine}\\` | New line${process.platform === \"win32\" ? \" (Ctrl+Enter on Windows Terminal)\" : \"\"} |\n| \\`${deleteWordBackward}\\` | Delete word backwards |\n| \\`${deleteWordForward}\\` | Delete word forwards |\n| \\`${deleteToLineStart}\\` | Delete to start of line |\n| \\`${deleteToLineEnd}\\` | Delete to end of line |\n| \\`${yank}\\` | Paste the most-recently-deleted text |\n| \\`${yankPop}\\` | Cycle through the deleted text after pasting |\n| \\`${undo}\\` | Undo |\n\n**Other**\n| Key | Action |\n|-----|--------|\n| \\`${tab}\\` | Path completion / accept autocomplete |\n| \\`${interrupt}\\` | Cancel autocomplete / abort streaming |\n| \\`${clear}\\` | Clear editor (first) / exit (second) |\n| \\`${exit}\\` | Exit (when editor is empty) |\n| \\`${suspend}\\` | Suspend to background |\n| \\`${cycleThinkingLevel}\\` | Cycle thinking level |\n| \\`${cycleModelForward}\\` / \\`${cycleModelBackward}\\` | Cycle models |\n| \\`${selectModel}\\` | Open model selector |\n| \\`${expandTools}\\` | Toggle tool output expansion |\n| \\`${toggleThinking}\\` | Toggle thinking block visibility |\n| \\`${externalEditor}\\` | Edit message in external editor |\n| \\`${followUp}\\` | Queue follow-up message |\n| \\`${dequeue}\\` | Restore queued messages |\n| \\`${pasteImage}\\` | Paste image from clipboard |\n| \\`/\\` | Slash commands |\n| \\`!\\` | Run bash command |\n| \\`!!\\` | Run bash command (excluded from context) |\n`;\n\n\t// Add extension-registered shortcuts\n\tconst extensionRunner = ctx.session.extensionRunner;\n\tif (extensionRunner) {\n\t\tconst shortcuts = extensionRunner.getShortcuts(ctx.keybindings.getEffectiveConfig());\n\t\tif (shortcuts.size > 0) {\n\t\t\thotkeys += `\n**Extensions**\n| Key | Action |\n|-----|--------|\n`;\n\t\t\tfor (const [key, shortcut] of shortcuts) {\n\t\t\t\tconst description = shortcut.description ?? shortcut.extensionPath;\n\t\t\t\tconst keyDisplay = formatKeyForDisplay(key).replace(/\\b\\w/g, (c) => c.toUpperCase());\n\t\t\t\thotkeys += `| \\`${keyDisplay}\\` | ${description} |\\n`;\n\t\t\t}\n\t\t}\n\t}\n\n\tctx.chatContainer.addChild(new Spacer(1));\n\tctx.chatContainer.addChild(new DynamicBorder());\n\tctx.chatContainer.addChild(new Text(theme.bold(theme.fg(\"accent\", \"Keyboard Shortcuts\")), 1, 0));\n\tctx.chatContainer.addChild(new Spacer(1));\n\tctx.chatContainer.addChild(new Markdown(hotkeys.trim(), 1, 1, ctx.getMarkdownThemeWithSettings()));\n\tctx.chatContainer.addChild(new DynamicBorder());\n\tctx.requestRender();\n}\n\nasync function handleCompactCommand(customInstructions: string | undefined, ctx: SlashCommandContext): Promise<void> {\n\tconst entries = ctx.sessionManager.getEntries();\n\tconst messageCount = entries.filter((e) => e.type === \"message\").length;\n\n\tif (messageCount < 2) {\n\t\tctx.showWarning(\"Nothing to compact (no messages yet)\");\n\t\treturn;\n\t}\n\n\tawait ctx.executeCompaction(customInstructions, false);\n}\n\nfunction handleThinkingCommand(arg: string | undefined, ctx: SlashCommandContext): void {\n\tif (!ctx.session.supportsThinking()) {\n\t\tctx.showStatus(\"Current model does not support thinking\");\n\t\treturn;\n\t}\n\n\tconst availableLevels = ctx.session.getAvailableThinkingLevels();\n\n\tif (arg) {\n\t\tconst level = arg.toLowerCase();\n\t\tif (!availableLevels.includes(level as ThinkingLevel)) {\n\t\t\tctx.showStatus(`Invalid thinking level \"${arg}\". Available: ${availableLevels.join(\", \")}`);\n\t\t\treturn;\n\t\t}\n\t\tctx.session.setThinkingLevel(level as ThinkingLevel);\n\t\tctx.invalidateFooter();\n\t\tctx.updateEditorBorderColor();\n\t\tctx.showStatus(`Thinking level: ${level}`);\n\t\treturn;\n\t}\n\n\tshowThinkingSelector(ctx, availableLevels);\n}\n\nfunction showThinkingSelector(ctx: SlashCommandContext, availableLevels: readonly ThinkingLevel[]): void {\n\tctx.showSelector((done) => {\n\t\tconst selector = new SelectSubmenu(\n\t\t\t\"Thinking Level\",\n\t\t\t\"Select reasoning depth for thinking-capable models\",\n\t\t\tavailableLevels.map((level) => ({\n\t\t\t\tvalue: level,\n\t\t\t\tlabel: level,\n\t\t\t\tdescription: THINKING_DESCRIPTIONS[level],\n\t\t\t})),\n\t\t\tctx.session.thinkingLevel,\n\t\t\t(value) => {\n\t\t\t\tctx.session.setThinkingLevel(value as ThinkingLevel);\n\t\t\t\tctx.invalidateFooter();\n\t\t\t\tctx.updateEditorBorderColor();\n\t\t\t\tdone();\n\t\t\t\tctx.showStatus(`Thinking level: ${value}`);\n\t\t\t},\n\t\t\t() => {\n\t\t\t\tdone();\n\t\t\t},\n\t\t);\n\t\treturn { component: selector, focus: selector };\n\t});\n}\n\nfunction handleEditModeCommand(arg: string | undefined, ctx: SlashCommandContext): void {\n\tconst modes = [\"standard\", \"hashline\"] as const;\n\n\tif (arg) {\n\t\tconst mode = arg.toLowerCase();\n\t\tif (!modes.includes(mode as typeof modes[number])) {\n\t\t\tctx.showStatus(`Invalid edit mode \"${arg}\". Available: standard, hashline`);\n\t\t\treturn;\n\t\t}\n\t\tctx.session.setEditMode(mode as \"standard\" | \"hashline\");\n\t\tctx.showStatus(`Edit mode: ${mode}${mode === \"hashline\" ? \" (LINE#ID anchored edits)\" : \" (text-match edits)\"}`);\n\t\treturn;\n\t}\n\n\t// Toggle\n\tconst current = ctx.session.editMode;\n\tconst next = current === \"standard\" ? \"hashline\" : \"standard\";\n\tctx.session.setEditMode(next);\n\tctx.showStatus(`Edit mode: ${next}${next === \"hashline\" ? \" (LINE#ID anchored edits)\" : \" (text-match edits)\"}`);\n}\n\nfunction handleArminSaysHi(ctx: SlashCommandContext): void {\n\tctx.chatContainer.addChild(new Spacer(1));\n\tctx.chatContainer.addChild(new ArminComponent(ctx.ui));\n\tctx.requestRender();\n}\n"]}
@@ -1,6 +0,0 @@
1
- /**
2
- * Convert absolute path to tilde notation if it's in home directory.
3
- * Returns empty string for non-string or empty inputs.
4
- */
5
- export declare function shortenPath(path: unknown): string;
6
- //# sourceMappingURL=shorten-path.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shorten-path.d.ts","sourceRoot":"","sources":["../../../../src/modes/interactive/utils/shorten-path.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAOjD"}
@@ -1,15 +0,0 @@
1
- import * as os from "node:os";
2
- /**
3
- * Convert absolute path to tilde notation if it's in home directory.
4
- * Returns empty string for non-string or empty inputs.
5
- */
6
- export function shortenPath(path) {
7
- if (typeof path !== "string" || !path)
8
- return "";
9
- const home = os.homedir();
10
- if (path.startsWith(home)) {
11
- return `~${path.slice(home.length)}`;
12
- }
13
- return path;
14
- }
15
- //# sourceMappingURL=shorten-path.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shorten-path.js","sourceRoot":"","sources":["../../../../src/modes/interactive/utils/shorten-path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAE9B;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACxC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC","sourcesContent":["import * as os from \"node:os\";\n\n/**\n * Convert absolute path to tilde notation if it's in home directory.\n * Returns empty string for non-string or empty inputs.\n */\nexport function shortenPath(path: unknown): string {\n\tif (typeof path !== \"string\" || !path) return \"\";\n\tconst home = os.homedir();\n\tif (path.startsWith(home)) {\n\t\treturn `~${path.slice(home.length)}`;\n\t}\n\treturn path;\n}\n"]}
@@ -1,28 +0,0 @@
1
- /**
2
- * Print mode (single-shot): Send prompts, output result, exit.
3
- *
4
- * Used for:
5
- * - `pi -p "prompt"` - text output
6
- * - `pi --mode json "prompt"` - JSON event stream
7
- */
8
- import type { ImageContent } from "@gsd/pi-ai";
9
- import type { AgentSession } from "@gsd/agent-core";
10
- /**
11
- * Options for print mode.
12
- */
13
- export interface PrintModeOptions {
14
- /** Output mode: "text" for final response only, "json" for all events */
15
- mode: "text" | "json";
16
- /** Array of additional prompts to send after initialMessage */
17
- messages?: string[];
18
- /** First message to send (may contain @file content) */
19
- initialMessage?: string;
20
- /** Images to attach to the initial message */
21
- initialImages?: ImageContent[];
22
- }
23
- /**
24
- * Run in print (single-shot) mode.
25
- * Sends prompts to the agent and outputs the result.
26
- */
27
- export declare function runPrintMode(session: AgentSession, options: PrintModeOptions): Promise<void>;
28
- //# sourceMappingURL=print-mode.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"print-mode.d.ts","sourceRoot":"","sources":["../../src/modes/print-mode.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGpD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,yEAAyE;IACzE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ElG"}
@@ -1,84 +0,0 @@
1
- /**
2
- * Print mode (single-shot): Send prompts, output result, exit.
3
- *
4
- * Used for:
5
- * - `pi -p "prompt"` - text output
6
- * - `pi --mode json "prompt"` - JSON event stream
7
- */
8
- import { createDefaultCommandContextActions } from "./shared/command-context-actions.js";
9
- /**
10
- * Run in print (single-shot) mode.
11
- * Sends prompts to the agent and outputs the result.
12
- */
13
- export async function runPrintMode(session, options) {
14
- const { mode, messages = [], initialMessage, initialImages } = options;
15
- if (mode === "json") {
16
- const header = session.sessionManager.getHeader();
17
- if (header) {
18
- console.log(JSON.stringify(header));
19
- }
20
- }
21
- // Set up extensions for print mode (no UI)
22
- await session.bindExtensions({
23
- commandContextActions: createDefaultCommandContextActions(session),
24
- onError: (err) => {
25
- console.error(`Extension error (${err.extensionPath}): ${err.error}`);
26
- },
27
- });
28
- // Always subscribe to enable session persistence via _handleAgentEvent
29
- const unsubscribe = session.subscribe((event) => {
30
- // In JSON mode, output all events
31
- if (mode === "json") {
32
- console.log(JSON.stringify(event));
33
- }
34
- });
35
- let exitCode = 0;
36
- try {
37
- // Send initial message with attachments
38
- if (initialMessage) {
39
- await session.prompt(initialMessage, { images: initialImages });
40
- }
41
- // Send remaining messages
42
- for (const message of messages) {
43
- await session.prompt(message);
44
- }
45
- // In text mode, output final response
46
- if (mode === "text") {
47
- const state = session.state;
48
- const lastMessage = state.messages[state.messages.length - 1];
49
- if (lastMessage?.role === "assistant") {
50
- const assistantMsg = lastMessage;
51
- // Check for error/aborted
52
- if (assistantMsg.stopReason === "error" || assistantMsg.stopReason === "aborted") {
53
- console.error(assistantMsg.errorMessage || `Request ${assistantMsg.stopReason}`);
54
- exitCode = 1;
55
- }
56
- else {
57
- // Output text content
58
- for (const content of assistantMsg.content) {
59
- if (content.type === "text") {
60
- console.log(content.text);
61
- }
62
- }
63
- }
64
- }
65
- }
66
- // Ensure stdout is fully flushed before returning
67
- // This prevents race conditions where the process exits before all output is written
68
- await new Promise((resolve, reject) => {
69
- process.stdout.write("", (err) => {
70
- if (err)
71
- reject(err);
72
- else
73
- resolve();
74
- });
75
- });
76
- }
77
- finally {
78
- unsubscribe();
79
- }
80
- if (exitCode !== 0) {
81
- process.exit(exitCode);
82
- }
83
- }
84
- //# sourceMappingURL=print-mode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"print-mode.js","sourceRoot":"","sources":["../../src/modes/print-mode.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Print mode (single-shot): Send prompts, output result, exit.\n *\n * Used for:\n * - `pi -p \"prompt\"` - text output\n * - `pi --mode json \"prompt\"` - JSON event stream\n */\n\nimport type { AssistantMessage, ImageContent } from \"@gsd/pi-ai\";\nimport type { AgentSession } from \"@gsd/agent-core\";\nimport { createDefaultCommandContextActions } from \"./shared/command-context-actions.js\";\n\n/**\n * Options for print mode.\n */\nexport interface PrintModeOptions {\n\t/** Output mode: \"text\" for final response only, \"json\" for all events */\n\tmode: \"text\" | \"json\";\n\t/** Array of additional prompts to send after initialMessage */\n\tmessages?: string[];\n\t/** First message to send (may contain @file content) */\n\tinitialMessage?: string;\n\t/** Images to attach to the initial message */\n\tinitialImages?: ImageContent[];\n}\n\n/**\n * Run in print (single-shot) mode.\n * Sends prompts to the agent and outputs the result.\n */\nexport async function runPrintMode(session: AgentSession, options: PrintModeOptions): Promise<void> {\n\tconst { mode, messages = [], initialMessage, initialImages } = options;\n\tif (mode === \"json\") {\n\t\tconst header = session.sessionManager.getHeader();\n\t\tif (header) {\n\t\t\tconsole.log(JSON.stringify(header));\n\t\t}\n\t}\n\t// Set up extensions for print mode (no UI)\n\tawait session.bindExtensions({\n\t\tcommandContextActions: createDefaultCommandContextActions(session),\n\t\tonError: (err) => {\n\t\t\tconsole.error(`Extension error (${err.extensionPath}): ${err.error}`);\n\t\t},\n\t});\n\n\t// Always subscribe to enable session persistence via _handleAgentEvent\n\tconst unsubscribe = session.subscribe((event) => {\n\t\t// In JSON mode, output all events\n\t\tif (mode === \"json\") {\n\t\t\tconsole.log(JSON.stringify(event));\n\t\t}\n\t});\n\n\tlet exitCode = 0;\n\n\ttry {\n\t\t// Send initial message with attachments\n\t\tif (initialMessage) {\n\t\t\tawait session.prompt(initialMessage, { images: initialImages });\n\t\t}\n\n\t\t// Send remaining messages\n\t\tfor (const message of messages) {\n\t\t\tawait session.prompt(message);\n\t\t}\n\n\t\t// In text mode, output final response\n\t\tif (mode === \"text\") {\n\t\t\tconst state = session.state;\n\t\t\tconst lastMessage = state.messages[state.messages.length - 1];\n\n\t\t\tif (lastMessage?.role === \"assistant\") {\n\t\t\t\tconst assistantMsg = lastMessage as AssistantMessage;\n\n\t\t\t\t// Check for error/aborted\n\t\t\t\tif (assistantMsg.stopReason === \"error\" || assistantMsg.stopReason === \"aborted\") {\n\t\t\t\t\tconsole.error(assistantMsg.errorMessage || `Request ${assistantMsg.stopReason}`);\n\t\t\t\t\texitCode = 1;\n\t\t\t\t} else {\n\t\t\t\t\t// Output text content\n\t\t\t\t\tfor (const content of assistantMsg.content) {\n\t\t\t\t\t\tif (content.type === \"text\") {\n\t\t\t\t\t\t\tconsole.log(content.text);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Ensure stdout is fully flushed before returning\n\t\t// This prevents race conditions where the process exits before all output is written\n\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\tprocess.stdout.write(\"\", (err) => {\n\t\t\t\tif (err) reject(err);\n\t\t\t\telse resolve();\n\t\t\t});\n\t\t});\n\t} finally {\n\t\tunsubscribe();\n\t}\n\n\tif (exitCode !== 0) {\n\t\tprocess.exit(exitCode);\n\t}\n}\n"]}
@@ -1,17 +0,0 @@
1
- import type { Readable } from "node:stream";
2
- /**
3
- * Serialize a single strict JSONL record.
4
- *
5
- * Framing is LF-only. Payload strings may contain other Unicode separators such as
6
- * U+2028 and U+2029. Clients must split records on `\n` only.
7
- */
8
- export declare function serializeJsonLine(value: unknown): string;
9
- /**
10
- * Attach an LF-only JSONL reader to a stream.
11
- *
12
- * This intentionally does not use Node readline. Readline splits on additional
13
- * Unicode separators that are valid inside JSON strings and therefore does not
14
- * implement strict JSONL framing.
15
- */
16
- export declare function attachJsonlLineReader(stream: Readable, onLine: (line: string) => void): () => void;
17
- //# sourceMappingURL=jsonl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsonl.d.ts","sourceRoot":"","sources":["../../../src/modes/rpc/jsonl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAqClG"}
@@ -1,49 +0,0 @@
1
- import { StringDecoder } from "node:string_decoder";
2
- /**
3
- * Serialize a single strict JSONL record.
4
- *
5
- * Framing is LF-only. Payload strings may contain other Unicode separators such as
6
- * U+2028 and U+2029. Clients must split records on `\n` only.
7
- */
8
- export function serializeJsonLine(value) {
9
- return `${JSON.stringify(value)}\n`;
10
- }
11
- /**
12
- * Attach an LF-only JSONL reader to a stream.
13
- *
14
- * This intentionally does not use Node readline. Readline splits on additional
15
- * Unicode separators that are valid inside JSON strings and therefore does not
16
- * implement strict JSONL framing.
17
- */
18
- export function attachJsonlLineReader(stream, onLine) {
19
- const decoder = new StringDecoder("utf8");
20
- let buffer = "";
21
- const emitLine = (line) => {
22
- onLine(line.endsWith("\r") ? line.slice(0, -1) : line);
23
- };
24
- const onData = (chunk) => {
25
- buffer += typeof chunk === "string" ? chunk : decoder.write(chunk);
26
- while (true) {
27
- const newlineIndex = buffer.indexOf("\n");
28
- if (newlineIndex === -1) {
29
- return;
30
- }
31
- emitLine(buffer.slice(0, newlineIndex));
32
- buffer = buffer.slice(newlineIndex + 1);
33
- }
34
- };
35
- const onEnd = () => {
36
- buffer += decoder.end();
37
- if (buffer.length > 0) {
38
- emitLine(buffer);
39
- buffer = "";
40
- }
41
- };
42
- stream.on("data", onData);
43
- stream.on("end", onEnd);
44
- return () => {
45
- stream.off("data", onData);
46
- stream.off("end", onEnd);
47
- };
48
- }
49
- //# sourceMappingURL=jsonl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jsonl.js","sourceRoot":"","sources":["../../../src/modes/rpc/jsonl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAc;IAC/C,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAgB,EAAE,MAA8B;IACrF,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,MAAM,GAAG,EAAE,CAAC;IAEhB,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAQ,EAAE;QACvC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,CAAC,KAAsB,EAAQ,EAAE;QAC/C,MAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEnE,OAAO,IAAI,EAAE,CAAC;YACb,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE,CAAC;gBACzB,OAAO;YACR,CAAC;YAED,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;YACxC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC;QACzC,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAS,EAAE;QACxB,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QACxB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,QAAQ,CAAC,MAAM,CAAC,CAAC;YACjB,MAAM,GAAG,EAAE,CAAC;QACb,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAExB,OAAO,GAAG,EAAE;QACX,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC1B,CAAC,CAAC;AACH,CAAC","sourcesContent":["import type { Readable } from \"node:stream\";\nimport { StringDecoder } from \"node:string_decoder\";\n\n/**\n * Serialize a single strict JSONL record.\n *\n * Framing is LF-only. Payload strings may contain other Unicode separators such as\n * U+2028 and U+2029. Clients must split records on `\\n` only.\n */\nexport function serializeJsonLine(value: unknown): string {\n\treturn `${JSON.stringify(value)}\\n`;\n}\n\n/**\n * Attach an LF-only JSONL reader to a stream.\n *\n * This intentionally does not use Node readline. Readline splits on additional\n * Unicode separators that are valid inside JSON strings and therefore does not\n * implement strict JSONL framing.\n */\nexport function attachJsonlLineReader(stream: Readable, onLine: (line: string) => void): () => void {\n\tconst decoder = new StringDecoder(\"utf8\");\n\tlet buffer = \"\";\n\n\tconst emitLine = (line: string): void => {\n\t\tonLine(line.endsWith(\"\\r\") ? line.slice(0, -1) : line);\n\t};\n\n\tconst onData = (chunk: string | Buffer): void => {\n\t\tbuffer += typeof chunk === \"string\" ? chunk : decoder.write(chunk);\n\n\t\twhile (true) {\n\t\t\tconst newlineIndex = buffer.indexOf(\"\\n\");\n\t\t\tif (newlineIndex === -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\temitLine(buffer.slice(0, newlineIndex));\n\t\t\tbuffer = buffer.slice(newlineIndex + 1);\n\t\t}\n\t};\n\n\tconst onEnd = (): void => {\n\t\tbuffer += decoder.end();\n\t\tif (buffer.length > 0) {\n\t\t\temitLine(buffer);\n\t\t\tbuffer = \"\";\n\t\t}\n\t};\n\n\tstream.on(\"data\", onData);\n\tstream.on(\"end\", onEnd);\n\n\treturn () => {\n\t\tstream.off(\"data\", onData);\n\t\tstream.off(\"end\", onEnd);\n\t};\n}\n"]}
@@ -1,37 +0,0 @@
1
- import type { Terminal } from "@gsd/pi-tui";
2
- export interface RemoteTerminalOptions {
3
- onWrite: (data: string) => void;
4
- initialColumns?: number;
5
- initialRows?: number;
6
- }
7
- /**
8
- * Browser-backed terminal transport for the bridge-hosted native TUI.
9
- * It implements the pi-tui Terminal contract but forwards output over the
10
- * RPC bridge instead of writing to process stdout.
11
- */
12
- export declare class RemoteTerminal implements Terminal {
13
- private readonly options;
14
- private inputHandler?;
15
- private resizeHandler?;
16
- private _columns;
17
- private _rows;
18
- constructor(options: RemoteTerminalOptions);
19
- start(onInput: (data: string) => void, onResize: () => void): void;
20
- stop(): void;
21
- drainInput(): Promise<void>;
22
- write(data: string): void;
23
- get columns(): number;
24
- get rows(): number;
25
- get isTTY(): boolean;
26
- get kittyProtocolActive(): boolean;
27
- pushInput(data: string): void;
28
- resize(columns: number, rows: number): void;
29
- moveBy(lines: number): void;
30
- hideCursor(): void;
31
- showCursor(): void;
32
- clearLine(): void;
33
- clearFromCursor(): void;
34
- clearScreen(): void;
35
- setTitle(title: string): void;
36
- }
37
- //# sourceMappingURL=remote-terminal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote-terminal.d.ts","sourceRoot":"","sources":["../../../src/modes/rpc/remote-terminal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,WAAW,qBAAqB;IACrC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAMlC,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,OAAO,CAAC,YAAY,CAAC,CAAyB;IAC9C,OAAO,CAAC,aAAa,CAAC,CAAa;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;gBAEO,OAAO,EAAE,qBAAqB;IAK3D,KAAK,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAKlE,IAAI,IAAI,IAAI;IAKN,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAKzB,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,KAAK,IAAI,OAAO,CAInB;IAED,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK7B,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAW3C,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAQ3B,UAAU,IAAI,IAAI;IAIlB,UAAU,IAAI,IAAI;IAIlB,SAAS,IAAI,IAAI;IAIjB,eAAe,IAAI,IAAI;IAIvB,WAAW,IAAI,IAAI;IAInB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;CAG7B"}
@@ -1,84 +0,0 @@
1
- /**
2
- * Browser-backed terminal transport for the bridge-hosted native TUI.
3
- * It implements the pi-tui Terminal contract but forwards output over the
4
- * RPC bridge instead of writing to process stdout.
5
- */
6
- export class RemoteTerminal {
7
- constructor(options) {
8
- this.options = options;
9
- this._columns = Math.max(1, options.initialColumns ?? 120);
10
- this._rows = Math.max(1, options.initialRows ?? 30);
11
- }
12
- start(onInput, onResize) {
13
- this.inputHandler = onInput;
14
- this.resizeHandler = onResize;
15
- }
16
- stop() {
17
- this.inputHandler = undefined;
18
- this.resizeHandler = undefined;
19
- }
20
- async drainInput() {
21
- // Browser transport has no local stdin buffer to drain.
22
- }
23
- write(data) {
24
- if (!data)
25
- return;
26
- this.options.onWrite(data);
27
- }
28
- get columns() {
29
- return this._columns;
30
- }
31
- get rows() {
32
- return this._rows;
33
- }
34
- get isTTY() {
35
- // RemoteTerminal renders to a browser-based terminal emulator via
36
- // the RPC bridge — it behaves like a real TTY for rendering purposes.
37
- return true;
38
- }
39
- get kittyProtocolActive() {
40
- return false;
41
- }
42
- pushInput(data) {
43
- if (!data)
44
- return;
45
- this.inputHandler?.(data);
46
- }
47
- resize(columns, rows) {
48
- const nextColumns = Math.max(1, Math.floor(columns));
49
- const nextRows = Math.max(1, Math.floor(rows));
50
- const changed = nextColumns !== this._columns || nextRows !== this._rows;
51
- this._columns = nextColumns;
52
- this._rows = nextRows;
53
- if (changed) {
54
- this.resizeHandler?.();
55
- }
56
- }
57
- moveBy(lines) {
58
- if (lines > 0) {
59
- this.write(`\x1b[${lines}B`);
60
- }
61
- else if (lines < 0) {
62
- this.write(`\x1b[${-lines}A`);
63
- }
64
- }
65
- hideCursor() {
66
- this.write("\x1b[?25l");
67
- }
68
- showCursor() {
69
- this.write("\x1b[?25h");
70
- }
71
- clearLine() {
72
- this.write("\x1b[K");
73
- }
74
- clearFromCursor() {
75
- this.write("\x1b[J");
76
- }
77
- clearScreen() {
78
- this.write("\x1b[2J\x1b[H");
79
- }
80
- setTitle(title) {
81
- this.write(`\x1b]0;${title}\x07`);
82
- }
83
- }
84
- //# sourceMappingURL=remote-terminal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"remote-terminal.js","sourceRoot":"","sources":["../../../src/modes/rpc/remote-terminal.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Terminal } from \"@gsd/pi-tui\";\n\nexport interface RemoteTerminalOptions {\n\tonWrite: (data: string) => void;\n\tinitialColumns?: number;\n\tinitialRows?: number;\n}\n\n/**\n * Browser-backed terminal transport for the bridge-hosted native TUI.\n * It implements the pi-tui Terminal contract but forwards output over the\n * RPC bridge instead of writing to process stdout.\n */\nexport class RemoteTerminal implements Terminal {\n\tprivate inputHandler?: (data: string) => void;\n\tprivate resizeHandler?: () => void;\n\tprivate _columns: number;\n\tprivate _rows: number;\n\n\tconstructor(private readonly options: RemoteTerminalOptions) {\n\t\tthis._columns = Math.max(1, options.initialColumns ?? 120);\n\t\tthis._rows = Math.max(1, options.initialRows ?? 30);\n\t}\n\n\tstart(onInput: (data: string) => void, onResize: () => void): void {\n\t\tthis.inputHandler = onInput;\n\t\tthis.resizeHandler = onResize;\n\t}\n\n\tstop(): void {\n\t\tthis.inputHandler = undefined;\n\t\tthis.resizeHandler = undefined;\n\t}\n\n\tasync drainInput(): Promise<void> {\n\t\t// Browser transport has no local stdin buffer to drain.\n\t}\n\n\twrite(data: string): void {\n\t\tif (!data) return;\n\t\tthis.options.onWrite(data);\n\t}\n\n\tget columns(): number {\n\t\treturn this._columns;\n\t}\n\n\tget rows(): number {\n\t\treturn this._rows;\n\t}\n\n\tget isTTY(): boolean {\n\t\t// RemoteTerminal renders to a browser-based terminal emulator via\n\t\t// the RPC bridge — it behaves like a real TTY for rendering purposes.\n\t\treturn true;\n\t}\n\n\tget kittyProtocolActive(): boolean {\n\t\treturn false;\n\t}\n\n\tpushInput(data: string): void {\n\t\tif (!data) return;\n\t\tthis.inputHandler?.(data);\n\t}\n\n\tresize(columns: number, rows: number): void {\n\t\tconst nextColumns = Math.max(1, Math.floor(columns));\n\t\tconst nextRows = Math.max(1, Math.floor(rows));\n\t\tconst changed = nextColumns !== this._columns || nextRows !== this._rows;\n\t\tthis._columns = nextColumns;\n\t\tthis._rows = nextRows;\n\t\tif (changed) {\n\t\t\tthis.resizeHandler?.();\n\t\t}\n\t}\n\n\tmoveBy(lines: number): void {\n\t\tif (lines > 0) {\n\t\t\tthis.write(`\\x1b[${lines}B`);\n\t\t} else if (lines < 0) {\n\t\t\tthis.write(`\\x1b[${-lines}A`);\n\t\t}\n\t}\n\n\thideCursor(): void {\n\t\tthis.write(\"\\x1b[?25l\");\n\t}\n\n\tshowCursor(): void {\n\t\tthis.write(\"\\x1b[?25h\");\n\t}\n\n\tclearLine(): void {\n\t\tthis.write(\"\\x1b[K\");\n\t}\n\n\tclearFromCursor(): void {\n\t\tthis.write(\"\\x1b[J\");\n\t}\n\n\tclearScreen(): void {\n\t\tthis.write(\"\\x1b[2J\\x1b[H\");\n\t}\n\n\tsetTitle(title: string): void {\n\t\tthis.write(`\\x1b]0;${title}\\x07`);\n\t}\n}\n"]}