@qduc/term2 0.9.1 → 0.9.3

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 (1161) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js.map +1 -1
  3. package/dist/app-helpers.d.ts.map +1 -1
  4. package/dist/app-helpers.js.map +1 -1
  5. package/dist/app.d.ts +1 -0
  6. package/dist/app.d.ts.map +1 -1
  7. package/dist/app.js +101 -86
  8. package/dist/app.js.map +1 -1
  9. package/dist/app.large-uncached-warning.test.js.map +1 -1
  10. package/dist/cli.js +18 -16
  11. package/dist/cli.js.map +1 -1
  12. package/dist/commands/mode-commands.d.ts +1 -1
  13. package/dist/commands/mode-commands.d.ts.map +1 -1
  14. package/dist/commands/sandbox-command.d.ts +10 -0
  15. package/dist/commands/sandbox-command.d.ts.map +1 -0
  16. package/dist/commands/sandbox-command.js +17 -0
  17. package/dist/commands/sandbox-command.js.map +1 -0
  18. package/dist/commands/skills-command.d.ts.map +1 -1
  19. package/dist/components/Common/MenuContainer.d.ts.map +1 -1
  20. package/dist/components/Common/MenuContainer.js.map +1 -1
  21. package/dist/components/Common/MenuContainer.test.d.ts.map +1 -1
  22. package/dist/components/Common/MenuContainer.test.js +24 -53
  23. package/dist/components/Common/MenuContainer.test.js.map +1 -1
  24. package/dist/components/Common/ScrollableTabBar.d.ts.map +1 -1
  25. package/dist/components/Common/ScrollableTabBar.js.map +1 -1
  26. package/dist/components/Common/compute-visible-tabs.d.ts.map +1 -1
  27. package/dist/components/Common/compute-visible-tabs.js.map +1 -1
  28. package/dist/components/Common/compute-visible-tabs.test.d.ts.map +1 -1
  29. package/dist/components/Common/compute-visible-tabs.test.js +28 -28
  30. package/dist/components/Common/compute-visible-tabs.test.js.map +1 -1
  31. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  32. package/dist/components/Input/PopupManager.d.ts +10 -2
  33. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  34. package/dist/components/Input/PopupManager.js +10 -8
  35. package/dist/components/Input/PopupManager.js.map +1 -1
  36. package/dist/components/Input/determine-active-menu.d.ts +3 -0
  37. package/dist/components/Input/determine-active-menu.d.ts.map +1 -1
  38. package/dist/components/Input/determine-active-menu.js +10 -2
  39. package/dist/components/Input/determine-active-menu.js.map +1 -1
  40. package/dist/components/Input/input-width.d.ts.map +1 -1
  41. package/dist/components/Input/input-width.js.map +1 -1
  42. package/dist/components/Input/insertions.d.ts +11 -1
  43. package/dist/components/Input/insertions.d.ts.map +1 -1
  44. package/dist/components/Input/insertions.js +18 -3
  45. package/dist/components/Input/insertions.js.map +1 -1
  46. package/dist/components/Input/popup-key-navigation.d.ts.map +1 -1
  47. package/dist/components/Input/popup-key-navigation.js.map +1 -1
  48. package/dist/components/Input/popup-key-navigation.test.d.ts.map +1 -1
  49. package/dist/components/Input/popup-key-navigation.test.js +21 -21
  50. package/dist/components/Input/popup-key-navigation.test.js.map +1 -1
  51. package/dist/components/Input/popup-props.d.ts +3 -1
  52. package/dist/components/Input/popup-props.d.ts.map +1 -1
  53. package/dist/components/Input/popup-props.js +8 -1
  54. package/dist/components/Input/popup-props.js.map +1 -1
  55. package/dist/components/Input/popup-props.test.d.ts.map +1 -1
  56. package/dist/components/Input/popup-props.test.js +10 -3
  57. package/dist/components/Input/popup-props.test.js.map +1 -1
  58. package/dist/components/Input/triggers.d.ts +1 -0
  59. package/dist/components/Input/triggers.d.ts.map +1 -1
  60. package/dist/components/Input/triggers.js +1 -0
  61. package/dist/components/Input/triggers.js.map +1 -1
  62. package/dist/components/InputBox.d.ts.map +1 -1
  63. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  64. package/dist/components/MarkdownRenderer.js.map +1 -1
  65. package/dist/components/ModelSelectionMenu.debug.test.d.ts +2 -0
  66. package/dist/components/ModelSelectionMenu.debug.test.d.ts.map +1 -0
  67. package/dist/components/ModelSelectionMenu.debug.test.js.map +1 -0
  68. package/dist/components/layout/Banner.d.ts.map +1 -1
  69. package/dist/components/layout/BottomArea.d.ts.map +1 -1
  70. package/dist/components/layout/DiffView.d.ts.map +1 -1
  71. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  72. package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
  73. package/dist/components/menu/PathSelectionMenu.d.ts.map +1 -1
  74. package/dist/components/menu/ProviderSelectionMenu.d.ts.map +1 -1
  75. package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
  76. package/dist/components/menu/SettingsValueSelectionMenu.d.ts +1 -1
  77. package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
  78. package/dist/components/menu/SettingsValueSelectionMenu.js +1 -1
  79. package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
  80. package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
  81. package/dist/components/menu/SlashCommandMenu.d.ts.map +1 -1
  82. package/dist/components/menu/UndoSelectionMenu.d.ts.map +1 -1
  83. package/dist/components/message/ChatMessage.d.ts.map +1 -1
  84. package/dist/components/message/CodeContextSearchRenderer.d.ts +8 -0
  85. package/dist/components/message/CodeContextSearchRenderer.d.ts.map +1 -0
  86. package/dist/components/message/CodeContextSearchRenderer.js +49 -0
  87. package/dist/components/message/CodeContextSearchRenderer.js.map +1 -0
  88. package/dist/components/message/CommandMessage.d.ts.map +1 -1
  89. package/dist/components/message/CommandMessage.js +27 -242
  90. package/dist/components/message/CommandMessage.js.map +1 -1
  91. package/dist/components/message/GrepRenderer.d.ts +8 -0
  92. package/dist/components/message/GrepRenderer.d.ts.map +1 -0
  93. package/dist/components/message/GrepRenderer.js +94 -0
  94. package/dist/components/message/GrepRenderer.js.map +1 -0
  95. package/dist/components/message/MessageList.d.ts.map +1 -1
  96. package/dist/components/message/MessageList.js +13 -0
  97. package/dist/components/message/MessageList.js.map +1 -1
  98. package/dist/components/message/ReadFileRenderer.d.ts +8 -0
  99. package/dist/components/message/ReadFileRenderer.d.ts.map +1 -0
  100. package/dist/components/message/ReadFileRenderer.js +53 -0
  101. package/dist/components/message/ReadFileRenderer.js.map +1 -0
  102. package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
  103. package/dist/components/message/WebFetchRenderer.d.ts +8 -0
  104. package/dist/components/message/WebFetchRenderer.d.ts.map +1 -0
  105. package/dist/components/message/WebFetchRenderer.js +46 -0
  106. package/dist/components/message/WebFetchRenderer.js.map +1 -0
  107. package/dist/components/message/WebSearchRenderer.d.ts +8 -0
  108. package/dist/components/message/WebSearchRenderer.d.ts.map +1 -0
  109. package/dist/components/message/WebSearchRenderer.js +35 -0
  110. package/dist/components/message/WebSearchRenderer.js.map +1 -0
  111. package/dist/components/message/command-message-helpers.d.ts +3 -3
  112. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  113. package/dist/components/message/command-message-helpers.js.map +1 -1
  114. package/dist/components/message/useCommandVisibility.d.ts +9 -0
  115. package/dist/components/message/useCommandVisibility.d.ts.map +1 -0
  116. package/dist/components/message/useCommandVisibility.js +25 -0
  117. package/dist/components/message/useCommandVisibility.js.map +1 -0
  118. package/dist/components/prompt/ApprovalPrompt.ask-user.test.js +12 -35
  119. package/dist/components/prompt/ApprovalPrompt.ask-user.test.js.map +1 -1
  120. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  121. package/dist/components/prompt/HandoffConfirmationPrompt.d.ts.map +1 -1
  122. package/dist/components/prompt/InputSurgeConfirmationPrompt.d.ts.map +1 -1
  123. package/dist/components/prompt/LargeUncachedConfirmationPrompt.d.ts.map +1 -1
  124. package/dist/components/prompt/StandardModeConfirmationPrompt.d.ts.map +1 -1
  125. package/dist/context/InputContext.d.ts +6 -6
  126. package/dist/context/InputContext.d.ts.map +1 -1
  127. package/dist/context/InputContext.js.map +1 -1
  128. package/dist/env-setup.js +1 -0
  129. package/dist/env-setup.js.map +1 -1
  130. package/dist/hooks/conversation-ui-reducer.ask-user-bugfix.test.js +7 -7
  131. package/dist/hooks/conversation-ui-reducer.ask-user-bugfix.test.js.map +1 -1
  132. package/dist/hooks/conversation-ui-reducer.js.map +1 -1
  133. package/dist/hooks/conversation-ui-reducer.multi-select.test.d.ts +2 -0
  134. package/dist/hooks/conversation-ui-reducer.multi-select.test.d.ts.map +1 -0
  135. package/dist/hooks/conversation-ui-reducer.multi-select.test.js +123 -0
  136. package/dist/hooks/conversation-ui-reducer.multi-select.test.js.map +1 -0
  137. package/dist/hooks/message-id.d.ts +1 -1
  138. package/dist/hooks/message-id.d.ts.map +1 -1
  139. package/dist/hooks/message-id.js +2 -15
  140. package/dist/hooks/message-id.js.map +1 -1
  141. package/dist/hooks/path-completion-filter.d.ts.map +1 -1
  142. package/dist/hooks/settings-completion-config.d.ts +26 -0
  143. package/dist/hooks/settings-completion-config.d.ts.map +1 -0
  144. package/dist/hooks/settings-completion-config.js +130 -0
  145. package/dist/hooks/settings-completion-config.js.map +1 -0
  146. package/dist/hooks/settings-completion-logic.d.ts +9 -0
  147. package/dist/hooks/settings-completion-logic.d.ts.map +1 -0
  148. package/dist/hooks/settings-completion-logic.js +82 -0
  149. package/dist/hooks/settings-completion-logic.js.map +1 -0
  150. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  151. package/dist/hooks/use-app-commands.js +3 -1
  152. package/dist/hooks/use-app-commands.js.map +1 -1
  153. package/dist/hooks/use-app-keyboard-shortcuts.d.ts +28 -0
  154. package/dist/hooks/use-app-keyboard-shortcuts.d.ts.map +1 -0
  155. package/dist/hooks/use-app-keyboard-shortcuts.js +86 -0
  156. package/dist/hooks/use-app-keyboard-shortcuts.js.map +1 -0
  157. package/dist/hooks/use-conversation-messages.js.map +1 -1
  158. package/dist/hooks/use-conversation.ask-user-multi-select.test.d.ts +2 -0
  159. package/dist/hooks/use-conversation.ask-user-multi-select.test.d.ts.map +1 -0
  160. package/dist/hooks/use-conversation.ask-user-multi-select.test.js +159 -0
  161. package/dist/hooks/use-conversation.ask-user-multi-select.test.js.map +1 -0
  162. package/dist/hooks/use-conversation.d.ts +7 -4
  163. package/dist/hooks/use-conversation.d.ts.map +1 -1
  164. package/dist/hooks/use-conversation.js +100 -521
  165. package/dist/hooks/use-conversation.js.map +1 -1
  166. package/dist/hooks/use-escape-key.d.ts.map +1 -1
  167. package/dist/hooks/use-handoff-flow.d.ts.map +1 -1
  168. package/dist/hooks/use-input-history.d.ts.map +1 -1
  169. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  170. package/dist/hooks/use-model-selection.d.ts +1 -1
  171. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  172. package/dist/hooks/use-model-selection.js.map +1 -1
  173. package/dist/hooks/use-path-completion.d.ts +1 -1
  174. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  175. package/dist/hooks/use-pending-turn-guards.d.ts.map +1 -1
  176. package/dist/hooks/use-provider-selection.d.ts.map +1 -1
  177. package/dist/hooks/use-provider-selection.js +5 -3
  178. package/dist/hooks/use-provider-selection.js.map +1 -1
  179. package/dist/hooks/use-runtime-settings.d.ts +5 -4
  180. package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
  181. package/dist/hooks/use-runtime-settings.js +8 -82
  182. package/dist/hooks/use-runtime-settings.js.map +1 -1
  183. package/dist/hooks/use-selection.js +1 -1
  184. package/dist/hooks/use-selection.js.map +1 -1
  185. package/dist/hooks/use-settings-completion.d.ts +4 -18
  186. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  187. package/dist/hooks/use-settings-completion.js +4 -199
  188. package/dist/hooks/use-settings-completion.js.map +1 -1
  189. package/dist/hooks/use-settings-value-completion.d.ts +2 -10
  190. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  191. package/dist/hooks/use-settings-value-completion.js +18 -235
  192. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  193. package/dist/hooks/use-shell-mode.d.ts +0 -6
  194. package/dist/hooks/use-shell-mode.d.ts.map +1 -1
  195. package/dist/hooks/use-shell-mode.js +9 -43
  196. package/dist/hooks/use-shell-mode.js.map +1 -1
  197. package/dist/hooks/use-skill-selection.d.ts.map +1 -1
  198. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  199. package/dist/hooks/use-terminal-focus-notifier.d.ts.map +1 -1
  200. package/dist/hooks/use-terminal-width.d.ts.map +1 -1
  201. package/dist/hooks/use-trigger-detection.d.ts.map +1 -1
  202. package/dist/hooks/use-trigger-detection.js.map +1 -1
  203. package/dist/inspect_zod.d.ts +2 -0
  204. package/dist/inspect_zod.d.ts.map +1 -0
  205. package/dist/inspect_zod.js +16 -0
  206. package/dist/inspect_zod.js.map +1 -0
  207. package/dist/lib/agent-chat-service.d.ts.map +1 -1
  208. package/dist/lib/agent-chat-service.js.map +1 -1
  209. package/dist/lib/agent-client.d.ts.map +1 -1
  210. package/dist/lib/agent-client.js.map +1 -1
  211. package/dist/lib/agent-configuration.d.ts +4 -4
  212. package/dist/lib/agent-configuration.d.ts.map +1 -1
  213. package/dist/lib/agent-factory.test.js +0 -21
  214. package/dist/lib/agent-factory.test.js.map +1 -1
  215. package/dist/lib/agent-run-orchestrator.d.ts.map +1 -1
  216. package/dist/lib/agent-run-orchestrator.js.map +1 -1
  217. package/dist/lib/ask-user-answer-store.d.ts.map +1 -1
  218. package/dist/lib/chained-input-filter.d.ts +5 -0
  219. package/dist/lib/chained-input-filter.d.ts.map +1 -1
  220. package/dist/lib/chained-input-filter.js +17 -1
  221. package/dist/lib/chained-input-filter.js.map +1 -1
  222. package/dist/lib/editor-impl.d.ts +3 -3
  223. package/dist/lib/editor-impl.d.ts.map +1 -1
  224. package/dist/lib/editor-impl.js.map +1 -1
  225. package/dist/lib/editor-impl.test.js +29 -73
  226. package/dist/lib/editor-impl.test.js.map +1 -1
  227. package/dist/lib/openai-agent-client.public-methods.test.js +1 -9
  228. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  229. package/dist/lib/openai-strict-tool-schema.d.ts.map +1 -1
  230. package/dist/lib/runner-manager.d.ts.map +1 -1
  231. package/dist/lib/subagent-bridge.d.ts.map +1 -1
  232. package/dist/lib/subagent-bridge.js +0 -1
  233. package/dist/lib/subagent-bridge.js.map +1 -1
  234. package/dist/lib/tool-interceptor-registry.d.ts.map +1 -1
  235. package/dist/lib/tool-invoke.d.ts.map +1 -1
  236. package/dist/lib/tool-invoke.js +2 -29
  237. package/dist/lib/tool-invoke.js.map +1 -1
  238. package/dist/non-interactive.d.ts +2 -0
  239. package/dist/non-interactive.d.ts.map +1 -1
  240. package/dist/non-interactive.js +22 -8
  241. package/dist/non-interactive.js.map +1 -1
  242. package/dist/prompts/gpt-5.md +7 -4
  243. package/dist/prompts/prompt-constructor.test.ts +1 -1
  244. package/dist/prompts/prompt-profiles.js +1 -1
  245. package/dist/prompts/prompt-profiles.ts +1 -1
  246. package/dist/prompts/search-via-shell.js.map +1 -1
  247. package/dist/prompts/simple_prev2.md +33 -0
  248. package/dist/prompts/simple_v4.md +25 -0
  249. package/dist/prompts/subagent-delegation.js.map +1 -1
  250. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -1
  251. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -1
  252. package/dist/providers/ai-sdk-google.provider.d.ts.map +1 -1
  253. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +0 -2
  254. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
  255. package/dist/providers/ai-sdk-openai-compatible.provider.js +4 -8
  256. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
  257. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +1 -119
  258. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
  259. package/dist/providers/ai-sdk-openrouter.provider.d.ts.map +1 -1
  260. package/dist/providers/codex-responses-model.d.ts +1 -6
  261. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  262. package/dist/providers/codex-responses-model.js +62 -80
  263. package/dist/providers/codex-responses-model.js.map +1 -1
  264. package/dist/providers/codex.provider.d.ts.map +1 -1
  265. package/dist/providers/codex.provider.js.map +1 -1
  266. package/dist/providers/common/provider-errors.d.ts.map +1 -1
  267. package/dist/providers/fallback-responses-model.d.ts +2 -2
  268. package/dist/providers/fallback-responses-model.d.ts.map +1 -1
  269. package/dist/providers/fallback-responses-model.js.map +1 -1
  270. package/dist/providers/fetch/logging-middleware.js.map +1 -1
  271. package/dist/providers/openai-compatible-behavior-gate.test.js +1 -42
  272. package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -1
  273. package/dist/providers/openai-compatible-lazy.d.ts.map +1 -1
  274. package/dist/providers/openai-compatible-lazy.js +7 -3
  275. package/dist/providers/openai-compatible-lazy.js.map +1 -1
  276. package/dist/providers/openai-compatible.provider.d.ts +1 -0
  277. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  278. package/dist/providers/openai-compatible.provider.js +6 -3
  279. package/dist/providers/openai-compatible.provider.js.map +1 -1
  280. package/dist/providers/openai.provider.d.ts.map +1 -1
  281. package/dist/providers/openai.provider.js.map +1 -1
  282. package/dist/providers/openrouter.provider.js.map +1 -1
  283. package/dist/providers/provider-service.d.ts.map +1 -1
  284. package/dist/providers/provider-service.js +31 -20
  285. package/dist/providers/provider-service.js.map +1 -1
  286. package/dist/providers/retrying-model.d.ts.map +1 -1
  287. package/dist/providers/retrying-model.js.map +1 -1
  288. package/dist/scripts/eval-auto-approval/cache.d.ts.map +1 -1
  289. package/dist/scripts/eval-auto-approval/dataset.d.ts +3 -3
  290. package/dist/scripts/eval-auto-approval/leaderboard.js.map +1 -1
  291. package/dist/scripts/eval-auto-approval/report.js.map +1 -1
  292. package/dist/scripts/eval-auto-approval/runner.js.map +1 -1
  293. package/dist/services/approval/approval-decision-policy.d.ts.map +1 -1
  294. package/dist/services/approval/approval-decision-policy.js.map +1 -1
  295. package/dist/services/approval/approval-flow-coordinator.d.ts +7 -0
  296. package/dist/services/approval/approval-flow-coordinator.d.ts.map +1 -1
  297. package/dist/services/approval/approval-flow-coordinator.js +8 -0
  298. package/dist/services/approval/approval-flow-coordinator.js.map +1 -1
  299. package/dist/services/approval/approval-presentation-policy.d.ts +1 -1
  300. package/dist/services/approval/approval-presentation-policy.d.ts.map +1 -1
  301. package/dist/services/approval/approval-presentation-policy.js.map +1 -1
  302. package/dist/services/approval/approval-state.d.ts.map +1 -1
  303. package/dist/services/approval/shell-auto-approval-resolver.d.ts +12 -0
  304. package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
  305. package/dist/services/approval/shell-auto-approval-resolver.js +28 -0
  306. package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
  307. package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
  308. package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
  309. package/dist/services/approval/tool-approval-policy-registry.d.ts.map +1 -1
  310. package/dist/services/approval/tool-owner.d.ts.map +1 -1
  311. package/dist/services/approval-flow-coordinator.js +1 -1
  312. package/dist/services/approval-flow-coordinator.js.map +1 -1
  313. package/dist/services/approval-state.d.ts +1 -1
  314. package/dist/services/approval-state.d.ts.map +1 -1
  315. package/dist/services/command-message-streaming.d.ts.map +1 -1
  316. package/dist/services/command-message-streaming.js.map +1 -1
  317. package/dist/services/continuation-driver.js +1 -1
  318. package/dist/services/continuation-driver.js.map +1 -1
  319. package/dist/services/conversation/conversation-adapter.d.ts +2 -0
  320. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  321. package/dist/services/conversation/conversation-adapter.js +9 -4
  322. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  323. package/dist/services/conversation/conversation-input-routing.d.ts +23 -0
  324. package/dist/services/conversation/conversation-input-routing.d.ts.map +1 -0
  325. package/dist/services/conversation/conversation-input-routing.js +20 -0
  326. package/dist/services/conversation/conversation-input-routing.js.map +1 -0
  327. package/dist/services/conversation/conversation-orchestrator.d.ts +36 -0
  328. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -0
  329. package/dist/services/conversation/conversation-orchestrator.js +440 -0
  330. package/dist/services/conversation/conversation-orchestrator.js.map +1 -0
  331. package/dist/services/conversation/conversation-orchestrator.types.d.ts +58 -0
  332. package/dist/services/conversation/conversation-orchestrator.types.d.ts.map +1 -0
  333. package/dist/services/conversation/conversation-orchestrator.types.js +2 -0
  334. package/dist/services/conversation/conversation-orchestrator.types.js.map +1 -0
  335. package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
  336. package/dist/services/conversation/conversation-replay.js +46 -21
  337. package/dist/services/conversation/conversation-replay.js.map +1 -1
  338. package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
  339. package/dist/services/conversation/conversation-service.d.ts +2 -1
  340. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  341. package/dist/services/conversation/conversation-service.js +9 -0
  342. package/dist/services/conversation/conversation-service.js.map +1 -1
  343. package/dist/services/conversation/conversation-state-projector.d.ts +52 -0
  344. package/dist/services/conversation/conversation-state-projector.d.ts.map +1 -0
  345. package/dist/services/conversation/conversation-state-projector.js +71 -0
  346. package/dist/services/conversation/conversation-state-projector.js.map +1 -0
  347. package/dist/services/conversation/conversation-state-schema.d.ts +44 -0
  348. package/dist/services/conversation/conversation-state-schema.d.ts.map +1 -0
  349. package/dist/services/conversation/conversation-state-schema.js +25 -0
  350. package/dist/services/conversation/conversation-state-schema.js.map +1 -0
  351. package/dist/services/conversation/conversation-store.d.ts +5 -1
  352. package/dist/services/conversation/conversation-store.d.ts.map +1 -1
  353. package/dist/services/conversation/conversation-store.js +5 -1
  354. package/dist/services/conversation/conversation-store.js.map +1 -1
  355. package/dist/services/conversation/conversation-turn-items.d.ts.map +1 -1
  356. package/dist/services/conversation/conversation-turn-items.js +13 -1
  357. package/dist/services/conversation/conversation-turn-items.js.map +1 -1
  358. package/dist/services/conversation/journal-to-ledger.d.ts +17 -0
  359. package/dist/services/conversation/journal-to-ledger.d.ts.map +1 -0
  360. package/dist/services/conversation/journal-to-ledger.js +220 -0
  361. package/dist/services/conversation/journal-to-ledger.js.map +1 -0
  362. package/dist/services/conversation-adapter.d.ts +2 -3
  363. package/dist/services/conversation-adapter.d.ts.map +1 -1
  364. package/dist/services/conversation-adapter.js +8 -10
  365. package/dist/services/conversation-adapter.js.map +1 -1
  366. package/dist/services/conversation-events.d.ts +1 -1
  367. package/dist/services/conversation-events.d.ts.map +1 -1
  368. package/dist/services/conversation-log-events.d.ts +1 -1
  369. package/dist/services/conversation-log-events.d.ts.map +1 -1
  370. package/dist/services/conversation-replay.d.ts +1 -1
  371. package/dist/services/conversation-replay.d.ts.map +1 -1
  372. package/dist/services/conversation-replay.js +1 -1
  373. package/dist/services/conversation-replay.js.map +1 -1
  374. package/dist/services/conversation-result-builder.d.ts +1 -1
  375. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  376. package/dist/services/conversation-result-builder.js +2 -2
  377. package/dist/services/conversation-result-builder.js.map +1 -1
  378. package/dist/services/conversation-result-builder.test.js +3 -3
  379. package/dist/services/conversation-result-builder.test.js.map +1 -1
  380. package/dist/services/conversation-result-resolver.d.ts +25 -0
  381. package/dist/services/conversation-result-resolver.d.ts.map +1 -0
  382. package/dist/services/conversation-result-resolver.js +79 -0
  383. package/dist/services/conversation-result-resolver.js.map +1 -0
  384. package/dist/services/conversation-result-resolver.test.d.ts +2 -0
  385. package/dist/services/conversation-result-resolver.test.d.ts.map +1 -0
  386. package/dist/services/conversation-result-resolver.test.js +186 -0
  387. package/dist/services/conversation-result-resolver.test.js.map +1 -0
  388. package/dist/services/conversation-service.test.js +2 -2
  389. package/dist/services/conversation-service.test.js.map +1 -1
  390. package/dist/services/conversation-session-composition.d.ts +1 -3
  391. package/dist/services/conversation-session-composition.d.ts.map +1 -1
  392. package/dist/services/conversation-session-composition.js +2 -3
  393. package/dist/services/conversation-session-composition.js.map +1 -1
  394. package/dist/services/conversation-session-factory.d.ts +1 -3
  395. package/dist/services/conversation-session-factory.d.ts.map +1 -1
  396. package/dist/services/conversation-session-factory.js +1 -7
  397. package/dist/services/conversation-session-factory.js.map +1 -1
  398. package/dist/services/conversation-session.characterization.test.js +13 -23
  399. package/dist/services/conversation-session.characterization.test.js.map +1 -1
  400. package/dist/services/conversation-store.merge-modes.test.d.ts.map +1 -1
  401. package/dist/services/conversation-store.merge-modes.test.js +160 -1
  402. package/dist/services/conversation-store.merge-modes.test.js.map +1 -1
  403. package/dist/services/conversation-turn-runner.d.ts +1 -2
  404. package/dist/services/conversation-turn-runner.d.ts.map +1 -1
  405. package/dist/services/execution-context.d.ts.map +1 -1
  406. package/dist/services/execution-context.js.map +1 -1
  407. package/dist/services/file-service.d.ts.map +1 -1
  408. package/dist/services/file-service.js.map +1 -1
  409. package/dist/services/generation-guard.d.ts.map +1 -1
  410. package/dist/services/history-service.d.ts.map +1 -1
  411. package/dist/services/input-surge-guard.d.ts.map +1 -1
  412. package/dist/services/input-surge-guard.js.map +1 -1
  413. package/dist/services/interruption-info.d.ts.map +1 -1
  414. package/dist/services/large-uncached-input-guard.d.ts.map +1 -1
  415. package/dist/services/large-uncached-input-guard.js.map +1 -1
  416. package/dist/services/logging/assistant-turn-journal.d.ts +28 -3
  417. package/dist/services/logging/assistant-turn-journal.d.ts.map +1 -1
  418. package/dist/services/logging/assistant-turn-journal.js +52 -3
  419. package/dist/services/logging/assistant-turn-journal.js.map +1 -1
  420. package/dist/services/logging/conversation-log-writer.d.ts.map +1 -1
  421. package/dist/services/logging/conversation-logger.d.ts +2 -2
  422. package/dist/services/logging/conversation-logger.d.ts.map +1 -1
  423. package/dist/services/logging/conversation-logger.js +4 -5
  424. package/dist/services/logging/conversation-logger.js.map +1 -1
  425. package/dist/services/logging/logging-contract.d.ts +1 -1
  426. package/dist/services/logging/logging-contract.d.ts.map +1 -1
  427. package/dist/services/logging/logging-service.d.ts.map +1 -1
  428. package/dist/services/logging/logging-service.js.map +1 -1
  429. package/dist/services/logging/provider-traffic.d.ts.map +1 -1
  430. package/dist/services/logging/provider-traffic.js.map +1 -1
  431. package/dist/services/logging-service.js +1 -1
  432. package/dist/services/logging-service.js.map +1 -1
  433. package/dist/services/mode-notices.d.ts.map +1 -1
  434. package/dist/services/model-service.js.map +1 -1
  435. package/dist/services/notification-service.js.map +1 -1
  436. package/dist/services/plan-mode-interceptor.d.ts.map +1 -1
  437. package/dist/services/provider-continuity.d.ts.map +1 -1
  438. package/dist/services/retry/conversation-retry-policy.d.ts.map +1 -1
  439. package/dist/services/retry/conversation-retry-policy.js.map +1 -1
  440. package/dist/services/retry/recovery-executor.d.ts.map +1 -1
  441. package/dist/services/retry/recovery-executor.js +22 -10
  442. package/dist/services/retry/recovery-executor.js.map +1 -1
  443. package/dist/services/retry/recovery-policy.d.ts.map +1 -1
  444. package/dist/services/retry/recovery-policy.js.map +1 -1
  445. package/dist/services/retry/retry-classifier.d.ts.map +1 -1
  446. package/dist/services/retry/retry-classifier.js +2 -1
  447. package/dist/services/retry/retry-classifier.js.map +1 -1
  448. package/dist/services/retry/retry-contracts.d.ts +3 -2
  449. package/dist/services/retry/retry-contracts.d.ts.map +1 -1
  450. package/dist/services/retry/retry-error-classification.d.ts +2 -2
  451. package/dist/services/retry/retry-error-classification.d.ts.map +1 -1
  452. package/dist/services/retry/retry-error-classification.js.map +1 -1
  453. package/dist/services/retry/retry-event-presenter.d.ts.map +1 -1
  454. package/dist/services/retry/retry-event-presenter.js.map +1 -1
  455. package/dist/services/retry/upstream-retry-policy.d.ts.map +1 -1
  456. package/dist/services/rtk-service.js.map +1 -1
  457. package/dist/services/runtime-setting-router.d.ts +15 -0
  458. package/dist/services/runtime-setting-router.d.ts.map +1 -0
  459. package/dist/services/runtime-setting-router.js +52 -0
  460. package/dist/services/runtime-setting-router.js.map +1 -0
  461. package/dist/services/service-interfaces.d.ts +1 -1
  462. package/dist/services/service-interfaces.d.ts.map +1 -1
  463. package/dist/services/session/continuation-driver.d.ts.map +1 -1
  464. package/dist/services/session/continuation-driver.js.map +1 -1
  465. package/dist/services/session/continuation-driver.test.js +7 -169
  466. package/dist/services/session/continuation-driver.test.js.map +1 -1
  467. package/dist/services/session/continuation-plan-applier.d.ts +3 -2
  468. package/dist/services/session/continuation-plan-applier.d.ts.map +1 -1
  469. package/dist/services/session/continuation-plan-applier.js +2 -2
  470. package/dist/services/session/continuation-plan-applier.js.map +1 -1
  471. package/dist/services/session/continuation-recovery-handler.d.ts.map +1 -1
  472. package/dist/services/session/continuation-recovery-handler.js +1 -1
  473. package/dist/services/session/continuation-recovery-handler.js.map +1 -1
  474. package/dist/services/session/continuation-recovery-handler.test.js +4 -3
  475. package/dist/services/session/continuation-recovery-handler.test.js.map +1 -1
  476. package/dist/services/session/continuation-state.d.ts +16 -4
  477. package/dist/services/session/continuation-state.d.ts.map +1 -1
  478. package/dist/services/session/continuation-state.js +6 -6
  479. package/dist/services/session/continuation-state.js.map +1 -1
  480. package/dist/services/session/continuation-stream-cycle.d.ts.map +1 -1
  481. package/dist/services/session/continuation-stream-cycle.js.map +1 -1
  482. package/dist/services/session/conversation-session.d.ts +0 -1
  483. package/dist/services/session/conversation-session.d.ts.map +1 -1
  484. package/dist/services/session/conversation-session.js.map +1 -1
  485. package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
  486. package/dist/services/session/initial-input-preparer.js.map +1 -1
  487. package/dist/services/session/initial-stream-cycle.d.ts.map +1 -1
  488. package/dist/services/session/initial-stream-cycle.js.map +1 -1
  489. package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
  490. package/dist/services/session/initial-turn-recovery-handler.js +2 -2
  491. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  492. package/dist/services/session/initial-turn-runner.d.ts.map +1 -1
  493. package/dist/services/session/initial-turn-runner.js.map +1 -1
  494. package/dist/services/session/session-adapter-bridge.d.ts +11 -1
  495. package/dist/services/session/session-adapter-bridge.d.ts.map +1 -1
  496. package/dist/services/session/session-adapter-bridge.js +10 -1
  497. package/dist/services/session/session-adapter-bridge.js.map +1 -1
  498. package/dist/services/session/session-composition.d.ts +8 -23
  499. package/dist/services/session/session-composition.d.ts.map +1 -1
  500. package/dist/services/session/session-composition.js +48 -98
  501. package/dist/services/session/session-composition.js.map +1 -1
  502. package/dist/services/session/session-context-service.d.ts.map +1 -1
  503. package/dist/services/session/session-continuity-reset.d.ts +23 -0
  504. package/dist/services/session/session-continuity-reset.d.ts.map +1 -0
  505. package/dist/services/session/session-continuity-reset.js +34 -0
  506. package/dist/services/session/session-continuity-reset.js.map +1 -0
  507. package/dist/services/session/session-factory.d.ts +3 -46
  508. package/dist/services/session/session-factory.d.ts.map +1 -1
  509. package/dist/services/session/session-factory.js +3 -44
  510. package/dist/services/session/session-factory.js.map +1 -1
  511. package/dist/services/session/session-factory.test.js +18 -17
  512. package/dist/services/session/session-factory.test.js.map +1 -1
  513. package/dist/services/session/session-input-planner.d.ts.map +1 -1
  514. package/dist/services/session/session-lifecycle.d.ts +2 -8
  515. package/dist/services/session/session-lifecycle.d.ts.map +1 -1
  516. package/dist/services/session/session-lifecycle.js +25 -44
  517. package/dist/services/session/session-lifecycle.js.map +1 -1
  518. package/dist/services/session/session-manager.d.ts +1 -1
  519. package/dist/services/session/session-manager.d.ts.map +1 -1
  520. package/dist/services/session/session-manager.js +4 -5
  521. package/dist/services/session/session-manager.js.map +1 -1
  522. package/dist/services/session/session-runtime-controller.d.ts +2 -2
  523. package/dist/services/session/session-runtime-controller.d.ts.map +1 -1
  524. package/dist/services/session/session-runtime-controller.js +17 -8
  525. package/dist/services/session/session-runtime-controller.js.map +1 -1
  526. package/dist/services/session/session-stream-processor.d.ts +3 -3
  527. package/dist/services/session/session-stream-processor.d.ts.map +1 -1
  528. package/dist/services/session/session-stream-processor.js +1 -1
  529. package/dist/services/session/session-stream-processor.js.map +1 -1
  530. package/dist/services/session/session-tool-tracker.d.ts.map +1 -1
  531. package/dist/services/session/session-tool-tracker.js +18 -9
  532. package/dist/services/session/session-tool-tracker.js.map +1 -1
  533. package/dist/services/session/terminal-result-collector.js.map +1 -1
  534. package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts.map +1 -1
  535. package/dist/services/session/test-helpers/conversation-session-fixtures.js.map +1 -1
  536. package/dist/services/session/turn-attempt-factory.d.ts +2 -0
  537. package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
  538. package/dist/services/session/turn-attempt-factory.js +1 -1
  539. package/dist/services/session/turn-attempt-factory.js.map +1 -1
  540. package/dist/services/session/turn-attempt.d.ts +3 -3
  541. package/dist/services/session/turn-attempt.d.ts.map +1 -1
  542. package/dist/services/session/turn-attempt.js +4 -4
  543. package/dist/services/session/turn-attempt.js.map +1 -1
  544. package/dist/services/session/turn-coordinator.d.ts +5 -12
  545. package/dist/services/session/turn-coordinator.d.ts.map +1 -1
  546. package/dist/services/session/turn-coordinator.js +4 -53
  547. package/dist/services/session/turn-coordinator.js.map +1 -1
  548. package/dist/services/session/turn-executor.d.ts.map +1 -1
  549. package/dist/services/session/turn-executor.js +2 -1
  550. package/dist/services/session/turn-executor.js.map +1 -1
  551. package/dist/services/session/turn-item-accumulator.d.ts.map +1 -1
  552. package/dist/services/session/turn-status-machine.d.ts +20 -0
  553. package/dist/services/session/turn-status-machine.d.ts.map +1 -1
  554. package/dist/services/session/turn-status-machine.js +28 -0
  555. package/dist/services/session/turn-status-machine.js.map +1 -1
  556. package/dist/services/session/turn-transition.js.map +1 -1
  557. package/dist/services/session/turn-workflow.d.ts +84 -0
  558. package/dist/services/session/turn-workflow.d.ts.map +1 -0
  559. package/dist/services/session/turn-workflow.js +648 -0
  560. package/dist/services/session/turn-workflow.js.map +1 -0
  561. package/dist/services/session-state-controller.test.d.ts +2 -0
  562. package/dist/services/session-state-controller.test.d.ts.map +1 -0
  563. package/dist/services/session-state-controller.test.js +125 -0
  564. package/dist/services/session-state-controller.test.js.map +1 -0
  565. package/dist/services/session-state-facade.d.ts +2 -2
  566. package/dist/services/session-state-facade.d.ts.map +1 -1
  567. package/dist/services/session-state-facade.js.map +1 -1
  568. package/dist/services/settings/custom-provider-normalization.d.ts +4 -0
  569. package/dist/services/settings/custom-provider-normalization.d.ts.map +1 -0
  570. package/dist/services/settings/custom-provider-normalization.js +26 -0
  571. package/dist/services/settings/custom-provider-normalization.js.map +1 -0
  572. package/dist/services/settings/setting-schema-utils.d.ts +19 -0
  573. package/dist/services/settings/setting-schema-utils.d.ts.map +1 -0
  574. package/dist/services/settings/setting-schema-utils.js +91 -0
  575. package/dist/services/settings/setting-schema-utils.js.map +1 -0
  576. package/dist/services/settings/settings-env.d.ts.map +1 -1
  577. package/dist/services/settings/settings-persistence.js.map +1 -1
  578. package/dist/services/settings/settings-schema.d.ts +155 -124
  579. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  580. package/dist/services/settings/settings-schema.js +27 -1
  581. package/dist/services/settings/settings-schema.js.map +1 -1
  582. package/dist/services/settings/settings-service.d.ts +2 -0
  583. package/dist/services/settings/settings-service.d.ts.map +1 -1
  584. package/dist/services/settings/settings-service.js +47 -3
  585. package/dist/services/settings/settings-service.js.map +1 -1
  586. package/dist/services/settings/settings-service.mock.js.map +1 -1
  587. package/dist/services/shell-auto-approval-evaluator.js +1 -1
  588. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  589. package/dist/services/skills/skills-service.d.ts.map +1 -1
  590. package/dist/services/skills/skills-service.js.map +1 -1
  591. package/dist/services/skills/skills-service.test.js +0 -19
  592. package/dist/services/skills/skills-service.test.js.map +1 -1
  593. package/dist/services/ssh-service.d.ts.map +1 -1
  594. package/dist/services/ssh-service.js.map +1 -1
  595. package/dist/services/stream-snapshot.d.ts.map +1 -1
  596. package/dist/services/subagents/execution-runner.d.ts.map +1 -1
  597. package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
  598. package/dist/services/subagents/nested-runner.d.ts.map +1 -1
  599. package/dist/services/subagents/nested-runner.js +13 -1
  600. package/dist/services/subagents/nested-runner.js.map +1 -1
  601. package/dist/services/subagents/role-loader.d.ts.map +1 -1
  602. package/dist/services/subagents/role-loader.js +11 -0
  603. package/dist/services/subagents/role-loader.js.map +1 -1
  604. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  605. package/dist/services/subagents/subagent-session.d.ts.map +1 -1
  606. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts.map +1 -1
  607. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js.map +1 -1
  608. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  609. package/dist/services/subagents/types.d.ts +1 -1
  610. package/dist/services/subagents/types.d.ts.map +1 -1
  611. package/dist/services/test-helpers/mock-stream.d.ts.map +1 -1
  612. package/dist/services/tool-call-arguments.d.ts.map +1 -1
  613. package/dist/services/tool-execution-ledger.d.ts.map +1 -1
  614. package/dist/services/turn-execution-orchestrator.d.ts +79 -0
  615. package/dist/services/turn-execution-orchestrator.d.ts.map +1 -0
  616. package/dist/services/turn-execution-orchestrator.js +687 -0
  617. package/dist/services/turn-execution-orchestrator.js.map +1 -0
  618. package/dist/services/turn-execution-orchestrator.test.d.ts +2 -0
  619. package/dist/services/turn-execution-orchestrator.test.d.ts.map +1 -0
  620. package/dist/services/turn-execution-orchestrator.test.js +236 -0
  621. package/dist/services/turn-execution-orchestrator.test.js.map +1 -0
  622. package/dist/services/turn-item-accumulator.d.ts +1 -1
  623. package/dist/services/turn-item-accumulator.d.ts.map +1 -1
  624. package/dist/test-helpers/ink-testing.d.ts.map +1 -1
  625. package/dist/test-helpers/terminal-e2e.d.ts +21 -0
  626. package/dist/test-helpers/terminal-e2e.d.ts.map +1 -0
  627. package/dist/test-helpers/terminal-e2e.js +98 -0
  628. package/dist/test-helpers/terminal-e2e.js.map +1 -0
  629. package/dist/tools/agent/activate-skill.d.ts.map +1 -1
  630. package/dist/tools/agent/ask-mentor.d.ts.map +1 -1
  631. package/dist/tools/agent/ask-user.d.ts.map +1 -1
  632. package/dist/tools/agent/ask-user.test.js +11 -50
  633. package/dist/tools/agent/ask-user.test.js.map +1 -1
  634. package/dist/tools/agent/run-subagent.d.ts +2 -2
  635. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  636. package/dist/tools/agent/run-subagent.js.map +1 -1
  637. package/dist/tools/command-message-formatters.d.ts +1 -1
  638. package/dist/tools/command-message-formatters.d.ts.map +1 -1
  639. package/dist/tools/file/apply-patch.d.ts +0 -3
  640. package/dist/tools/file/apply-patch.d.ts.map +1 -1
  641. package/dist/tools/file/apply-patch.js +31 -0
  642. package/dist/tools/file/apply-patch.js.map +1 -1
  643. package/dist/tools/file/apply-patch.test.js +0 -27
  644. package/dist/tools/file/apply-patch.test.js.map +1 -1
  645. package/dist/tools/file/code-context.d.ts +1 -1
  646. package/dist/tools/file/code-context.d.ts.map +1 -1
  647. package/dist/tools/file/code-context.js.map +1 -1
  648. package/dist/tools/file/create-file.test.js +0 -24
  649. package/dist/tools/file/create-file.test.js.map +1 -1
  650. package/dist/tools/file/edit-healing.js.map +1 -1
  651. package/dist/tools/file/glob.d.ts.map +1 -1
  652. package/dist/tools/file/glob.js.map +1 -1
  653. package/dist/tools/file/grep.d.ts.map +1 -1
  654. package/dist/tools/file/grep.js.map +1 -1
  655. package/dist/tools/file/read-file.d.ts.map +1 -1
  656. package/dist/tools/file/read-file.js.map +1 -1
  657. package/dist/tools/file/search-replace-matcher.d.ts.map +1 -1
  658. package/dist/tools/file/search-replace.test.js +0 -30
  659. package/dist/tools/file/search-replace.test.js.map +1 -1
  660. package/dist/tools/format-helpers.d.ts.map +1 -1
  661. package/dist/tools/format-helpers.js.map +1 -1
  662. package/dist/tools/language-providers.d.ts.map +1 -1
  663. package/dist/tools/language-providers.js +379 -0
  664. package/dist/tools/language-providers.js.map +1 -1
  665. package/dist/tools/search.d.ts.map +1 -1
  666. package/dist/tools/search.js +1 -2
  667. package/dist/tools/search.js.map +1 -1
  668. package/dist/tools/system/shell.d.ts.map +1 -1
  669. package/dist/tools/system/shell.js +23 -18
  670. package/dist/tools/system/shell.js.map +1 -1
  671. package/dist/tools/tool-capabilities.d.ts.map +1 -1
  672. package/dist/tools/utils.js.map +1 -1
  673. package/dist/tools/web/web-fetch.d.ts.map +1 -1
  674. package/dist/tools/web/web-search.d.ts.map +1 -1
  675. package/dist/types/message.d.ts +1 -1
  676. package/dist/types/message.d.ts.map +1 -1
  677. package/dist/utils/ai/provider-credentials.d.ts.map +1 -1
  678. package/dist/utils/ai/token-usage.js.map +1 -1
  679. package/dist/utils/clipboard.js.map +1 -1
  680. package/dist/utils/command-safety/_scratch-classify.test.d.ts +2 -0
  681. package/dist/utils/command-safety/_scratch-classify.test.d.ts.map +1 -0
  682. package/dist/utils/command-safety/_scratch-classify.test.js +22 -0
  683. package/dist/utils/command-safety/_scratch-classify.test.js.map +1 -0
  684. package/dist/utils/command-safety/scratch-classify.test.d.ts +2 -0
  685. package/dist/utils/command-safety/scratch-classify.test.d.ts.map +1 -0
  686. package/dist/utils/command-safety/scratch-classify.test.js +22 -0
  687. package/dist/utils/command-safety/scratch-classify.test.js.map +1 -0
  688. package/dist/utils/command-safety/scratch-tally.test.d.ts +2 -0
  689. package/dist/utils/command-safety/scratch-tally.test.d.ts.map +1 -0
  690. package/dist/utils/command-safety/scratch-tally.test.js +68 -0
  691. package/dist/utils/command-safety/scratch-tally.test.js.map +1 -0
  692. package/dist/utils/conversation/apply-conversation-result.d.ts +1 -1
  693. package/dist/utils/conversation/apply-conversation-result.d.ts.map +1 -1
  694. package/dist/utils/conversation/conversation-event-handler.js +6 -6
  695. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  696. package/dist/utils/conversation/markdown-commit-frontier.d.ts.map +1 -1
  697. package/dist/utils/conversation/message-utils.d.ts +2 -2
  698. package/dist/utils/conversation/message-utils.d.ts.map +1 -1
  699. package/dist/utils/conversation/message-utils.js.map +1 -1
  700. package/dist/utils/error-helpers.d.ts.map +1 -1
  701. package/dist/utils/error-helpers.js.map +1 -1
  702. package/dist/utils/extract-command-messages.test.js +6 -6
  703. package/dist/utils/extract-command-messages.test.js.map +1 -1
  704. package/dist/utils/inject-warning-into-tool-output.d.ts.map +1 -1
  705. package/dist/utils/message-id-factory.d.ts +9 -0
  706. package/dist/utils/message-id-factory.d.ts.map +1 -0
  707. package/dist/utils/message-id-factory.js +21 -0
  708. package/dist/utils/message-id-factory.js.map +1 -0
  709. package/dist/utils/output/terminal-title.d.ts +6 -0
  710. package/dist/utils/output/terminal-title.d.ts.map +1 -0
  711. package/dist/utils/output/terminal-title.js +26 -0
  712. package/dist/utils/output/terminal-title.js.map +1 -0
  713. package/dist/utils/output/trim-tool-output.d.ts.map +1 -1
  714. package/dist/utils/output/tty-osc.js.map +1 -1
  715. package/dist/utils/project-tree.js.map +1 -1
  716. package/dist/utils/project-tree.test.d.ts +2 -0
  717. package/dist/utils/project-tree.test.d.ts.map +1 -0
  718. package/dist/utils/project-tree.test.js +149 -0
  719. package/dist/utils/project-tree.test.js.map +1 -0
  720. package/dist/utils/shell/execute-shell.d.ts +1 -0
  721. package/dist/utils/shell/execute-shell.d.ts.map +1 -1
  722. package/dist/utils/shell/execute-shell.js +87 -3
  723. package/dist/utils/shell/execute-shell.js.map +1 -1
  724. package/dist/utils/shell/sandbox/denied-read-stores.d.ts.map +1 -1
  725. package/dist/utils/shell/sandbox/sandbox-env.js.map +1 -1
  726. package/dist/utils/shell/sandbox/sandbox-failure-classifier.d.ts +24 -0
  727. package/dist/utils/shell/sandbox/sandbox-failure-classifier.d.ts.map +1 -0
  728. package/dist/utils/shell/sandbox/sandbox-failure-classifier.js +43 -0
  729. package/dist/utils/shell/sandbox/sandbox-failure-classifier.js.map +1 -0
  730. package/dist/utils/shell/sandbox/sandbox-network-approval.d.ts +14 -0
  731. package/dist/utils/shell/sandbox/sandbox-network-approval.d.ts.map +1 -0
  732. package/dist/utils/shell/sandbox/sandbox-network-approval.js +50 -0
  733. package/dist/utils/shell/sandbox/sandbox-network-approval.js.map +1 -0
  734. package/dist/utils/shell/sandbox/sandbox-network-diagnostic.d.ts +6 -0
  735. package/dist/utils/shell/sandbox/sandbox-network-diagnostic.d.ts.map +1 -0
  736. package/dist/utils/shell/sandbox/sandbox-network-diagnostic.js +71 -0
  737. package/dist/utils/shell/sandbox/sandbox-network-diagnostic.js.map +1 -0
  738. package/dist/utils/shell/sandbox/sandbox-policy.d.ts +1 -0
  739. package/dist/utils/shell/sandbox/sandbox-policy.d.ts.map +1 -1
  740. package/dist/utils/shell/sandbox/sandbox-policy.js +249 -4
  741. package/dist/utils/shell/sandbox/sandbox-policy.js.map +1 -1
  742. package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts.map +1 -1
  743. package/dist/utils/shell/sandbox/shell-sandbox-runner.js +5 -1
  744. package/dist/utils/shell/sandbox/shell-sandbox-runner.js.map +1 -1
  745. package/dist/utils/shell/shell-session.d.ts +22 -0
  746. package/dist/utils/shell/shell-session.d.ts.map +1 -0
  747. package/dist/utils/shell/shell-session.js +48 -0
  748. package/dist/utils/shell/shell-session.js.map +1 -0
  749. package/dist/utils/skill-discovery-paths.d.ts +1 -1
  750. package/dist/utils/skill-discovery-paths.d.ts.map +1 -1
  751. package/dist/utils/streaming/extract-command-messages.d.ts.map +1 -1
  752. package/dist/utils/streaming/extract-command-messages.js.map +1 -1
  753. package/dist/utils/streaming/streaming-session-factory.d.ts.map +1 -1
  754. package/dist/utils/streaming/streaming-session-factory.js +2 -1
  755. package/dist/utils/streaming/streaming-session-factory.js.map +1 -1
  756. package/dist/utils/streaming/streaming-updater.d.ts.map +1 -1
  757. package/dist/utils/subsequence-filter.d.ts.map +1 -1
  758. package/dist/utils/terminal-clear.d.ts +7 -0
  759. package/dist/utils/terminal-clear.d.ts.map +1 -0
  760. package/dist/utils/terminal-clear.js +5 -0
  761. package/dist/utils/terminal-clear.js.map +1 -0
  762. package/dist/utils/terminal-clear.test.d.ts +2 -0
  763. package/dist/utils/terminal-clear.test.d.ts.map +1 -0
  764. package/dist/utils/terminal-clear.test.js +13 -0
  765. package/dist/utils/terminal-clear.test.js.map +1 -0
  766. package/dist/utils/test-render.d.ts +14 -0
  767. package/dist/utils/test-render.d.ts.map +1 -0
  768. package/dist/utils/test-render.js +44 -0
  769. package/dist/utils/test-render.js.map +1 -0
  770. package/dist/utils/throttle.d.ts.map +1 -1
  771. package/dist/utils/throttle.js.map +1 -1
  772. package/dist/utils/value-suggestions.d.ts +15 -0
  773. package/dist/utils/value-suggestions.d.ts.map +1 -0
  774. package/dist/utils/value-suggestions.js +266 -0
  775. package/dist/utils/value-suggestions.js.map +1 -0
  776. package/package.json +11 -5
  777. package/dist/agent.lite-mode.test.d.ts +0 -2
  778. package/dist/agent.lite-mode.test.d.ts.map +0 -1
  779. package/dist/agent.lite-mode.test.js +0 -39
  780. package/dist/agent.lite-mode.test.js.map +0 -1
  781. package/dist/app.large-uncached-warning.test.js +0 -15
  782. package/dist/components/ApprovalPrompt.test.d.ts +0 -2
  783. package/dist/components/ApprovalPrompt.test.d.ts.map +0 -1
  784. package/dist/components/ApprovalPrompt.test.js +0 -23
  785. package/dist/components/ApprovalPrompt.test.js.map +0 -1
  786. package/dist/components/LiveResponse.test.d.ts +0 -2
  787. package/dist/components/LiveResponse.test.d.ts.map +0 -1
  788. package/dist/components/LiveResponse.test.js +0 -13
  789. package/dist/components/LiveResponse.test.js.map +0 -1
  790. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +0 -2
  791. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +0 -1
  792. package/dist/components/ModelSelectionMenu.error-tabs.test.js +0 -18
  793. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +0 -1
  794. package/dist/components/TextInput.d.ts +0 -42
  795. package/dist/components/TextInput.d.ts.map +0 -1
  796. package/dist/components/TextInput.js +0 -398
  797. package/dist/components/TextInput.js.map +0 -1
  798. package/dist/components/TextInput.test.d.ts +0 -2
  799. package/dist/components/TextInput.test.d.ts.map +0 -1
  800. package/dist/components/TextInput.test.js +0 -75
  801. package/dist/components/TextInput.test.js.map +0 -1
  802. package/dist/components/__test_act.test.d.ts +0 -2
  803. package/dist/components/__test_act.test.d.ts.map +0 -1
  804. package/dist/components/__test_act.test.js +0 -22
  805. package/dist/components/__test_act.test.js.map +0 -1
  806. package/dist/components/__test_act_test.d.ts +0 -2
  807. package/dist/components/__test_act_test.d.ts.map +0 -1
  808. package/dist/components/__test_act_test.js +0 -22
  809. package/dist/components/__test_act_test.js.map +0 -1
  810. package/dist/components/act-test.test.d.ts +0 -2
  811. package/dist/components/act-test.test.d.ts.map +0 -1
  812. package/dist/components/act-test.test.js +0 -22
  813. package/dist/components/act-test.test.js.map +0 -1
  814. package/dist/components/common/MenuContainer.d.ts +0 -19
  815. package/dist/components/common/MenuContainer.d.ts.map +0 -1
  816. package/dist/components/common/MenuContainer.js +0 -52
  817. package/dist/components/common/MenuContainer.js.map +0 -1
  818. package/dist/components/common/MenuContainer.test.d.ts +0 -2
  819. package/dist/components/common/MenuContainer.test.d.ts.map +0 -1
  820. package/dist/components/common/MenuContainer.test.js +0 -37
  821. package/dist/components/common/MenuContainer.test.js.map +0 -1
  822. package/dist/components/common/ScrollableTabBar.d.ts +0 -26
  823. package/dist/components/common/ScrollableTabBar.d.ts.map +0 -1
  824. package/dist/components/common/ScrollableTabBar.js +0 -26
  825. package/dist/components/common/ScrollableTabBar.js.map +0 -1
  826. package/dist/components/common/compute-visible-tabs.d.ts +0 -16
  827. package/dist/components/common/compute-visible-tabs.d.ts.map +0 -1
  828. package/dist/components/common/compute-visible-tabs.js +0 -53
  829. package/dist/components/common/compute-visible-tabs.js.map +0 -1
  830. package/dist/components/common/compute-visible-tabs.test.d.ts +0 -2
  831. package/dist/components/common/compute-visible-tabs.test.d.ts.map +0 -1
  832. package/dist/components/common/compute-visible-tabs.test.js +0 -97
  833. package/dist/components/common/compute-visible-tabs.test.js.map +0 -1
  834. package/dist/components/input/PopupManager.d.ts +0 -88
  835. package/dist/components/input/PopupManager.d.ts.map +0 -1
  836. package/dist/components/input/PopupManager.js +0 -21
  837. package/dist/components/input/PopupManager.js.map +0 -1
  838. package/dist/components/input/determine-active-menu.d.ts +0 -27
  839. package/dist/components/input/determine-active-menu.d.ts.map +0 -1
  840. package/dist/components/input/determine-active-menu.js +0 -81
  841. package/dist/components/input/determine-active-menu.js.map +0 -1
  842. package/dist/components/input/input-width.d.ts +0 -8
  843. package/dist/components/input/input-width.d.ts.map +0 -1
  844. package/dist/components/input/input-width.js +0 -24
  845. package/dist/components/input/input-width.js.map +0 -1
  846. package/dist/components/input/insertions.d.ts +0 -44
  847. package/dist/components/input/insertions.d.ts.map +0 -1
  848. package/dist/components/input/insertions.js +0 -67
  849. package/dist/components/input/insertions.js.map +0 -1
  850. package/dist/components/input/popup-key-navigation.d.ts +0 -18
  851. package/dist/components/input/popup-key-navigation.d.ts.map +0 -1
  852. package/dist/components/input/popup-key-navigation.js +0 -16
  853. package/dist/components/input/popup-key-navigation.js.map +0 -1
  854. package/dist/components/input/popup-key-navigation.test.d.ts +0 -2
  855. package/dist/components/input/popup-key-navigation.test.d.ts.map +0 -1
  856. package/dist/components/input/popup-key-navigation.test.js +0 -75
  857. package/dist/components/input/popup-key-navigation.test.js.map +0 -1
  858. package/dist/components/input/popup-props.d.ts +0 -24
  859. package/dist/components/input/popup-props.d.ts.map +0 -1
  860. package/dist/components/input/popup-props.js +0 -72
  861. package/dist/components/input/popup-props.js.map +0 -1
  862. package/dist/components/input/popup-props.test.d.ts +0 -2
  863. package/dist/components/input/popup-props.test.d.ts.map +0 -1
  864. package/dist/components/input/popup-props.test.js +0 -86
  865. package/dist/components/input/popup-props.test.js.map +0 -1
  866. package/dist/components/input/triggers.d.ts +0 -11
  867. package/dist/components/input/triggers.d.ts.map +0 -1
  868. package/dist/components/input/triggers.js +0 -27
  869. package/dist/components/input/triggers.js.map +0 -1
  870. package/dist/debug_ask_mentor.d.ts +0 -2
  871. package/dist/debug_ask_mentor.d.ts.map +0 -1
  872. package/dist/debug_ask_mentor.js +0 -73
  873. package/dist/debug_ask_mentor.js.map +0 -1
  874. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts +0 -2
  875. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts.map +0 -1
  876. package/dist/hooks/use-conversation.max-turns-undo.test.js +0 -118
  877. package/dist/hooks/use-conversation.max-turns-undo.test.js.map +0 -1
  878. package/dist/hooks/use-path-completion.repro.test.d.ts +0 -2
  879. package/dist/hooks/use-path-completion.repro.test.d.ts.map +0 -1
  880. package/dist/hooks/use-path-completion.repro.test.js.map +0 -1
  881. package/dist/lib/shell.d.ts +0 -7
  882. package/dist/lib/shell.d.ts.map +0 -1
  883. package/dist/lib/shell.js +0 -56
  884. package/dist/lib/shell.js.map +0 -1
  885. package/dist/modes/companion/command-index.d.ts +0 -26
  886. package/dist/modes/companion/command-index.d.ts.map +0 -1
  887. package/dist/modes/companion/command-index.js +0 -50
  888. package/dist/modes/companion/command-index.js.map +0 -1
  889. package/dist/modes/companion/command-index.test.d.ts +0 -2
  890. package/dist/modes/companion/command-index.test.d.ts.map +0 -1
  891. package/dist/modes/companion/command-index.test.js +0 -86
  892. package/dist/modes/companion/command-index.test.js.map +0 -1
  893. package/dist/modes/companion/companion-app.d.ts +0 -12
  894. package/dist/modes/companion/companion-app.d.ts.map +0 -1
  895. package/dist/modes/companion/companion-app.js +0 -297
  896. package/dist/modes/companion/companion-app.js.map +0 -1
  897. package/dist/modes/companion/companion-session.d.ts +0 -63
  898. package/dist/modes/companion/companion-session.d.ts.map +0 -1
  899. package/dist/modes/companion/companion-session.js +0 -146
  900. package/dist/modes/companion/companion-session.js.map +0 -1
  901. package/dist/modes/companion/companion-session.test.d.ts +0 -2
  902. package/dist/modes/companion/companion-session.test.d.ts.map +0 -1
  903. package/dist/modes/companion/companion-session.test.js +0 -28
  904. package/dist/modes/companion/companion-session.test.js.map +0 -1
  905. package/dist/modes/companion/components/status-bar.d.ts +0 -13
  906. package/dist/modes/companion/components/status-bar.d.ts.map +0 -1
  907. package/dist/modes/companion/components/status-bar.js +0 -26
  908. package/dist/modes/companion/components/status-bar.js.map +0 -1
  909. package/dist/modes/companion/context-buffer.d.ts +0 -65
  910. package/dist/modes/companion/context-buffer.d.ts.map +0 -1
  911. package/dist/modes/companion/context-buffer.js +0 -156
  912. package/dist/modes/companion/context-buffer.js.map +0 -1
  913. package/dist/modes/companion/context-buffer.test.d.ts +0 -2
  914. package/dist/modes/companion/context-buffer.test.d.ts.map +0 -1
  915. package/dist/modes/companion/context-buffer.test.js +0 -154
  916. package/dist/modes/companion/context-buffer.test.js.map +0 -1
  917. package/dist/modes/companion/event-detector.d.ts +0 -46
  918. package/dist/modes/companion/event-detector.d.ts.map +0 -1
  919. package/dist/modes/companion/event-detector.js +0 -169
  920. package/dist/modes/companion/event-detector.js.map +0 -1
  921. package/dist/modes/companion/event-detector.test.d.ts +0 -2
  922. package/dist/modes/companion/event-detector.test.d.ts.map +0 -1
  923. package/dist/modes/companion/event-detector.test.js +0 -121
  924. package/dist/modes/companion/event-detector.test.js.map +0 -1
  925. package/dist/modes/companion/index.d.ts +0 -33
  926. package/dist/modes/companion/index.d.ts.map +0 -1
  927. package/dist/modes/companion/index.js +0 -21
  928. package/dist/modes/companion/index.js.map +0 -1
  929. package/dist/modes/companion/input-key-mapper.d.ts +0 -3
  930. package/dist/modes/companion/input-key-mapper.d.ts.map +0 -1
  931. package/dist/modes/companion/input-key-mapper.js +0 -31
  932. package/dist/modes/companion/input-key-mapper.js.map +0 -1
  933. package/dist/modes/companion/input-key-mapper.test.d.ts +0 -2
  934. package/dist/modes/companion/input-key-mapper.test.d.ts.map +0 -1
  935. package/dist/modes/companion/input-key-mapper.test.js +0 -26
  936. package/dist/modes/companion/input-key-mapper.test.js.map +0 -1
  937. package/dist/modes/companion/input-parser.d.ts +0 -53
  938. package/dist/modes/companion/input-parser.d.ts.map +0 -1
  939. package/dist/modes/companion/input-parser.js +0 -114
  940. package/dist/modes/companion/input-parser.js.map +0 -1
  941. package/dist/modes/companion/input-parser.test.d.ts +0 -2
  942. package/dist/modes/companion/input-parser.test.d.ts.map +0 -1
  943. package/dist/modes/companion/input-parser.test.js +0 -123
  944. package/dist/modes/companion/input-parser.test.js.map +0 -1
  945. package/dist/modes/companion/mode-manager.d.ts +0 -41
  946. package/dist/modes/companion/mode-manager.d.ts.map +0 -1
  947. package/dist/modes/companion/mode-manager.js +0 -56
  948. package/dist/modes/companion/mode-manager.js.map +0 -1
  949. package/dist/modes/companion/mode-manager.test.d.ts +0 -2
  950. package/dist/modes/companion/mode-manager.test.d.ts.map +0 -1
  951. package/dist/modes/companion/mode-manager.test.js +0 -65
  952. package/dist/modes/companion/mode-manager.test.js.map +0 -1
  953. package/dist/modes/companion/output-classifier.d.ts +0 -15
  954. package/dist/modes/companion/output-classifier.d.ts.map +0 -1
  955. package/dist/modes/companion/output-classifier.js +0 -77
  956. package/dist/modes/companion/output-classifier.js.map +0 -1
  957. package/dist/modes/companion/output-classifier.test.d.ts +0 -2
  958. package/dist/modes/companion/output-classifier.test.d.ts.map +0 -1
  959. package/dist/modes/companion/output-classifier.test.js +0 -133
  960. package/dist/modes/companion/output-classifier.test.js.map +0 -1
  961. package/dist/modes/companion/pty-wrapper.d.ts +0 -46
  962. package/dist/modes/companion/pty-wrapper.d.ts.map +0 -1
  963. package/dist/modes/companion/pty-wrapper.js +0 -143
  964. package/dist/modes/companion/pty-wrapper.js.map +0 -1
  965. package/dist/modes/companion/safety-classifier.d.ts +0 -31
  966. package/dist/modes/companion/safety-classifier.d.ts.map +0 -1
  967. package/dist/modes/companion/safety-classifier.js +0 -140
  968. package/dist/modes/companion/safety-classifier.js.map +0 -1
  969. package/dist/modes/companion/safety-classifier.test.d.ts +0 -2
  970. package/dist/modes/companion/safety-classifier.test.d.ts.map +0 -1
  971. package/dist/modes/companion/safety-classifier.test.js +0 -151
  972. package/dist/modes/companion/safety-classifier.test.js.map +0 -1
  973. package/dist/modes/companion/summarizer.d.ts +0 -24
  974. package/dist/modes/companion/summarizer.d.ts.map +0 -1
  975. package/dist/modes/companion/summarizer.js +0 -132
  976. package/dist/modes/companion/summarizer.js.map +0 -1
  977. package/dist/modes/companion/terminal-history.d.ts +0 -27
  978. package/dist/modes/companion/terminal-history.d.ts.map +0 -1
  979. package/dist/modes/companion/terminal-history.js +0 -142
  980. package/dist/modes/companion/terminal-history.js.map +0 -1
  981. package/dist/prompts/simple-mentor.md +0 -215
  982. package/dist/providers/ai-sdk-openai.provider.d.ts +0 -14
  983. package/dist/providers/ai-sdk-openai.provider.d.ts.map +0 -1
  984. package/dist/providers/ai-sdk-openai.provider.js +0 -18
  985. package/dist/providers/ai-sdk-openai.provider.js.map +0 -1
  986. package/dist/providers/github-copilot/converters.d.ts +0 -45
  987. package/dist/providers/github-copilot/converters.d.ts.map +0 -1
  988. package/dist/providers/github-copilot/converters.js +0 -118
  989. package/dist/providers/github-copilot/converters.js.map +0 -1
  990. package/dist/providers/github-copilot/converters.test.d.ts +0 -2
  991. package/dist/providers/github-copilot/converters.test.d.ts.map +0 -1
  992. package/dist/providers/github-copilot/converters.test.js +0 -162
  993. package/dist/providers/github-copilot/converters.test.js.map +0 -1
  994. package/dist/providers/github-copilot/github-copilot.provider.d.ts +0 -2
  995. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +0 -1
  996. package/dist/providers/github-copilot/github-copilot.provider.js +0 -75
  997. package/dist/providers/github-copilot/github-copilot.provider.js.map +0 -1
  998. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +0 -2
  999. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +0 -1
  1000. package/dist/providers/github-copilot/github-copilot.provider.test.js +0 -26
  1001. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +0 -1
  1002. package/dist/providers/github-copilot/index.d.ts +0 -4
  1003. package/dist/providers/github-copilot/index.d.ts.map +0 -1
  1004. package/dist/providers/github-copilot/index.js +0 -4
  1005. package/dist/providers/github-copilot/index.js.map +0 -1
  1006. package/dist/providers/github-copilot/model.d.ts +0 -24
  1007. package/dist/providers/github-copilot/model.d.ts.map +0 -1
  1008. package/dist/providers/github-copilot/model.delta.test.d.ts +0 -2
  1009. package/dist/providers/github-copilot/model.delta.test.d.ts.map +0 -1
  1010. package/dist/providers/github-copilot/model.delta.test.js +0 -15
  1011. package/dist/providers/github-copilot/model.delta.test.js.map +0 -1
  1012. package/dist/providers/github-copilot/model.js +0 -498
  1013. package/dist/providers/github-copilot/model.js.map +0 -1
  1014. package/dist/providers/github-copilot/model.test.d.ts +0 -2
  1015. package/dist/providers/github-copilot/model.test.d.ts.map +0 -1
  1016. package/dist/providers/github-copilot/model.test.js +0 -63
  1017. package/dist/providers/github-copilot/model.test.js.map +0 -1
  1018. package/dist/providers/github-copilot/provider.d.ts +0 -15
  1019. package/dist/providers/github-copilot/provider.d.ts.map +0 -1
  1020. package/dist/providers/github-copilot/provider.js +0 -25
  1021. package/dist/providers/github-copilot/provider.js.map +0 -1
  1022. package/dist/providers/github-copilot/provider.test.d.ts +0 -2
  1023. package/dist/providers/github-copilot/provider.test.d.ts.map +0 -1
  1024. package/dist/providers/github-copilot/provider.test.js +0 -52
  1025. package/dist/providers/github-copilot/provider.test.js.map +0 -1
  1026. package/dist/providers/github-copilot/utils.d.ts +0 -20
  1027. package/dist/providers/github-copilot/utils.d.ts.map +0 -1
  1028. package/dist/providers/github-copilot/utils.js +0 -142
  1029. package/dist/providers/github-copilot/utils.js.map +0 -1
  1030. package/dist/providers/github-copilot/utils.test.d.ts +0 -2
  1031. package/dist/providers/github-copilot/utils.test.d.ts.map +0 -1
  1032. package/dist/providers/github-copilot/utils.test.js +0 -21
  1033. package/dist/providers/github-copilot/utils.test.js.map +0 -1
  1034. package/dist/providers/openai-compatible/api.d.ts +0 -17
  1035. package/dist/providers/openai-compatible/api.d.ts.map +0 -1
  1036. package/dist/providers/openai-compatible/api.js +0 -58
  1037. package/dist/providers/openai-compatible/api.js.map +0 -1
  1038. package/dist/providers/openai-compatible/model.d.ts +0 -17
  1039. package/dist/providers/openai-compatible/model.d.ts.map +0 -1
  1040. package/dist/providers/openai-compatible/model.js +0 -473
  1041. package/dist/providers/openai-compatible/model.js.map +0 -1
  1042. package/dist/providers/openai-compatible/provider.d.ts +0 -22
  1043. package/dist/providers/openai-compatible/provider.d.ts.map +0 -1
  1044. package/dist/providers/openai-compatible/provider.js +0 -43
  1045. package/dist/providers/openai-compatible/provider.js.map +0 -1
  1046. package/dist/providers/openai-compatible/reasoning-content.test.d.ts +0 -2
  1047. package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +0 -1
  1048. package/dist/providers/openai-compatible/reasoning-content.test.js +0 -258
  1049. package/dist/providers/openai-compatible/reasoning-content.test.js.map +0 -1
  1050. package/dist/providers/openai-compatible/utils.d.ts +0 -3
  1051. package/dist/providers/openai-compatible/utils.d.ts.map +0 -1
  1052. package/dist/providers/openai-compatible/utils.js +0 -11
  1053. package/dist/providers/openai-compatible/utils.js.map +0 -1
  1054. package/dist/providers/openrouter/api.d.ts +0 -39
  1055. package/dist/providers/openrouter/api.d.ts.map +0 -1
  1056. package/dist/providers/openrouter/api.js +0 -164
  1057. package/dist/providers/openrouter/api.js.map +0 -1
  1058. package/dist/providers/openrouter/converters.d.ts +0 -8
  1059. package/dist/providers/openrouter/converters.d.ts.map +0 -1
  1060. package/dist/providers/openrouter/converters.js +0 -391
  1061. package/dist/providers/openrouter/converters.js.map +0 -1
  1062. package/dist/providers/openrouter/converters.test.d.ts +0 -2
  1063. package/dist/providers/openrouter/converters.test.d.ts.map +0 -1
  1064. package/dist/providers/openrouter/converters.test.js +0 -179
  1065. package/dist/providers/openrouter/converters.test.js.map +0 -1
  1066. package/dist/providers/openrouter/index.d.ts +0 -4
  1067. package/dist/providers/openrouter/index.d.ts.map +0 -1
  1068. package/dist/providers/openrouter/index.js +0 -4
  1069. package/dist/providers/openrouter/index.js.map +0 -1
  1070. package/dist/providers/openrouter/model.d.ts +0 -14
  1071. package/dist/providers/openrouter/model.d.ts.map +0 -1
  1072. package/dist/providers/openrouter/model.js +0 -457
  1073. package/dist/providers/openrouter/model.js.map +0 -1
  1074. package/dist/providers/openrouter/provider.d.ts +0 -15
  1075. package/dist/providers/openrouter/provider.d.ts.map +0 -1
  1076. package/dist/providers/openrouter/provider.js +0 -21
  1077. package/dist/providers/openrouter/provider.js.map +0 -1
  1078. package/dist/providers/openrouter/reasoning-content.test.d.ts +0 -2
  1079. package/dist/providers/openrouter/reasoning-content.test.d.ts.map +0 -1
  1080. package/dist/providers/openrouter/reasoning-content.test.js +0 -122
  1081. package/dist/providers/openrouter/reasoning-content.test.js.map +0 -1
  1082. package/dist/providers/openrouter/utils.d.ts +0 -11
  1083. package/dist/providers/openrouter/utils.d.ts.map +0 -1
  1084. package/dist/providers/openrouter/utils.js +0 -29
  1085. package/dist/providers/openrouter/utils.js.map +0 -1
  1086. package/dist/providers/openrouter.api.retry.test.d.ts +0 -2
  1087. package/dist/providers/openrouter.api.retry.test.d.ts.map +0 -1
  1088. package/dist/providers/openrouter.api.retry.test.js +0 -148
  1089. package/dist/providers/openrouter.api.retry.test.js.map +0 -1
  1090. package/dist/providers/openrouter.test.d.ts +0 -2
  1091. package/dist/providers/openrouter.test.d.ts.map +0 -1
  1092. package/dist/providers/openrouter.test.js +0 -1449
  1093. package/dist/providers/openrouter.test.js.map +0 -1
  1094. package/dist/providers/protocol-client.d.ts +0 -17
  1095. package/dist/providers/protocol-client.d.ts.map +0 -1
  1096. package/dist/providers/protocol-client.js +0 -57
  1097. package/dist/providers/protocol-client.js.map +0 -1
  1098. package/dist/providers/protocol-client.test.d.ts +0 -2
  1099. package/dist/providers/protocol-client.test.d.ts.map +0 -1
  1100. package/dist/providers/protocol-client.test.js +0 -55
  1101. package/dist/providers/protocol-client.test.js.map +0 -1
  1102. package/dist/safety-checker.js +0 -57
  1103. package/dist/services/check_mock.d.ts +0 -2
  1104. package/dist/services/check_mock.d.ts.map +0 -1
  1105. package/dist/services/check_mock.js +0 -22
  1106. package/dist/services/check_mock.js.map +0 -1
  1107. package/dist/services/conversation-store.merge-modes.removed.d.ts +0 -2
  1108. package/dist/services/conversation-store.merge-modes.removed.d.ts.map +0 -1
  1109. package/dist/services/conversation-store.merge-modes.removed.js +0 -2
  1110. package/dist/services/conversation-store.merge-modes.removed.js.map +0 -1
  1111. package/dist/services/repro-error.test.d.ts +0 -2
  1112. package/dist/services/repro-error.test.d.ts.map +0 -1
  1113. package/dist/services/repro-error.test.js +0 -38
  1114. package/dist/services/repro-error.test.js.map +0 -1
  1115. package/dist/services/subagents/reasoning-inheritance.test.d.ts +0 -2
  1116. package/dist/services/subagents/reasoning-inheritance.test.d.ts.map +0 -1
  1117. package/dist/services/subagents/reasoning-inheritance.test.js +0 -73
  1118. package/dist/services/subagents/reasoning-inheritance.test.js.map +0 -1
  1119. package/dist/services/subagents/subagent-manager-abort-state.test.d.ts +0 -2
  1120. package/dist/services/subagents/subagent-manager-abort-state.test.d.ts.map +0 -1
  1121. package/dist/services/subagents/subagent-manager-abort-state.test.js +0 -36
  1122. package/dist/services/subagents/subagent-manager-abort-state.test.js.map +0 -1
  1123. package/dist/services/subagents/subagent-manager-abort.test.d.ts +0 -2
  1124. package/dist/services/subagents/subagent-manager-abort.test.d.ts.map +0 -1
  1125. package/dist/services/subagents/subagent-manager-abort.test.js +0 -3
  1126. package/dist/services/subagents/subagent-manager-abort.test.js.map +0 -1
  1127. package/dist/tools/bash.d.ts +0 -10
  1128. package/dist/tools/bash.d.ts.map +0 -1
  1129. package/dist/tools/bash.js +0 -55
  1130. package/dist/tools/bash.js.map +0 -1
  1131. package/dist/utils/command-safety/handlers/script-handler.d.ts +0 -3
  1132. package/dist/utils/command-safety/handlers/script-handler.d.ts.map +0 -1
  1133. package/dist/utils/command-safety/handlers/script-handler.js +0 -92
  1134. package/dist/utils/command-safety/handlers/script-handler.js.map +0 -1
  1135. package/dist/utils/command-safety/handlers/script-handler.test.d.ts +0 -2
  1136. package/dist/utils/command-safety/handlers/script-handler.test.d.ts.map +0 -1
  1137. package/dist/utils/command-safety/handlers/script-handler.test.js +0 -44
  1138. package/dist/utils/command-safety/handlers/script-handler.test.js.map +0 -1
  1139. package/dist/utils/command-safety/index.test.d.ts +0 -2
  1140. package/dist/utils/command-safety/index.test.d.ts.map +0 -1
  1141. package/dist/utils/command-safety/index.test.js +0 -22
  1142. package/dist/utils/command-safety/index.test.js.map +0 -1
  1143. package/dist/utils/command-safety.d.ts +0 -21
  1144. package/dist/utils/command-safety.d.ts.map +0 -1
  1145. package/dist/utils/command-safety.devnull.test.d.ts +0 -2
  1146. package/dist/utils/command-safety.devnull.test.d.ts.map +0 -1
  1147. package/dist/utils/command-safety.devnull.test.js +0 -13
  1148. package/dist/utils/command-safety.devnull.test.js.map +0 -1
  1149. package/dist/utils/command-safety.js +0 -348
  1150. package/dist/utils/command-safety.js.map +0 -1
  1151. package/dist/utils/provider-traffic-extractor.repro.test.d.ts +0 -2
  1152. package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +0 -1
  1153. package/dist/utils/provider-traffic-extractor.repro.test.js.map +0 -1
  1154. /package/dist/components/{input → Input}/input-width.test.d.ts +0 -0
  1155. /package/dist/components/{input → Input}/input-width.test.d.ts.map +0 -0
  1156. /package/dist/components/{input → Input}/input-width.test.js +0 -0
  1157. /package/dist/components/{input → Input}/input-width.test.js.map +0 -0
  1158. /package/dist/components/{input → Input}/insertions.test.d.ts +0 -0
  1159. /package/dist/components/{input → Input}/insertions.test.d.ts.map +0 -0
  1160. /package/dist/components/{input → Input}/insertions.test.js +0 -0
  1161. /package/dist/components/{input → Input}/insertions.test.js.map +0 -0
@@ -1,25 +1,12 @@
1
1
  import { useCallback, useEffect, useReducer, useRef } from 'react';
2
- import { describeError, isAbortLikeError } from '../utils/error-helpers.js';
3
- import { ASK_USER_DECLINE_RESULT } from '../tools/agent/ask-user-constants.js';
4
- import { createMessageId } from './message-id.js';
5
- import { countUndoableUserTurnsFrom, findLastUndoableUserMessage, trimTrailingAssistantMessages, } from '../utils/conversation/message-utils.js';
6
- import { clearStreamingBotMessage, computeNextMessages } from '../utils/conversation/apply-conversation-result.js';
7
2
  import { useConversationMessages } from './use-conversation-messages.js';
8
3
  import { useConversationSettings } from './use-conversation-settings.js';
9
- import { enhanceApiKeyError, isMaxTurnsError } from '../utils/conversation/conversation-utils.js';
10
- import { createStreamingSession } from '../utils/streaming/streaming-session-factory.js';
11
- import { isBotMessage, isUserMessage } from '../types/message.js';
12
- import { isDeniedReadApproveAnswer } from '../contracts/conversation.js';
13
4
  import { useSetting } from './use-setting.js';
14
- import { annotateApprovedCommandMessage, filterPendingCommandMessagesForApproval, } from '../services/approval/approval-presentation-policy.js';
15
- import { formatUserTurnForDisplay, hasUserTurnContent, injectSkillIntoTurn, normalizeUserTurn, } from '../types/user-turn.js';
5
+ import { ConversationOrchestrator } from '../services/conversation/conversation-orchestrator.js';
6
+ import { normalizeApprovalDecision, routeConversationTurnSubmission, } from '../services/conversation/conversation-input-routing.js';
7
+ import { isBotMessage } from '../types/message.js';
16
8
  import { conversationUIReducer, createInitialUIState, getConversationUIFlags } from './conversation-ui-reducer.js';
17
- const REASONING_RESPONSE_THROTTLE_MS = 200;
18
9
  const MAX_MESSAGE_COUNT = 300;
19
- const clearsThinkingIndicator = (eventType) => eventType === 'text_delta' ||
20
- eventType === 'tool_started' ||
21
- eventType === 'tool_call_streaming_delta' ||
22
- eventType === 'final';
23
10
  const getInitialLastUsage = (messages) => {
24
11
  for (let i = messages.length - 1; i >= 0; i--) {
25
12
  const message = messages[i];
@@ -37,7 +24,7 @@ const dummySettingsService = {
37
24
  get: () => 'openai',
38
25
  onChange: () => () => { },
39
26
  };
40
- export const useConversation = ({ conversationService, loggingService, usageAccumulator, subagentUsageAccumulator, initialMessages = [], sessionId, onClear, settingsService, onRestoreInput, logWriter, notifier, }) => {
27
+ export const useConversation = ({ conversationService, loggingService, usageAccumulator, subagentUsageAccumulator, initialMessages = [], sessionId, onClear, settingsService, replaceInput, onRestoreInput, logWriter, notifier, }) => {
41
28
  const { messages, setMessages, trimMessages, appendMessages, addSystemMessage, addShellMessage, getUserMessages } = useConversationMessages({
42
29
  initialMessages,
43
30
  maxMessageCount: MAX_MESSAGE_COUNT,
@@ -47,530 +34,120 @@ export const useConversation = ({ conversationService, loggingService, usageAccu
47
34
  });
48
35
  const [uiState, dispatch] = useReducer(conversationUIReducer, initialMessages, (init) => createInitialUIState(getInitialLastUsage(init)));
49
36
  const { thinkingStartedAt, toolCallStreamingInfo, lastUsage, lastCodexRateLimit } = uiState;
50
- const { isProcessing, waitingForApproval, waitingForRejectionReason, waitingForAskUserAnswer, askUserAnswers, currentAskUserQuestionIndex, pendingApproval, } = getConversationUIFlags(uiState);
37
+ const { isProcessing, waitingForApproval, waitingForRejectionReason, waitingForAskUserAnswer, currentAskUserQuestionIndex, pendingApproval, } = getConversationUIFlags(uiState);
51
38
  const approvedContextRef = useRef(null);
52
- // Use a ref to keep askUserAnswers current for the handleApprovalDecision callback
53
- // This fixes the stale closure bug in multi-question ask_user flows
54
- const askUserAnswersRef = useRef(askUserAnswers);
55
- useEffect(() => {
56
- askUserAnswersRef.current = askUserAnswers;
57
- }, [askUserAnswers]);
58
39
  const provider = useSetting(settingsService || dummySettingsService, 'agent.provider') ?? 'openai';
59
40
  useEffect(() => {
60
41
  dispatch({ type: 'rate_limit/cleared' });
61
42
  }, [provider]);
62
- const annotateCommandMessage = useCallback((cmdMsg) => {
63
- const approvedMessage = annotateApprovedCommandMessage(cmdMsg, approvedContextRef.current);
64
- const matchedByToolName = approvedMessage !== cmdMsg &&
65
- !approvedContextRef.current?.callId &&
66
- Boolean(approvedContextRef.current?.toolName) &&
67
- approvedContextRef.current?.toolName === cmdMsg.toolName;
68
- if (matchedByToolName) {
69
- approvedContextRef.current = null;
70
- }
71
- return approvedMessage;
72
- }, []);
73
- const createOnEventWithSubagentTracking = useCallback((baseOnEvent) => {
74
- return (event) => {
75
- const eventType = typeof event?.type === 'string' ? event.type : undefined;
76
- if (eventType === 'reasoning_delta') {
77
- dispatch({ type: 'streaming/thinking_started', timestamp: Date.now() });
78
- }
79
- else if (eventType && clearsThinkingIndicator(eventType)) {
80
- dispatch({ type: 'streaming/thinking_cleared' });
81
- }
82
- if (eventType === 'tool_call_streaming_delta') {
83
- dispatch({
84
- type: 'streaming/tool_info',
85
- info: { toolName: event.toolName, argumentCharCount: event.argumentCharCount },
86
- });
87
- }
88
- else if (eventType === 'tool_started' || eventType === 'text_delta' || eventType === 'final') {
89
- dispatch({ type: 'streaming/tool_info', info: null });
90
- }
91
- baseOnEvent(event);
92
- if (subagentUsageAccumulator && event?.type === 'subagent_completed' && event?.result?.usage) {
93
- subagentUsageAccumulator.add(event.result.usage);
94
- }
95
- };
96
- }, [subagentUsageAccumulator]);
97
- const applyServiceResult = useCallback((result, streamingState, latestStreamedUsage) => {
98
- if (!result) {
99
- return;
100
- }
101
- if (result.type === 'approval_required') {
102
- if (result.usage) {
103
- // result.usage here is the run-cumulative usage *so far* for a run
104
- // that is still in progress (paused for approval). The terminal
105
- // `response` result will carry the full run-cumulative usage once
106
- // the run completes, so accumulating here would double-count the
107
- // pre-approval turns. Only update the live footer.
108
- dispatch({ type: 'usage/updated', usage: latestStreamedUsage ?? result.usage });
109
- }
110
- // Don't also show the transient pending/running command message.
111
- setMessages((prev) => trimMessages(filterPendingCommandMessagesForApproval(prev, result.approval)));
112
- dispatch({
113
- type: 'approval/requested',
114
- approval: { ...result.approval, llmAdvisory: result.approval.llmAdvisory },
115
- });
116
- notifier?.approvalNeeded();
117
- return;
118
- }
119
- // Apply the response result via the pure helper. The helper finalizes
120
- // the live streaming bot message in place when one exists, instead of
121
- // appending a duplicate finalized copy. This prevents the assistant's
122
- // reply from rendering twice when streaming text never crossed a safe
123
- // markdown boundary.
124
- setMessages((prev) => computeNextMessages({
125
- prev,
126
- result,
127
- streamingState,
128
- createMessageId,
129
- trimMessages,
130
- annotateCommandMessage,
131
- }).next);
132
- if (result.type === 'response' && streamingState.currentBotMessageId !== null) {
133
- clearStreamingBotMessage(streamingState);
134
- }
135
- dispatch({ type: 'approval/resolved' });
136
- notifier?.turnComplete();
137
- if (result.usage) {
138
- usageAccumulator?.add(result.usage);
139
- dispatch({ type: 'usage/updated', usage: latestStreamedUsage ?? result.usage });
140
- }
141
- }, [annotateCommandMessage, trimMessages, usageAccumulator, notifier, setMessages]);
142
- const createTurnSession = useCallback((label) => createStreamingSession({
143
- appendMessages,
144
- setMessages,
145
- trimMessages,
146
- annotateCommandMessage,
147
- loggingService,
148
- setLastUsage: (usage) => dispatch({ type: 'usage/updated', usage }),
149
- setCodexRateLimit: (rateLimit) => dispatch({ type: 'rate_limit/updated', rateLimit }),
150
- reasoningThrottleMs: REASONING_RESPONSE_THROTTLE_MS,
151
- }, label), [appendMessages, setMessages, trimMessages, annotateCommandMessage, loggingService]);
152
- const sendUserMessage = useCallback(async (input, options) => {
153
- const turn = normalizeUserTurn(input);
154
- if (!hasUserTurnContent(turn)) {
155
- return;
156
- }
157
- const userMessage = {
158
- id: createMessageId(),
159
- sender: 'user',
160
- text: formatUserTurnForDisplay(turn),
161
- ...(turn.skill ? { skill: turn.skill } : {}),
162
- };
163
- appendMessages([userMessage]);
164
- logWriter?.append({ type: 'user_message', message: userMessage });
165
- dispatch({ type: 'turn/started' });
166
- const { botResponseUpdater, reasoningUpdater, applyConversationEvent, streamingState } = createTurnSession('sendUserMessage');
167
- const wrappedOnEvent = (event) => {
168
- if (event?.type === 'user_message_consumed_for_abort') {
169
- setMessages((prev) => {
170
- for (let i = prev.length - 1; i >= 0; i--) {
171
- const msg = prev[i];
172
- if (isUserMessage(msg)) {
173
- if (msg.consumedForAbort)
174
- return prev;
175
- const next = prev.slice();
176
- next[i] = { ...msg, consumedForAbort: true };
177
- return next;
178
- }
179
- }
180
- return prev;
181
- });
182
- return;
183
- }
184
- applyConversationEvent(event);
185
- };
186
- try {
187
- // Inject skill content into the turn text before sending to AI
188
- const turnToSend = turn.skill ? injectSkillIntoTurn(turn) : turn;
189
- const result = await conversationService.sendMessage(turnToSend, {
190
- onEvent: createOnEventWithSubagentTracking(wrappedOnEvent),
191
- bypassInputSurgeGuard: options?.bypassInputSurgeGuard,
192
- });
193
- applyConversationEvent({ type: 'final', finalText: '' });
194
- // Flush any throttled bot update so the streaming message reflects the
195
- // last delta before we decide whether to finalize it in place.
196
- botResponseUpdater.flush();
197
- applyServiceResult(result, streamingState, streamingState.latestUsage);
198
- }
199
- catch (error) {
200
- loggingService.error('Error in sendUserMessage', {
201
- error: error instanceof Error ? error.message : String(error),
202
- stack: error instanceof Error ? error.stack : undefined,
203
- ...(error instanceof Error && error.eventKind ? { eventKind: error.eventKind } : {}),
204
- });
205
- // Don't show error messages for user-initiated aborts
206
- if (isAbortLikeError(error)) {
207
- loggingService.debug('Suppressing abort error in sendUserMessage');
208
- // The finally block will handle cleanup
209
- return;
210
- }
211
- const rawErrorMessage = describeError(error);
212
- const errorMessage = enhanceApiKeyError(rawErrorMessage);
213
- // If the session dropped the user turn from the store as part of this
214
- // error, mirror that in the UI: remove the trailing user message and
215
- // restore its text to the input box for editing/retry.
216
- const dropped = error?.rawEvent?.droppedUserMessage;
217
- if (dropped) {
218
- setMessages((prev) => {
219
- for (let i = prev.length - 1; i >= 0; i--) {
220
- if (prev[i].sender === 'user') {
221
- return prev.slice(0, i);
222
- }
223
- }
224
- return prev;
225
- });
226
- onRestoreInput?.(dropped.text);
227
- }
228
- if (isMaxTurnsError(errorMessage)) {
229
- // Create an approval prompt for max turns continuation
230
- dispatch({
231
- type: 'approval/requested',
232
- approval: {
233
- agentName: 'System',
234
- toolName: 'max_turns_exceeded',
235
- argumentsText: errorMessage,
236
- rawInterruption: null,
237
- isMaxTurnsPrompt: true,
238
- },
239
- });
240
- }
241
- else {
242
- // For other errors, just show the error message
243
- const botErrorMessage = {
244
- id: createMessageId(),
245
- sender: 'bot',
246
- status: 'finalized',
247
- text: `Error: ${errorMessage}`,
248
- };
249
- appendMessages([botErrorMessage]);
250
- // Reset approval state on error to allow user to continue
251
- dispatch({ type: 'approval/resolved' });
252
- }
253
- }
254
- finally {
255
- loggingService.debug('sendUserMessage finally block - resetting state');
256
- // flushLog();
257
- reasoningUpdater.flush();
258
- botResponseUpdater.cancel();
259
- dispatch({ type: 'turn/completed' });
260
- // Don't reset waitingForApproval here - it's set by applyServiceResult
261
- // and should only be cleared by handleApprovalDecision or stopProcessing
262
- }
263
- }, [
264
- conversationService,
265
- applyServiceResult,
266
- appendMessages,
267
- loggingService,
268
- createOnEventWithSubagentTracking,
269
- onRestoreInput,
270
- createTurnSession,
271
- logWriter,
272
- setMessages,
273
- ]);
274
- const handleApprovalDecision = useCallback(async (answer, rejectionReason, approvalAnswer) => {
275
- if (!waitingForApproval || !pendingApproval) {
276
- return;
277
- }
278
- // Check if this is a max turns exceeded prompt
279
- const isMaxTurnsPrompt = pendingApproval.isMaxTurnsPrompt;
280
- const isAskUser = pendingApproval.toolName === 'ask_user';
281
- if (isAskUser && answer === 'y' && approvalAnswer !== ASK_USER_DECLINE_RESULT) {
282
- // Parse questions
283
- let questions = [];
284
- try {
285
- const parsed = JSON.parse(pendingApproval.argumentsText);
286
- questions = parsed.questions || [];
287
- }
288
- catch {
289
- // noop
290
- }
291
- // Only JSON-parse multi-select arrays; single-select answers are plain strings
292
- let parsedAns = approvalAnswer ?? '';
293
- const currentQuestion = questions[askUserAnswersRef.current.length];
294
- if (currentQuestion?.is_multi_select) {
295
- try {
296
- const maybeArray = JSON.parse(approvalAnswer ?? '');
297
- if (Array.isArray(maybeArray)) {
298
- parsedAns = maybeArray;
299
- }
300
- }
301
- catch {
302
- // Not JSON — keep as plain string
303
- }
304
- }
305
- const nextAnswers = [...askUserAnswersRef.current, parsedAns];
306
- if (nextAnswers.length < questions.length) {
307
- // More questions to answer!
308
- dispatch({ type: 'ask_user/answer_submitted', answer: parsedAns });
309
- dispatch({ type: 'ask_user/advance_to_next', nextIndex: nextAnswers.length });
310
- return;
311
- }
312
- // All questions answered — dispatch final answer to complete the ask_user sequence
313
- dispatch({ type: 'ask_user/answer_submitted', answer: parsedAns });
314
- approvalAnswer = JSON.stringify(nextAnswers);
315
- }
316
- if (answer === 'y' || isDeniedReadApproveAnswer(answer)) {
317
- approvedContextRef.current = {
318
- callId: pendingApproval.callId,
319
- toolName: pendingApproval.toolName,
320
- };
321
- }
322
- dispatch({ type: 'approval/resolved' });
323
- // Handle "n" answer for max turns - return to input
324
- if (isMaxTurnsPrompt && answer === 'n') {
325
- dispatch({ type: 'turn/completed' });
43
+ useEffect(() => {
44
+ if (typeof conversationService.setRetryCallback !== 'function') {
326
45
  return;
327
46
  }
328
- // Handle "y" answer for max turns - continue execution automatically
329
- if (isMaxTurnsPrompt && answer === 'y') {
330
- dispatch({ type: 'turn/started' });
331
- const { botResponseUpdater, reasoningUpdater, applyConversationEvent, streamingState } = createTurnSession('maxTurnsContinuation');
332
- try {
333
- // Send a continuation message to resume work
334
- const continuationMessage = 'Please continue with your previous task.';
335
- const result = await conversationService.sendMessage(continuationMessage, {
336
- onEvent: createOnEventWithSubagentTracking(applyConversationEvent),
337
- });
338
- applyConversationEvent({ type: 'final', finalText: '' });
339
- applyServiceResult(result, streamingState, streamingState.latestUsage);
340
- }
341
- catch (error) {
342
- loggingService.error('Error in continuation after max turns', {
343
- error: error instanceof Error ? error.message : String(error),
344
- stack: error instanceof Error ? error.stack : undefined,
345
- });
346
- // Don't show error messages for user-initiated aborts
347
- if (isAbortLikeError(error)) {
348
- loggingService.debug('Suppressing abort error in max turns continuation');
349
- // The finally block will handle cleanup
350
- return;
351
- }
352
- const errorMessage = error instanceof Error ? error.message : String(error);
353
- const botErrorMessage = {
354
- id: createMessageId(),
355
- sender: 'bot',
356
- status: 'finalized',
357
- text: `Error: ${errorMessage}`,
358
- };
359
- appendMessages([botErrorMessage]);
360
- dispatch({ type: 'approval/resolved' });
361
- }
362
- finally {
363
- // flushLog();
364
- reasoningUpdater.flush();
365
- botResponseUpdater.cancel();
366
- dispatch({ type: 'turn/completed' });
367
- }
47
+ conversationService.setRetryCallback(() => addSystemMessage('Retrying due to upstream error...'));
48
+ }, [conversationService, addSystemMessage]);
49
+ // ── Orchestrator instantiation (lazy, once) ─────────────────────────────
50
+ const messagesRef = useRef(messages);
51
+ messagesRef.current = messages;
52
+ const orchestratorRef = useRef(null);
53
+ if (!orchestratorRef.current) {
54
+ orchestratorRef.current = new ConversationOrchestrator({
55
+ conversationService,
56
+ loggingService,
57
+ messages: {
58
+ getMessages: () => messagesRef.current,
59
+ setMessages,
60
+ appendMessages,
61
+ trimMessages,
62
+ },
63
+ ui: {
64
+ onTurnStart: () => dispatch({ type: 'turn/started' }),
65
+ onTurnEnd: () => dispatch({ type: 'turn/completed' }),
66
+ onApprovalRequested: (approval) => dispatch({ type: 'approval/requested', approval }),
67
+ onApprovalResolved: () => dispatch({ type: 'approval/resolved' }),
68
+ onUsageUpdate: (usage) => dispatch({ type: 'usage/updated', usage }),
69
+ onRateLimitUpdate: (rateLimit) => dispatch({ type: 'rate_limit/updated', rateLimit }),
70
+ onRateLimitClear: () => dispatch({ type: 'rate_limit/cleared' }),
71
+ onResetTransient: () => dispatch({ type: 'reset_transient' }),
72
+ onResetAll: () => dispatch({ type: 'reset_all' }),
73
+ onStreamingThinkingStarted: (timestamp) => dispatch({ type: 'streaming/thinking_started', timestamp }),
74
+ onStreamingThinkingCleared: () => dispatch({ type: 'streaming/thinking_cleared' }),
75
+ onStreamingToolInfo: (info) => dispatch({ type: 'streaming/tool_info', info }),
76
+ onAskUserAnswerSubmitted: (answer) => dispatch({ type: 'ask_user/answer_submitted', answer }),
77
+ onAskUserAdvanceToNext: (nextIndex) => dispatch({ type: 'ask_user/advance_to_next', nextIndex }),
78
+ onAskUserGoBack: (_currentIndex, _answers) => dispatch({ type: 'ask_user/go_back' }),
79
+ },
80
+ approvedContext: approvedContextRef,
81
+ usageAccumulator,
82
+ subagentUsageAccumulator,
83
+ notifier,
84
+ onRestoreInput,
85
+ onClear,
86
+ logWriter,
87
+ });
88
+ }
89
+ const orchestrator = orchestratorRef.current;
90
+ // Keep mutable config in sync across renders.
91
+ useEffect(() => {
92
+ orchestrator.updateCallbacks({ onRestoreInput, onClear });
93
+ }, [orchestrator, onRestoreInput, onClear]);
94
+ // ── Public API — all orchestration delegates to the orchestrator ─────────
95
+ const sendUserMessage = useCallback((input, options) => orchestrator.sendUserMessage(input, options), [orchestrator]);
96
+ const handleApprovalDecision = useCallback((answer, rejectionReason, approvalAnswer) => orchestrator.handleApprovalDecision(answer, rejectionReason, approvalAnswer), [orchestrator]);
97
+ const clearConversation = useCallback(() => orchestrator.clearConversation(), [orchestrator]);
98
+ const stopProcessing = useCallback(() => orchestrator.stopProcessing(), [orchestrator]);
99
+ const stopProcessingWithNotice = useCallback(() => {
100
+ stopProcessing();
101
+ addSystemMessage('Stopped');
102
+ }, [stopProcessing, addSystemMessage]);
103
+ const undoLastUserMessage = useCallback(() => orchestrator.undoLastUserMessage(), [orchestrator]);
104
+ const retryLastToolOutput = useCallback(() => orchestrator.retryLastToolOutput(), [orchestrator]);
105
+ const undoToUserMessage = useCallback((uiIndex) => orchestrator.undoToUserMessage(uiIndex), [orchestrator]);
106
+ const getSubagentUsage = useCallback(() => orchestrator.getSubagentUsage(), [orchestrator]);
107
+ const goToPreviousQuestion = useCallback(() => orchestrator.goToPreviousQuestion(), [orchestrator]);
108
+ const goToNextQuestion = useCallback(() => orchestrator.goToNextQuestion(), [orchestrator]);
109
+ const submitApprovalDecision = useCallback(async (answer) => {
110
+ const normalized = normalizeApprovalDecision(answer);
111
+ if (normalized.approvalAnswer !== undefined) {
112
+ replaceInput?.('');
113
+ await handleApprovalDecision(normalized.answer, undefined, normalized.approvalAnswer);
368
114
  return;
369
115
  }
370
- dispatch({ type: 'turn/started' });
371
- const { botResponseUpdater, reasoningUpdater, applyConversationEvent, streamingState } = createTurnSession('approvalDecision');
372
- try {
373
- const result = await conversationService.handleApprovalDecision(answer, rejectionReason, {
374
- onEvent: createOnEventWithSubagentTracking(applyConversationEvent),
375
- approvalAnswer,
376
- });
377
- applyConversationEvent({ type: 'final', finalText: '' });
378
- // Flush any throttled bot update so the streaming message reflects the
379
- // last delta before we decide whether to finalize it in place.
380
- botResponseUpdater.flush();
381
- applyServiceResult(result, streamingState, streamingState.latestUsage);
116
+ await handleApprovalDecision(normalized.answer);
117
+ }, [handleApprovalDecision, replaceInput]);
118
+ const submitConversationTurn = useCallback(async (turn) => {
119
+ const route = routeConversationTurnSubmission({
120
+ text: turn.text,
121
+ waitingForAskUserAnswer,
122
+ waitingForRejectionReason,
123
+ waitingForApproval,
124
+ });
125
+ if (route.kind === 'blocked') {
126
+ return true;
382
127
  }
383
- catch (error) {
384
- loggingService.error('Error in handleApprovalDecision', {
385
- error: error instanceof Error ? error.message : String(error),
386
- stack: error instanceof Error ? error.stack : undefined,
387
- });
388
- // Don't show error messages for user-initiated aborts
389
- if (isAbortLikeError(error)) {
390
- loggingService.debug('Suppressing abort error in handleApprovalDecision');
391
- // The finally block will handle cleanup
392
- return;
393
- }
394
- const errorMessage = error instanceof Error ? error.message : String(error);
395
- const botErrorMessage = {
396
- id: createMessageId(),
397
- sender: 'bot',
398
- status: 'finalized',
399
- text: `Error: ${errorMessage}`,
400
- };
401
- appendMessages([botErrorMessage]);
402
- // Reset approval state on error to allow user to continue
403
- dispatch({ type: 'approval/resolved' });
128
+ if (route.kind === 'approval_answer') {
129
+ replaceInput?.('');
130
+ await handleApprovalDecision(route.answer, undefined, route.approvalAnswer);
131
+ return true;
404
132
  }
405
- finally {
406
- loggingService.debug('handleApprovalDecision finally block - resetting state');
407
- reasoningUpdater.flush();
408
- botResponseUpdater.cancel();
409
- dispatch({ type: 'turn/completed' });
410
- // Don't reset approval state here - if the result is another approval_required,
411
- // applyServiceResult will set waitingForApproval=true, but this finally block
412
- // would immediately clear it, causing the input box to reappear
133
+ if (route.kind === 'rejection_reason') {
134
+ replaceInput?.('');
135
+ await handleApprovalDecision('n', route.reason);
136
+ return true;
413
137
  }
414
- }, [
415
- applyServiceResult,
416
- conversationService,
417
- waitingForApproval,
418
- pendingApproval,
419
- appendMessages,
420
- loggingService,
421
- createOnEventWithSubagentTracking,
422
- createTurnSession,
423
- ]);
138
+ return false;
139
+ }, [handleApprovalDecision, replaceInput, waitingForApproval, waitingForAskUserAnswer, waitingForRejectionReason]);
140
+ // ── Compatibility wrappers (pure UI state, no orchestration) ────────────
424
141
  const onTypeAnswer = useCallback(() => {
425
142
  dispatch({ type: 'ask_user/set_waiting' });
426
143
  }, []);
427
- const clearConversation = useCallback(async () => {
428
- if (onClear) {
429
- await onClear();
430
- }
431
- else {
432
- conversationService.resetWithNewId(crypto.randomUUID());
433
- }
434
- setMessages([]);
435
- approvedContextRef.current = null;
436
- dispatch({ type: 'reset_all' });
437
- usageAccumulator?.reset();
438
- subagentUsageAccumulator?.reset();
439
- }, [conversationService, usageAccumulator, subagentUsageAccumulator, onClear, setMessages]);
440
- const stopProcessing = useCallback(() => {
441
- conversationService.abort();
442
- approvedContextRef.current = null;
443
- dispatch({ type: 'reset_transient' });
444
- }, [conversationService]);
445
- const undoLastUserMessage = useCallback(() => {
446
- const lastUserIndex = findLastUndoableUserMessage(messages);
447
- if (lastUserIndex === -1) {
448
- return null;
449
- }
450
- const lastUserMessage = messages[lastUserIndex];
451
- const uiText = isUserMessage(lastUserMessage) ? lastUserMessage.text : '';
452
- conversationService.abort();
453
- const removed = conversationService.undoLastUserTurn();
454
- const restored = removed ?? { text: uiText };
455
- setMessages((prev) => prev.slice(0, lastUserIndex));
456
- approvedContextRef.current = null;
457
- dispatch({ type: 'reset_transient' });
458
- return restored;
459
- }, [messages, conversationService, setMessages]);
460
- const retryLastToolOutput = useCallback(async () => {
461
- conversationService.abort();
462
- approvedContextRef.current = null;
463
- dispatch({ type: 'reset_transient' });
464
- if (!conversationService.peekLastToolOutput()) {
465
- return false;
466
- }
467
- setMessages((prev) => trimTrailingAssistantMessages(prev));
468
- dispatch({ type: 'turn/started' });
469
- const { botResponseUpdater, reasoningUpdater, applyConversationEvent, streamingState } = createTurnSession('retryLastToolOutput');
470
- const wrappedOnEvent = (event) => {
471
- if (event?.type === 'user_message_consumed_for_abort') {
472
- setMessages((prev) => {
473
- for (let i = prev.length - 1; i >= 0; i--) {
474
- const msg = prev[i];
475
- if (isUserMessage(msg)) {
476
- if (msg.consumedForAbort)
477
- return prev;
478
- const next = prev.slice();
479
- next[i] = { ...msg, consumedForAbort: true };
480
- return next;
481
- }
482
- }
483
- return prev;
484
- });
485
- return;
486
- }
487
- applyConversationEvent(event);
488
- };
489
- try {
490
- const result = await conversationService.retryLastToolOutput({
491
- onEvent: createOnEventWithSubagentTracking(wrappedOnEvent),
492
- });
493
- if (!result) {
494
- return false;
495
- }
496
- applyConversationEvent({ type: 'final', finalText: '' });
497
- botResponseUpdater.flush();
498
- applyServiceResult(result, streamingState, streamingState.latestUsage);
499
- return true;
500
- }
501
- catch (error) {
502
- loggingService.error('Error in retryLastToolOutput', {
503
- error: error instanceof Error ? error.message : String(error),
504
- stack: error instanceof Error ? error.stack : undefined,
505
- ...(error instanceof Error && error.eventKind ? { eventKind: error.eventKind } : {}),
506
- });
507
- if (isAbortLikeError(error)) {
508
- loggingService.debug('Suppressing abort error in retryLastToolOutput');
509
- return true;
510
- }
511
- const errorMessage = enhanceApiKeyError(describeError(error));
512
- const botErrorMessage = {
513
- id: createMessageId(),
514
- sender: 'bot',
515
- status: 'finalized',
516
- text: `Error: ${errorMessage}`,
517
- };
518
- appendMessages([botErrorMessage]);
519
- dispatch({ type: 'approval/resolved' });
520
- return true;
521
- }
522
- finally {
523
- loggingService.debug('retryLastToolOutput finally block - resetting state');
524
- reasoningUpdater.flush();
525
- botResponseUpdater.cancel();
526
- dispatch({ type: 'turn/completed' });
527
- }
528
- }, [
529
- appendMessages,
530
- applyServiceResult,
531
- conversationService,
532
- createOnEventWithSubagentTracking,
533
- createTurnSession,
534
- loggingService,
535
- setMessages,
536
- ]);
537
- const undoToUserMessage = useCallback((uiIndex) => {
538
- // Count how many genuine user turns (excluding abort-consumed messages) are
539
- // at or after this index — that's what the store needs to roll back.
540
- const undoCount = countUndoableUserTurnsFrom(messages, uiIndex);
541
- if (undoCount === 0)
542
- return null;
543
- const selectedMessage = messages[uiIndex];
544
- const uiText = isUserMessage(selectedMessage) ? selectedMessage.text : '';
545
- conversationService.abort();
546
- const removed = conversationService.undoNUserTurns(undoCount);
547
- const restored = removed?.text ?? uiText;
548
- setMessages((prev) => prev.slice(0, uiIndex));
549
- approvedContextRef.current = null;
550
- dispatch({ type: 'reset_transient' });
551
- return restored;
552
- }, [messages, conversationService, setMessages]);
553
- // Compatibility wrappers for app.tsx — these dispatch domain actions.
554
144
  const setWaitingForRejectionReason = useCallback((value) => {
555
145
  dispatch({ type: value ? 'rejection/set_waiting' : 'rejection/cleared' });
556
146
  }, []);
557
147
  const setWaitingForAskUserAnswer = useCallback((value) => {
558
148
  dispatch({ type: value ? 'ask_user/set_waiting' : 'ask_user/clear_waiting' });
559
149
  }, []);
560
- const goToPreviousQuestion = useCallback(() => {
561
- if (currentAskUserQuestionIndex > 0) {
562
- dispatch({
563
- type: 'ask_user/go_back',
564
- });
565
- }
566
- }, [currentAskUserQuestionIndex]);
567
- const goToNextQuestion = useCallback(() => {
568
- dispatch({
569
- type: 'ask_user/advance_to_next',
570
- nextIndex: currentAskUserQuestionIndex + 1,
571
- });
572
- }, [currentAskUserQuestionIndex]);
573
- const getSubagentUsage = useCallback(() => subagentUsageAccumulator?.get() ?? null, [subagentUsageAccumulator]);
150
+ // ── Return object (identical shape to the old monolith) ─────────────────
574
151
  return {
575
152
  messages,
576
153
  sessionId: sessionId ?? conversationService.sessionId,
@@ -587,10 +164,12 @@ export const useConversation = ({ conversationService, loggingService, usageAccu
587
164
  thinkingStartedAt,
588
165
  toolCallStreamingInfo,
589
166
  sendUserMessage,
167
+ submitConversationTurn,
168
+ submitApprovalDecision,
590
169
  handleApprovalDecision,
591
170
  onTypeAnswer,
592
171
  clearConversation,
593
- stopProcessing,
172
+ stopProcessing: stopProcessingWithNotice,
594
173
  undoLastUserMessage,
595
174
  retryLastToolOutput,
596
175
  getUserMessages,