@code-yeongyu/senpi 2026.8.26 → 2026.8.27

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 (231) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +3 -3
  3. package/dist/cli/args.d.ts +3 -1
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +14 -1
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/core/agent-session.d.ts.map +1 -1
  8. package/dist/core/agent-session.js +10 -1
  9. package/dist/core/agent-session.js.map +1 -1
  10. package/dist/core/bash-executor.d.ts.map +1 -1
  11. package/dist/core/bash-executor.js +67 -29
  12. package/dist/core/bash-executor.js.map +1 -1
  13. package/dist/core/credential-pool/classify.d.ts +42 -0
  14. package/dist/core/credential-pool/classify.d.ts.map +1 -0
  15. package/dist/core/credential-pool/classify.js +75 -0
  16. package/dist/core/credential-pool/classify.js.map +1 -0
  17. package/dist/core/credential-pool/env-slots.d.ts +22 -0
  18. package/dist/core/credential-pool/env-slots.d.ts.map +1 -0
  19. package/dist/core/credential-pool/env-slots.js +37 -0
  20. package/dist/core/credential-pool/env-slots.js.map +1 -0
  21. package/dist/core/credential-pool/failover.d.ts +54 -0
  22. package/dist/core/credential-pool/failover.d.ts.map +1 -0
  23. package/dist/core/credential-pool/failover.js +106 -0
  24. package/dist/core/credential-pool/failover.js.map +1 -0
  25. package/dist/core/credential-pool/rotation-stream.d.ts +43 -0
  26. package/dist/core/credential-pool/rotation-stream.d.ts.map +1 -0
  27. package/dist/core/credential-pool/rotation-stream.js +96 -0
  28. package/dist/core/credential-pool/rotation-stream.js.map +1 -0
  29. package/dist/core/credential-pool/state-store.d.ts +89 -0
  30. package/dist/core/credential-pool/state-store.d.ts.map +1 -0
  31. package/dist/core/credential-pool/state-store.js +166 -0
  32. package/dist/core/credential-pool/state-store.js.map +1 -0
  33. package/dist/core/extensions/builtin/compaction/index.d.ts.map +1 -1
  34. package/dist/core/extensions/builtin/compaction/index.js +67 -0
  35. package/dist/core/extensions/builtin/compaction/index.js.map +1 -1
  36. package/dist/core/extensions/builtin/compaction/log.d.ts +1 -1
  37. package/dist/core/extensions/builtin/compaction/log.d.ts.map +1 -1
  38. package/dist/core/extensions/builtin/compaction/log.js +1 -0
  39. package/dist/core/extensions/builtin/compaction/log.js.map +1 -1
  40. package/dist/core/extensions/builtin/config-reload/index.js +14 -22
  41. package/dist/core/extensions/builtin/config-reload/index.js.map +1 -1
  42. package/dist/core/extensions/builtin/goal/continuation-recovery.d.ts +1 -0
  43. package/dist/core/extensions/builtin/goal/continuation-recovery.d.ts.map +1 -1
  44. package/dist/core/extensions/builtin/goal/continuation-recovery.js +2 -0
  45. package/dist/core/extensions/builtin/goal/continuation-recovery.js.map +1 -1
  46. package/dist/core/extensions/builtin/goal/continuation.d.ts +8 -1
  47. package/dist/core/extensions/builtin/goal/continuation.d.ts.map +1 -1
  48. package/dist/core/extensions/builtin/goal/continuation.js +15 -0
  49. package/dist/core/extensions/builtin/goal/continuation.js.map +1 -1
  50. package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js +2 -2
  51. package/dist/core/extensions/builtin/goal/direct-input-lifecycle.js.map +1 -1
  52. package/dist/core/extensions/builtin/goal/format.d.ts +6 -1
  53. package/dist/core/extensions/builtin/goal/format.d.ts.map +1 -1
  54. package/dist/core/extensions/builtin/goal/format.js +6 -0
  55. package/dist/core/extensions/builtin/goal/format.js.map +1 -1
  56. package/dist/core/extensions/builtin/goal/lifecycle-helpers.d.ts.map +1 -1
  57. package/dist/core/extensions/builtin/goal/lifecycle-helpers.js +5 -2
  58. package/dist/core/extensions/builtin/goal/lifecycle-helpers.js.map +1 -1
  59. package/dist/core/extensions/builtin/goal/monitor-continuation.d.ts.map +1 -1
  60. package/dist/core/extensions/builtin/goal/monitor-continuation.js +31 -7
  61. package/dist/core/extensions/builtin/goal/monitor-continuation.js.map +1 -1
  62. package/dist/core/extensions/builtin/goal/persistence.js +2 -0
  63. package/dist/core/extensions/builtin/goal/persistence.js.map +1 -1
  64. package/dist/core/extensions/builtin/goal/renderers.d.ts +14 -0
  65. package/dist/core/extensions/builtin/goal/renderers.d.ts.map +1 -0
  66. package/dist/core/extensions/builtin/goal/renderers.js +153 -0
  67. package/dist/core/extensions/builtin/goal/renderers.js.map +1 -0
  68. package/dist/core/extensions/builtin/goal/store.d.ts +6 -2
  69. package/dist/core/extensions/builtin/goal/store.d.ts.map +1 -1
  70. package/dist/core/extensions/builtin/goal/store.js +8 -2
  71. package/dist/core/extensions/builtin/goal/store.js.map +1 -1
  72. package/dist/core/extensions/builtin/goal/tool-registration.d.ts.map +1 -1
  73. package/dist/core/extensions/builtin/goal/tool-registration.js +16 -6
  74. package/dist/core/extensions/builtin/goal/tool-registration.js.map +1 -1
  75. package/dist/core/extensions/builtin/goal/types.d.ts +1 -0
  76. package/dist/core/extensions/builtin/goal/types.d.ts.map +1 -1
  77. package/dist/core/extensions/builtin/goal/types.js.map +1 -1
  78. package/dist/core/extensions/builtin/todotools/index.js +1 -1
  79. package/dist/core/extensions/builtin/todotools/index.js.map +1 -1
  80. package/dist/core/extensions/builtin/todotools/native-todo-mirror.d.ts +1 -1
  81. package/dist/core/extensions/builtin/todotools/native-todo-mirror.d.ts.map +1 -1
  82. package/dist/core/extensions/builtin/todotools/native-todo-mirror.js +1 -1
  83. package/dist/core/extensions/builtin/todotools/native-todo-mirror.js.map +1 -1
  84. package/dist/core/hidden-stdout-log.d.ts +10 -0
  85. package/dist/core/hidden-stdout-log.d.ts.map +1 -1
  86. package/dist/core/hidden-stdout-log.js +36 -5
  87. package/dist/core/hidden-stdout-log.js.map +1 -1
  88. package/dist/core/model-config-schema.d.ts +85 -12
  89. package/dist/core/model-config-schema.d.ts.map +1 -1
  90. package/dist/core/model-config-schema.js +25 -0
  91. package/dist/core/model-config-schema.js.map +1 -1
  92. package/dist/core/model-runtime.d.ts +34 -1
  93. package/dist/core/model-runtime.d.ts.map +1 -1
  94. package/dist/core/model-runtime.js +98 -5
  95. package/dist/core/model-runtime.js.map +1 -1
  96. package/dist/core/tools/output-accumulator.d.ts +2 -0
  97. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  98. package/dist/core/tools/output-accumulator.js +32 -7
  99. package/dist/core/tools/output-accumulator.js.map +1 -1
  100. package/dist/index.d.ts +1 -1
  101. package/dist/index.d.ts.map +1 -1
  102. package/dist/index.js +1 -1
  103. package/dist/index.js.map +1 -1
  104. package/dist/main.d.ts.map +1 -1
  105. package/dist/main.js +26 -2
  106. package/dist/main.js.map +1 -1
  107. package/dist/modes/index.d.ts +1 -0
  108. package/dist/modes/index.d.ts.map +1 -1
  109. package/dist/modes/index.js +1 -0
  110. package/dist/modes/index.js.map +1 -1
  111. package/dist/modes/interactive/components/tool-execution-fallback.d.ts.map +1 -1
  112. package/dist/modes/interactive/components/tool-execution-fallback.js +82 -1
  113. package/dist/modes/interactive/components/tool-execution-fallback.js.map +1 -1
  114. package/dist/modes/interactive/interactive-host-runtime.d.ts +29 -0
  115. package/dist/modes/interactive/interactive-host-runtime.d.ts.map +1 -0
  116. package/dist/modes/interactive/interactive-host-runtime.js +244 -0
  117. package/dist/modes/interactive/interactive-host-runtime.js.map +1 -0
  118. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  119. package/dist/modes/interactive/interactive-mode.js +46 -8
  120. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  121. package/dist/modes/rpc/connection-handler.d.ts.map +1 -1
  122. package/dist/modes/rpc/connection-handler.js +7 -1
  123. package/dist/modes/rpc/connection-handler.js.map +1 -1
  124. package/dist/modes/rpc/host-ensure.d.ts +41 -0
  125. package/dist/modes/rpc/host-ensure.d.ts.map +1 -0
  126. package/dist/modes/rpc/host-ensure.js +245 -0
  127. package/dist/modes/rpc/host-ensure.js.map +1 -0
  128. package/dist/modes/rpc/host-lifecycle.d.ts +57 -0
  129. package/dist/modes/rpc/host-lifecycle.d.ts.map +1 -0
  130. package/dist/modes/rpc/host-lifecycle.js +491 -0
  131. package/dist/modes/rpc/host-lifecycle.js.map +1 -0
  132. package/dist/modes/rpc/host-watchdog.d.ts +33 -0
  133. package/dist/modes/rpc/host-watchdog.d.ts.map +1 -0
  134. package/dist/modes/rpc/host-watchdog.js +142 -0
  135. package/dist/modes/rpc/host-watchdog.js.map +1 -0
  136. package/dist/modes/rpc/multi-session-host.d.ts +7 -1
  137. package/dist/modes/rpc/multi-session-host.d.ts.map +1 -1
  138. package/dist/modes/rpc/multi-session-host.js +206 -32
  139. package/dist/modes/rpc/multi-session-host.js.map +1 -1
  140. package/dist/modes/rpc/rpc-client.d.ts +25 -0
  141. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  142. package/dist/modes/rpc/rpc-client.js +83 -10
  143. package/dist/modes/rpc/rpc-client.js.map +1 -1
  144. package/dist/modes/rpc/rpc-mode.d.ts +1 -1
  145. package/dist/modes/rpc/rpc-mode.js +1 -1
  146. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  147. package/dist/modes/rpc/rpc-types.d.ts +2 -1
  148. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  149. package/dist/modes/rpc/rpc-types.js.map +1 -1
  150. package/dist/modes/rpc/session-command-router.d.ts.map +1 -1
  151. package/dist/modes/rpc/session-command-router.js +12 -2
  152. package/dist/modes/rpc/session-command-router.js.map +1 -1
  153. package/dist/modes/rpc/session-event-writer.d.ts +13 -2
  154. package/dist/modes/rpc/session-event-writer.d.ts.map +1 -1
  155. package/dist/modes/rpc/session-event-writer.js +65 -25
  156. package/dist/modes/rpc/session-event-writer.js.map +1 -1
  157. package/docs/rpc.md +53 -1
  158. package/node_modules/@code-yeongyu/senpi-codemode/CHANGELOG.md +30 -0
  159. package/node_modules/@code-yeongyu/senpi-codemode/package.json +4 -4
  160. package/node_modules/@code-yeongyu/senpi-codemode/src/kernels/js/worker-indirect-eval.js +711 -1
  161. package/node_modules/@code-yeongyu/senpi-codemode/src/prompt/eval-prompt.ts +10 -10
  162. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/detached-eval-result.ts +9 -3
  163. package/node_modules/@code-yeongyu/senpi-codemode/src/tool/eval-tool.ts +6 -1
  164. package/node_modules/@earendil-works/pi-agent-core/package.json +3 -3
  165. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.d.ts +1 -1
  166. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.d.ts.map +1 -1
  167. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.js +46 -14
  168. package/node_modules/@earendil-works/pi-ai/dist/api/anthropic-tool-pairs.js.map +1 -1
  169. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts +11 -0
  170. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.d.ts.map +1 -1
  171. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js +30 -16
  172. package/node_modules/@earendil-works/pi-ai/dist/api/cursor-agent.js.map +1 -1
  173. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/classify.d.ts +16 -0
  174. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/classify.d.ts.map +1 -0
  175. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/classify.js +75 -0
  176. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/classify.js.map +1 -0
  177. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/failover.d.ts +45 -0
  178. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/failover.d.ts.map +1 -0
  179. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/failover.js +81 -0
  180. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/failover.js.map +1 -0
  181. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/select.d.ts +31 -0
  182. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/select.d.ts.map +1 -0
  183. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/select.js +65 -0
  184. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/select.js.map +1 -0
  185. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.d.ts +12 -0
  186. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.d.ts.map +1 -1
  187. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.js +37 -0
  188. package/node_modules/@earendil-works/pi-ai/dist/auth/pool/slots.js.map +1 -1
  189. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts +6 -0
  190. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.d.ts.map +1 -1
  191. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js +32 -6
  192. package/node_modules/@earendil-works/pi-ai/dist/auth/resolve.js.map +1 -1
  193. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts +6 -0
  194. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.d.ts.map +1 -1
  195. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js +6 -1
  196. package/node_modules/@earendil-works/pi-ai/dist/env-api-keys.js.map +1 -1
  197. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts +75 -0
  198. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.d.ts.map +1 -1
  199. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js +75 -0
  200. package/node_modules/@earendil-works/pi-ai/dist/image-models.generated.js.map +1 -1
  201. package/node_modules/@earendil-works/pi-ai/dist/providers/data/.manifest.json +1 -1
  202. package/node_modules/@earendil-works/pi-ai/dist/providers/data/amazon-bedrock.json +1 -1
  203. package/node_modules/@earendil-works/pi-ai/dist/providers/data/baseten.json +1 -1
  204. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-ai-gateway.json +1 -1
  205. package/node_modules/@earendil-works/pi-ai/dist/providers/data/cloudflare-workers-ai.json +1 -1
  206. package/node_modules/@earendil-works/pi-ai/dist/providers/data/huggingface.json +1 -1
  207. package/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax-cn.json +1 -1
  208. package/node_modules/@earendil-works/pi-ai/dist/providers/data/minimax.json +1 -1
  209. package/node_modules/@earendil-works/pi-ai/dist/providers/data/mistral.json +1 -1
  210. package/node_modules/@earendil-works/pi-ai/dist/providers/data/nvidia.json +1 -1
  211. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode-go.json +1 -1
  212. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opencode.json +1 -1
  213. package/node_modules/@earendil-works/pi-ai/dist/providers/data/opengateway.json +1 -1
  214. package/node_modules/@earendil-works/pi-ai/dist/providers/data/openrouter.json +1 -1
  215. package/node_modules/@earendil-works/pi-ai/dist/providers/data/vercel-ai-gateway.json +1 -1
  216. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai-coding-cn.json +1 -1
  217. package/node_modules/@earendil-works/pi-ai/dist/providers/data/zai.json +1 -1
  218. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.d.ts.map +1 -1
  219. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js +4 -0
  220. package/node_modules/@earendil-works/pi-ai/dist/utils/overflow.js.map +1 -1
  221. package/node_modules/@earendil-works/pi-ai/package.json +5 -5
  222. package/node_modules/@earendil-works/pi-pty/package.json +1 -1
  223. package/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  224. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts +5 -0
  225. package/node_modules/@earendil-works/pi-tui/dist/terminal.d.ts.map +1 -1
  226. package/node_modules/@earendil-works/pi-tui/dist/terminal.js +90 -1
  227. package/node_modules/@earendil-works/pi-tui/dist/terminal.js.map +1 -1
  228. package/node_modules/@earendil-works/pi-tui/dist/tui.js +1 -1
  229. package/node_modules/@earendil-works/pi-tui/dist/tui.js.map +1 -1
  230. package/node_modules/@earendil-works/pi-tui/package.json +1 -1
  231. package/package.json +7 -7
@@ -0,0 +1,29 @@
1
+ import type { AgentSessionRuntime } from "../../core/agent-session-runtime.ts";
2
+ import { type EnsuredHost } from "../rpc/host-ensure.ts";
3
+ import { type RpcClientEvent } from "../rpc/rpc-client.ts";
4
+ export declare const INTERACTIVE_HOST_FALLBACK_WARNING = "Warning: shared interactive host unavailable; continuing locally";
5
+ export interface InteractiveHostWarning {
6
+ readonly type: "interactive_host_fallback";
7
+ readonly message: string;
8
+ readonly cause: unknown;
9
+ }
10
+ export interface InteractiveHostRuntimeOptions {
11
+ readonly socket: string;
12
+ readonly agentDir?: string;
13
+ readonly ensureHost?: (options: {
14
+ socket: string;
15
+ agentDir?: string;
16
+ }) => Promise<EnsuredHost | undefined>;
17
+ onWarning?: (warning: InteractiveHostWarning) => void;
18
+ }
19
+ /**
20
+ * Replace only the transport-facing session operations. The object returned is
21
+ * deliberately still an AgentSessionRuntime: InteractiveMode and extensions
22
+ * retain their existing runtime seam, while the authoritative prompt/session
23
+ * state is hosted by the shared RPC process.
24
+ */
25
+ export declare function createInteractiveHostRuntime(localRuntime: AgentSessionRuntime, options: InteractiveHostRuntimeOptions): Promise<AgentSessionRuntime>;
26
+ export declare function isInteractiveHostEvent(event: RpcClientEvent): event is Extract<RpcClientEvent, {
27
+ type: string;
28
+ }>;
29
+ //# sourceMappingURL=interactive-host-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-host-runtime.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-host-runtime.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAa,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtE,eAAO,MAAM,iCAAiC,qEAAqE,CAAC;AAEpH,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,IAAI,EAAE,2BAA2B,CAAC;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,6BAA6B;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IAC3G,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACtD;AAED;;;;;GAKG;AACH,wBAAsB,4BAA4B,CACjD,YAAY,EAAE,mBAAmB,EACjC,OAAO,EAAE,6BAA6B,GACpC,OAAO,CAAC,mBAAmB,CAAC,CA0B9B;AAmMD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,cAAc,GAAG,KAAK,IAAI,OAAO,CAAC,cAAc,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAEhH"}
@@ -0,0 +1,244 @@
1
+ import { ensureHost } from "../rpc/host-ensure.js";
2
+ import { RpcClient } from "../rpc/rpc-client.js";
3
+ export const INTERACTIVE_HOST_FALLBACK_WARNING = "Warning: shared interactive host unavailable; continuing locally";
4
+ /**
5
+ * Replace only the transport-facing session operations. The object returned is
6
+ * deliberately still an AgentSessionRuntime: InteractiveMode and extensions
7
+ * retain their existing runtime seam, while the authoritative prompt/session
8
+ * state is hosted by the shared RPC process.
9
+ */
10
+ export async function createInteractiveHostRuntime(localRuntime, options) {
11
+ const sessionPath = localRuntime.session.sessionFile;
12
+ if (!sessionPath)
13
+ return localRuntime;
14
+ const startHost = options.ensureHost ?? ((hostOptions) => ensureHost(hostOptions));
15
+ const client = new RpcClient({ socketPath: options.socket });
16
+ try {
17
+ await startHost({ socket: options.socket, agentDir: options.agentDir });
18
+ await client.start();
19
+ const opened = await client.openSession({
20
+ sessionPath,
21
+ cwd: localRuntime.cwd,
22
+ provider: localRuntime.session.model?.provider,
23
+ modelId: localRuntime.session.model?.id,
24
+ thinkingLevel: localRuntime.session.thinkingLevel,
25
+ });
26
+ const remoteSession = createRemoteSessionProxy(localRuntime.session, client, opened.state);
27
+ return new RemoteInteractiveRuntime(localRuntime, remoteSession, client);
28
+ }
29
+ catch (cause) {
30
+ await client.stop().catch(() => { });
31
+ options.onWarning?.({
32
+ type: "interactive_host_fallback",
33
+ message: `${INTERACTIVE_HOST_FALLBACK_WARNING}: ${cause instanceof Error ? cause.message : String(cause)}`,
34
+ cause,
35
+ });
36
+ return localRuntime;
37
+ }
38
+ }
39
+ class RemoteInteractiveRuntime {
40
+ #local;
41
+ #session;
42
+ #client;
43
+ #rebindSession;
44
+ #beforeSessionInvalidate;
45
+ constructor(local, session, client) {
46
+ this.#local = local;
47
+ this.#session = session;
48
+ this.#client = client;
49
+ }
50
+ get session() {
51
+ return this.#session;
52
+ }
53
+ get services() {
54
+ return this.#local.services;
55
+ }
56
+ get cwd() {
57
+ return this.#local.cwd;
58
+ }
59
+ get diagnostics() {
60
+ return this.#local.diagnostics;
61
+ }
62
+ get modelFallbackMessage() {
63
+ return this.#local.modelFallbackMessage;
64
+ }
65
+ get launchProfile() {
66
+ return this.#local.launchProfile;
67
+ }
68
+ setBeforeSessionInvalidate(callback) {
69
+ this.#beforeSessionInvalidate = callback;
70
+ }
71
+ setRebindSession(callback) {
72
+ this.#rebindSession = callback;
73
+ }
74
+ async dispose() {
75
+ await this.#client.closeSession();
76
+ await this.#client.stop();
77
+ await this.#local.dispose();
78
+ }
79
+ async newSession() {
80
+ this.#beforeSessionInvalidate?.();
81
+ const result = await this.#client.newSession();
82
+ if (!result.cancelled)
83
+ await this.#rebindSession?.();
84
+ return result;
85
+ }
86
+ async switchSession(sessionPath) {
87
+ this.#beforeSessionInvalidate?.();
88
+ const result = await this.#client.switchSession(sessionPath);
89
+ if (!result.cancelled)
90
+ await this.#rebindSession?.();
91
+ return result;
92
+ }
93
+ async fork(entryId) {
94
+ this.#beforeSessionInvalidate?.();
95
+ const result = await this.#client.fork(entryId);
96
+ if (!result.cancelled)
97
+ await this.#rebindSession?.();
98
+ return { cancelled: result.cancelled, selectedText: result.text };
99
+ }
100
+ async importFromJsonl() {
101
+ throw new Error("Session import is not available while connected to the shared host");
102
+ }
103
+ }
104
+ function createRemoteSessionProxy(local, client, initialState) {
105
+ let state = initialState;
106
+ let streamingAssistant;
107
+ const listeners = new Set();
108
+ client.onEvent((wireEvent) => {
109
+ if (wireEvent.type === "agent_settled")
110
+ state = { ...state, isStreaming: false };
111
+ if (wireEvent.type === "agent_start")
112
+ state = { ...state, isStreaming: true };
113
+ if (wireEvent.type === "model_changed") {
114
+ state = { ...state, model: wireEvent.model, thinkingLevel: wireEvent.thinkingLevel };
115
+ }
116
+ if (wireEvent.type === "thinking_level_changed")
117
+ state = { ...state, thinkingLevel: wireEvent.level };
118
+ if (wireEvent.type === "message_start") {
119
+ if (wireEvent.message.role === "assistant")
120
+ streamingAssistant = structuredClone(wireEvent.message);
121
+ local.agent.state.messages.push(structuredClone(wireEvent.message));
122
+ }
123
+ if (wireEvent.type === "message_end") {
124
+ if (wireEvent.message.role === "assistant")
125
+ streamingAssistant = structuredClone(wireEvent.message);
126
+ const messages = local.agent.state.messages;
127
+ const previous = messages.at(-1);
128
+ if (previous?.role === wireEvent.message.role)
129
+ messages[messages.length - 1] = structuredClone(wireEvent.message);
130
+ }
131
+ const event = hydrateMessageUpdate(wireEvent, streamingAssistant);
132
+ for (const listener of listeners)
133
+ listener(event);
134
+ });
135
+ const session = new Proxy(local, {
136
+ get(target, property, receiver) {
137
+ if (property === "prompt")
138
+ return (message, options) => client.prompt(message, options?.images);
139
+ if (property === "abort")
140
+ return () => client.abort();
141
+ if (property === "steer")
142
+ return (message, images) => client.steer(message, images);
143
+ if (property === "followUp")
144
+ return (message, images) => client.followUp(message, images);
145
+ if (property === "waitForIdle")
146
+ return () => client.waitForIdle();
147
+ if (property === "getLastAssistantText")
148
+ return () => target.getLastAssistantText();
149
+ if (property === "setModel")
150
+ return async (model) => {
151
+ await client.setModel(model.provider, model.id);
152
+ };
153
+ if (property === "cycleModel")
154
+ return () => client.cycleModel();
155
+ if (property === "setThinkingLevel")
156
+ return (level) => void client.setThinkingLevel(level);
157
+ if (property === "cycleThinkingLevel")
158
+ return () => client.cycleThinkingLevel().then((result) => result?.level);
159
+ if (property === "getAvailableThinkingLevels")
160
+ return () => client.getAvailableThinkingLevels();
161
+ if (property === "setSteeringMode")
162
+ return (mode) => void client.setSteeringMode(mode);
163
+ if (property === "setFollowUpMode")
164
+ return (mode) => void client.setFollowUpMode(mode);
165
+ if (property === "compact")
166
+ return (instructions) => client.compact(instructions);
167
+ if (property === "setAutoCompactionEnabled")
168
+ return (enabled) => void client.setAutoCompaction(enabled);
169
+ if (property === "executeBash")
170
+ return (command) => client.bash(command);
171
+ if (property === "abortBash")
172
+ return () => void client.abortBash();
173
+ if (property === "getSessionStats")
174
+ return () => client.getSessionStats();
175
+ if (property === "exportToHtml")
176
+ return (outputPath) => client.exportHtml(outputPath).then((result) => result.path);
177
+ if (property === "setSessionName")
178
+ return (name) => void client.setSessionName(name);
179
+ if (property === "getUserMessagesForForking")
180
+ return () => client.getForkMessages();
181
+ if (property === "subscribe")
182
+ return (listener) => {
183
+ listeners.add(listener);
184
+ const localUnsubscribe = target.subscribe(listener);
185
+ return () => {
186
+ listeners.delete(listener);
187
+ localUnsubscribe();
188
+ };
189
+ };
190
+ if (property === "isStreaming")
191
+ return state.isStreaming;
192
+ if (property === "sessionFile")
193
+ return state.sessionFile;
194
+ if (property === "sessionId")
195
+ return state.sessionId;
196
+ if (property === "messages")
197
+ return target.messages;
198
+ if (property === "model")
199
+ return state.model ?? target.model;
200
+ if (property === "thinkingLevel")
201
+ return state.thinkingLevel;
202
+ return Reflect.get(target, property, receiver);
203
+ },
204
+ });
205
+ return session;
206
+ }
207
+ function hydrateMessageUpdate(event, streamingAssistant) {
208
+ if (event.type !== "message_update" || !streamingAssistant)
209
+ return event;
210
+ const update = event.assistantMessageEvent;
211
+ if (update.type !== "text_delta" && update.type !== "thinking_delta" && update.type !== "toolcall_delta") {
212
+ return event;
213
+ }
214
+ const content = streamingAssistant.content[update.contentIndex];
215
+ if (update.type === "text_delta" && content?.type === "text")
216
+ content.text += update.delta;
217
+ if (update.type === "thinking_delta" && content?.type === "thinking")
218
+ content.thinking += update.delta;
219
+ if (update.type === "toolcall_delta" && content?.type === "toolCall") {
220
+ const raw = JSON.stringify(content.arguments) + update.delta;
221
+ try {
222
+ const parsed = JSON.parse(raw);
223
+ if (typeof parsed === "object" && parsed !== null && !Array.isArray(parsed)) {
224
+ content.arguments = parsed;
225
+ }
226
+ }
227
+ catch {
228
+ // Keep the last valid arguments until the next complete update.
229
+ }
230
+ }
231
+ streamingAssistant.usage = event.usage;
232
+ return {
233
+ type: "message_update",
234
+ message: structuredClone(streamingAssistant),
235
+ assistantMessageEvent: { ...update, partial: structuredClone(streamingAssistant) },
236
+ };
237
+ }
238
+ function stateFromRpc(state) {
239
+ return state;
240
+ }
241
+ export function isInteractiveHostEvent(event) {
242
+ return typeof event === "object" && event !== null && "type" in event;
243
+ }
244
+ //# sourceMappingURL=interactive-host-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-host-runtime.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-host-runtime.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentSession, AgentSessionEvent, AgentSessionEventListener } from \"../../core/agent-session.ts\";\nimport type { AgentSessionRuntime } from \"../../core/agent-session-runtime.ts\";\nimport type { AgentSessionRuntimeDiagnostic } from \"../../core/agent-session-services.ts\";\nimport { type EnsuredHost, ensureHost } from \"../rpc/host-ensure.ts\";\nimport { RpcClient, type RpcClientEvent } from \"../rpc/rpc-client.ts\";\n\nexport const INTERACTIVE_HOST_FALLBACK_WARNING = \"Warning: shared interactive host unavailable; continuing locally\";\n\nexport interface InteractiveHostWarning {\n\treadonly type: \"interactive_host_fallback\";\n\treadonly message: string;\n\treadonly cause: unknown;\n}\n\nexport interface InteractiveHostRuntimeOptions {\n\treadonly socket: string;\n\treadonly agentDir?: string;\n\treadonly ensureHost?: (options: { socket: string; agentDir?: string }) => Promise<EnsuredHost | undefined>;\n\tonWarning?: (warning: InteractiveHostWarning) => void;\n}\n\n/**\n * Replace only the transport-facing session operations. The object returned is\n * deliberately still an AgentSessionRuntime: InteractiveMode and extensions\n * retain their existing runtime seam, while the authoritative prompt/session\n * state is hosted by the shared RPC process.\n */\nexport async function createInteractiveHostRuntime(\n\tlocalRuntime: AgentSessionRuntime,\n\toptions: InteractiveHostRuntimeOptions,\n): Promise<AgentSessionRuntime> {\n\tconst sessionPath = localRuntime.session.sessionFile;\n\tif (!sessionPath) return localRuntime;\n\tconst startHost = options.ensureHost ?? ((hostOptions) => ensureHost(hostOptions));\n\tconst client = new RpcClient({ socketPath: options.socket });\n\ttry {\n\t\tawait startHost({ socket: options.socket, agentDir: options.agentDir });\n\t\tawait client.start();\n\t\tconst opened = await client.openSession({\n\t\t\tsessionPath,\n\t\t\tcwd: localRuntime.cwd,\n\t\t\tprovider: localRuntime.session.model?.provider,\n\t\t\tmodelId: localRuntime.session.model?.id,\n\t\t\tthinkingLevel: localRuntime.session.thinkingLevel,\n\t\t});\n\t\tconst remoteSession = createRemoteSessionProxy(localRuntime.session, client, opened.state);\n\t\treturn new RemoteInteractiveRuntime(localRuntime, remoteSession, client) as unknown as AgentSessionRuntime;\n\t} catch (cause) {\n\t\tawait client.stop().catch(() => {});\n\t\toptions.onWarning?.({\n\t\t\ttype: \"interactive_host_fallback\",\n\t\t\tmessage: `${INTERACTIVE_HOST_FALLBACK_WARNING}: ${cause instanceof Error ? cause.message : String(cause)}`,\n\t\t\tcause,\n\t\t});\n\t\treturn localRuntime;\n\t}\n}\n\nclass RemoteInteractiveRuntime {\n\treadonly #local: AgentSessionRuntime;\n\treadonly #session: AgentSession;\n\treadonly #client: RpcClient;\n\t#rebindSession: (() => Promise<void>) | undefined;\n\t#beforeSessionInvalidate: (() => void) | undefined;\n\n\tconstructor(local: AgentSessionRuntime, session: AgentSession, client: RpcClient) {\n\t\tthis.#local = local;\n\t\tthis.#session = session;\n\t\tthis.#client = client;\n\t}\n\n\tget session(): AgentSession {\n\t\treturn this.#session;\n\t}\n\tget services(): AgentSessionRuntime[\"services\"] {\n\t\treturn this.#local.services;\n\t}\n\tget cwd(): string {\n\t\treturn this.#local.cwd;\n\t}\n\tget diagnostics(): readonly AgentSessionRuntimeDiagnostic[] {\n\t\treturn this.#local.diagnostics;\n\t}\n\tget modelFallbackMessage(): string | undefined {\n\t\treturn this.#local.modelFallbackMessage;\n\t}\n\tget launchProfile(): AgentSessionRuntime[\"launchProfile\"] {\n\t\treturn this.#local.launchProfile;\n\t}\n\tsetBeforeSessionInvalidate(callback?: () => void): void {\n\t\tthis.#beforeSessionInvalidate = callback;\n\t}\n\tsetRebindSession(callback?: () => Promise<void>): void {\n\t\tthis.#rebindSession = callback;\n\t}\n\tasync dispose(): Promise<void> {\n\t\tawait this.#client.closeSession();\n\t\tawait this.#client.stop();\n\t\tawait this.#local.dispose();\n\t}\n\tasync newSession(): Promise<{ cancelled: boolean }> {\n\t\tthis.#beforeSessionInvalidate?.();\n\t\tconst result = await this.#client.newSession();\n\t\tif (!result.cancelled) await this.#rebindSession?.();\n\t\treturn result;\n\t}\n\tasync switchSession(sessionPath: string): Promise<{ cancelled: boolean }> {\n\t\tthis.#beforeSessionInvalidate?.();\n\t\tconst result = await this.#client.switchSession(sessionPath);\n\t\tif (!result.cancelled) await this.#rebindSession?.();\n\t\treturn result;\n\t}\n\tasync fork(entryId: string): Promise<{ cancelled: boolean; selectedText?: string }> {\n\t\tthis.#beforeSessionInvalidate?.();\n\t\tconst result = await this.#client.fork(entryId);\n\t\tif (!result.cancelled) await this.#rebindSession?.();\n\t\treturn { cancelled: result.cancelled, selectedText: result.text };\n\t}\n\tasync importFromJsonl(): Promise<{ cancelled: boolean }> {\n\t\tthrow new Error(\"Session import is not available while connected to the shared host\");\n\t}\n}\n\nfunction createRemoteSessionProxy(\n\tlocal: AgentSession,\n\tclient: RpcClient,\n\tinitialState: ReturnType<typeof stateFromRpc>,\n): AgentSession {\n\tlet state = initialState;\n\tlet streamingAssistant: Extract<AgentSession[\"messages\"][number], { role: \"assistant\" }> | undefined;\n\tconst listeners = new Set<AgentSessionEventListener>();\n\tclient.onEvent((wireEvent) => {\n\t\tif (wireEvent.type === \"agent_settled\") state = { ...state, isStreaming: false };\n\t\tif (wireEvent.type === \"agent_start\") state = { ...state, isStreaming: true };\n\t\tif (wireEvent.type === \"model_changed\") {\n\t\t\tstate = { ...state, model: wireEvent.model, thinkingLevel: wireEvent.thinkingLevel };\n\t\t}\n\t\tif (wireEvent.type === \"thinking_level_changed\") state = { ...state, thinkingLevel: wireEvent.level };\n\t\tif (wireEvent.type === \"message_start\") {\n\t\t\tif (wireEvent.message.role === \"assistant\") streamingAssistant = structuredClone(wireEvent.message);\n\t\t\tlocal.agent.state.messages.push(structuredClone(wireEvent.message));\n\t\t}\n\t\tif (wireEvent.type === \"message_end\") {\n\t\t\tif (wireEvent.message.role === \"assistant\") streamingAssistant = structuredClone(wireEvent.message);\n\t\t\tconst messages = local.agent.state.messages;\n\t\t\tconst previous = messages.at(-1);\n\t\t\tif (previous?.role === wireEvent.message.role)\n\t\t\t\tmessages[messages.length - 1] = structuredClone(wireEvent.message);\n\t\t}\n\t\tconst event = hydrateMessageUpdate(wireEvent, streamingAssistant);\n\t\tfor (const listener of listeners) listener(event);\n\t});\n\tconst session = new Proxy(local, {\n\t\tget(target, property, receiver) {\n\t\t\tif (property === \"prompt\")\n\t\t\t\treturn (message: string, options?: Parameters<AgentSession[\"prompt\"]>[1]) =>\n\t\t\t\t\tclient.prompt(message, options?.images);\n\t\t\tif (property === \"abort\") return () => client.abort();\n\t\t\tif (property === \"steer\")\n\t\t\t\treturn (message: string, images?: Parameters<AgentSession[\"steer\"]>[1]) => client.steer(message, images);\n\t\t\tif (property === \"followUp\")\n\t\t\t\treturn (message: string, images?: Parameters<AgentSession[\"followUp\"]>[1]) =>\n\t\t\t\t\tclient.followUp(message, images);\n\t\t\tif (property === \"waitForIdle\") return () => client.waitForIdle();\n\t\t\tif (property === \"getLastAssistantText\") return () => target.getLastAssistantText();\n\t\t\tif (property === \"setModel\")\n\t\t\t\treturn async (model: NonNullable<AgentSession[\"model\"]>) => {\n\t\t\t\t\tawait client.setModel(model.provider, model.id);\n\t\t\t\t};\n\t\t\tif (property === \"cycleModel\") return () => client.cycleModel();\n\t\t\tif (property === \"setThinkingLevel\")\n\t\t\t\treturn (level: AgentSession[\"thinkingLevel\"]) => void client.setThinkingLevel(level);\n\t\t\tif (property === \"cycleThinkingLevel\")\n\t\t\t\treturn () => client.cycleThinkingLevel().then((result) => result?.level);\n\t\t\tif (property === \"getAvailableThinkingLevels\") return () => client.getAvailableThinkingLevels();\n\t\t\tif (property === \"setSteeringMode\")\n\t\t\t\treturn (mode: AgentSession[\"steeringMode\"]) => void client.setSteeringMode(mode);\n\t\t\tif (property === \"setFollowUpMode\")\n\t\t\t\treturn (mode: AgentSession[\"followUpMode\"]) => void client.setFollowUpMode(mode);\n\t\t\tif (property === \"compact\") return (instructions?: string) => client.compact(instructions);\n\t\t\tif (property === \"setAutoCompactionEnabled\")\n\t\t\t\treturn (enabled: boolean) => void client.setAutoCompaction(enabled);\n\t\t\tif (property === \"executeBash\") return (command: string) => client.bash(command);\n\t\t\tif (property === \"abortBash\") return () => void client.abortBash();\n\t\t\tif (property === \"getSessionStats\") return () => client.getSessionStats();\n\t\t\tif (property === \"exportToHtml\")\n\t\t\t\treturn (outputPath?: string) => client.exportHtml(outputPath).then((result) => result.path);\n\t\t\tif (property === \"setSessionName\") return (name: string) => void client.setSessionName(name);\n\t\t\tif (property === \"getUserMessagesForForking\") return () => client.getForkMessages();\n\t\t\tif (property === \"subscribe\")\n\t\t\t\treturn (listener: AgentSessionEventListener) => {\n\t\t\t\t\tlisteners.add(listener);\n\t\t\t\t\tconst localUnsubscribe = target.subscribe(listener);\n\t\t\t\t\treturn () => {\n\t\t\t\t\t\tlisteners.delete(listener);\n\t\t\t\t\t\tlocalUnsubscribe();\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\tif (property === \"isStreaming\") return state.isStreaming;\n\t\t\tif (property === \"sessionFile\") return state.sessionFile;\n\t\t\tif (property === \"sessionId\") return state.sessionId;\n\t\t\tif (property === \"messages\") return target.messages;\n\t\t\tif (property === \"model\") return state.model ?? target.model;\n\t\t\tif (property === \"thinkingLevel\") return state.thinkingLevel;\n\t\t\treturn Reflect.get(target, property, receiver);\n\t\t},\n\t});\n\treturn session;\n}\n\nfunction hydrateMessageUpdate(\n\tevent: RpcClientEvent,\n\tstreamingAssistant: Extract<AgentSession[\"messages\"][number], { role: \"assistant\" }> | undefined,\n): AgentSessionEvent {\n\tif (event.type !== \"message_update\" || !streamingAssistant) return event as unknown as AgentSessionEvent;\n\tconst update = event.assistantMessageEvent;\n\tif (update.type !== \"text_delta\" && update.type !== \"thinking_delta\" && update.type !== \"toolcall_delta\") {\n\t\treturn event as unknown as AgentSessionEvent;\n\t}\n\tconst content = streamingAssistant.content[update.contentIndex];\n\tif (update.type === \"text_delta\" && content?.type === \"text\") content.text += update.delta;\n\tif (update.type === \"thinking_delta\" && content?.type === \"thinking\") content.thinking += update.delta;\n\tif (update.type === \"toolcall_delta\" && content?.type === \"toolCall\") {\n\t\tconst raw = JSON.stringify(content.arguments) + update.delta;\n\t\ttry {\n\t\t\tconst parsed: unknown = JSON.parse(raw);\n\t\t\tif (typeof parsed === \"object\" && parsed !== null && !Array.isArray(parsed)) {\n\t\t\t\tcontent.arguments = parsed as Record<string, unknown>;\n\t\t\t}\n\t\t} catch {\n\t\t\t// Keep the last valid arguments until the next complete update.\n\t\t}\n\t}\n\tstreamingAssistant.usage = event.usage;\n\treturn {\n\t\ttype: \"message_update\",\n\t\tmessage: structuredClone(streamingAssistant),\n\t\tassistantMessageEvent: { ...update, partial: structuredClone(streamingAssistant) },\n\t} as AgentSessionEvent;\n}\n\nfunction stateFromRpc(state: {\n\tmodel?: AgentSession[\"model\"];\n\tthinkingLevel: AgentSession[\"thinkingLevel\"];\n\tisStreaming: boolean;\n\tsessionFile?: string;\n\tsessionId: string;\n}) {\n\treturn state;\n}\n\nexport function isInteractiveHostEvent(event: RpcClientEvent): event is Extract<RpcClientEvent, { type: string }> {\n\treturn typeof event === \"object\" && event !== null && \"type\" in event;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactive-mode.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ import { envValue } from "../../core/brand.js";
17
17
  import { CACHE_TTL_MS, collectCacheMisses, computeCacheWaste, detectCacheMiss, } from "../../core/cache-stats.js";
18
18
  import { buildNoticeBox } from "../../core/extensions/notice/index.js";
19
19
  import { FooterDataProvider } from "../../core/footer-data-provider.js";
20
- import { appendHiddenTuiStdout } from "../../core/hidden-stdout-log.js";
20
+ import { appendHiddenTuiStdout, appendUncaughtCrashLog } from "../../core/hidden-stdout-log.js";
21
21
  import { buildHighReasoningWarning } from "../../core/high-reasoning-warning.js";
22
22
  import { configureHttpDispatcher, formatHttpIdleTimeoutMs } from "../../core/http-dispatcher.js";
23
23
  import { KeybindingsManager } from "../../core/keybindings.js";
@@ -143,6 +143,8 @@ function isCompactionCostNotice(item) {
143
143
  return "type" in item && item.type === "compaction_cost";
144
144
  }
145
145
  const DEAD_TERMINAL_ERROR_CODES = new Set(["EIO", "EPIPE", "ENOTCONN"]);
146
+ // Bun's macOS tty shim can report a dead terminal as raw positive errno 5 without a string code.
147
+ const EIO_ERRNO = 5;
146
148
  const DEFAULT_RETRY_STATUS_REFRESH_INTERVAL_MS = 80;
147
149
  const LARGE_SESSION_RETRY_STATUS_REFRESH_INTERVAL_MS = 60_000;
148
150
  const DEFAULT_WORKING_STATUS_REFRESH_INTERVAL_MS = 600;
@@ -207,11 +209,20 @@ function formatWorkingStatusShimmerText(text, intensity) {
207
209
  return `\x1b[1m\x1b[38;2;${color.r};${color.g};${color.b}m${text}\x1b[39m\x1b[22m`;
208
210
  }
209
211
  function isDeadTerminalError(error) {
210
- if (!error || typeof error !== "object" || !("code" in error)) {
212
+ if (!error || typeof error !== "object") {
211
213
  return false;
212
214
  }
213
- const code = error.code;
214
- return code !== undefined && DEAD_TERMINAL_ERROR_CODES.has(code);
215
+ if ("code" in error) {
216
+ const code = error.code;
217
+ if (code !== undefined && DEAD_TERMINAL_ERROR_CODES.has(code)) {
218
+ return true;
219
+ }
220
+ }
221
+ if ("errno" in error) {
222
+ const errno = error.errno;
223
+ return errno === EIO_ERRNO || errno === -EIO_ERRNO;
224
+ }
225
+ return false;
215
226
  }
216
227
  const ANTHROPIC_SUBSCRIPTION_AUTH_WARNING = "Anthropic subscription auth is active. Third-party harness usage draws from extra usage and is billed per token, not your Claude plan limits. Manage extra usage at https://claude.ai/settings/usage. Disable this warning in /settings.";
217
228
  function isAnthropicSubscriptionAuthKey(apiKey) {
@@ -4032,8 +4043,12 @@ export class InteractiveMode {
4032
4043
  this.ui.requestRender();
4033
4044
  const removePending = () => {
4034
4045
  const componentIndex = this.chatContainer.children.indexOf(component);
4035
- const insertionIndex = spacer ? this.chatContainer.children.indexOf(spacer) : componentIndex;
4036
- if (spacer)
4046
+ if (componentIndex === -1) {
4047
+ return this.chatContainer.children.length;
4048
+ }
4049
+ const spacerIndex = spacer ? this.chatContainer.children.indexOf(spacer) : -1;
4050
+ const insertionIndex = spacerIndex >= 0 ? spacerIndex : componentIndex;
4051
+ if (spacerIndex >= 0 && spacer)
4037
4052
  this.chatContainer.removeChild(spacer);
4038
4053
  this.chatContainer.removeChild(component);
4039
4054
  return insertionIndex;
@@ -4479,8 +4494,17 @@ export class InteractiveMode {
4479
4494
  }
4480
4495
  process.exit(0);
4481
4496
  }
4482
- emergencyTerminalExit() {
4497
+ emergencyTerminalExit(crash) {
4483
4498
  this.isShuttingDown = true;
4499
+ // This exit is silent by design (the terminal is gone, so a banner would go
4500
+ // nowhere), which makes the debug log the ONLY surface that can record this
4501
+ // crash class — exactly the EIO case that left the 2026-08-26 diagnosis with no
4502
+ // evidence. Write before the cleanup below, which is unguarded and could throw.
4503
+ // A logging failure must never alter the exit path.
4504
+ try {
4505
+ appendUncaughtCrashLog(crash.origin, crash.error);
4506
+ }
4507
+ catch { }
4484
4508
  this.unregisterSignalHandlers();
4485
4509
  killTrackedDetachedChildren();
4486
4510
  // The terminal is gone. Do not run normal shutdown because TUI and
@@ -4502,6 +4526,13 @@ export class InteractiveMode {
4502
4526
  if (this.isShuttingDown) {
4503
4527
  process.exit(1);
4504
4528
  }
4529
+ if (isDeadTerminalError(error)) {
4530
+ // The terminal died under the session (e.g. an stdin read EIO after
4531
+ // the controlling terminal vanished or this pgrp lost the tty
4532
+ // foreground). Same handling as terminal write errors: exit silently
4533
+ // instead of printing a crash banner to a terminal that is gone.
4534
+ this.emergencyTerminalExit({ origin: `dead-terminal ${origin}`, error });
4535
+ }
4505
4536
  if (isRecoverableInspectorVmImportError(error, origin)) {
4506
4537
  this.showWarning(INSPECTOR_VM_IMPORT_WARNING);
4507
4538
  return;
@@ -4519,6 +4550,13 @@ export class InteractiveMode {
4519
4550
  this.ui.stop();
4520
4551
  }
4521
4552
  catch { }
4553
+ // Record the crash before the terminal handoff: the banner below only reaches
4554
+ // terminal scrollback, which is gone when the terminal is closed or is itself
4555
+ // the thing that failed. A logging failure must never alter the crash path.
4556
+ try {
4557
+ appendUncaughtCrashLog(origin, error);
4558
+ }
4559
+ catch { }
4522
4560
  restoreInteractiveStderr();
4523
4561
  console.error(`${APP_NAME} exiting due to uncaughtException:`);
4524
4562
  console.error(error);
@@ -4552,7 +4590,7 @@ export class InteractiveMode {
4552
4590
  }
4553
4591
  const terminalErrorHandler = (error) => {
4554
4592
  if (isDeadTerminalError(error)) {
4555
- this.emergencyTerminalExit();
4593
+ this.emergencyTerminalExit({ origin: "dead-terminal stdio error", error });
4556
4594
  }
4557
4595
  throw error;
4558
4596
  };