@qduc/term2 0.15.0 → 0.16.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 (587) hide show
  1. package/README.md +324 -316
  2. package/dist/agent.d.ts +3 -0
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +15 -63
  5. package/dist/agent.js.map +1 -1
  6. package/dist/app.d.ts +1 -1
  7. package/dist/app.d.ts.map +1 -1
  8. package/dist/app.js +129 -19
  9. package/dist/app.js.map +1 -1
  10. package/dist/cli.js +25 -16
  11. package/dist/cli.js.map +1 -1
  12. package/dist/commands/compact-command.d.ts.map +1 -1
  13. package/dist/commands/compact-command.js +4 -0
  14. package/dist/commands/compact-command.js.map +1 -1
  15. package/dist/commands/effort-command.js +1 -1
  16. package/dist/commands/effort-command.js.map +1 -1
  17. package/dist/commands/guarded-settings-command.d.ts.map +1 -1
  18. package/dist/commands/guarded-settings-command.js +4 -8
  19. package/dist/commands/guarded-settings-command.js.map +1 -1
  20. package/dist/commands/model-command.js +1 -1
  21. package/dist/commands/model-command.js.map +1 -1
  22. package/dist/commands/resume-command.d.ts +10 -0
  23. package/dist/commands/resume-command.d.ts.map +1 -0
  24. package/dist/commands/resume-command.js +40 -0
  25. package/dist/commands/resume-command.js.map +1 -0
  26. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  27. package/dist/components/ErrorBoundary.js +5 -4
  28. package/dist/components/ErrorBoundary.js.map +1 -1
  29. package/dist/components/InputBox.d.ts +2 -0
  30. package/dist/components/InputBox.d.ts.map +1 -1
  31. package/dist/components/InputBox.js +56 -18
  32. package/dist/components/InputBox.js.map +1 -1
  33. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  34. package/dist/components/MarkdownRenderer.js +16 -15
  35. package/dist/components/MarkdownRenderer.js.map +1 -1
  36. package/dist/components/common/MenuContainer.d.ts +25 -2
  37. package/dist/components/common/MenuContainer.d.ts.map +1 -1
  38. package/dist/components/common/MenuContainer.js +35 -11
  39. package/dist/components/common/MenuContainer.js.map +1 -1
  40. package/dist/components/common/ScrollableTabBar.d.ts.map +1 -1
  41. package/dist/components/common/ScrollableTabBar.js +5 -4
  42. package/dist/components/common/ScrollableTabBar.js.map +1 -1
  43. package/dist/components/input/ApplicationInputSurface.d.ts +4 -5
  44. package/dist/components/input/ApplicationInputSurface.d.ts.map +1 -1
  45. package/dist/components/input/ApplicationInputSurface.js.map +1 -1
  46. package/dist/components/input/FirstRunSetupPrompt.d.ts.map +1 -1
  47. package/dist/components/input/FirstRunSetupPrompt.js +5 -4
  48. package/dist/components/input/FirstRunSetupPrompt.js.map +1 -1
  49. package/dist/components/input/MenuSurface.d.ts.map +1 -1
  50. package/dist/components/input/MenuSurface.js +10 -3
  51. package/dist/components/input/MenuSurface.js.map +1 -1
  52. package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
  53. package/dist/components/input/ModelMenuSession.js +2 -1
  54. package/dist/components/input/ModelMenuSession.js.map +1 -1
  55. package/dist/components/input/PendingQueueList.d.ts +2 -0
  56. package/dist/components/input/PendingQueueList.d.ts.map +1 -1
  57. package/dist/components/input/PendingQueueList.js +17 -14
  58. package/dist/components/input/PendingQueueList.js.map +1 -1
  59. package/dist/components/input/SettingsValueMenuSession.d.ts.map +1 -1
  60. package/dist/components/input/SettingsValueMenuSession.js +2 -1
  61. package/dist/components/input/SettingsValueMenuSession.js.map +1 -1
  62. package/dist/components/layout/BackgroundTaskManager.d.ts.map +1 -1
  63. package/dist/components/layout/BackgroundTaskManager.js +12 -11
  64. package/dist/components/layout/BackgroundTaskManager.js.map +1 -1
  65. package/dist/components/layout/BackgroundTasksPanel.d.ts +2 -2
  66. package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
  67. package/dist/components/layout/BackgroundTasksPanel.js +10 -9
  68. package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
  69. package/dist/components/layout/Banner.d.ts +0 -1
  70. package/dist/components/layout/Banner.d.ts.map +1 -1
  71. package/dist/components/layout/Banner.js +43 -73
  72. package/dist/components/layout/Banner.js.map +1 -1
  73. package/dist/components/layout/BottomArea.d.ts +6 -5
  74. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  75. package/dist/components/layout/BottomArea.js +17 -9
  76. package/dist/components/layout/BottomArea.js.map +1 -1
  77. package/dist/components/layout/DiffView.js +5 -5
  78. package/dist/components/layout/DiffView.js.map +1 -1
  79. package/dist/components/layout/StatusBar.d.ts +4 -1
  80. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  81. package/dist/components/layout/StatusBar.js +305 -95
  82. package/dist/components/layout/StatusBar.js.map +1 -1
  83. package/dist/components/layout/background-task-clock.d.ts +43 -0
  84. package/dist/components/layout/background-task-clock.d.ts.map +1 -0
  85. package/dist/components/layout/background-task-clock.js +46 -0
  86. package/dist/components/layout/background-task-clock.js.map +1 -0
  87. package/dist/components/menu/CopyMenu.d.ts.map +1 -1
  88. package/dist/components/menu/CopyMenu.js +4 -3
  89. package/dist/components/menu/CopyMenu.js.map +1 -1
  90. package/dist/components/menu/MentorPoolSelectionMenu.d.ts.map +1 -1
  91. package/dist/components/menu/MentorPoolSelectionMenu.js +28 -21
  92. package/dist/components/menu/MentorPoolSelectionMenu.js.map +1 -1
  93. package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
  94. package/dist/components/menu/ModelSelectionMenu.js +26 -13
  95. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  96. package/dist/components/menu/PathSelectionMenu.d.ts.map +1 -1
  97. package/dist/components/menu/PathSelectionMenu.js +4 -3
  98. package/dist/components/menu/PathSelectionMenu.js.map +1 -1
  99. package/dist/components/menu/ProviderSelectionMenu.d.ts.map +1 -1
  100. package/dist/components/menu/ProviderSelectionMenu.js +46 -26
  101. package/dist/components/menu/ProviderSelectionMenu.js.map +1 -1
  102. package/dist/components/menu/RewindMenu.d.ts.map +1 -1
  103. package/dist/components/menu/RewindMenu.js +4 -3
  104. package/dist/components/menu/RewindMenu.js.map +1 -1
  105. package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
  106. package/dist/components/menu/SettingsSelectionMenu.js +26 -26
  107. package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
  108. package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
  109. package/dist/components/menu/SettingsValueSelectionMenu.js +22 -20
  110. package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
  111. package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
  112. package/dist/components/menu/SkillSelectionMenu.js +33 -23
  113. package/dist/components/menu/SkillSelectionMenu.js.map +1 -1
  114. package/dist/components/menu/SlashCommandMenu.d.ts.map +1 -1
  115. package/dist/components/menu/SlashCommandMenu.js +11 -6
  116. package/dist/components/menu/SlashCommandMenu.js.map +1 -1
  117. package/dist/components/message/ChatMessage.js +2 -2
  118. package/dist/components/message/ChatMessage.js.map +1 -1
  119. package/dist/components/message/CodeContextSearchRenderer.d.ts.map +1 -1
  120. package/dist/components/message/CodeContextSearchRenderer.js +8 -11
  121. package/dist/components/message/CodeContextSearchRenderer.js.map +1 -1
  122. package/dist/components/message/CommandGroupSummary.d.ts.map +1 -1
  123. package/dist/components/message/CommandGroupSummary.js +15 -7
  124. package/dist/components/message/CommandGroupSummary.js.map +1 -1
  125. package/dist/components/message/CommandMessage.d.ts.map +1 -1
  126. package/dist/components/message/CommandMessage.js +111 -91
  127. package/dist/components/message/CommandMessage.js.map +1 -1
  128. package/dist/components/message/GrepRenderer.d.ts.map +1 -1
  129. package/dist/components/message/GrepRenderer.js +5 -8
  130. package/dist/components/message/GrepRenderer.js.map +1 -1
  131. package/dist/components/message/MemoryRenderer.d.ts +1 -0
  132. package/dist/components/message/MemoryRenderer.d.ts.map +1 -1
  133. package/dist/components/message/MemoryRenderer.js +19 -17
  134. package/dist/components/message/MemoryRenderer.js.map +1 -1
  135. package/dist/components/message/MessageList.d.ts +1 -2
  136. package/dist/components/message/MessageList.d.ts.map +1 -1
  137. package/dist/components/message/MessageList.js +12 -11
  138. package/dist/components/message/MessageList.js.map +1 -1
  139. package/dist/components/message/ReadFileRenderer.d.ts.map +1 -1
  140. package/dist/components/message/ReadFileRenderer.js +5 -6
  141. package/dist/components/message/ReadFileRenderer.js.map +1 -1
  142. package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
  143. package/dist/components/message/SubagentActivityMessage.js +17 -13
  144. package/dist/components/message/SubagentActivityMessage.js.map +1 -1
  145. package/dist/components/message/WebFetchRenderer.d.ts.map +1 -1
  146. package/dist/components/message/WebFetchRenderer.js +7 -11
  147. package/dist/components/message/WebFetchRenderer.js.map +1 -1
  148. package/dist/components/message/WebSearchRenderer.d.ts.map +1 -1
  149. package/dist/components/message/WebSearchRenderer.js +5 -10
  150. package/dist/components/message/WebSearchRenderer.js.map +1 -1
  151. package/dist/components/message/command-grouping.d.ts +29 -6
  152. package/dist/components/message/command-grouping.d.ts.map +1 -1
  153. package/dist/components/message/command-grouping.js +62 -20
  154. package/dist/components/message/command-grouping.js.map +1 -1
  155. package/dist/components/message/command-message-helpers.d.ts +5 -32
  156. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  157. package/dist/components/message/command-message-helpers.js +26 -8
  158. package/dist/components/message/command-message-helpers.js.map +1 -1
  159. package/dist/components/message/useCommandVisibility.d.ts.map +1 -1
  160. package/dist/components/message/useCommandVisibility.js +5 -4
  161. package/dist/components/message/useCommandVisibility.js.map +1 -1
  162. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  163. package/dist/components/prompt/ApprovalPrompt.js +190 -106
  164. package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
  165. package/dist/components/prompt/HandoffConfirmationPrompt.d.ts.map +1 -1
  166. package/dist/components/prompt/HandoffConfirmationPrompt.js +3 -2
  167. package/dist/components/prompt/HandoffConfirmationPrompt.js.map +1 -1
  168. package/dist/components/prompt/InputSurgeConfirmationPrompt.d.ts.map +1 -1
  169. package/dist/components/prompt/InputSurgeConfirmationPrompt.js +5 -4
  170. package/dist/components/prompt/InputSurgeConfirmationPrompt.js.map +1 -1
  171. package/dist/components/prompt/LargeUncachedConfirmationPrompt.d.ts.map +1 -1
  172. package/dist/components/prompt/LargeUncachedConfirmationPrompt.js +4 -3
  173. package/dist/components/prompt/LargeUncachedConfirmationPrompt.js.map +1 -1
  174. package/dist/components/prompt/ModeSwitchConfirmationPrompt.d.ts.map +1 -1
  175. package/dist/components/prompt/ModeSwitchConfirmationPrompt.js +4 -3
  176. package/dist/components/prompt/ModeSwitchConfirmationPrompt.js.map +1 -1
  177. package/dist/components/prompt/QueuePausedPrompt.d.ts.map +1 -1
  178. package/dist/components/prompt/QueuePausedPrompt.js +6 -5
  179. package/dist/components/prompt/QueuePausedPrompt.js.map +1 -1
  180. package/dist/components/prompt/StandardModeConfirmationPrompt.d.ts.map +1 -1
  181. package/dist/components/prompt/StandardModeConfirmationPrompt.js +3 -2
  182. package/dist/components/prompt/StandardModeConfirmationPrompt.js.map +1 -1
  183. package/dist/components/theme.d.ts +58 -3
  184. package/dist/components/theme.d.ts.map +1 -1
  185. package/dist/components/theme.js +84 -17
  186. package/dist/components/theme.js.map +1 -1
  187. package/dist/contracts/application-stream.d.ts +14 -0
  188. package/dist/contracts/application-stream.d.ts.map +1 -1
  189. package/dist/gateway/assertion.d.ts +4 -1
  190. package/dist/gateway/assertion.d.ts.map +1 -1
  191. package/dist/gateway/assertion.js +24 -2
  192. package/dist/gateway/assertion.js.map +1 -1
  193. package/dist/gateway/contracts.d.ts +21 -4
  194. package/dist/gateway/contracts.d.ts.map +1 -1
  195. package/dist/gateway/contracts.js +11 -0
  196. package/dist/gateway/contracts.js.map +1 -1
  197. package/dist/gateway/dynamic-workspace-registry.d.ts +76 -0
  198. package/dist/gateway/dynamic-workspace-registry.d.ts.map +1 -0
  199. package/dist/gateway/dynamic-workspace-registry.js +403 -0
  200. package/dist/gateway/dynamic-workspace-registry.js.map +1 -0
  201. package/dist/gateway/gateway.d.ts +24 -1
  202. package/dist/gateway/gateway.d.ts.map +1 -1
  203. package/dist/gateway/gateway.js +704 -21
  204. package/dist/gateway/gateway.js.map +1 -1
  205. package/dist/gateway/launcher-seam.d.ts +18 -0
  206. package/dist/gateway/launcher-seam.d.ts.map +1 -0
  207. package/dist/gateway/launcher-seam.js +43 -0
  208. package/dist/gateway/launcher-seam.js.map +1 -0
  209. package/dist/gateway/pairing.d.ts +25 -0
  210. package/dist/gateway/pairing.d.ts.map +1 -0
  211. package/dist/gateway/pairing.js +107 -0
  212. package/dist/gateway/pairing.js.map +1 -0
  213. package/dist/gateway/persistence/coordinator.d.ts +2 -0
  214. package/dist/gateway/persistence/coordinator.d.ts.map +1 -1
  215. package/dist/gateway/persistence/coordinator.js +13 -0
  216. package/dist/gateway/persistence/coordinator.js.map +1 -1
  217. package/dist/gateway/runtime-factory.d.ts +15 -6
  218. package/dist/gateway/runtime-factory.d.ts.map +1 -1
  219. package/dist/gateway/runtime-factory.js +38 -9
  220. package/dist/gateway/runtime-factory.js.map +1 -1
  221. package/dist/gateway/safe-log.d.ts.map +1 -1
  222. package/dist/gateway/safe-log.js +19 -0
  223. package/dist/gateway/safe-log.js.map +1 -1
  224. package/dist/gateway/server-session.d.ts.map +1 -1
  225. package/dist/gateway/server-session.js +36 -4
  226. package/dist/gateway/server-session.js.map +1 -1
  227. package/dist/gateway/server.d.ts +26 -3
  228. package/dist/gateway/server.d.ts.map +1 -1
  229. package/dist/gateway/server.js +105 -17
  230. package/dist/gateway/server.js.map +1 -1
  231. package/dist/gateway/settings-rpc.d.ts +95 -0
  232. package/dist/gateway/settings-rpc.d.ts.map +1 -0
  233. package/dist/gateway/settings-rpc.js +227 -0
  234. package/dist/gateway/settings-rpc.js.map +1 -0
  235. package/dist/gateway/trusted-clients.d.ts +27 -0
  236. package/dist/gateway/trusted-clients.d.ts.map +1 -0
  237. package/dist/gateway/trusted-clients.js +157 -0
  238. package/dist/gateway/trusted-clients.js.map +1 -0
  239. package/dist/gateway/worker-boundary.d.ts +6 -5
  240. package/dist/gateway/worker-boundary.d.ts.map +1 -1
  241. package/dist/gateway/worker-boundary.js +20 -10
  242. package/dist/gateway/worker-boundary.js.map +1 -1
  243. package/dist/gateway/workspace-admission.d.ts +11 -0
  244. package/dist/gateway/workspace-admission.d.ts.map +1 -1
  245. package/dist/gateway/workspace-admission.js +89 -16
  246. package/dist/gateway/workspace-admission.js.map +1 -1
  247. package/dist/gateway/workspace-boundary-probe.d.ts +18 -0
  248. package/dist/gateway/workspace-boundary-probe.d.ts.map +1 -0
  249. package/dist/gateway/workspace-boundary-probe.js +37 -0
  250. package/dist/gateway/workspace-boundary-probe.js.map +1 -0
  251. package/dist/hooks/conversation-ui-reducer.d.ts +6 -0
  252. package/dist/hooks/conversation-ui-reducer.d.ts.map +1 -1
  253. package/dist/hooks/conversation-ui-reducer.js +9 -1
  254. package/dist/hooks/conversation-ui-reducer.js.map +1 -1
  255. package/dist/hooks/settings-completion-config.d.ts.map +1 -1
  256. package/dist/hooks/settings-completion-config.js +11 -3
  257. package/dist/hooks/settings-completion-config.js.map +1 -1
  258. package/dist/hooks/use-app-commands.d.ts +6 -1
  259. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  260. package/dist/hooks/use-app-commands.js +22 -13
  261. package/dist/hooks/use-app-commands.js.map +1 -1
  262. package/dist/hooks/use-app-keyboard-shortcuts.d.ts +1 -3
  263. package/dist/hooks/use-app-keyboard-shortcuts.d.ts.map +1 -1
  264. package/dist/hooks/use-app-keyboard-shortcuts.js +11 -9
  265. package/dist/hooks/use-app-keyboard-shortcuts.js.map +1 -1
  266. package/dist/hooks/use-conversation.d.ts +8 -0
  267. package/dist/hooks/use-conversation.d.ts.map +1 -1
  268. package/dist/hooks/use-conversation.js +27 -18
  269. package/dist/hooks/use-conversation.js.map +1 -1
  270. package/dist/hooks/use-opencode-go-usage.d.ts +8 -0
  271. package/dist/hooks/use-opencode-go-usage.d.ts.map +1 -0
  272. package/dist/hooks/use-opencode-go-usage.js +45 -0
  273. package/dist/hooks/use-opencode-go-usage.js.map +1 -0
  274. package/dist/hooks/use-shell-mode.d.ts +3 -4
  275. package/dist/hooks/use-shell-mode.d.ts.map +1 -1
  276. package/dist/hooks/use-shell-mode.js +14 -12
  277. package/dist/hooks/use-shell-mode.js.map +1 -1
  278. package/dist/hooks/use-terminal-columns.d.ts +15 -0
  279. package/dist/hooks/use-terminal-columns.d.ts.map +1 -0
  280. package/dist/hooks/use-terminal-columns.js +45 -0
  281. package/dist/hooks/use-terminal-columns.js.map +1 -0
  282. package/dist/lib/agent-client.d.ts +2 -0
  283. package/dist/lib/agent-client.d.ts.map +1 -1
  284. package/dist/lib/agent-client.js +1 -0
  285. package/dist/lib/agent-client.js.map +1 -1
  286. package/dist/lib/agent-configuration.d.ts +3 -0
  287. package/dist/lib/agent-configuration.d.ts.map +1 -1
  288. package/dist/lib/agent-configuration.js +4 -0
  289. package/dist/lib/agent-configuration.js.map +1 -1
  290. package/dist/lib/agent-factory.d.ts +3 -0
  291. package/dist/lib/agent-factory.d.ts.map +1 -1
  292. package/dist/lib/agent-factory.js +9 -2
  293. package/dist/lib/agent-factory.js.map +1 -1
  294. package/dist/lib/harness-input-idle.d.ts.map +1 -1
  295. package/dist/lib/harness-input-idle.js +1 -1
  296. package/dist/lib/harness-input-idle.js.map +1 -1
  297. package/dist/non-interactive.d.ts.map +1 -1
  298. package/dist/non-interactive.js +9 -2
  299. package/dist/non-interactive.js.map +1 -1
  300. package/dist/prompts/approval-model.md +22 -0
  301. package/dist/prompts/gpt-5.6.md +3 -2
  302. package/dist/prompts/mentor-mode-stub.md +3 -0
  303. package/dist/prompts/orchestrator-mode-stub.md +3 -0
  304. package/dist/prompts/prefix-quality.test.ts +10 -0
  305. package/dist/prompts/prompt-constructor.d.ts +2 -0
  306. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  307. package/dist/prompts/prompt-constructor.js +23 -13
  308. package/dist/prompts/prompt-constructor.js.map +1 -1
  309. package/dist/prompts/prompt-constructor.test.ts +39 -5
  310. package/dist/prompts/prompt-constructor.ts +27 -15
  311. package/dist/prompts/prompt-profiles.d.ts +1 -3
  312. package/dist/prompts/prompt-profiles.d.ts.map +1 -1
  313. package/dist/prompts/prompt-profiles.js +2 -7
  314. package/dist/prompts/prompt-profiles.js.map +1 -1
  315. package/dist/prompts/prompt-profiles.ts +3 -16
  316. package/dist/prompts/session-browser.md +3 -0
  317. package/dist/prompts/subagent-delegation.d.ts +3 -2
  318. package/dist/prompts/subagent-delegation.d.ts.map +1 -1
  319. package/dist/prompts/subagent-delegation.js +9 -13
  320. package/dist/prompts/subagent-delegation.js.map +1 -1
  321. package/dist/prompts/subagent-delegation.ts +9 -13
  322. package/dist/providers/chained-wire-state.d.ts +7 -2
  323. package/dist/providers/chained-wire-state.d.ts.map +1 -1
  324. package/dist/providers/chained-wire-state.js +16 -7
  325. package/dist/providers/chained-wire-state.js.map +1 -1
  326. package/dist/providers/codex-auth.d.ts +2 -5
  327. package/dist/providers/codex-auth.d.ts.map +1 -1
  328. package/dist/providers/codex-auth.js +2 -0
  329. package/dist/providers/codex-auth.js.map +1 -1
  330. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  331. package/dist/providers/codex-responses-model.js +22 -3
  332. package/dist/providers/codex-responses-model.js.map +1 -1
  333. package/dist/providers/grok-auth.d.ts +2 -5
  334. package/dist/providers/grok-auth.d.ts.map +1 -1
  335. package/dist/providers/grok-auth.js +2 -0
  336. package/dist/providers/grok-auth.js.map +1 -1
  337. package/dist/providers/oauth-account-store.d.ts +5 -0
  338. package/dist/providers/oauth-account-store.d.ts.map +1 -1
  339. package/dist/providers/oauth-account-store.js +56 -5
  340. package/dist/providers/oauth-account-store.js.map +1 -1
  341. package/dist/providers/oauth-pkce.d.ts +8 -0
  342. package/dist/providers/oauth-pkce.d.ts.map +1 -1
  343. package/dist/providers/oauth-pkce.js +91 -19
  344. package/dist/providers/oauth-pkce.js.map +1 -1
  345. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  346. package/dist/providers/openai-compatible.provider.js +8 -1
  347. package/dist/providers/openai-compatible.provider.js.map +1 -1
  348. package/dist/providers/opencode-go-usage.d.ts +24 -0
  349. package/dist/providers/opencode-go-usage.d.ts.map +1 -0
  350. package/dist/providers/opencode-go-usage.js +37 -0
  351. package/dist/providers/opencode-go-usage.js.map +1 -0
  352. package/dist/providers/openrouter.provider.d.ts.map +1 -1
  353. package/dist/providers/openrouter.provider.js +8 -1
  354. package/dist/providers/openrouter.provider.js.map +1 -1
  355. package/dist/providers/responses-websocket-sessions.d.ts +1 -0
  356. package/dist/providers/responses-websocket-sessions.d.ts.map +1 -1
  357. package/dist/providers/responses-websocket-sessions.js +16 -2
  358. package/dist/providers/responses-websocket-sessions.js.map +1 -1
  359. package/dist/providers/retrying-model.d.ts.map +1 -1
  360. package/dist/providers/retrying-model.js +31 -3
  361. package/dist/providers/retrying-model.js.map +1 -1
  362. package/dist/services/agent-runtime/application-run-loop.d.ts +5 -1
  363. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  364. package/dist/services/agent-runtime/application-run-loop.js +229 -149
  365. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  366. package/dist/services/agent-runtime/generation-guard.d.ts +39 -25
  367. package/dist/services/agent-runtime/generation-guard.d.ts.map +1 -1
  368. package/dist/services/agent-runtime/generation-guard.js +98 -100
  369. package/dist/services/agent-runtime/generation-guard.js.map +1 -1
  370. package/dist/services/agent-runtime/run-budget.d.ts +1 -1
  371. package/dist/services/agent-runtime/run-budget.d.ts.map +1 -1
  372. package/dist/services/agent-runtime/run-budget.js +4 -0
  373. package/dist/services/agent-runtime/run-budget.js.map +1 -1
  374. package/dist/services/agent-stream.d.ts.map +1 -1
  375. package/dist/services/agent-stream.js +1 -0
  376. package/dist/services/agent-stream.js.map +1 -1
  377. package/dist/services/conversation/conversation-adapter.d.ts +13 -2
  378. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  379. package/dist/services/conversation/conversation-adapter.js +35 -7
  380. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  381. package/dist/services/conversation/conversation-admission-workflow.d.ts +3 -2
  382. package/dist/services/conversation/conversation-admission-workflow.d.ts.map +1 -1
  383. package/dist/services/conversation/conversation-admission-workflow.js +6 -1
  384. package/dist/services/conversation/conversation-admission-workflow.js.map +1 -1
  385. package/dist/services/conversation/conversation-events.d.ts +43 -2
  386. package/dist/services/conversation/conversation-events.d.ts.map +1 -1
  387. package/dist/services/conversation/conversation-orchestrator.d.ts +14 -1
  388. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  389. package/dist/services/conversation/conversation-orchestrator.js +142 -11
  390. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  391. package/dist/services/conversation/conversation-orchestrator.types.d.ts +3 -1
  392. package/dist/services/conversation/conversation-orchestrator.types.d.ts.map +1 -1
  393. package/dist/services/conversation/conversation-persistence.d.ts +22 -1
  394. package/dist/services/conversation/conversation-persistence.d.ts.map +1 -1
  395. package/dist/services/conversation/conversation-persistence.js +61 -0
  396. package/dist/services/conversation/conversation-persistence.js.map +1 -1
  397. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  398. package/dist/services/conversation/conversation-service.js +45 -29
  399. package/dist/services/conversation/conversation-service.js.map +1 -1
  400. package/dist/services/conversation/session-audit.d.ts +70 -0
  401. package/dist/services/conversation/session-audit.d.ts.map +1 -0
  402. package/dist/services/conversation/session-audit.js +164 -0
  403. package/dist/services/conversation/session-audit.js.map +1 -0
  404. package/dist/services/conversation/session-browser.d.ts +46 -0
  405. package/dist/services/conversation/session-browser.d.ts.map +1 -0
  406. package/dist/services/conversation/session-browser.js +380 -0
  407. package/dist/services/conversation/session-browser.js.map +1 -0
  408. package/dist/services/input-surge-approval.d.ts +21 -0
  409. package/dist/services/input-surge-approval.d.ts.map +1 -0
  410. package/dist/services/input-surge-approval.js +42 -0
  411. package/dist/services/input-surge-approval.js.map +1 -0
  412. package/dist/services/large-uncached-input-guard.js +4 -4
  413. package/dist/services/large-uncached-input-guard.js.map +1 -1
  414. package/dist/services/logging/assistant-turn-journal.d.ts +15 -0
  415. package/dist/services/logging/assistant-turn-journal.d.ts.map +1 -1
  416. package/dist/services/logging/assistant-turn-journal.js +27 -0
  417. package/dist/services/logging/assistant-turn-journal.js.map +1 -1
  418. package/dist/services/memory/memory-capabilities.js +2 -2
  419. package/dist/services/memory/memory-search.d.ts +16 -0
  420. package/dist/services/memory/memory-search.d.ts.map +1 -0
  421. package/dist/services/memory/memory-search.js +55 -0
  422. package/dist/services/memory/memory-search.js.map +1 -0
  423. package/dist/services/memory/memory-store.d.ts +12 -0
  424. package/dist/services/memory/memory-store.d.ts.map +1 -1
  425. package/dist/services/memory/memory-store.js +14 -35
  426. package/dist/services/memory/memory-store.js.map +1 -1
  427. package/dist/services/mode-notices.d.ts +11 -0
  428. package/dist/services/mode-notices.d.ts.map +1 -1
  429. package/dist/services/mode-notices.js +37 -3
  430. package/dist/services/mode-notices.js.map +1 -1
  431. package/dist/services/queue/queue-controller.d.ts +13 -0
  432. package/dist/services/queue/queue-controller.d.ts.map +1 -1
  433. package/dist/services/queue/queue-controller.js +32 -1
  434. package/dist/services/queue/queue-controller.js.map +1 -1
  435. package/dist/services/retry/in-loop-model-retry.d.ts +12 -0
  436. package/dist/services/retry/in-loop-model-retry.d.ts.map +1 -0
  437. package/dist/services/retry/in-loop-model-retry.js +115 -0
  438. package/dist/services/retry/in-loop-model-retry.js.map +1 -0
  439. package/dist/services/retry/retry-classifier.d.ts.map +1 -1
  440. package/dist/services/retry/retry-classifier.js +18 -12
  441. package/dist/services/retry/retry-classifier.js.map +1 -1
  442. package/dist/services/retry/retry-error-classification.d.ts.map +1 -1
  443. package/dist/services/retry/retry-error-classification.js +10 -6
  444. package/dist/services/retry/retry-error-classification.js.map +1 -1
  445. package/dist/services/retry/upstream-retry-policy.d.ts.map +1 -1
  446. package/dist/services/retry/upstream-retry-policy.js +40 -7
  447. package/dist/services/retry/upstream-retry-policy.js.map +1 -1
  448. package/dist/services/runtime-setting-router.d.ts.map +1 -1
  449. package/dist/services/runtime-setting-router.js +7 -2
  450. package/dist/services/runtime-setting-router.js.map +1 -1
  451. package/dist/services/session/background-check-in-scheduler.d.ts +44 -0
  452. package/dist/services/session/background-check-in-scheduler.d.ts.map +1 -0
  453. package/dist/services/session/background-check-in-scheduler.js +88 -0
  454. package/dist/services/session/background-check-in-scheduler.js.map +1 -0
  455. package/dist/services/session/background-task-control.js +4 -1
  456. package/dist/services/session/background-task-control.js.map +1 -1
  457. package/dist/services/session/initial-input-preparer.d.ts +2 -1
  458. package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
  459. package/dist/services/session/initial-input-preparer.js +3 -1
  460. package/dist/services/session/initial-input-preparer.js.map +1 -1
  461. package/dist/services/session/repetition-detector.d.ts +0 -4
  462. package/dist/services/session/repetition-detector.d.ts.map +1 -1
  463. package/dist/services/session/repetition-detector.js +0 -7
  464. package/dist/services/session/repetition-detector.js.map +1 -1
  465. package/dist/services/session/session-composition.d.ts +6 -2
  466. package/dist/services/session/session-composition.d.ts.map +1 -1
  467. package/dist/services/session/session-composition.js +99 -29
  468. package/dist/services/session/session-composition.js.map +1 -1
  469. package/dist/services/session/session-lifecycle.d.ts +8 -0
  470. package/dist/services/session/session-lifecycle.d.ts.map +1 -1
  471. package/dist/services/session/session-lifecycle.js +4 -0
  472. package/dist/services/session/session-lifecycle.js.map +1 -1
  473. package/dist/services/session/session-stream-processor.d.ts.map +1 -1
  474. package/dist/services/session/session-stream-processor.js +5 -15
  475. package/dist/services/session/session-stream-processor.js.map +1 -1
  476. package/dist/services/session/turn-attempt-factory.d.ts +2 -1
  477. package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
  478. package/dist/services/session/turn-attempt-factory.js +1 -0
  479. package/dist/services/session/turn-attempt-factory.js.map +1 -1
  480. package/dist/services/session/turn-attempt.d.ts +3 -0
  481. package/dist/services/session/turn-attempt.d.ts.map +1 -1
  482. package/dist/services/session/turn-attempt.js +5 -0
  483. package/dist/services/session/turn-attempt.js.map +1 -1
  484. package/dist/services/session/turn-coordinator.d.ts +1 -1
  485. package/dist/services/session/turn-coordinator.d.ts.map +1 -1
  486. package/dist/services/session/turn-workflow.d.ts.map +1 -1
  487. package/dist/services/session/turn-workflow.js +4 -1
  488. package/dist/services/session/turn-workflow.js.map +1 -1
  489. package/dist/services/settings/settings-schema.d.ts +27 -3
  490. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  491. package/dist/services/settings/settings-schema.js +35 -11
  492. package/dist/services/settings/settings-schema.js.map +1 -1
  493. package/dist/services/settings/settings-service.d.ts +9 -0
  494. package/dist/services/settings/settings-service.d.ts.map +1 -1
  495. package/dist/services/settings/settings-service.js +40 -0
  496. package/dist/services/settings/settings-service.js.map +1 -1
  497. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  498. package/dist/services/settings/settings-sources.js +5 -0
  499. package/dist/services/settings/settings-sources.js.map +1 -1
  500. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +2 -1
  501. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  502. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +6 -0
  503. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  504. package/dist/services/shell/shell-interaction-session.d.ts +4 -5
  505. package/dist/services/shell/shell-interaction-session.d.ts.map +1 -1
  506. package/dist/services/shell/shell-interaction-session.js +8 -20
  507. package/dist/services/shell/shell-interaction-session.js.map +1 -1
  508. package/dist/services/stream-event-processor.d.ts.map +1 -1
  509. package/dist/services/stream-event-processor.js +15 -0
  510. package/dist/services/stream-event-processor.js.map +1 -1
  511. package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
  512. package/dist/services/subagents/mentor-runner.js +2 -0
  513. package/dist/services/subagents/mentor-runner.js.map +1 -1
  514. package/dist/services/subagents/nested-runner.d.ts.map +1 -1
  515. package/dist/services/subagents/nested-runner.js +34 -1
  516. package/dist/services/subagents/nested-runner.js.map +1 -1
  517. package/dist/services/subagents/subagent-async-registry.js +1 -1
  518. package/dist/services/subagents/subagent-async-registry.js.map +1 -1
  519. package/dist/services/subagents/subagent-notification-store.d.ts +28 -1
  520. package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -1
  521. package/dist/services/subagents/subagent-notification-store.js +11 -0
  522. package/dist/services/subagents/subagent-notification-store.js.map +1 -1
  523. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  524. package/dist/services/subagents/tool-policy.js +10 -5
  525. package/dist/services/subagents/tool-policy.js.map +1 -1
  526. package/dist/services/subagents/utils.d.ts +2 -0
  527. package/dist/services/subagents/utils.d.ts.map +1 -1
  528. package/dist/services/subagents/utils.js +29 -0
  529. package/dist/services/subagents/utils.js.map +1 -1
  530. package/dist/services/tool-execution-ledger.d.ts.map +1 -1
  531. package/dist/services/tool-execution-ledger.js +5 -1
  532. package/dist/services/tool-execution-ledger.js.map +1 -1
  533. package/dist/tools/agent/ask-user.d.ts.map +1 -1
  534. package/dist/tools/agent/ask-user.js +2 -0
  535. package/dist/tools/agent/ask-user.js.map +1 -1
  536. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  537. package/dist/tools/agent/run-subagent.js +40 -24
  538. package/dist/tools/agent/run-subagent.js.map +1 -1
  539. package/dist/tools/memory/memory-tools.d.ts.map +1 -1
  540. package/dist/tools/memory/memory-tools.js +322 -59
  541. package/dist/tools/memory/memory-tools.js.map +1 -1
  542. package/dist/tools/session-browser/session-browser-tools.d.ts +4 -0
  543. package/dist/tools/session-browser/session-browser-tools.d.ts.map +1 -0
  544. package/dist/tools/session-browser/session-browser-tools.js +47 -0
  545. package/dist/tools/session-browser/session-browser-tools.js.map +1 -0
  546. package/dist/tools/system/shell.d.ts.map +1 -1
  547. package/dist/tools/system/shell.js +7 -0
  548. package/dist/tools/system/shell.js.map +1 -1
  549. package/dist/tools/types.d.ts +4 -0
  550. package/dist/tools/types.d.ts.map +1 -1
  551. package/dist/tools/types.js.map +1 -1
  552. package/dist/utils/busy-turn-guard.d.ts +17 -0
  553. package/dist/utils/busy-turn-guard.d.ts.map +1 -0
  554. package/dist/utils/busy-turn-guard.js +24 -0
  555. package/dist/utils/busy-turn-guard.js.map +1 -0
  556. package/dist/utils/conversation/conversation-event-handler.d.ts.map +1 -1
  557. package/dist/utils/conversation/conversation-event-handler.js +28 -7
  558. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  559. package/dist/utils/output/bounded-json.d.ts +33 -0
  560. package/dist/utils/output/bounded-json.d.ts.map +1 -0
  561. package/dist/utils/output/bounded-json.js +59 -0
  562. package/dist/utils/output/bounded-json.js.map +1 -0
  563. package/dist/utils/output/output-trim.d.ts.map +1 -1
  564. package/dist/utils/output/output-trim.js +7 -7
  565. package/dist/utils/output/output-trim.js.map +1 -1
  566. package/dist/utils/output/text-snippet.d.ts +6 -0
  567. package/dist/utils/output/text-snippet.d.ts.map +1 -0
  568. package/dist/utils/output/text-snippet.js +106 -0
  569. package/dist/utils/output/text-snippet.js.map +1 -0
  570. package/dist/utils/resume-list.d.ts +3 -1
  571. package/dist/utils/resume-list.d.ts.map +1 -1
  572. package/dist/utils/resume-list.js +3 -2
  573. package/dist/utils/resume-list.js.map +1 -1
  574. package/dist/utils/settings-command.d.ts.map +1 -1
  575. package/dist/utils/settings-command.js +15 -0
  576. package/dist/utils/settings-command.js.map +1 -1
  577. package/dist/utils/shell/sandbox/sandbox-policy.d.ts +2 -0
  578. package/dist/utils/shell/sandbox/sandbox-policy.d.ts.map +1 -1
  579. package/dist/utils/shell/sandbox/sandbox-policy.js.map +1 -1
  580. package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts +1 -0
  581. package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts.map +1 -1
  582. package/dist/utils/shell/sandbox/shell-sandbox-runner.js +20 -1
  583. package/dist/utils/shell/sandbox/shell-sandbox-runner.js.map +1 -1
  584. package/dist/utils/value-suggestions.d.ts.map +1 -1
  585. package/dist/utils/value-suggestions.js +1 -0
  586. package/dist/utils/value-suggestions.js.map +1 -1
  587. package/package.json +4 -2
package/dist/agent.d.ts CHANGED
@@ -11,6 +11,7 @@ import { ExecutionContext } from './services/execution-context.js';
11
11
  import { SkillsService } from './services/skills/skills-service.js';
12
12
  import type { AgentRuntime } from './services/agent-runtime/agent-runtime.js';
13
13
  import type { ShellChildRegistry } from './utils/shell/shell-child-registry.js';
14
+ import type { SessionBrowser } from './services/conversation/session-browser.js';
14
15
  export { getProjectTreeForPrompt } from './utils/project-tree.js';
15
16
  export declare function getEnvInfo(settingsService: ISettingsService, executionContext?: ExecutionContext, lite?: boolean): string;
16
17
  export declare function getAgentsInstructions(cwd: string): string;
@@ -47,5 +48,7 @@ export declare const getAgentDefinition: (deps: {
47
48
  shellChildRegistry?: ShellChildRegistry;
48
49
  /** False for one-shot/non-interactive callers until their lifecycle is supported. */
49
50
  allowBackgroundShell?: boolean;
51
+ /** Explicit interactive-root-only capability; never inferred from memory access. */
52
+ sessionBrowser?: SessionBrowser;
50
53
  }, model?: string) => AgentDefinition;
51
54
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../source/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../source/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -24,6 +24,7 @@ import { createRunAgentWorkflowToolDefinition } from './tools/run-agent-workflow
24
24
  import { createWorktreeToolDefinitions } from './tools/system/worktree.js';
25
25
  import { getProjectTreeForPrompt } from './utils/project-tree.js';
26
26
  import { MemoryCapabilityBuilder } from './services/memory/memory-capabilities.js';
27
+ import { createSessionBrowserToolDefinitions } from './tools/session-browser/session-browser-tools.js';
27
28
  export { getProjectTreeForPrompt } from './utils/project-tree.js';
28
29
  const BASE_PROMPT_PATH = path.join(import.meta.dirname, './prompts');
29
30
  export function getEnvInfo(settingsService, executionContext, lite = false) {
@@ -117,7 +118,7 @@ function resolvePrompt(promptPath) {
117
118
  * Returns the agent definition with appropriate tools based on the model.
118
119
  */
119
120
  export const getAgentDefinition = (deps, model) => {
120
- const { settingsService, loggingService, executionContext, askMentor, runSubagent, runSubagentAsync, getSubagentResult, getSubagentStatus, sendSubagentMessage, cancelSubagentRun, getAskUserAnswer, skillsService, agentRuntime, postExecuteDeniedRead = false, sessionAccess, backgroundShellRegistry, backgroundShellOutput, shellChildRegistry, allowBackgroundShell = true, } = deps;
121
+ const { settingsService, loggingService, executionContext, askMentor, runSubagent, runSubagentAsync, getSubagentResult, getSubagentStatus, sendSubagentMessage, cancelSubagentRun, getAskUserAnswer, skillsService, agentRuntime, postExecuteDeniedRead = false, sessionAccess, backgroundShellRegistry, backgroundShellOutput, shellChildRegistry, allowBackgroundShell = true, sessionBrowser, } = deps;
121
122
  const defaultModel = settingsService.get('agent.model');
122
123
  const resolvedModel = model?.trim() || defaultModel;
123
124
  if (!resolvedModel)
@@ -141,6 +142,13 @@ export const getAgentDefinition = (deps, model) => {
141
142
  Boolean(getSubagentStatus) &&
142
143
  Boolean(sendSubagentMessage) &&
143
144
  Boolean(cancelSubagentRun);
145
+ // A complete async capability owns the model-facing delegation contract. The
146
+ // nested runner remains wired for foreground-only compatibility sessions and
147
+ // for legacy lifecycle controls, but is not selectable alongside async work.
148
+ const runSubagentForegroundEnabled = Boolean(runSubagent) && !asyncSubagentEnabled;
149
+ if (orchestratorMode && !asyncSubagentEnabled) {
150
+ throw new Error('orchestratorMode requires runSubagentAsync, getSubagentResult, getSubagentStatus, sendSubagentMessage, and cancelSubagentRun: cannot build orchestrator agent without asynchronous delegation.');
151
+ }
144
152
  const memoryCapability = new MemoryCapabilityBuilder(settingsService, {
145
153
  onWarning: (message) => loggingService.warn(message),
146
154
  }).build({ kind: 'main' }, { projectPath: executionContext?.getCwd() ?? process.cwd() });
@@ -153,13 +161,14 @@ export const getAgentDefinition = (deps, model) => {
153
161
  searchViaShell,
154
162
  codeContextEnabled,
155
163
  runSubagentEnabled: Boolean(runSubagent) || asyncSubagentEnabled,
156
- runSubagentForegroundEnabled: Boolean(runSubagent),
164
+ runSubagentForegroundEnabled,
157
165
  runSubagentAsyncEnabled: asyncSubagentEnabled,
158
166
  asyncSubagentControlsEnabled: asyncSubagentEnabled,
159
167
  backgroundShellEnabled: allowBackgroundShell && Boolean(backgroundShellRegistry),
160
168
  sandboxEnabled,
161
169
  memoryEnabled: memoryCapability.access !== 'none',
162
170
  memoryGuidance: memoryCapability.guidance,
171
+ sessionBrowserEnabled: Boolean(sessionBrowser),
163
172
  executionContext,
164
173
  });
165
174
  let prompt = resolvePrompt(path.join(BASE_PROMPT_PATH, promptSpec.basePromptFile));
@@ -178,11 +187,11 @@ export const getAgentDefinition = (deps, model) => {
178
187
  prompt = `${prompt}\n\n${memoryCapability.context}`;
179
188
  }
180
189
  const cwd = executionContext?.getCwd() || process.cwd();
181
- const isLiteEnv = liteMode && !orchestratorMode && !planMode;
190
+ const isLiteEnv = liteMode && !planMode;
182
191
  // The glob/find-files tool is only registered in certain configurations; keep
183
192
  // the search-tool descriptions consistent so the model does not call a tool
184
193
  // that is not on its allowlist.
185
- const globAvailable = orchestratorMode ? false : !searchViaShell && (liteMode || !isGpt5);
194
+ const globAvailable = !searchViaShell && (liteMode || !isGpt5);
186
195
  const envInfo = getEnvInfo(settingsService, executionContext, isLiteEnv);
187
196
  const skipAgentsMd = isLiteEnv || (executionContext?.isRemote() ?? false);
188
197
  const agentsInstructions = skipAgentsMd ? '' : getAgentsInstructions(cwd);
@@ -195,65 +204,6 @@ export const getAgentDefinition = (deps, model) => {
195
204
  }
196
205
  const rootBackgroundShellRegistry = allowBackgroundShell ? backgroundShellRegistry : undefined;
197
206
  const rootBackgroundShellOutput = allowBackgroundShell ? backgroundShellOutput : undefined;
198
- if (orchestratorMode) {
199
- if (!runSubagentAsync || !getSubagentResult || !getSubagentStatus || !sendSubagentMessage || !cancelSubagentRun) {
200
- throw new Error('orchestratorMode requires runSubagentAsync, getSubagentResult, getSubagentStatus, sendSubagentMessage, and cancelSubagentRun: cannot build orchestrator agent without asynchronous delegation.');
201
- }
202
- const tools = [
203
- createRunSubagentToolDefinition({ runSubagentAsync }),
204
- createGetSubagentResultToolDefinition(getSubagentResult, getSubagentStatus),
205
- createGetSubagentStatusToolDefinition(getSubagentStatus),
206
- createSendMessageToolDefinition(sendSubagentMessage),
207
- createCancelRunToolDefinition(cancelSubagentRun),
208
- ];
209
- tools.push(createShellToolDefinition({
210
- settingsService,
211
- loggingService,
212
- executionContext,
213
- orchestratorMode: true,
214
- searchViaShell,
215
- backgroundShellRegistry: rootBackgroundShellRegistry,
216
- backgroundShellWatches: rootBackgroundShellOutput?.watches,
217
- shellChildRegistry,
218
- }), createReadFileToolDefinition({
219
- executionContext,
220
- allowOutsideWorkspace: true,
221
- orchestratorMode: true,
222
- settingsService,
223
- }), createGrepToolDefinition({ executionContext, orchestratorMode: true, globAvailable: false, settingsService }));
224
- if (rootBackgroundShellRegistry) {
225
- const backgroundTools = createBackgroundShellJobToolDefinitions(rootBackgroundShellRegistry, rootBackgroundShellOutput);
226
- tools.push(backgroundTools.get, backgroundTools.cancel);
227
- if (backgroundTools.monitor)
228
- tools.push(backgroundTools.monitor);
229
- if (backgroundTools.cancelMonitor)
230
- tools.push(backgroundTools.cancelMonitor);
231
- }
232
- if (codeContextEnabled) {
233
- tools.push(createReadCodeOutlineToolDefinition({ executionContext, settingsService }), createCodeContextSearchToolDefinition({ executionContext, globAvailable: false, settingsService }));
234
- }
235
- if (isGpt5) {
236
- tools.push(createApplyPatchToolDefinition({ settingsService, loggingService, executionContext, sessionAccess }));
237
- }
238
- else {
239
- tools.push(createCreateFileToolDefinition({ settingsService, loggingService, executionContext, sessionAccess }), createSearchReplaceToolDefinition({ settingsService, loggingService, executionContext, sessionAccess }));
240
- }
241
- tools.push(...memoryCapability.tools);
242
- if (getAskUserAnswer) {
243
- const askUserTool = createAskUserToolDefinition(getAskUserAnswer);
244
- if (askUserTool.name !== TOOL_NAME_ASK_USER) {
245
- throw new Error(`Unexpected ask_user tool name: ${askUserTool.name}`);
246
- }
247
- tools.push(askUserTool);
248
- }
249
- registerToolFormatters(tools);
250
- return {
251
- name: 'Agent',
252
- instructions: `${prompt}\n\nEnvironment: ${envInfo}${agentsInstructions}${skillsInstructions}`,
253
- tools,
254
- model: resolvedModel,
255
- };
256
- }
257
207
  const shellTool = createShellToolDefinition({
258
208
  settingsService,
259
209
  loggingService,
@@ -296,6 +246,8 @@ export const getAgentDefinition = (deps, model) => {
296
246
  tools.push(worktreeTools.enter, worktreeTools.exit);
297
247
  }
298
248
  tools.push(...memoryCapability.tools);
249
+ if (sessionBrowser)
250
+ tools.push(...createSessionBrowserToolDefinitions(sessionBrowser));
299
251
  if (skillsService && skillsService.getAvailableSkillsForModel().length > 0) {
300
252
  tools.push(createActivateSkillToolDefinition(skillsService));
301
253
  }
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../source/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../source/agent.ts"],"names":[],"mappings":"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"}
package/dist/app.d.ts CHANGED
@@ -28,7 +28,7 @@ interface AppProps {
28
28
  logWriter?: {
29
29
  append: (event: any) => void;
30
30
  };
31
- onRotateWriter?: (newSessionId: string) => void;
31
+ onRotateWriter?: (newSessionId: string, createdAt?: string) => void;
32
32
  generateId: () => string;
33
33
  onSessionIdChange?: (newId: string, createdAt: string) => void;
34
34
  onHasConversationContent?: (hasContent: boolean) => void;
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAqD,MAAM,OAAO,CAAC;AAarF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAQ/D,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,+CAA+C,CAAC;AAOtG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAuD,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACvH,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AAKvC,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,qCAAqC,CAAC;AAgBpF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAa1B,UAAU,QAAQ;IAChB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,wBAAwB,CAAC,EAAE,gBAAgB,CAAC;IAC5C,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,QAAA,MAAM,GAAG,EAAE,EAAE,CAAC,QAAQ,CA09BrB,CAAC;eAEa,GAAG"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../source/app.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,EAAE,EAAqD,MAAM,OAAO,CAAC;AAarF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AAC3F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAS/D,OAAO,EAA2B,KAAK,OAAO,EAAE,MAAM,+CAA+C,CAAC;AAOtG,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAuD,KAAK,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACvH,OAAO,EAIL,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AAKvC,OAAO,KAAK,EAAE,aAAa,EAAa,MAAM,qCAAqC,CAAC;AAyBpF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,4BAA4B,EAC5B,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAa1B,UAAU,QAAQ;IAChB,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,wBAAwB,CAAC,EAAE,gBAAgB,CAAC;IAC5C,eAAe,CAAC,EAAE,sBAAsB,CAAC;IACzC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,SAAS,CAAC,EAAE;QAAE,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAA;KAAE,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACpE,UAAU,EAAE,MAAM,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/D,wBAAwB,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IACzD,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,QAAA,MAAM,GAAG,EAAE,EAAE,CAAC,QAAQ,CA0lCrB,CAAC;eAEa,GAAG"}
package/dist/app.js CHANGED
@@ -7,6 +7,7 @@ import MessageList, { detectStaticCommitBlocker, EMPTY_RESTORED_STATIC_MESSAGE_I
7
7
  import BottomArea from './components/layout/BottomArea.js';
8
8
  import { ErrorBoundary } from './components/ErrorBoundary.js';
9
9
  import { useGrokCreditUsage } from './hooks/use-grok-credit-usage.js';
10
+ import { useOpenCodeGoUsage } from './hooks/use-opencode-go-usage.js';
10
11
  import { useSetting } from './hooks/use-setting.js';
11
12
  import { useDebouncedValue } from './hooks/use-debounced-value.js';
12
13
  import { parseInput } from './utils/input-parser.js';
@@ -32,6 +33,8 @@ import { SandboxNetworkApprovalCoordinator } from './utils/shell/sandbox/sandbox
32
33
  import { useFirstRunSetupGate } from './hooks/use-first-run-setup.js';
33
34
  import { TOOL_NAME_ASK_USER } from './tools/tool-names.js';
34
35
  import { copyToClipboard } from './utils/clipboard.js';
36
+ import { isConversationLocked, listConversations, loadConversationForProject, loadLastConversation, } from './services/conversation/conversation-persistence.js';
37
+ import { normalizeAppModes } from './services/settings/settings-schema.js';
35
38
  export { appendStartupBannerId, clearTerminalForRedraw, clearVisibleForResize, messagesHaveNonSystemContent, scheduleExitSideEffects, TERMINAL_REDRAW_CLEAR, } from './app-helpers.js';
36
39
  /**
37
40
  * How long the composer must be quiet before the large-uncached-input advisory
@@ -52,8 +55,8 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
52
55
  : mode !== 'text';
53
56
  const [messageListEpoch, setMessageListEpoch] = useState(0);
54
57
  const [startupBannerIds, setStartupBannerIds] = useState(['startup-banner-0']);
55
- const liteMode = useSetting(settingsService, 'app.liteMode') ?? false;
56
- const displayMode = useSetting(settingsService, 'ui.displayMode') ?? 'standard';
58
+ const [activeRestoredStaticMessageIds, setActiveRestoredStaticMessageIds] = useState(restoredStaticMessageIds);
59
+ const displayMode = useSetting(settingsService, 'ui.displayMode') ?? 'concise';
57
60
  const sessionUsage = useMemo(() => usageAccumulator ?? createUsageAccumulator(), [usageAccumulator]);
58
61
  const subagentUsage = useMemo(() => subagentUsageAccumulator ?? createUsageAccumulator(), [subagentUsageAccumulator]);
59
62
  const sessionCost = useMemo(() => costAccumulator ?? createSessionCostAccumulator(), [costAccumulator]);
@@ -82,7 +85,7 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
82
85
  coordinator.dispose();
83
86
  };
84
87
  }, []);
85
- const { messages, lastUsage, costSummary, lastCodexRateLimit, runBudgetNotice, pendingApproval, waitingForApproval, waitingForRejectionReason, setWaitingForRejectionReason, waitingForAskUserAnswer, setWaitingForAskUserAnswer, currentAskUserQuestionIndex, isProcessing, thinkingStartedAt, toolCallStreamingInfo, backgroundSubagentTasks, backgroundSubagentTasksNow, backgroundTaskDetails, backgroundTaskDetailsNow, listBackgroundTaskDetails, getBackgroundTaskDetails, stopBackgroundTask, getForegroundTaskTransferCandidate, moveForegroundTaskToBackground, listForegroundTaskTransferCandidates, backgroundSubagentApproval, resolveBackgroundSubagentApproval, sendUserMessage, admissionConfirmation, submitTurnForAdmission, resolveAdmissionConfirmation, submitConversationTurn, submitApprovalDecision, handleApprovalDecision, onTypeAnswer, clearConversation, stopProcessing, cancelAskUser, rewindToTarget, retryLastToolOutput, getUserMessages, setModel, setReasoningEffort, addSystemMessage, setTemperature, addShellMessage, getSubagentUsage, goToPreviousQuestion, goToNextQuestion, queueActive: _queueActive, queuePaused, queueLength, queuePauseReason, pendingQueuedMessages, resumeQueue, discardQueue, retractPendingSubmission, editPendingSubmission, getCostSummary, } = useConversation({
88
+ const { messages, lastUsage, costSummary, lastCodexRateLimit, runBudgetNotice, pendingApproval, waitingForApproval, waitingForRejectionReason, setWaitingForRejectionReason, waitingForAskUserAnswer, setWaitingForAskUserAnswer, currentAskUserQuestionIndex, isProcessing, thinkingStartedAt, toolCallStreamingInfo, backgroundSubagentTasks, backgroundSubagentTasksNow, backgroundTaskDetails, backgroundTaskDetailsNow, listBackgroundTaskDetails, getBackgroundTaskDetails, stopBackgroundTask, getForegroundTaskTransferCandidate, moveForegroundTaskToBackground, listForegroundTaskTransferCandidates, backgroundSubagentApproval, resolveBackgroundSubagentApproval, sendUserMessage, admissionConfirmation, submitTurnForAdmission, resolveAdmissionConfirmation, submitConversationTurn, submitApprovalDecision, handleApprovalDecision, onTypeAnswer, clearConversation, restoreConversation, stopProcessing, cancelAskUser, rewindToTarget, retryLastToolOutput, compactContext, getUserMessages, setModel, setReasoningEffort, addSystemMessage, setTemperature, addShellMessage, getSubagentUsage, goToPreviousQuestion, goToNextQuestion, queueActive: _queueActive, queuePaused, queueLength, queuePauseReason, pendingQueuedMessages, resumeQueue, discardQueue, retractPendingSubmission, editPendingSubmission, getCostSummary, } = useConversation({
86
89
  conversationService,
87
90
  loggingService,
88
91
  usageAccumulator: sessionUsage,
@@ -144,20 +147,19 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
144
147
  const shellInteractionSession = useMemo(() => new ShellInteractionSession({
145
148
  settingsService,
146
149
  conversationSink: conversationService,
147
- liteMode,
148
150
  sshInfo,
149
151
  sshService,
150
152
  }), [conversationService, settingsService, sshInfo, sshService]);
151
- const { isShellMode, toggleShellMode, handleShellSubmit } = useShellMode({
153
+ const { isShellMode, enterShellMode, exitShellMode, handleShellSubmit } = useShellMode({
152
154
  session: shellInteractionSession,
153
155
  addShellMessage,
154
156
  replaceInput,
155
- liteMode,
156
157
  });
157
158
  const clearConversationAndRefreshBanner = useCallback(async () => {
158
159
  onPrintUsage?.();
159
160
  await clearConversation();
160
161
  setStartupBannerIds(['startup-banner-0']);
162
+ setActiveRestoredStaticMessageIds([]);
161
163
  setMessageListEpoch((epoch) => epoch + 1);
162
164
  }, [clearConversation, onPrintUsage]);
163
165
  const handoff = useHandoffFlow({
@@ -181,7 +183,13 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
181
183
  // authoritative check still runs at submit time in ConversationAdmissionWorkflow.
182
184
  // An emptied composer flushes immediately so a stale warning never outlives
183
185
  // the text it described.
184
- const grokCreditUsage = useGrokCreditUsage(settingsService, isProcessing);
186
+ const hasActiveBackgroundTasks = (backgroundTaskDetails ?? []).some((task) => task.status === 'running' ||
187
+ task.status === 'cancelling' ||
188
+ task.status === 'awaiting_approval' ||
189
+ task.status === 'waiting_for_answer');
190
+ const isOverallBusy = isProcessing || hasActiveBackgroundTasks;
191
+ const grokCreditUsage = useGrokCreditUsage(settingsService, isOverallBusy);
192
+ const openCodeGoUsage = useOpenCodeGoUsage(settingsService, isOverallBusy);
185
193
  const previewInput = useDebouncedValue(input, LARGE_UNCACHED_PREVIEW_DEBOUNCE_MS, (value) => value === '');
186
194
  const [largeUncachedPreview, setLargeUncachedPreview] = useState(null);
187
195
  useEffect(() => {
@@ -257,6 +265,104 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
257
265
  clearTerminalForRedraw(stdout);
258
266
  setMessageListEpoch((epoch) => epoch + 1);
259
267
  }, [stdout]);
268
+ const resumeProjectPath = sshInfo?.remoteDir ?? process.cwd();
269
+ const resumeSshHost = sshInfo?.host;
270
+ const listSavedConversations = useCallback(() => listConversations(resumeProjectPath, resumeSshHost).slice(0, 10), [resumeProjectPath, resumeSshHost]);
271
+ const resumeConversation = useCallback(async (target) => {
272
+ let restored = null;
273
+ if (target) {
274
+ const result = loadConversationForProject(target, resumeProjectPath, resumeSshHost);
275
+ if (result.status === 'project_mismatch') {
276
+ addSystemMessage(`Conversation ${target} belongs to a different project.`);
277
+ return;
278
+ }
279
+ if (result.status === 'unreadable') {
280
+ addSystemMessage(`Conversation ${target} could not be read.`);
281
+ return;
282
+ }
283
+ restored = result.status === 'loaded' ? result.conversation : null;
284
+ }
285
+ else {
286
+ restored = loadLastConversation(resumeProjectPath, resumeSshHost);
287
+ }
288
+ if (!restored) {
289
+ addSystemMessage(`No conversation found to resume (${target ?? 'last'}).`);
290
+ return;
291
+ }
292
+ if (restored.id !== sessionId) {
293
+ const lock = isConversationLocked(restored.id);
294
+ if (lock?.status === 'held') {
295
+ addSystemMessage(`Conversation ${restored.id} is already open in another terminal (pid ${lock.pid}). Close it first or use the CLI --fork option.`);
296
+ return;
297
+ }
298
+ if (lock?.status === 'corrupt') {
299
+ addSystemMessage(`Conversation ${restored.id} has a corrupt lockfile and cannot be resumed here.`);
300
+ return;
301
+ }
302
+ }
303
+ try {
304
+ if (restored.id !== sessionId) {
305
+ onRotateWriter?.(restored.id, restored.createdAt);
306
+ }
307
+ conversationService.resetWithNewId(restored.id);
308
+ const mode = restored.appMode
309
+ ? normalizeAppModes({
310
+ orchestratorMode: Boolean(restored.appMode.orchestratorMode),
311
+ liteMode: restored.appMode.liteMode,
312
+ planMode: restored.appMode.planMode,
313
+ mentorMode: restored.appMode.mentorMode,
314
+ })
315
+ : undefined;
316
+ const changes = [
317
+ ...(restored.model ? [{ key: 'agent.model', value: restored.model, persistence: 'runtime' }] : []),
318
+ ...(restored.provider
319
+ ? [{ key: 'agent.provider', value: restored.provider, persistence: 'runtime' }]
320
+ : []),
321
+ ...(restored.reasoningEffort &&
322
+ ['default', 'none', 'minimal', 'low', 'medium', 'high', 'xhigh'].includes(restored.reasoningEffort)
323
+ ? [{ key: 'agent.reasoningEffort', value: restored.reasoningEffort, persistence: 'runtime' }]
324
+ : []),
325
+ ...(mode
326
+ ? [
327
+ { key: 'app.orchestratorMode', value: mode.orchestratorMode, persistence: 'runtime' },
328
+ { key: 'app.liteMode', value: mode.liteMode, persistence: 'runtime' },
329
+ { key: 'app.planMode', value: mode.planMode, persistence: 'runtime' },
330
+ { key: 'app.mentorMode', value: mode.mentorMode, persistence: 'runtime' },
331
+ ]
332
+ : []),
333
+ ];
334
+ configurationService.apply(changes);
335
+ const savedProviderMatches = !restored.provider || restored.provider === settingsService.get('agent.provider');
336
+ const savedModelMatches = !restored.model || restored.model === settingsService.get('agent.model');
337
+ restoreConversation({
338
+ ...restored,
339
+ previousResponseId: savedProviderMatches && savedModelMatches ? restored.previousResponseId : null,
340
+ });
341
+ setSessionId(restored.id);
342
+ onSessionIdChange?.(restored.id, restored.createdAt);
343
+ setActiveRestoredStaticMessageIds(restored.messages.map((message) => message.id));
344
+ redrawMessageList();
345
+ for (const warning of restored.replayWarnings) {
346
+ addSystemMessage(`Conversation replay: ${warning}`);
347
+ }
348
+ addSystemMessage(`Resumed conversation: ${restored.id}`);
349
+ }
350
+ catch (error) {
351
+ addSystemMessage(`Failed to resume conversation: ${error instanceof Error ? error.message : String(error)}`);
352
+ }
353
+ }, [
354
+ addSystemMessage,
355
+ configurationService,
356
+ conversationService,
357
+ onRotateWriter,
358
+ onSessionIdChange,
359
+ redrawMessageList,
360
+ restoreConversation,
361
+ resumeProjectPath,
362
+ resumeSshHost,
363
+ sessionId,
364
+ settingsService,
365
+ ]);
260
366
  // Resize redraw: Ink's <Static> renders committed messages once and never
261
367
  // re-renders them, so old messages retain their old width after a terminal
262
368
  // resize. When the terminal resizes, clear the visible screen and remount
@@ -368,7 +474,10 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
368
474
  replaceInput,
369
475
  clearConversation: clearConversationAndRefreshBanner,
370
476
  getSessionUsage,
371
- refreshProviderUsage: grokCreditUsage.refresh,
477
+ refreshProviderUsage: () => {
478
+ grokCreditUsage.refresh();
479
+ openCodeGoUsage.refresh();
480
+ },
372
481
  exit: exitWithUsage,
373
482
  messages,
374
483
  setModel,
@@ -376,7 +485,7 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
376
485
  rewindToTarget: (item) => rewindToTarget(item.targetId, item.uiIndex),
377
486
  restoreTurnToInput,
378
487
  retryLastToolOutput,
379
- compactContext: () => conversationService.compactContext(),
488
+ compactContext,
380
489
  onRewind: redrawMessageList,
381
490
  openRewindMenu,
382
491
  openProvidersMenu: () => {
@@ -389,6 +498,9 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
389
498
  skillsService: skillsService ?? { getAvailableSkills: () => [] },
390
499
  onSkillSelected: handleSkillSelected,
391
500
  requestModeSwitchConfirm: setPendingModeSwitch,
501
+ turnInFlight: isProcessing,
502
+ listConversations: listSavedConversations,
503
+ resumeConversation,
392
504
  });
393
505
  const handleRewindSelect = useCallback((item, disposition) => {
394
506
  const rewound = rewindToTarget(item.targetId, item.uiIndex);
@@ -548,8 +660,8 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
548
660
  menuOpen,
549
661
  });
550
662
  useEffect(() => {
551
- setTerminalTitle(buildTerminalTitleLabel(terminalTitleBase, effectiveIsProcessing));
552
- }, [effectiveIsProcessing, terminalTitleBase]);
663
+ setTerminalTitle(buildTerminalTitleLabel(terminalTitleBase, isOverallBusy));
664
+ }, [isOverallBusy, terminalTitleBase]);
553
665
  useEffect(() => {
554
666
  publishHarnessInputState({ owner: inputOwner.kind, processing: effectiveIsProcessing });
555
667
  }, [effectiveIsProcessing, inputOwner.kind]);
@@ -576,8 +688,6 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
576
688
  handoffState: handoff.handoffState,
577
689
  cancelHandoff: handoff.cancelHandoff,
578
690
  pendingLargeUncachedTurn,
579
- liteMode,
580
- toggleShellMode,
581
691
  cycleAppModes,
582
692
  replaceInput,
583
693
  onSkillActivationCancelled: () => addSystemMessage('Skill activation cancelled.'),
@@ -598,17 +708,17 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
598
708
  setWaitingForRejectionReason(false);
599
709
  return;
600
710
  }
601
- if (await submitConversationTurn(turn)) {
602
- return;
603
- }
604
711
  const value = turn.text;
605
712
  const hasImages = Boolean(turn.images?.length);
606
713
  if (!hasUserTurnContent(turn) && handoff.handoffState?.stage !== 'entering_message')
607
714
  return;
608
- if (liteMode && isShellMode && !hasImages) {
715
+ if (isShellMode && !hasImages) {
609
716
  await handleShellSubmit(value);
610
717
  return;
611
718
  }
719
+ if (await submitConversationTurn(turn)) {
720
+ return;
721
+ }
612
722
  if (await handoff.submitHandoffInput(turn)) {
613
723
  return;
614
724
  }
@@ -718,9 +828,9 @@ const App = ({ conversationService, settingsService, historyService, loggingServ
718
828
  return (React.createElement(ErrorBoundary, { loggingService: loggingService },
719
829
  React.createElement(Box, { flexDirection: "column", flexGrow: 1 },
720
830
  React.createElement(Box, { flexDirection: "column", flexGrow: 1 },
721
- React.createElement(MessageList, { key: messageListEpoch, messages: messages, bannerItems: startupBannerIds, settingsService: settingsService, isShellMode: isShellMode, restoredStaticMessageIds: restoredStaticMessageIds, turnPaused: effectiveWaitingForApproval })),
831
+ React.createElement(MessageList, { key: messageListEpoch, messages: messages, bannerItems: startupBannerIds, settingsService: settingsService, restoredStaticMessageIds: activeRestoredStaticMessageIds, turnPaused: effectiveWaitingForApproval })),
722
832
  React.createElement(Box, { paddingX: MESSAGE_HORIZONTAL_PADDING },
723
- React.createElement(BottomArea, { pendingApproval: effectivePendingApproval, waitingForApproval: effectiveWaitingForApproval, waitingForRejectionReason: effectiveWaitingForRejectionReason, waitingForAskUserAnswer: effectiveWaitingForAskUserAnswer, currentAskUserQuestionIndex: currentAskUserQuestionIndex, isProcessing: effectiveIsProcessing, interruptConfirmVisible: interruptConfirmVisible, thinkingStartedAt: thinkingStartedAt, toolCallStreamingInfo: toolCallStreamingInfo, isShellMode: isShellMode, lastUsage: lastUsage, costSummary: costSummary, queuePaused: queuePaused, queueLength: queueLength, queuePauseReason: queuePauseReason, onResumeQueue: resumeQueue, onDiscardQueue: discardQueue, pendingQueuedMessages: pendingQueuedMessages, backgroundSubagentTasks: backgroundSubagentTasks, backgroundSubagentTasksNow: backgroundSubagentTasksNow, backgroundTaskDetails: backgroundTaskDetails, backgroundTaskDetailsNow: backgroundTaskDetailsNow, listBackgroundTaskDetails: listBackgroundTaskDetails, getBackgroundTaskDetails: getBackgroundTaskDetails, stopBackgroundTask: stopBackgroundTask, getForegroundTaskTransferCandidate: getForegroundTaskTransferCandidate, moveForegroundTaskToBackground: moveForegroundTaskToBackground, listForegroundTaskTransferCandidates: listForegroundTaskTransferCandidates, backgroundTaskManagerOpen: backgroundTaskManagerOpen, onBackgroundTaskManagerOpenChange: setBackgroundTaskManagerOpen, backgroundApprovalPendingCount: backgroundApprovalState.pendingCount, onRetractQueuedMessage: retractPendingSubmission, onEditQueuedMessage: editPendingSubmission, onSubmit: handleSubmit, onRejectionReasonInputReady: markRejectionReasonInputReady, slashCommands: slashCommands, skillsService: skillsService, settingsService: settingsService, loggingService: loggingService, historyService: historyService, onApprove: handleApprove, onReject: handleReject, onCancel: handleCancelApproval, onTypeAnswer: handleTypeAnswer, onNavigateQuestion: handleNavigateQuestion, sshInfo: sshInfo, lastCodexRateLimit: lastCodexRateLimit, runBudgetNotice: runBudgetNotice, grokCreditUsage: grokCreditUsage.usage, staticCommitBlocker: staticCommitBlocker, firstRunSetup: firstRunSetup, onProviderSelected: firstRunSetup.active ? firstRunSetup.onProviderSelected : undefined, onUnavailableModelSelected: firstRunSetup.requestSetup, onSkillSelected: handleSkillSelected, onCopySelection: handleCopySelection, onSettingChange: handleSettingChange, onSystemMessage: addSystemMessage, handoffState: handoff.handoffState, onHandoffConfirm: handoff.confirmHandoff, onHandoffDecline: handoff.declineHandoff, onHandoffCancel: handoff.cancelHandoff, onStandardModeConfirm: handoff.confirmStandardMode, onStandardModeDecline: handoff.declineStandardMode, pendingModeSwitch: pendingModeSwitch, onModeSwitchConfirm: handleModeSwitchConfirm, onModeSwitchDecline: handleModeSwitchDecline, largeUncachedWarning: largeUncachedWarning, pendingLargeUncachedTurn: pendingLargeUncachedTurn, pendingLargeUncachedTokens: pendingLargeUncachedTokens, onLargeUncachedApprove: handleLargeUncachedApprove, onLargeUncachedDecline: handleLargeUncachedDecline, pendingSurgeTurn: pendingSurgeTurn, pendingSurgeReason: pendingSurgeReason, onSurgeApprove: handleSurgeApprove, onSurgeDecline: handleSurgeDecline })))));
833
+ React.createElement(BottomArea, { pendingApproval: effectivePendingApproval, waitingForApproval: effectiveWaitingForApproval, waitingForRejectionReason: effectiveWaitingForRejectionReason, waitingForAskUserAnswer: effectiveWaitingForAskUserAnswer, currentAskUserQuestionIndex: currentAskUserQuestionIndex, isProcessing: effectiveIsProcessing, interruptConfirmVisible: interruptConfirmVisible, thinkingStartedAt: thinkingStartedAt, toolCallStreamingInfo: toolCallStreamingInfo, isShellMode: isShellMode, onShellModeEnter: enterShellMode, onShellModeExit: exitShellMode, lastUsage: lastUsage, costSummary: costSummary, queuePaused: queuePaused, queueLength: queueLength, queuePauseReason: queuePauseReason, onResumeQueue: resumeQueue, onDiscardQueue: discardQueue, pendingQueuedMessages: pendingQueuedMessages, backgroundSubagentTasks: backgroundSubagentTasks, backgroundSubagentTasksNow: backgroundSubagentTasksNow, backgroundTaskDetails: backgroundTaskDetails, backgroundTaskDetailsNow: backgroundTaskDetailsNow, listBackgroundTaskDetails: listBackgroundTaskDetails, getBackgroundTaskDetails: getBackgroundTaskDetails, stopBackgroundTask: stopBackgroundTask, getForegroundTaskTransferCandidate: getForegroundTaskTransferCandidate, moveForegroundTaskToBackground: moveForegroundTaskToBackground, listForegroundTaskTransferCandidates: listForegroundTaskTransferCandidates, backgroundTaskManagerOpen: backgroundTaskManagerOpen, onBackgroundTaskManagerOpenChange: setBackgroundTaskManagerOpen, backgroundApprovalPendingCount: backgroundApprovalState.pendingCount, onRetractQueuedMessage: retractPendingSubmission, onEditQueuedMessage: editPendingSubmission, onSubmit: handleSubmit, onRejectionReasonInputReady: markRejectionReasonInputReady, slashCommands: slashCommands, skillsService: skillsService, settingsService: settingsService, loggingService: loggingService, historyService: historyService, onApprove: handleApprove, onReject: handleReject, onCancel: handleCancelApproval, onTypeAnswer: handleTypeAnswer, onNavigateQuestion: handleNavigateQuestion, sshInfo: sshInfo, lastCodexRateLimit: lastCodexRateLimit, runBudgetNotice: runBudgetNotice, grokCreditUsage: grokCreditUsage.usage, openCodeGoUsage: openCodeGoUsage.usage, staticCommitBlocker: staticCommitBlocker, firstRunSetup: firstRunSetup, onProviderSelected: firstRunSetup.active ? firstRunSetup.onProviderSelected : undefined, onUnavailableModelSelected: firstRunSetup.requestSetup, onSkillSelected: handleSkillSelected, onCopySelection: handleCopySelection, onSettingChange: handleSettingChange, onSystemMessage: addSystemMessage, handoffState: handoff.handoffState, onHandoffConfirm: handoff.confirmHandoff, onHandoffDecline: handoff.declineHandoff, onHandoffCancel: handoff.cancelHandoff, onStandardModeConfirm: handoff.confirmStandardMode, onStandardModeDecline: handoff.declineStandardMode, pendingModeSwitch: pendingModeSwitch, onModeSwitchConfirm: handleModeSwitchConfirm, onModeSwitchDecline: handleModeSwitchDecline, largeUncachedWarning: largeUncachedWarning, pendingLargeUncachedTurn: pendingLargeUncachedTurn, pendingLargeUncachedTokens: pendingLargeUncachedTokens, onLargeUncachedApprove: handleLargeUncachedApprove, onLargeUncachedDecline: handleLargeUncachedDecline, pendingSurgeTurn: pendingSurgeTurn, pendingSurgeReason: pendingSurgeReason, onSurgeApprove: handleSurgeApprove, onSurgeDecline: handleSurgeDecline })))));
724
834
  };
725
835
  export default App;
726
836
  //# sourceMappingURL=app.js.map