@qduc/term2 0.9.2 → 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 (1118) 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.map +1 -1
  77. package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
  78. package/dist/components/menu/SlashCommandMenu.d.ts.map +1 -1
  79. package/dist/components/menu/UndoSelectionMenu.d.ts.map +1 -1
  80. package/dist/components/message/ChatMessage.d.ts.map +1 -1
  81. package/dist/components/message/CodeContextSearchRenderer.d.ts.map +1 -1
  82. package/dist/components/message/CommandMessage.d.ts.map +1 -1
  83. package/dist/components/message/GrepRenderer.d.ts.map +1 -1
  84. package/dist/components/message/MessageList.d.ts.map +1 -1
  85. package/dist/components/message/MessageList.js +13 -0
  86. package/dist/components/message/MessageList.js.map +1 -1
  87. package/dist/components/message/ReadFileRenderer.d.ts.map +1 -1
  88. package/dist/components/message/SubagentActivityMessage.d.ts.map +1 -1
  89. package/dist/components/message/WebFetchRenderer.d.ts.map +1 -1
  90. package/dist/components/message/WebSearchRenderer.d.ts.map +1 -1
  91. package/dist/components/message/command-message-helpers.d.ts +3 -3
  92. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  93. package/dist/components/message/command-message-helpers.js.map +1 -1
  94. package/dist/components/prompt/ApprovalPrompt.ask-user.test.js +12 -35
  95. package/dist/components/prompt/ApprovalPrompt.ask-user.test.js.map +1 -1
  96. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  97. package/dist/components/prompt/HandoffConfirmationPrompt.d.ts.map +1 -1
  98. package/dist/components/prompt/InputSurgeConfirmationPrompt.d.ts.map +1 -1
  99. package/dist/components/prompt/LargeUncachedConfirmationPrompt.d.ts.map +1 -1
  100. package/dist/components/prompt/StandardModeConfirmationPrompt.d.ts.map +1 -1
  101. package/dist/context/InputContext.d.ts +6 -6
  102. package/dist/context/InputContext.d.ts.map +1 -1
  103. package/dist/context/InputContext.js.map +1 -1
  104. package/dist/hooks/conversation-ui-reducer.ask-user-bugfix.test.js +7 -7
  105. package/dist/hooks/conversation-ui-reducer.ask-user-bugfix.test.js.map +1 -1
  106. package/dist/hooks/conversation-ui-reducer.js.map +1 -1
  107. package/dist/hooks/conversation-ui-reducer.multi-select.test.d.ts +2 -0
  108. package/dist/hooks/conversation-ui-reducer.multi-select.test.d.ts.map +1 -0
  109. package/dist/hooks/conversation-ui-reducer.multi-select.test.js +123 -0
  110. package/dist/hooks/conversation-ui-reducer.multi-select.test.js.map +1 -0
  111. package/dist/hooks/message-id.d.ts +1 -1
  112. package/dist/hooks/message-id.d.ts.map +1 -1
  113. package/dist/hooks/message-id.js +2 -15
  114. package/dist/hooks/message-id.js.map +1 -1
  115. package/dist/hooks/path-completion-filter.d.ts.map +1 -1
  116. package/dist/hooks/settings-completion-config.d.ts.map +1 -1
  117. package/dist/hooks/settings-completion-config.js +1 -0
  118. package/dist/hooks/settings-completion-config.js.map +1 -1
  119. package/dist/hooks/settings-completion-logic.js.map +1 -1
  120. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  121. package/dist/hooks/use-app-commands.js +3 -1
  122. package/dist/hooks/use-app-commands.js.map +1 -1
  123. package/dist/hooks/use-app-keyboard-shortcuts.d.ts +28 -0
  124. package/dist/hooks/use-app-keyboard-shortcuts.d.ts.map +1 -0
  125. package/dist/hooks/use-app-keyboard-shortcuts.js +86 -0
  126. package/dist/hooks/use-app-keyboard-shortcuts.js.map +1 -0
  127. package/dist/hooks/use-conversation-messages.js.map +1 -1
  128. package/dist/hooks/use-conversation.ask-user-multi-select.test.d.ts +2 -0
  129. package/dist/hooks/use-conversation.ask-user-multi-select.test.d.ts.map +1 -0
  130. package/dist/hooks/use-conversation.ask-user-multi-select.test.js +159 -0
  131. package/dist/hooks/use-conversation.ask-user-multi-select.test.js.map +1 -0
  132. package/dist/hooks/use-conversation.d.ts +7 -4
  133. package/dist/hooks/use-conversation.d.ts.map +1 -1
  134. package/dist/hooks/use-conversation.js +100 -521
  135. package/dist/hooks/use-conversation.js.map +1 -1
  136. package/dist/hooks/use-escape-key.d.ts.map +1 -1
  137. package/dist/hooks/use-handoff-flow.d.ts.map +1 -1
  138. package/dist/hooks/use-input-history.d.ts.map +1 -1
  139. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  140. package/dist/hooks/use-model-selection.d.ts +1 -1
  141. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  142. package/dist/hooks/use-model-selection.js.map +1 -1
  143. package/dist/hooks/use-path-completion.d.ts +1 -1
  144. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  145. package/dist/hooks/use-pending-turn-guards.d.ts.map +1 -1
  146. package/dist/hooks/use-provider-selection.d.ts.map +1 -1
  147. package/dist/hooks/use-provider-selection.js +5 -3
  148. package/dist/hooks/use-provider-selection.js.map +1 -1
  149. package/dist/hooks/use-runtime-settings.d.ts +5 -4
  150. package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
  151. package/dist/hooks/use-runtime-settings.js +8 -82
  152. package/dist/hooks/use-runtime-settings.js.map +1 -1
  153. package/dist/hooks/use-settings-completion.d.ts +1 -1
  154. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  155. package/dist/hooks/use-settings-completion.js.map +1 -1
  156. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  157. package/dist/hooks/use-shell-mode.d.ts +0 -6
  158. package/dist/hooks/use-shell-mode.d.ts.map +1 -1
  159. package/dist/hooks/use-shell-mode.js +9 -43
  160. package/dist/hooks/use-shell-mode.js.map +1 -1
  161. package/dist/hooks/use-skill-selection.d.ts.map +1 -1
  162. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  163. package/dist/hooks/use-terminal-focus-notifier.d.ts.map +1 -1
  164. package/dist/hooks/use-terminal-width.d.ts.map +1 -1
  165. package/dist/hooks/use-trigger-detection.d.ts.map +1 -1
  166. package/dist/hooks/use-trigger-detection.js.map +1 -1
  167. package/dist/inspect_zod.d.ts +2 -0
  168. package/dist/inspect_zod.d.ts.map +1 -0
  169. package/dist/inspect_zod.js +16 -0
  170. package/dist/inspect_zod.js.map +1 -0
  171. package/dist/lib/agent-chat-service.d.ts.map +1 -1
  172. package/dist/lib/agent-chat-service.js.map +1 -1
  173. package/dist/lib/agent-client.d.ts.map +1 -1
  174. package/dist/lib/agent-client.js.map +1 -1
  175. package/dist/lib/agent-configuration.d.ts +4 -4
  176. package/dist/lib/agent-configuration.d.ts.map +1 -1
  177. package/dist/lib/agent-factory.test.js +0 -21
  178. package/dist/lib/agent-factory.test.js.map +1 -1
  179. package/dist/lib/agent-run-orchestrator.d.ts.map +1 -1
  180. package/dist/lib/agent-run-orchestrator.js.map +1 -1
  181. package/dist/lib/ask-user-answer-store.d.ts.map +1 -1
  182. package/dist/lib/chained-input-filter.d.ts +5 -0
  183. package/dist/lib/chained-input-filter.d.ts.map +1 -1
  184. package/dist/lib/chained-input-filter.js +17 -1
  185. package/dist/lib/chained-input-filter.js.map +1 -1
  186. package/dist/lib/editor-impl.d.ts +3 -3
  187. package/dist/lib/editor-impl.d.ts.map +1 -1
  188. package/dist/lib/editor-impl.js.map +1 -1
  189. package/dist/lib/editor-impl.test.js +29 -73
  190. package/dist/lib/editor-impl.test.js.map +1 -1
  191. package/dist/lib/openai-agent-client.public-methods.test.js +1 -9
  192. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  193. package/dist/lib/openai-strict-tool-schema.d.ts.map +1 -1
  194. package/dist/lib/runner-manager.d.ts.map +1 -1
  195. package/dist/lib/subagent-bridge.d.ts.map +1 -1
  196. package/dist/lib/subagent-bridge.js +0 -1
  197. package/dist/lib/subagent-bridge.js.map +1 -1
  198. package/dist/lib/tool-interceptor-registry.d.ts.map +1 -1
  199. package/dist/lib/tool-invoke.d.ts.map +1 -1
  200. package/dist/lib/tool-invoke.js.map +1 -1
  201. package/dist/non-interactive.d.ts +2 -0
  202. package/dist/non-interactive.d.ts.map +1 -1
  203. package/dist/non-interactive.js +22 -8
  204. package/dist/non-interactive.js.map +1 -1
  205. package/dist/prompts/gpt-5.md +7 -4
  206. package/dist/prompts/prompt-constructor.test.ts +1 -1
  207. package/dist/prompts/prompt-profiles.js +1 -1
  208. package/dist/prompts/prompt-profiles.ts +1 -1
  209. package/dist/prompts/search-via-shell.js.map +1 -1
  210. package/dist/prompts/simple_prev2.md +33 -0
  211. package/dist/prompts/simple_v4.md +25 -0
  212. package/dist/prompts/subagent-delegation.js.map +1 -1
  213. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -1
  214. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -1
  215. package/dist/providers/ai-sdk-google.provider.d.ts.map +1 -1
  216. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +0 -2
  217. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
  218. package/dist/providers/ai-sdk-openai-compatible.provider.js +4 -8
  219. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
  220. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +1 -119
  221. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
  222. package/dist/providers/ai-sdk-openrouter.provider.d.ts.map +1 -1
  223. package/dist/providers/codex-responses-model.d.ts +1 -6
  224. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  225. package/dist/providers/codex-responses-model.js +62 -80
  226. package/dist/providers/codex-responses-model.js.map +1 -1
  227. package/dist/providers/codex.provider.d.ts.map +1 -1
  228. package/dist/providers/codex.provider.js.map +1 -1
  229. package/dist/providers/common/provider-errors.d.ts.map +1 -1
  230. package/dist/providers/fallback-responses-model.d.ts +2 -2
  231. package/dist/providers/fallback-responses-model.d.ts.map +1 -1
  232. package/dist/providers/fallback-responses-model.js.map +1 -1
  233. package/dist/providers/fetch/logging-middleware.js.map +1 -1
  234. package/dist/providers/openai-compatible-behavior-gate.test.js +1 -42
  235. package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -1
  236. package/dist/providers/openai-compatible-lazy.d.ts.map +1 -1
  237. package/dist/providers/openai-compatible-lazy.js +7 -3
  238. package/dist/providers/openai-compatible-lazy.js.map +1 -1
  239. package/dist/providers/openai-compatible.provider.d.ts +1 -0
  240. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  241. package/dist/providers/openai-compatible.provider.js +6 -3
  242. package/dist/providers/openai-compatible.provider.js.map +1 -1
  243. package/dist/providers/openai.provider.d.ts.map +1 -1
  244. package/dist/providers/openai.provider.js.map +1 -1
  245. package/dist/providers/openrouter.provider.js.map +1 -1
  246. package/dist/providers/provider-service.d.ts.map +1 -1
  247. package/dist/providers/provider-service.js +31 -20
  248. package/dist/providers/provider-service.js.map +1 -1
  249. package/dist/providers/retrying-model.d.ts.map +1 -1
  250. package/dist/providers/retrying-model.js.map +1 -1
  251. package/dist/scripts/eval-auto-approval/cache.d.ts.map +1 -1
  252. package/dist/scripts/eval-auto-approval/dataset.d.ts +3 -3
  253. package/dist/scripts/eval-auto-approval/leaderboard.js.map +1 -1
  254. package/dist/scripts/eval-auto-approval/report.js.map +1 -1
  255. package/dist/scripts/eval-auto-approval/runner.js.map +1 -1
  256. package/dist/services/approval/approval-decision-policy.d.ts.map +1 -1
  257. package/dist/services/approval/approval-decision-policy.js.map +1 -1
  258. package/dist/services/approval/approval-flow-coordinator.d.ts +7 -0
  259. package/dist/services/approval/approval-flow-coordinator.d.ts.map +1 -1
  260. package/dist/services/approval/approval-flow-coordinator.js +8 -0
  261. package/dist/services/approval/approval-flow-coordinator.js.map +1 -1
  262. package/dist/services/approval/approval-presentation-policy.d.ts +1 -1
  263. package/dist/services/approval/approval-presentation-policy.d.ts.map +1 -1
  264. package/dist/services/approval/approval-presentation-policy.js.map +1 -1
  265. package/dist/services/approval/approval-state.d.ts.map +1 -1
  266. package/dist/services/approval/shell-auto-approval-resolver.d.ts +12 -0
  267. package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
  268. package/dist/services/approval/shell-auto-approval-resolver.js +28 -0
  269. package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
  270. package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
  271. package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
  272. package/dist/services/approval/tool-approval-policy-registry.d.ts.map +1 -1
  273. package/dist/services/approval/tool-owner.d.ts.map +1 -1
  274. package/dist/services/approval-flow-coordinator.js +1 -1
  275. package/dist/services/approval-flow-coordinator.js.map +1 -1
  276. package/dist/services/approval-state.d.ts +1 -1
  277. package/dist/services/approval-state.d.ts.map +1 -1
  278. package/dist/services/command-message-streaming.d.ts.map +1 -1
  279. package/dist/services/command-message-streaming.js.map +1 -1
  280. package/dist/services/continuation-driver.js +1 -1
  281. package/dist/services/continuation-driver.js.map +1 -1
  282. package/dist/services/conversation/conversation-adapter.d.ts +2 -0
  283. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  284. package/dist/services/conversation/conversation-adapter.js +9 -4
  285. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  286. package/dist/services/conversation/conversation-input-routing.d.ts +23 -0
  287. package/dist/services/conversation/conversation-input-routing.d.ts.map +1 -0
  288. package/dist/services/conversation/conversation-input-routing.js +20 -0
  289. package/dist/services/conversation/conversation-input-routing.js.map +1 -0
  290. package/dist/services/conversation/conversation-orchestrator.d.ts +36 -0
  291. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -0
  292. package/dist/services/conversation/conversation-orchestrator.js +440 -0
  293. package/dist/services/conversation/conversation-orchestrator.js.map +1 -0
  294. package/dist/services/conversation/conversation-orchestrator.types.d.ts +58 -0
  295. package/dist/services/conversation/conversation-orchestrator.types.d.ts.map +1 -0
  296. package/dist/services/conversation/conversation-orchestrator.types.js +2 -0
  297. package/dist/services/conversation/conversation-orchestrator.types.js.map +1 -0
  298. package/dist/services/conversation/conversation-replay.d.ts.map +1 -1
  299. package/dist/services/conversation/conversation-replay.js +46 -21
  300. package/dist/services/conversation/conversation-replay.js.map +1 -1
  301. package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
  302. package/dist/services/conversation/conversation-service.d.ts +2 -1
  303. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  304. package/dist/services/conversation/conversation-service.js +9 -0
  305. package/dist/services/conversation/conversation-service.js.map +1 -1
  306. package/dist/services/conversation/conversation-state-projector.d.ts +52 -0
  307. package/dist/services/conversation/conversation-state-projector.d.ts.map +1 -0
  308. package/dist/services/conversation/conversation-state-projector.js +71 -0
  309. package/dist/services/conversation/conversation-state-projector.js.map +1 -0
  310. package/dist/services/conversation/conversation-state-schema.d.ts +44 -0
  311. package/dist/services/conversation/conversation-state-schema.d.ts.map +1 -0
  312. package/dist/services/conversation/conversation-state-schema.js +25 -0
  313. package/dist/services/conversation/conversation-state-schema.js.map +1 -0
  314. package/dist/services/conversation/conversation-store.d.ts +5 -1
  315. package/dist/services/conversation/conversation-store.d.ts.map +1 -1
  316. package/dist/services/conversation/conversation-store.js +5 -1
  317. package/dist/services/conversation/conversation-store.js.map +1 -1
  318. package/dist/services/conversation/conversation-turn-items.d.ts.map +1 -1
  319. package/dist/services/conversation/conversation-turn-items.js +13 -1
  320. package/dist/services/conversation/conversation-turn-items.js.map +1 -1
  321. package/dist/services/conversation/journal-to-ledger.d.ts +17 -0
  322. package/dist/services/conversation/journal-to-ledger.d.ts.map +1 -0
  323. package/dist/services/conversation/journal-to-ledger.js +220 -0
  324. package/dist/services/conversation/journal-to-ledger.js.map +1 -0
  325. package/dist/services/conversation-adapter.d.ts +2 -3
  326. package/dist/services/conversation-adapter.d.ts.map +1 -1
  327. package/dist/services/conversation-adapter.js +8 -10
  328. package/dist/services/conversation-adapter.js.map +1 -1
  329. package/dist/services/conversation-events.d.ts +1 -1
  330. package/dist/services/conversation-events.d.ts.map +1 -1
  331. package/dist/services/conversation-log-events.d.ts +1 -1
  332. package/dist/services/conversation-log-events.d.ts.map +1 -1
  333. package/dist/services/conversation-replay.d.ts +1 -1
  334. package/dist/services/conversation-replay.d.ts.map +1 -1
  335. package/dist/services/conversation-replay.js +1 -1
  336. package/dist/services/conversation-replay.js.map +1 -1
  337. package/dist/services/conversation-result-builder.d.ts +1 -1
  338. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  339. package/dist/services/conversation-result-builder.js +2 -2
  340. package/dist/services/conversation-result-builder.js.map +1 -1
  341. package/dist/services/conversation-result-builder.test.js +3 -3
  342. package/dist/services/conversation-result-builder.test.js.map +1 -1
  343. package/dist/services/conversation-result-resolver.d.ts +25 -0
  344. package/dist/services/conversation-result-resolver.d.ts.map +1 -0
  345. package/dist/services/conversation-result-resolver.js +79 -0
  346. package/dist/services/conversation-result-resolver.js.map +1 -0
  347. package/dist/services/conversation-result-resolver.test.d.ts +2 -0
  348. package/dist/services/conversation-result-resolver.test.d.ts.map +1 -0
  349. package/dist/services/conversation-result-resolver.test.js +186 -0
  350. package/dist/services/conversation-result-resolver.test.js.map +1 -0
  351. package/dist/services/conversation-service.test.js +2 -2
  352. package/dist/services/conversation-service.test.js.map +1 -1
  353. package/dist/services/conversation-session-composition.d.ts +1 -3
  354. package/dist/services/conversation-session-composition.d.ts.map +1 -1
  355. package/dist/services/conversation-session-composition.js +2 -3
  356. package/dist/services/conversation-session-composition.js.map +1 -1
  357. package/dist/services/conversation-session-factory.d.ts +1 -3
  358. package/dist/services/conversation-session-factory.d.ts.map +1 -1
  359. package/dist/services/conversation-session-factory.js +1 -7
  360. package/dist/services/conversation-session-factory.js.map +1 -1
  361. package/dist/services/conversation-session.characterization.test.js +13 -23
  362. package/dist/services/conversation-session.characterization.test.js.map +1 -1
  363. package/dist/services/conversation-store.merge-modes.test.d.ts.map +1 -1
  364. package/dist/services/conversation-store.merge-modes.test.js +160 -1
  365. package/dist/services/conversation-store.merge-modes.test.js.map +1 -1
  366. package/dist/services/conversation-turn-runner.d.ts +1 -2
  367. package/dist/services/conversation-turn-runner.d.ts.map +1 -1
  368. package/dist/services/execution-context.d.ts.map +1 -1
  369. package/dist/services/execution-context.js.map +1 -1
  370. package/dist/services/file-service.d.ts.map +1 -1
  371. package/dist/services/file-service.js.map +1 -1
  372. package/dist/services/generation-guard.d.ts.map +1 -1
  373. package/dist/services/history-service.d.ts.map +1 -1
  374. package/dist/services/input-surge-guard.d.ts.map +1 -1
  375. package/dist/services/input-surge-guard.js.map +1 -1
  376. package/dist/services/interruption-info.d.ts.map +1 -1
  377. package/dist/services/large-uncached-input-guard.d.ts.map +1 -1
  378. package/dist/services/large-uncached-input-guard.js.map +1 -1
  379. package/dist/services/logging/assistant-turn-journal.d.ts +28 -3
  380. package/dist/services/logging/assistant-turn-journal.d.ts.map +1 -1
  381. package/dist/services/logging/assistant-turn-journal.js +52 -3
  382. package/dist/services/logging/assistant-turn-journal.js.map +1 -1
  383. package/dist/services/logging/conversation-log-writer.d.ts.map +1 -1
  384. package/dist/services/logging/conversation-logger.d.ts +2 -2
  385. package/dist/services/logging/conversation-logger.d.ts.map +1 -1
  386. package/dist/services/logging/conversation-logger.js +4 -5
  387. package/dist/services/logging/conversation-logger.js.map +1 -1
  388. package/dist/services/logging/logging-contract.d.ts +1 -1
  389. package/dist/services/logging/logging-contract.d.ts.map +1 -1
  390. package/dist/services/logging/logging-service.d.ts.map +1 -1
  391. package/dist/services/logging/logging-service.js.map +1 -1
  392. package/dist/services/logging/provider-traffic.d.ts.map +1 -1
  393. package/dist/services/logging/provider-traffic.js.map +1 -1
  394. package/dist/services/logging-service.js +1 -1
  395. package/dist/services/logging-service.js.map +1 -1
  396. package/dist/services/mode-notices.d.ts.map +1 -1
  397. package/dist/services/model-service.js.map +1 -1
  398. package/dist/services/notification-service.js.map +1 -1
  399. package/dist/services/plan-mode-interceptor.d.ts.map +1 -1
  400. package/dist/services/provider-continuity.d.ts.map +1 -1
  401. package/dist/services/retry/conversation-retry-policy.d.ts.map +1 -1
  402. package/dist/services/retry/conversation-retry-policy.js.map +1 -1
  403. package/dist/services/retry/recovery-executor.d.ts.map +1 -1
  404. package/dist/services/retry/recovery-executor.js +22 -10
  405. package/dist/services/retry/recovery-executor.js.map +1 -1
  406. package/dist/services/retry/recovery-policy.d.ts.map +1 -1
  407. package/dist/services/retry/recovery-policy.js.map +1 -1
  408. package/dist/services/retry/retry-classifier.d.ts.map +1 -1
  409. package/dist/services/retry/retry-classifier.js +2 -1
  410. package/dist/services/retry/retry-classifier.js.map +1 -1
  411. package/dist/services/retry/retry-contracts.d.ts +3 -2
  412. package/dist/services/retry/retry-contracts.d.ts.map +1 -1
  413. package/dist/services/retry/retry-error-classification.d.ts +2 -2
  414. package/dist/services/retry/retry-error-classification.d.ts.map +1 -1
  415. package/dist/services/retry/retry-error-classification.js.map +1 -1
  416. package/dist/services/retry/retry-event-presenter.d.ts.map +1 -1
  417. package/dist/services/retry/retry-event-presenter.js.map +1 -1
  418. package/dist/services/retry/upstream-retry-policy.d.ts.map +1 -1
  419. package/dist/services/rtk-service.js.map +1 -1
  420. package/dist/services/runtime-setting-router.d.ts +15 -0
  421. package/dist/services/runtime-setting-router.d.ts.map +1 -0
  422. package/dist/services/runtime-setting-router.js +52 -0
  423. package/dist/services/runtime-setting-router.js.map +1 -0
  424. package/dist/services/service-interfaces.d.ts +1 -1
  425. package/dist/services/service-interfaces.d.ts.map +1 -1
  426. package/dist/services/session/continuation-driver.d.ts.map +1 -1
  427. package/dist/services/session/continuation-driver.js.map +1 -1
  428. package/dist/services/session/continuation-driver.test.js +7 -169
  429. package/dist/services/session/continuation-driver.test.js.map +1 -1
  430. package/dist/services/session/continuation-plan-applier.d.ts +3 -2
  431. package/dist/services/session/continuation-plan-applier.d.ts.map +1 -1
  432. package/dist/services/session/continuation-plan-applier.js +2 -2
  433. package/dist/services/session/continuation-plan-applier.js.map +1 -1
  434. package/dist/services/session/continuation-recovery-handler.d.ts.map +1 -1
  435. package/dist/services/session/continuation-recovery-handler.js +1 -1
  436. package/dist/services/session/continuation-recovery-handler.js.map +1 -1
  437. package/dist/services/session/continuation-recovery-handler.test.js +4 -3
  438. package/dist/services/session/continuation-recovery-handler.test.js.map +1 -1
  439. package/dist/services/session/continuation-state.d.ts +16 -4
  440. package/dist/services/session/continuation-state.d.ts.map +1 -1
  441. package/dist/services/session/continuation-state.js +6 -6
  442. package/dist/services/session/continuation-state.js.map +1 -1
  443. package/dist/services/session/continuation-stream-cycle.d.ts.map +1 -1
  444. package/dist/services/session/continuation-stream-cycle.js.map +1 -1
  445. package/dist/services/session/conversation-session.d.ts +0 -1
  446. package/dist/services/session/conversation-session.d.ts.map +1 -1
  447. package/dist/services/session/conversation-session.js.map +1 -1
  448. package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
  449. package/dist/services/session/initial-input-preparer.js.map +1 -1
  450. package/dist/services/session/initial-stream-cycle.d.ts.map +1 -1
  451. package/dist/services/session/initial-stream-cycle.js.map +1 -1
  452. package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
  453. package/dist/services/session/initial-turn-recovery-handler.js +2 -2
  454. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  455. package/dist/services/session/initial-turn-runner.d.ts.map +1 -1
  456. package/dist/services/session/initial-turn-runner.js.map +1 -1
  457. package/dist/services/session/session-adapter-bridge.d.ts +11 -1
  458. package/dist/services/session/session-adapter-bridge.d.ts.map +1 -1
  459. package/dist/services/session/session-adapter-bridge.js +10 -1
  460. package/dist/services/session/session-adapter-bridge.js.map +1 -1
  461. package/dist/services/session/session-composition.d.ts +8 -23
  462. package/dist/services/session/session-composition.d.ts.map +1 -1
  463. package/dist/services/session/session-composition.js +48 -98
  464. package/dist/services/session/session-composition.js.map +1 -1
  465. package/dist/services/session/session-context-service.d.ts.map +1 -1
  466. package/dist/services/session/session-continuity-reset.d.ts +23 -0
  467. package/dist/services/session/session-continuity-reset.d.ts.map +1 -0
  468. package/dist/services/session/session-continuity-reset.js +34 -0
  469. package/dist/services/session/session-continuity-reset.js.map +1 -0
  470. package/dist/services/session/session-factory.d.ts +3 -46
  471. package/dist/services/session/session-factory.d.ts.map +1 -1
  472. package/dist/services/session/session-factory.js +3 -44
  473. package/dist/services/session/session-factory.js.map +1 -1
  474. package/dist/services/session/session-factory.test.js +18 -17
  475. package/dist/services/session/session-factory.test.js.map +1 -1
  476. package/dist/services/session/session-input-planner.d.ts.map +1 -1
  477. package/dist/services/session/session-lifecycle.d.ts +2 -8
  478. package/dist/services/session/session-lifecycle.d.ts.map +1 -1
  479. package/dist/services/session/session-lifecycle.js +25 -44
  480. package/dist/services/session/session-lifecycle.js.map +1 -1
  481. package/dist/services/session/session-manager.d.ts +1 -1
  482. package/dist/services/session/session-manager.d.ts.map +1 -1
  483. package/dist/services/session/session-manager.js +4 -5
  484. package/dist/services/session/session-manager.js.map +1 -1
  485. package/dist/services/session/session-runtime-controller.d.ts +2 -2
  486. package/dist/services/session/session-runtime-controller.d.ts.map +1 -1
  487. package/dist/services/session/session-runtime-controller.js +17 -8
  488. package/dist/services/session/session-runtime-controller.js.map +1 -1
  489. package/dist/services/session/session-stream-processor.d.ts +3 -3
  490. package/dist/services/session/session-stream-processor.d.ts.map +1 -1
  491. package/dist/services/session/session-stream-processor.js +1 -1
  492. package/dist/services/session/session-stream-processor.js.map +1 -1
  493. package/dist/services/session/session-tool-tracker.d.ts.map +1 -1
  494. package/dist/services/session/session-tool-tracker.js +18 -9
  495. package/dist/services/session/session-tool-tracker.js.map +1 -1
  496. package/dist/services/session/terminal-result-collector.js.map +1 -1
  497. package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts.map +1 -1
  498. package/dist/services/session/test-helpers/conversation-session-fixtures.js.map +1 -1
  499. package/dist/services/session/turn-attempt-factory.d.ts +2 -0
  500. package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
  501. package/dist/services/session/turn-attempt-factory.js +1 -1
  502. package/dist/services/session/turn-attempt-factory.js.map +1 -1
  503. package/dist/services/session/turn-attempt.d.ts +3 -3
  504. package/dist/services/session/turn-attempt.d.ts.map +1 -1
  505. package/dist/services/session/turn-attempt.js +4 -4
  506. package/dist/services/session/turn-attempt.js.map +1 -1
  507. package/dist/services/session/turn-coordinator.d.ts +5 -12
  508. package/dist/services/session/turn-coordinator.d.ts.map +1 -1
  509. package/dist/services/session/turn-coordinator.js +4 -53
  510. package/dist/services/session/turn-coordinator.js.map +1 -1
  511. package/dist/services/session/turn-executor.d.ts.map +1 -1
  512. package/dist/services/session/turn-executor.js +2 -1
  513. package/dist/services/session/turn-executor.js.map +1 -1
  514. package/dist/services/session/turn-item-accumulator.d.ts.map +1 -1
  515. package/dist/services/session/turn-status-machine.d.ts +20 -0
  516. package/dist/services/session/turn-status-machine.d.ts.map +1 -1
  517. package/dist/services/session/turn-status-machine.js +28 -0
  518. package/dist/services/session/turn-status-machine.js.map +1 -1
  519. package/dist/services/session/turn-transition.js.map +1 -1
  520. package/dist/services/session/turn-workflow.d.ts +84 -0
  521. package/dist/services/session/turn-workflow.d.ts.map +1 -0
  522. package/dist/services/session/turn-workflow.js +648 -0
  523. package/dist/services/session/turn-workflow.js.map +1 -0
  524. package/dist/services/session-state-controller.test.d.ts +2 -0
  525. package/dist/services/session-state-controller.test.d.ts.map +1 -0
  526. package/dist/services/session-state-controller.test.js +125 -0
  527. package/dist/services/session-state-controller.test.js.map +1 -0
  528. package/dist/services/session-state-facade.d.ts +2 -2
  529. package/dist/services/session-state-facade.d.ts.map +1 -1
  530. package/dist/services/session-state-facade.js.map +1 -1
  531. package/dist/services/settings/custom-provider-normalization.d.ts +4 -0
  532. package/dist/services/settings/custom-provider-normalization.d.ts.map +1 -0
  533. package/dist/services/settings/custom-provider-normalization.js +26 -0
  534. package/dist/services/settings/custom-provider-normalization.js.map +1 -0
  535. package/dist/services/settings/settings-env.d.ts.map +1 -1
  536. package/dist/services/settings/settings-persistence.js.map +1 -1
  537. package/dist/services/settings/settings-schema.d.ts +156 -128
  538. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  539. package/dist/services/settings/settings-schema.js +23 -1
  540. package/dist/services/settings/settings-schema.js.map +1 -1
  541. package/dist/services/settings/settings-service.d.ts +2 -0
  542. package/dist/services/settings/settings-service.d.ts.map +1 -1
  543. package/dist/services/settings/settings-service.js +47 -3
  544. package/dist/services/settings/settings-service.js.map +1 -1
  545. package/dist/services/settings/settings-service.mock.js.map +1 -1
  546. package/dist/services/shell-auto-approval-evaluator.js +1 -1
  547. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  548. package/dist/services/skills/skills-service.d.ts.map +1 -1
  549. package/dist/services/skills/skills-service.js.map +1 -1
  550. package/dist/services/skills/skills-service.test.js +0 -19
  551. package/dist/services/skills/skills-service.test.js.map +1 -1
  552. package/dist/services/ssh-service.d.ts.map +1 -1
  553. package/dist/services/ssh-service.js.map +1 -1
  554. package/dist/services/stream-snapshot.d.ts.map +1 -1
  555. package/dist/services/subagents/execution-runner.d.ts.map +1 -1
  556. package/dist/services/subagents/mentor-runner.d.ts.map +1 -1
  557. package/dist/services/subagents/nested-runner.d.ts.map +1 -1
  558. package/dist/services/subagents/nested-runner.js +13 -1
  559. package/dist/services/subagents/nested-runner.js.map +1 -1
  560. package/dist/services/subagents/role-loader.d.ts.map +1 -1
  561. package/dist/services/subagents/role-loader.js +11 -0
  562. package/dist/services/subagents/role-loader.js.map +1 -1
  563. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  564. package/dist/services/subagents/subagent-session.d.ts.map +1 -1
  565. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts.map +1 -1
  566. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js.map +1 -1
  567. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  568. package/dist/services/subagents/types.d.ts +1 -1
  569. package/dist/services/subagents/types.d.ts.map +1 -1
  570. package/dist/services/test-helpers/mock-stream.d.ts.map +1 -1
  571. package/dist/services/tool-call-arguments.d.ts.map +1 -1
  572. package/dist/services/tool-execution-ledger.d.ts.map +1 -1
  573. package/dist/services/turn-execution-orchestrator.d.ts +79 -0
  574. package/dist/services/turn-execution-orchestrator.d.ts.map +1 -0
  575. package/dist/services/turn-execution-orchestrator.js +687 -0
  576. package/dist/services/turn-execution-orchestrator.js.map +1 -0
  577. package/dist/services/turn-execution-orchestrator.test.d.ts +2 -0
  578. package/dist/services/turn-execution-orchestrator.test.d.ts.map +1 -0
  579. package/dist/services/turn-execution-orchestrator.test.js +236 -0
  580. package/dist/services/turn-execution-orchestrator.test.js.map +1 -0
  581. package/dist/services/turn-item-accumulator.d.ts +1 -1
  582. package/dist/services/turn-item-accumulator.d.ts.map +1 -1
  583. package/dist/test-helpers/ink-testing.d.ts.map +1 -1
  584. package/dist/test-helpers/terminal-e2e.d.ts +21 -0
  585. package/dist/test-helpers/terminal-e2e.d.ts.map +1 -0
  586. package/dist/test-helpers/terminal-e2e.js +98 -0
  587. package/dist/test-helpers/terminal-e2e.js.map +1 -0
  588. package/dist/tools/agent/activate-skill.d.ts.map +1 -1
  589. package/dist/tools/agent/ask-mentor.d.ts.map +1 -1
  590. package/dist/tools/agent/ask-user.d.ts.map +1 -1
  591. package/dist/tools/agent/ask-user.test.js +11 -50
  592. package/dist/tools/agent/ask-user.test.js.map +1 -1
  593. package/dist/tools/agent/run-subagent.d.ts +2 -2
  594. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  595. package/dist/tools/agent/run-subagent.js.map +1 -1
  596. package/dist/tools/command-message-formatters.d.ts +1 -1
  597. package/dist/tools/command-message-formatters.d.ts.map +1 -1
  598. package/dist/tools/file/apply-patch.d.ts +0 -3
  599. package/dist/tools/file/apply-patch.d.ts.map +1 -1
  600. package/dist/tools/file/apply-patch.js +31 -0
  601. package/dist/tools/file/apply-patch.js.map +1 -1
  602. package/dist/tools/file/apply-patch.test.js +0 -27
  603. package/dist/tools/file/apply-patch.test.js.map +1 -1
  604. package/dist/tools/file/code-context.d.ts +1 -1
  605. package/dist/tools/file/code-context.d.ts.map +1 -1
  606. package/dist/tools/file/code-context.js.map +1 -1
  607. package/dist/tools/file/create-file.test.js +0 -24
  608. package/dist/tools/file/create-file.test.js.map +1 -1
  609. package/dist/tools/file/edit-healing.js.map +1 -1
  610. package/dist/tools/file/glob.d.ts.map +1 -1
  611. package/dist/tools/file/glob.js.map +1 -1
  612. package/dist/tools/file/grep.d.ts.map +1 -1
  613. package/dist/tools/file/grep.js.map +1 -1
  614. package/dist/tools/file/read-file.d.ts.map +1 -1
  615. package/dist/tools/file/read-file.js.map +1 -1
  616. package/dist/tools/file/search-replace-matcher.d.ts.map +1 -1
  617. package/dist/tools/file/search-replace.test.js +0 -30
  618. package/dist/tools/file/search-replace.test.js.map +1 -1
  619. package/dist/tools/format-helpers.d.ts.map +1 -1
  620. package/dist/tools/format-helpers.js.map +1 -1
  621. package/dist/tools/language-providers.d.ts.map +1 -1
  622. package/dist/tools/language-providers.js +379 -0
  623. package/dist/tools/language-providers.js.map +1 -1
  624. package/dist/tools/search.d.ts.map +1 -1
  625. package/dist/tools/search.js +1 -2
  626. package/dist/tools/search.js.map +1 -1
  627. package/dist/tools/system/shell.d.ts.map +1 -1
  628. package/dist/tools/system/shell.js +22 -18
  629. package/dist/tools/system/shell.js.map +1 -1
  630. package/dist/tools/tool-capabilities.d.ts.map +1 -1
  631. package/dist/tools/utils.js.map +1 -1
  632. package/dist/tools/web/web-fetch.d.ts.map +1 -1
  633. package/dist/tools/web/web-search.d.ts.map +1 -1
  634. package/dist/types/message.d.ts.map +1 -1
  635. package/dist/utils/ai/provider-credentials.d.ts.map +1 -1
  636. package/dist/utils/ai/token-usage.js.map +1 -1
  637. package/dist/utils/clipboard.js.map +1 -1
  638. package/dist/utils/command-safety/_scratch-classify.test.d.ts +2 -0
  639. package/dist/utils/command-safety/_scratch-classify.test.d.ts.map +1 -0
  640. package/dist/utils/command-safety/_scratch-classify.test.js +22 -0
  641. package/dist/utils/command-safety/_scratch-classify.test.js.map +1 -0
  642. package/dist/utils/command-safety/scratch-classify.test.d.ts +2 -0
  643. package/dist/utils/command-safety/scratch-classify.test.d.ts.map +1 -0
  644. package/dist/utils/command-safety/scratch-classify.test.js +22 -0
  645. package/dist/utils/command-safety/scratch-classify.test.js.map +1 -0
  646. package/dist/utils/command-safety/scratch-tally.test.d.ts +2 -0
  647. package/dist/utils/command-safety/scratch-tally.test.d.ts.map +1 -0
  648. package/dist/utils/command-safety/scratch-tally.test.js +68 -0
  649. package/dist/utils/command-safety/scratch-tally.test.js.map +1 -0
  650. package/dist/utils/conversation/apply-conversation-result.d.ts +1 -1
  651. package/dist/utils/conversation/apply-conversation-result.d.ts.map +1 -1
  652. package/dist/utils/conversation/conversation-event-handler.js +2 -2
  653. package/dist/utils/conversation/conversation-event-handler.js.map +1 -1
  654. package/dist/utils/conversation/markdown-commit-frontier.d.ts.map +1 -1
  655. package/dist/utils/conversation/message-utils.d.ts +2 -2
  656. package/dist/utils/conversation/message-utils.d.ts.map +1 -1
  657. package/dist/utils/conversation/message-utils.js.map +1 -1
  658. package/dist/utils/error-helpers.d.ts.map +1 -1
  659. package/dist/utils/error-helpers.js.map +1 -1
  660. package/dist/utils/extract-command-messages.test.js +6 -6
  661. package/dist/utils/extract-command-messages.test.js.map +1 -1
  662. package/dist/utils/inject-warning-into-tool-output.d.ts.map +1 -1
  663. package/dist/utils/message-id-factory.d.ts +9 -0
  664. package/dist/utils/message-id-factory.d.ts.map +1 -0
  665. package/dist/utils/message-id-factory.js +21 -0
  666. package/dist/utils/message-id-factory.js.map +1 -0
  667. package/dist/utils/output/terminal-title.d.ts +6 -0
  668. package/dist/utils/output/terminal-title.d.ts.map +1 -0
  669. package/dist/utils/output/terminal-title.js +26 -0
  670. package/dist/utils/output/terminal-title.js.map +1 -0
  671. package/dist/utils/output/trim-tool-output.d.ts.map +1 -1
  672. package/dist/utils/output/tty-osc.js.map +1 -1
  673. package/dist/utils/project-tree.js.map +1 -1
  674. package/dist/utils/project-tree.test.d.ts +2 -0
  675. package/dist/utils/project-tree.test.d.ts.map +1 -0
  676. package/dist/utils/project-tree.test.js +149 -0
  677. package/dist/utils/project-tree.test.js.map +1 -0
  678. package/dist/utils/shell/execute-shell.d.ts +1 -0
  679. package/dist/utils/shell/execute-shell.d.ts.map +1 -1
  680. package/dist/utils/shell/execute-shell.js +87 -3
  681. package/dist/utils/shell/execute-shell.js.map +1 -1
  682. package/dist/utils/shell/sandbox/denied-read-stores.d.ts.map +1 -1
  683. package/dist/utils/shell/sandbox/sandbox-env.js.map +1 -1
  684. package/dist/utils/shell/sandbox/sandbox-failure-classifier.d.ts +24 -0
  685. package/dist/utils/shell/sandbox/sandbox-failure-classifier.d.ts.map +1 -0
  686. package/dist/utils/shell/sandbox/sandbox-failure-classifier.js +43 -0
  687. package/dist/utils/shell/sandbox/sandbox-failure-classifier.js.map +1 -0
  688. package/dist/utils/shell/sandbox/sandbox-network-approval.d.ts +14 -0
  689. package/dist/utils/shell/sandbox/sandbox-network-approval.d.ts.map +1 -0
  690. package/dist/utils/shell/sandbox/sandbox-network-approval.js +50 -0
  691. package/dist/utils/shell/sandbox/sandbox-network-approval.js.map +1 -0
  692. package/dist/utils/shell/sandbox/sandbox-network-diagnostic.d.ts +6 -0
  693. package/dist/utils/shell/sandbox/sandbox-network-diagnostic.d.ts.map +1 -0
  694. package/dist/utils/shell/sandbox/sandbox-network-diagnostic.js +71 -0
  695. package/dist/utils/shell/sandbox/sandbox-network-diagnostic.js.map +1 -0
  696. package/dist/utils/shell/sandbox/sandbox-policy.d.ts.map +1 -1
  697. package/dist/utils/shell/sandbox/sandbox-policy.js +245 -1
  698. package/dist/utils/shell/sandbox/sandbox-policy.js.map +1 -1
  699. package/dist/utils/shell/sandbox/shell-sandbox-runner.d.ts.map +1 -1
  700. package/dist/utils/shell/sandbox/shell-sandbox-runner.js +5 -1
  701. package/dist/utils/shell/sandbox/shell-sandbox-runner.js.map +1 -1
  702. package/dist/utils/shell/shell-session.d.ts +22 -0
  703. package/dist/utils/shell/shell-session.d.ts.map +1 -0
  704. package/dist/utils/shell/shell-session.js +48 -0
  705. package/dist/utils/shell/shell-session.js.map +1 -0
  706. package/dist/utils/skill-discovery-paths.d.ts +1 -1
  707. package/dist/utils/skill-discovery-paths.d.ts.map +1 -1
  708. package/dist/utils/streaming/extract-command-messages.d.ts.map +1 -1
  709. package/dist/utils/streaming/extract-command-messages.js.map +1 -1
  710. package/dist/utils/streaming/streaming-session-factory.js +1 -1
  711. package/dist/utils/streaming/streaming-session-factory.js.map +1 -1
  712. package/dist/utils/streaming/streaming-updater.d.ts.map +1 -1
  713. package/dist/utils/subsequence-filter.d.ts.map +1 -1
  714. package/dist/utils/terminal-clear.d.ts +7 -0
  715. package/dist/utils/terminal-clear.d.ts.map +1 -0
  716. package/dist/utils/terminal-clear.js +5 -0
  717. package/dist/utils/terminal-clear.js.map +1 -0
  718. package/dist/utils/terminal-clear.test.d.ts +2 -0
  719. package/dist/utils/terminal-clear.test.d.ts.map +1 -0
  720. package/dist/utils/terminal-clear.test.js +13 -0
  721. package/dist/utils/terminal-clear.test.js.map +1 -0
  722. package/dist/utils/test-render.d.ts +14 -0
  723. package/dist/utils/test-render.d.ts.map +1 -0
  724. package/dist/utils/test-render.js +44 -0
  725. package/dist/utils/test-render.js.map +1 -0
  726. package/dist/utils/throttle.d.ts.map +1 -1
  727. package/dist/utils/throttle.js.map +1 -1
  728. package/dist/utils/value-suggestions.js.map +1 -1
  729. package/package.json +6 -4
  730. package/dist/agent.lite-mode.test.d.ts +0 -2
  731. package/dist/agent.lite-mode.test.d.ts.map +0 -1
  732. package/dist/agent.lite-mode.test.js +0 -39
  733. package/dist/agent.lite-mode.test.js.map +0 -1
  734. package/dist/app.large-uncached-warning.test.js +0 -15
  735. package/dist/components/ApprovalPrompt.test.d.ts +0 -2
  736. package/dist/components/ApprovalPrompt.test.d.ts.map +0 -1
  737. package/dist/components/ApprovalPrompt.test.js +0 -23
  738. package/dist/components/ApprovalPrompt.test.js.map +0 -1
  739. package/dist/components/LiveResponse.test.d.ts +0 -2
  740. package/dist/components/LiveResponse.test.d.ts.map +0 -1
  741. package/dist/components/LiveResponse.test.js +0 -13
  742. package/dist/components/LiveResponse.test.js.map +0 -1
  743. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +0 -2
  744. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +0 -1
  745. package/dist/components/ModelSelectionMenu.error-tabs.test.js +0 -18
  746. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +0 -1
  747. package/dist/components/TextInput.d.ts +0 -42
  748. package/dist/components/TextInput.d.ts.map +0 -1
  749. package/dist/components/TextInput.js +0 -398
  750. package/dist/components/TextInput.js.map +0 -1
  751. package/dist/components/TextInput.test.d.ts +0 -2
  752. package/dist/components/TextInput.test.d.ts.map +0 -1
  753. package/dist/components/TextInput.test.js +0 -75
  754. package/dist/components/TextInput.test.js.map +0 -1
  755. package/dist/components/__test_act.test.d.ts +0 -2
  756. package/dist/components/__test_act.test.d.ts.map +0 -1
  757. package/dist/components/__test_act.test.js +0 -22
  758. package/dist/components/__test_act.test.js.map +0 -1
  759. package/dist/components/__test_act_test.d.ts +0 -2
  760. package/dist/components/__test_act_test.d.ts.map +0 -1
  761. package/dist/components/__test_act_test.js +0 -22
  762. package/dist/components/__test_act_test.js.map +0 -1
  763. package/dist/components/act-test.test.d.ts +0 -2
  764. package/dist/components/act-test.test.d.ts.map +0 -1
  765. package/dist/components/act-test.test.js +0 -22
  766. package/dist/components/act-test.test.js.map +0 -1
  767. package/dist/components/common/MenuContainer.d.ts +0 -19
  768. package/dist/components/common/MenuContainer.d.ts.map +0 -1
  769. package/dist/components/common/MenuContainer.js +0 -52
  770. package/dist/components/common/MenuContainer.js.map +0 -1
  771. package/dist/components/common/MenuContainer.test.d.ts +0 -2
  772. package/dist/components/common/MenuContainer.test.d.ts.map +0 -1
  773. package/dist/components/common/MenuContainer.test.js +0 -37
  774. package/dist/components/common/MenuContainer.test.js.map +0 -1
  775. package/dist/components/common/ScrollableTabBar.d.ts +0 -26
  776. package/dist/components/common/ScrollableTabBar.d.ts.map +0 -1
  777. package/dist/components/common/ScrollableTabBar.js +0 -26
  778. package/dist/components/common/ScrollableTabBar.js.map +0 -1
  779. package/dist/components/common/compute-visible-tabs.d.ts +0 -16
  780. package/dist/components/common/compute-visible-tabs.d.ts.map +0 -1
  781. package/dist/components/common/compute-visible-tabs.js +0 -53
  782. package/dist/components/common/compute-visible-tabs.js.map +0 -1
  783. package/dist/components/common/compute-visible-tabs.test.d.ts +0 -2
  784. package/dist/components/common/compute-visible-tabs.test.d.ts.map +0 -1
  785. package/dist/components/common/compute-visible-tabs.test.js +0 -97
  786. package/dist/components/common/compute-visible-tabs.test.js.map +0 -1
  787. package/dist/components/input/PopupManager.d.ts +0 -88
  788. package/dist/components/input/PopupManager.d.ts.map +0 -1
  789. package/dist/components/input/PopupManager.js +0 -21
  790. package/dist/components/input/PopupManager.js.map +0 -1
  791. package/dist/components/input/determine-active-menu.d.ts +0 -27
  792. package/dist/components/input/determine-active-menu.d.ts.map +0 -1
  793. package/dist/components/input/determine-active-menu.js +0 -81
  794. package/dist/components/input/determine-active-menu.js.map +0 -1
  795. package/dist/components/input/input-width.d.ts +0 -8
  796. package/dist/components/input/input-width.d.ts.map +0 -1
  797. package/dist/components/input/input-width.js +0 -24
  798. package/dist/components/input/input-width.js.map +0 -1
  799. package/dist/components/input/insertions.d.ts +0 -44
  800. package/dist/components/input/insertions.d.ts.map +0 -1
  801. package/dist/components/input/insertions.js +0 -67
  802. package/dist/components/input/insertions.js.map +0 -1
  803. package/dist/components/input/popup-key-navigation.d.ts +0 -18
  804. package/dist/components/input/popup-key-navigation.d.ts.map +0 -1
  805. package/dist/components/input/popup-key-navigation.js +0 -16
  806. package/dist/components/input/popup-key-navigation.js.map +0 -1
  807. package/dist/components/input/popup-key-navigation.test.d.ts +0 -2
  808. package/dist/components/input/popup-key-navigation.test.d.ts.map +0 -1
  809. package/dist/components/input/popup-key-navigation.test.js +0 -75
  810. package/dist/components/input/popup-key-navigation.test.js.map +0 -1
  811. package/dist/components/input/popup-props.d.ts +0 -24
  812. package/dist/components/input/popup-props.d.ts.map +0 -1
  813. package/dist/components/input/popup-props.js +0 -72
  814. package/dist/components/input/popup-props.js.map +0 -1
  815. package/dist/components/input/popup-props.test.d.ts +0 -2
  816. package/dist/components/input/popup-props.test.d.ts.map +0 -1
  817. package/dist/components/input/popup-props.test.js +0 -86
  818. package/dist/components/input/popup-props.test.js.map +0 -1
  819. package/dist/components/input/triggers.d.ts +0 -11
  820. package/dist/components/input/triggers.d.ts.map +0 -1
  821. package/dist/components/input/triggers.js +0 -27
  822. package/dist/components/input/triggers.js.map +0 -1
  823. package/dist/debug-test.d.ts +0 -2
  824. package/dist/debug-test.d.ts.map +0 -1
  825. package/dist/debug-test.js +0 -18
  826. package/dist/debug-test.js.map +0 -1
  827. package/dist/debug_ask_mentor.d.ts +0 -2
  828. package/dist/debug_ask_mentor.d.ts.map +0 -1
  829. package/dist/debug_ask_mentor.js +0 -73
  830. package/dist/debug_ask_mentor.js.map +0 -1
  831. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts +0 -2
  832. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts.map +0 -1
  833. package/dist/hooks/use-conversation.max-turns-undo.test.js +0 -118
  834. package/dist/hooks/use-conversation.max-turns-undo.test.js.map +0 -1
  835. package/dist/hooks/use-path-completion.repro.test.d.ts +0 -2
  836. package/dist/hooks/use-path-completion.repro.test.d.ts.map +0 -1
  837. package/dist/hooks/use-path-completion.repro.test.js.map +0 -1
  838. package/dist/lib/shell.d.ts +0 -7
  839. package/dist/lib/shell.d.ts.map +0 -1
  840. package/dist/lib/shell.js +0 -56
  841. package/dist/lib/shell.js.map +0 -1
  842. package/dist/modes/companion/command-index.d.ts +0 -26
  843. package/dist/modes/companion/command-index.d.ts.map +0 -1
  844. package/dist/modes/companion/command-index.js +0 -50
  845. package/dist/modes/companion/command-index.js.map +0 -1
  846. package/dist/modes/companion/command-index.test.d.ts +0 -2
  847. package/dist/modes/companion/command-index.test.d.ts.map +0 -1
  848. package/dist/modes/companion/command-index.test.js +0 -86
  849. package/dist/modes/companion/command-index.test.js.map +0 -1
  850. package/dist/modes/companion/companion-app.d.ts +0 -12
  851. package/dist/modes/companion/companion-app.d.ts.map +0 -1
  852. package/dist/modes/companion/companion-app.js +0 -297
  853. package/dist/modes/companion/companion-app.js.map +0 -1
  854. package/dist/modes/companion/companion-session.d.ts +0 -63
  855. package/dist/modes/companion/companion-session.d.ts.map +0 -1
  856. package/dist/modes/companion/companion-session.js +0 -146
  857. package/dist/modes/companion/companion-session.js.map +0 -1
  858. package/dist/modes/companion/companion-session.test.d.ts +0 -2
  859. package/dist/modes/companion/companion-session.test.d.ts.map +0 -1
  860. package/dist/modes/companion/companion-session.test.js +0 -28
  861. package/dist/modes/companion/companion-session.test.js.map +0 -1
  862. package/dist/modes/companion/components/status-bar.d.ts +0 -13
  863. package/dist/modes/companion/components/status-bar.d.ts.map +0 -1
  864. package/dist/modes/companion/components/status-bar.js +0 -26
  865. package/dist/modes/companion/components/status-bar.js.map +0 -1
  866. package/dist/modes/companion/context-buffer.d.ts +0 -65
  867. package/dist/modes/companion/context-buffer.d.ts.map +0 -1
  868. package/dist/modes/companion/context-buffer.js +0 -156
  869. package/dist/modes/companion/context-buffer.js.map +0 -1
  870. package/dist/modes/companion/context-buffer.test.d.ts +0 -2
  871. package/dist/modes/companion/context-buffer.test.d.ts.map +0 -1
  872. package/dist/modes/companion/context-buffer.test.js +0 -154
  873. package/dist/modes/companion/context-buffer.test.js.map +0 -1
  874. package/dist/modes/companion/event-detector.d.ts +0 -46
  875. package/dist/modes/companion/event-detector.d.ts.map +0 -1
  876. package/dist/modes/companion/event-detector.js +0 -169
  877. package/dist/modes/companion/event-detector.js.map +0 -1
  878. package/dist/modes/companion/event-detector.test.d.ts +0 -2
  879. package/dist/modes/companion/event-detector.test.d.ts.map +0 -1
  880. package/dist/modes/companion/event-detector.test.js +0 -121
  881. package/dist/modes/companion/event-detector.test.js.map +0 -1
  882. package/dist/modes/companion/index.d.ts +0 -33
  883. package/dist/modes/companion/index.d.ts.map +0 -1
  884. package/dist/modes/companion/index.js +0 -21
  885. package/dist/modes/companion/index.js.map +0 -1
  886. package/dist/modes/companion/input-key-mapper.d.ts +0 -3
  887. package/dist/modes/companion/input-key-mapper.d.ts.map +0 -1
  888. package/dist/modes/companion/input-key-mapper.js +0 -31
  889. package/dist/modes/companion/input-key-mapper.js.map +0 -1
  890. package/dist/modes/companion/input-key-mapper.test.d.ts +0 -2
  891. package/dist/modes/companion/input-key-mapper.test.d.ts.map +0 -1
  892. package/dist/modes/companion/input-key-mapper.test.js +0 -26
  893. package/dist/modes/companion/input-key-mapper.test.js.map +0 -1
  894. package/dist/modes/companion/input-parser.d.ts +0 -53
  895. package/dist/modes/companion/input-parser.d.ts.map +0 -1
  896. package/dist/modes/companion/input-parser.js +0 -114
  897. package/dist/modes/companion/input-parser.js.map +0 -1
  898. package/dist/modes/companion/input-parser.test.d.ts +0 -2
  899. package/dist/modes/companion/input-parser.test.d.ts.map +0 -1
  900. package/dist/modes/companion/input-parser.test.js +0 -123
  901. package/dist/modes/companion/input-parser.test.js.map +0 -1
  902. package/dist/modes/companion/mode-manager.d.ts +0 -41
  903. package/dist/modes/companion/mode-manager.d.ts.map +0 -1
  904. package/dist/modes/companion/mode-manager.js +0 -56
  905. package/dist/modes/companion/mode-manager.js.map +0 -1
  906. package/dist/modes/companion/mode-manager.test.d.ts +0 -2
  907. package/dist/modes/companion/mode-manager.test.d.ts.map +0 -1
  908. package/dist/modes/companion/mode-manager.test.js +0 -65
  909. package/dist/modes/companion/mode-manager.test.js.map +0 -1
  910. package/dist/modes/companion/output-classifier.d.ts +0 -15
  911. package/dist/modes/companion/output-classifier.d.ts.map +0 -1
  912. package/dist/modes/companion/output-classifier.js +0 -77
  913. package/dist/modes/companion/output-classifier.js.map +0 -1
  914. package/dist/modes/companion/output-classifier.test.d.ts +0 -2
  915. package/dist/modes/companion/output-classifier.test.d.ts.map +0 -1
  916. package/dist/modes/companion/output-classifier.test.js +0 -133
  917. package/dist/modes/companion/output-classifier.test.js.map +0 -1
  918. package/dist/modes/companion/pty-wrapper.d.ts +0 -46
  919. package/dist/modes/companion/pty-wrapper.d.ts.map +0 -1
  920. package/dist/modes/companion/pty-wrapper.js +0 -143
  921. package/dist/modes/companion/pty-wrapper.js.map +0 -1
  922. package/dist/modes/companion/safety-classifier.d.ts +0 -31
  923. package/dist/modes/companion/safety-classifier.d.ts.map +0 -1
  924. package/dist/modes/companion/safety-classifier.js +0 -140
  925. package/dist/modes/companion/safety-classifier.js.map +0 -1
  926. package/dist/modes/companion/safety-classifier.test.d.ts +0 -2
  927. package/dist/modes/companion/safety-classifier.test.d.ts.map +0 -1
  928. package/dist/modes/companion/safety-classifier.test.js +0 -151
  929. package/dist/modes/companion/safety-classifier.test.js.map +0 -1
  930. package/dist/modes/companion/summarizer.d.ts +0 -24
  931. package/dist/modes/companion/summarizer.d.ts.map +0 -1
  932. package/dist/modes/companion/summarizer.js +0 -132
  933. package/dist/modes/companion/summarizer.js.map +0 -1
  934. package/dist/modes/companion/terminal-history.d.ts +0 -27
  935. package/dist/modes/companion/terminal-history.d.ts.map +0 -1
  936. package/dist/modes/companion/terminal-history.js +0 -142
  937. package/dist/modes/companion/terminal-history.js.map +0 -1
  938. package/dist/prompts/simple-mentor.md +0 -215
  939. package/dist/providers/ai-sdk-openai.provider.d.ts +0 -14
  940. package/dist/providers/ai-sdk-openai.provider.d.ts.map +0 -1
  941. package/dist/providers/ai-sdk-openai.provider.js +0 -18
  942. package/dist/providers/ai-sdk-openai.provider.js.map +0 -1
  943. package/dist/providers/github-copilot/converters.d.ts +0 -45
  944. package/dist/providers/github-copilot/converters.d.ts.map +0 -1
  945. package/dist/providers/github-copilot/converters.js +0 -118
  946. package/dist/providers/github-copilot/converters.js.map +0 -1
  947. package/dist/providers/github-copilot/converters.test.d.ts +0 -2
  948. package/dist/providers/github-copilot/converters.test.d.ts.map +0 -1
  949. package/dist/providers/github-copilot/converters.test.js +0 -162
  950. package/dist/providers/github-copilot/converters.test.js.map +0 -1
  951. package/dist/providers/github-copilot/github-copilot.provider.d.ts +0 -2
  952. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +0 -1
  953. package/dist/providers/github-copilot/github-copilot.provider.js +0 -75
  954. package/dist/providers/github-copilot/github-copilot.provider.js.map +0 -1
  955. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +0 -2
  956. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +0 -1
  957. package/dist/providers/github-copilot/github-copilot.provider.test.js +0 -26
  958. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +0 -1
  959. package/dist/providers/github-copilot/index.d.ts +0 -4
  960. package/dist/providers/github-copilot/index.d.ts.map +0 -1
  961. package/dist/providers/github-copilot/index.js +0 -4
  962. package/dist/providers/github-copilot/index.js.map +0 -1
  963. package/dist/providers/github-copilot/model.d.ts +0 -24
  964. package/dist/providers/github-copilot/model.d.ts.map +0 -1
  965. package/dist/providers/github-copilot/model.delta.test.d.ts +0 -2
  966. package/dist/providers/github-copilot/model.delta.test.d.ts.map +0 -1
  967. package/dist/providers/github-copilot/model.delta.test.js +0 -15
  968. package/dist/providers/github-copilot/model.delta.test.js.map +0 -1
  969. package/dist/providers/github-copilot/model.js +0 -498
  970. package/dist/providers/github-copilot/model.js.map +0 -1
  971. package/dist/providers/github-copilot/model.test.d.ts +0 -2
  972. package/dist/providers/github-copilot/model.test.d.ts.map +0 -1
  973. package/dist/providers/github-copilot/model.test.js +0 -63
  974. package/dist/providers/github-copilot/model.test.js.map +0 -1
  975. package/dist/providers/github-copilot/provider.d.ts +0 -15
  976. package/dist/providers/github-copilot/provider.d.ts.map +0 -1
  977. package/dist/providers/github-copilot/provider.js +0 -25
  978. package/dist/providers/github-copilot/provider.js.map +0 -1
  979. package/dist/providers/github-copilot/provider.test.d.ts +0 -2
  980. package/dist/providers/github-copilot/provider.test.d.ts.map +0 -1
  981. package/dist/providers/github-copilot/provider.test.js +0 -52
  982. package/dist/providers/github-copilot/provider.test.js.map +0 -1
  983. package/dist/providers/github-copilot/utils.d.ts +0 -20
  984. package/dist/providers/github-copilot/utils.d.ts.map +0 -1
  985. package/dist/providers/github-copilot/utils.js +0 -142
  986. package/dist/providers/github-copilot/utils.js.map +0 -1
  987. package/dist/providers/github-copilot/utils.test.d.ts +0 -2
  988. package/dist/providers/github-copilot/utils.test.d.ts.map +0 -1
  989. package/dist/providers/github-copilot/utils.test.js +0 -21
  990. package/dist/providers/github-copilot/utils.test.js.map +0 -1
  991. package/dist/providers/openai-compatible/api.d.ts +0 -17
  992. package/dist/providers/openai-compatible/api.d.ts.map +0 -1
  993. package/dist/providers/openai-compatible/api.js +0 -58
  994. package/dist/providers/openai-compatible/api.js.map +0 -1
  995. package/dist/providers/openai-compatible/model.d.ts +0 -17
  996. package/dist/providers/openai-compatible/model.d.ts.map +0 -1
  997. package/dist/providers/openai-compatible/model.js +0 -473
  998. package/dist/providers/openai-compatible/model.js.map +0 -1
  999. package/dist/providers/openai-compatible/provider.d.ts +0 -22
  1000. package/dist/providers/openai-compatible/provider.d.ts.map +0 -1
  1001. package/dist/providers/openai-compatible/provider.js +0 -43
  1002. package/dist/providers/openai-compatible/provider.js.map +0 -1
  1003. package/dist/providers/openai-compatible/reasoning-content.test.d.ts +0 -2
  1004. package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +0 -1
  1005. package/dist/providers/openai-compatible/reasoning-content.test.js +0 -258
  1006. package/dist/providers/openai-compatible/reasoning-content.test.js.map +0 -1
  1007. package/dist/providers/openai-compatible/utils.d.ts +0 -3
  1008. package/dist/providers/openai-compatible/utils.d.ts.map +0 -1
  1009. package/dist/providers/openai-compatible/utils.js +0 -11
  1010. package/dist/providers/openai-compatible/utils.js.map +0 -1
  1011. package/dist/providers/openrouter/api.d.ts +0 -39
  1012. package/dist/providers/openrouter/api.d.ts.map +0 -1
  1013. package/dist/providers/openrouter/api.js +0 -164
  1014. package/dist/providers/openrouter/api.js.map +0 -1
  1015. package/dist/providers/openrouter/converters.d.ts +0 -8
  1016. package/dist/providers/openrouter/converters.d.ts.map +0 -1
  1017. package/dist/providers/openrouter/converters.js +0 -391
  1018. package/dist/providers/openrouter/converters.js.map +0 -1
  1019. package/dist/providers/openrouter/converters.test.d.ts +0 -2
  1020. package/dist/providers/openrouter/converters.test.d.ts.map +0 -1
  1021. package/dist/providers/openrouter/converters.test.js +0 -179
  1022. package/dist/providers/openrouter/converters.test.js.map +0 -1
  1023. package/dist/providers/openrouter/index.d.ts +0 -4
  1024. package/dist/providers/openrouter/index.d.ts.map +0 -1
  1025. package/dist/providers/openrouter/index.js +0 -4
  1026. package/dist/providers/openrouter/index.js.map +0 -1
  1027. package/dist/providers/openrouter/model.d.ts +0 -14
  1028. package/dist/providers/openrouter/model.d.ts.map +0 -1
  1029. package/dist/providers/openrouter/model.js +0 -457
  1030. package/dist/providers/openrouter/model.js.map +0 -1
  1031. package/dist/providers/openrouter/provider.d.ts +0 -15
  1032. package/dist/providers/openrouter/provider.d.ts.map +0 -1
  1033. package/dist/providers/openrouter/provider.js +0 -21
  1034. package/dist/providers/openrouter/provider.js.map +0 -1
  1035. package/dist/providers/openrouter/reasoning-content.test.d.ts +0 -2
  1036. package/dist/providers/openrouter/reasoning-content.test.d.ts.map +0 -1
  1037. package/dist/providers/openrouter/reasoning-content.test.js +0 -122
  1038. package/dist/providers/openrouter/reasoning-content.test.js.map +0 -1
  1039. package/dist/providers/openrouter/utils.d.ts +0 -11
  1040. package/dist/providers/openrouter/utils.d.ts.map +0 -1
  1041. package/dist/providers/openrouter/utils.js +0 -29
  1042. package/dist/providers/openrouter/utils.js.map +0 -1
  1043. package/dist/providers/openrouter.api.retry.test.d.ts +0 -2
  1044. package/dist/providers/openrouter.api.retry.test.d.ts.map +0 -1
  1045. package/dist/providers/openrouter.api.retry.test.js +0 -148
  1046. package/dist/providers/openrouter.api.retry.test.js.map +0 -1
  1047. package/dist/providers/openrouter.test.d.ts +0 -2
  1048. package/dist/providers/openrouter.test.d.ts.map +0 -1
  1049. package/dist/providers/openrouter.test.js +0 -1449
  1050. package/dist/providers/openrouter.test.js.map +0 -1
  1051. package/dist/providers/protocol-client.d.ts +0 -17
  1052. package/dist/providers/protocol-client.d.ts.map +0 -1
  1053. package/dist/providers/protocol-client.js +0 -57
  1054. package/dist/providers/protocol-client.js.map +0 -1
  1055. package/dist/providers/protocol-client.test.d.ts +0 -2
  1056. package/dist/providers/protocol-client.test.d.ts.map +0 -1
  1057. package/dist/providers/protocol-client.test.js +0 -55
  1058. package/dist/providers/protocol-client.test.js.map +0 -1
  1059. package/dist/safety-checker.js +0 -57
  1060. package/dist/services/check_mock.d.ts +0 -2
  1061. package/dist/services/check_mock.d.ts.map +0 -1
  1062. package/dist/services/check_mock.js +0 -22
  1063. package/dist/services/check_mock.js.map +0 -1
  1064. package/dist/services/conversation-store.merge-modes.removed.d.ts +0 -2
  1065. package/dist/services/conversation-store.merge-modes.removed.d.ts.map +0 -1
  1066. package/dist/services/conversation-store.merge-modes.removed.js +0 -2
  1067. package/dist/services/conversation-store.merge-modes.removed.js.map +0 -1
  1068. package/dist/services/repro-error.test.d.ts +0 -2
  1069. package/dist/services/repro-error.test.d.ts.map +0 -1
  1070. package/dist/services/repro-error.test.js +0 -38
  1071. package/dist/services/repro-error.test.js.map +0 -1
  1072. package/dist/services/subagents/reasoning-inheritance.test.d.ts +0 -2
  1073. package/dist/services/subagents/reasoning-inheritance.test.d.ts.map +0 -1
  1074. package/dist/services/subagents/reasoning-inheritance.test.js +0 -73
  1075. package/dist/services/subagents/reasoning-inheritance.test.js.map +0 -1
  1076. package/dist/services/subagents/subagent-manager-abort-state.test.d.ts +0 -2
  1077. package/dist/services/subagents/subagent-manager-abort-state.test.d.ts.map +0 -1
  1078. package/dist/services/subagents/subagent-manager-abort-state.test.js +0 -36
  1079. package/dist/services/subagents/subagent-manager-abort-state.test.js.map +0 -1
  1080. package/dist/services/subagents/subagent-manager-abort.test.d.ts +0 -2
  1081. package/dist/services/subagents/subagent-manager-abort.test.d.ts.map +0 -1
  1082. package/dist/services/subagents/subagent-manager-abort.test.js +0 -3
  1083. package/dist/services/subagents/subagent-manager-abort.test.js.map +0 -1
  1084. package/dist/tools/bash.d.ts +0 -10
  1085. package/dist/tools/bash.d.ts.map +0 -1
  1086. package/dist/tools/bash.js +0 -55
  1087. package/dist/tools/bash.js.map +0 -1
  1088. package/dist/utils/command-safety/handlers/script-handler.d.ts +0 -3
  1089. package/dist/utils/command-safety/handlers/script-handler.d.ts.map +0 -1
  1090. package/dist/utils/command-safety/handlers/script-handler.js +0 -92
  1091. package/dist/utils/command-safety/handlers/script-handler.js.map +0 -1
  1092. package/dist/utils/command-safety/handlers/script-handler.test.d.ts +0 -2
  1093. package/dist/utils/command-safety/handlers/script-handler.test.d.ts.map +0 -1
  1094. package/dist/utils/command-safety/handlers/script-handler.test.js +0 -44
  1095. package/dist/utils/command-safety/handlers/script-handler.test.js.map +0 -1
  1096. package/dist/utils/command-safety/index.test.d.ts +0 -2
  1097. package/dist/utils/command-safety/index.test.d.ts.map +0 -1
  1098. package/dist/utils/command-safety/index.test.js +0 -22
  1099. package/dist/utils/command-safety/index.test.js.map +0 -1
  1100. package/dist/utils/command-safety.d.ts +0 -21
  1101. package/dist/utils/command-safety.d.ts.map +0 -1
  1102. package/dist/utils/command-safety.devnull.test.d.ts +0 -2
  1103. package/dist/utils/command-safety.devnull.test.d.ts.map +0 -1
  1104. package/dist/utils/command-safety.devnull.test.js +0 -13
  1105. package/dist/utils/command-safety.devnull.test.js.map +0 -1
  1106. package/dist/utils/command-safety.js +0 -348
  1107. package/dist/utils/command-safety.js.map +0 -1
  1108. package/dist/utils/provider-traffic-extractor.repro.test.d.ts +0 -2
  1109. package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +0 -1
  1110. package/dist/utils/provider-traffic-extractor.repro.test.js.map +0 -1
  1111. /package/dist/components/{input → Input}/input-width.test.d.ts +0 -0
  1112. /package/dist/components/{input → Input}/input-width.test.d.ts.map +0 -0
  1113. /package/dist/components/{input → Input}/input-width.test.js +0 -0
  1114. /package/dist/components/{input → Input}/input-width.test.js.map +0 -0
  1115. /package/dist/components/{input → Input}/insertions.test.d.ts +0 -0
  1116. /package/dist/components/{input → Input}/insertions.test.d.ts.map +0 -0
  1117. /package/dist/components/{input → Input}/insertions.test.js +0 -0
  1118. /package/dist/components/{input → Input}/insertions.test.js.map +0 -0
@@ -0,0 +1,440 @@
1
+ import { describeError, isAbortLikeError } from '../../utils/error-helpers.js';
2
+ import { ASK_USER_DECLINE_RESULT } from '../../tools/agent/ask-user-constants.js';
3
+ import { createMessageIdFactory } from '../../utils/message-id-factory.js';
4
+ import { isUserMessage } from '../../types/message.js';
5
+ import { isDeniedReadApproveAnswer } from '../../contracts/conversation.js';
6
+ import { createStreamingSession } from '../../utils/streaming/streaming-session-factory.js';
7
+ import { enhanceApiKeyError, isMaxTurnsError } from '../../utils/conversation/conversation-utils.js';
8
+ import { clearStreamingBotMessage, computeNextMessages } from '../../utils/conversation/apply-conversation-result.js';
9
+ import { countUndoableUserTurnsFrom, findLastUndoableUserMessage, trimTrailingAssistantMessages, } from '../../utils/conversation/message-utils.js';
10
+ import { annotateApprovedCommandMessage, filterPendingCommandMessagesForApproval, } from '../approval/approval-presentation-policy.js';
11
+ import { formatUserTurnForDisplay, hasUserTurnContent, injectSkillIntoTurn, normalizeUserTurn, } from '../../types/user-turn.js';
12
+ const REASONING_RESPONSE_THROTTLE_MS = 200;
13
+ export class ConversationOrchestrator {
14
+ config;
15
+ pendingApproval = null;
16
+ askUserAnswers = [];
17
+ currentAskUserQuestionIndex = 0;
18
+ createMessageId;
19
+ constructor(config) {
20
+ this.config = config;
21
+ this.createMessageId = config.createMessageId ?? createMessageIdFactory(config.now);
22
+ }
23
+ updateCallbacks({ onRestoreInput, onClear, }) {
24
+ this.config.onRestoreInput = onRestoreInput;
25
+ this.config.onClear = onClear;
26
+ }
27
+ getSubagentUsage() {
28
+ return this.config.subagentUsageAccumulator?.get() ?? null;
29
+ }
30
+ goToPreviousQuestion() {
31
+ if (this.currentAskUserQuestionIndex <= 0) {
32
+ return;
33
+ }
34
+ this.currentAskUserQuestionIndex -= 1;
35
+ this.askUserAnswers.pop();
36
+ this.config.ui.onAskUserGoBack(this.currentAskUserQuestionIndex, this.askUserAnswers.slice());
37
+ }
38
+ goToNextQuestion() {
39
+ this.currentAskUserQuestionIndex += 1;
40
+ this.config.ui.onAskUserAdvanceToNext(this.currentAskUserQuestionIndex);
41
+ }
42
+ async clearConversation() {
43
+ if (this.config.onClear) {
44
+ await this.config.onClear();
45
+ }
46
+ else {
47
+ this.config.conversationService.resetWithNewId(crypto.randomUUID());
48
+ }
49
+ this.config.messages.setMessages(() => []);
50
+ this.config.approvedContext.current = null;
51
+ this.pendingApproval = null;
52
+ this.resetAskUserState();
53
+ this.config.ui.onResetAll();
54
+ this.config.usageAccumulator?.reset();
55
+ this.config.subagentUsageAccumulator?.reset();
56
+ }
57
+ stopProcessing() {
58
+ this.config.conversationService.abort();
59
+ this.config.approvedContext.current = null;
60
+ this.pendingApproval = null;
61
+ this.resetAskUserState();
62
+ this.config.ui.onResetTransient();
63
+ }
64
+ undoLastUserMessage() {
65
+ const messages = this.config.messages.getMessages();
66
+ const lastUserIndex = findLastUndoableUserMessage(messages);
67
+ if (lastUserIndex === -1) {
68
+ return null;
69
+ }
70
+ const lastUserMessage = messages[lastUserIndex];
71
+ const uiText = isUserMessage(lastUserMessage) ? lastUserMessage.text : '';
72
+ this.config.conversationService.abort();
73
+ const removed = this.config.conversationService.undoLastUserTurn();
74
+ const restored = removed ?? { text: uiText };
75
+ this.config.messages.setMessages((prev) => prev.slice(0, lastUserIndex));
76
+ this.config.approvedContext.current = null;
77
+ this.pendingApproval = null;
78
+ this.resetAskUserState();
79
+ this.config.ui.onResetTransient();
80
+ return restored;
81
+ }
82
+ async retryLastToolOutput() {
83
+ this.config.conversationService.abort();
84
+ this.config.approvedContext.current = null;
85
+ this.pendingApproval = null;
86
+ this.resetAskUserState();
87
+ this.config.ui.onResetTransient();
88
+ if (!this.config.conversationService.peekLastToolOutput()) {
89
+ return false;
90
+ }
91
+ this.config.messages.setMessages((prev) => trimTrailingAssistantMessages(prev));
92
+ this.config.ui.onTurnStart();
93
+ const { botResponseUpdater, reasoningUpdater, applyConversationEvent, streamingState } = this.createTurnSession('retryLastToolOutput');
94
+ try {
95
+ const result = await this.config.conversationService.retryLastToolOutput({
96
+ onEvent: this.createOnEventHandler(applyConversationEvent),
97
+ });
98
+ if (!result) {
99
+ return false;
100
+ }
101
+ applyConversationEvent({ type: 'final', finalText: '' });
102
+ botResponseUpdater.flush();
103
+ this.applyServiceResult(result, streamingState, streamingState.latestUsage);
104
+ return true;
105
+ }
106
+ catch (error) {
107
+ this.logError('Error in retryLastToolOutput', error);
108
+ if (isAbortLikeError(error)) {
109
+ this.config.loggingService.debug('Suppressing abort error in retryLastToolOutput');
110
+ return true;
111
+ }
112
+ const errorMessage = enhanceApiKeyError(describeError(error));
113
+ this.appendBotError(errorMessage);
114
+ this.config.ui.onApprovalResolved();
115
+ return true;
116
+ }
117
+ finally {
118
+ this.config.loggingService.debug('retryLastToolOutput finally block - resetting state');
119
+ reasoningUpdater.flush();
120
+ botResponseUpdater.cancel();
121
+ this.config.ui.onTurnEnd();
122
+ }
123
+ }
124
+ undoToUserMessage(uiIndex) {
125
+ const messages = this.config.messages.getMessages();
126
+ const undoCount = countUndoableUserTurnsFrom(messages, uiIndex);
127
+ if (undoCount === 0) {
128
+ return null;
129
+ }
130
+ const selectedMessage = messages[uiIndex];
131
+ const uiText = isUserMessage(selectedMessage) ? selectedMessage.text : '';
132
+ this.config.conversationService.abort();
133
+ const removed = this.config.conversationService.undoNUserTurns(undoCount);
134
+ const restored = removed?.text ?? uiText;
135
+ this.config.messages.setMessages((prev) => prev.slice(0, uiIndex));
136
+ this.config.approvedContext.current = null;
137
+ this.pendingApproval = null;
138
+ this.resetAskUserState();
139
+ this.config.ui.onResetTransient();
140
+ return restored;
141
+ }
142
+ async sendUserMessage(input, options) {
143
+ const turn = normalizeUserTurn(input);
144
+ if (!hasUserTurnContent(turn)) {
145
+ return;
146
+ }
147
+ const userMessage = {
148
+ id: this.createMessageId(),
149
+ sender: 'user',
150
+ text: formatUserTurnForDisplay(turn),
151
+ ...(turn.skill ? { skill: turn.skill } : {}),
152
+ };
153
+ this.config.messages.appendMessages([userMessage]);
154
+ this.config.logWriter?.append({ type: 'user_message', message: userMessage });
155
+ this.config.ui.onTurnStart();
156
+ const { botResponseUpdater, reasoningUpdater, applyConversationEvent, streamingState } = this.createTurnSession('sendUserMessage');
157
+ try {
158
+ const turnToSend = turn.skill ? injectSkillIntoTurn(turn) : turn;
159
+ const result = await this.config.conversationService.sendMessage(turnToSend, {
160
+ onEvent: this.createOnEventHandler(applyConversationEvent),
161
+ bypassInputSurgeGuard: options?.bypassInputSurgeGuard,
162
+ });
163
+ applyConversationEvent({ type: 'final', finalText: '' });
164
+ botResponseUpdater.flush();
165
+ this.applyServiceResult(result, streamingState, streamingState.latestUsage);
166
+ }
167
+ catch (error) {
168
+ this.logError('Error in sendUserMessage', error);
169
+ if (isAbortLikeError(error)) {
170
+ this.config.loggingService.debug('Suppressing abort error in sendUserMessage');
171
+ return;
172
+ }
173
+ const rawErrorMessage = describeError(error);
174
+ const errorMessage = enhanceApiKeyError(rawErrorMessage);
175
+ const dropped = error?.rawEvent?.droppedUserMessage;
176
+ if (dropped) {
177
+ this.config.messages.setMessages((prev) => {
178
+ for (let i = prev.length - 1; i >= 0; i--) {
179
+ if (prev[i].sender === 'user') {
180
+ return prev.slice(0, i);
181
+ }
182
+ }
183
+ return prev;
184
+ });
185
+ this.config.onRestoreInput?.(dropped.text);
186
+ }
187
+ if (isMaxTurnsError(errorMessage)) {
188
+ const pendingApproval = {
189
+ agentName: 'System',
190
+ toolName: 'max_turns_exceeded',
191
+ argumentsText: errorMessage,
192
+ rawInterruption: null,
193
+ isMaxTurnsPrompt: true,
194
+ };
195
+ this.pendingApproval = pendingApproval;
196
+ this.config.ui.onApprovalRequested(pendingApproval);
197
+ }
198
+ else {
199
+ this.appendBotError(errorMessage);
200
+ this.config.ui.onApprovalResolved();
201
+ }
202
+ }
203
+ finally {
204
+ this.config.loggingService.debug('sendUserMessage finally block - resetting state');
205
+ reasoningUpdater.flush();
206
+ botResponseUpdater.cancel();
207
+ this.config.ui.onTurnEnd();
208
+ }
209
+ }
210
+ async handleApprovalDecision(answer, rejectionReason, approvalAnswer) {
211
+ const pendingApproval = this.pendingApproval;
212
+ if (!pendingApproval) {
213
+ return;
214
+ }
215
+ const isMaxTurnsPrompt = pendingApproval.isMaxTurnsPrompt;
216
+ const isAskUser = pendingApproval.toolName === 'ask_user';
217
+ if (isAskUser && answer === 'y' && approvalAnswer !== ASK_USER_DECLINE_RESULT) {
218
+ let questions = [];
219
+ try {
220
+ const parsed = JSON.parse(pendingApproval.argumentsText);
221
+ questions = parsed.questions || [];
222
+ }
223
+ catch {
224
+ // noop
225
+ }
226
+ let parsedAns = approvalAnswer ?? '';
227
+ const currentQuestion = questions[this.askUserAnswers.length];
228
+ if (currentQuestion?.is_multi_select) {
229
+ try {
230
+ const maybeArray = JSON.parse(approvalAnswer ?? '');
231
+ if (Array.isArray(maybeArray)) {
232
+ parsedAns = maybeArray;
233
+ }
234
+ }
235
+ catch {
236
+ // keep plain string
237
+ }
238
+ }
239
+ const nextAnswers = [...this.askUserAnswers, parsedAns];
240
+ this.config.ui.onAskUserAnswerSubmitted(parsedAns);
241
+ if (nextAnswers.length < questions.length) {
242
+ this.askUserAnswers = nextAnswers;
243
+ this.currentAskUserQuestionIndex = nextAnswers.length;
244
+ this.config.ui.onAskUserAdvanceToNext(nextAnswers.length);
245
+ return;
246
+ }
247
+ this.askUserAnswers = nextAnswers;
248
+ this.currentAskUserQuestionIndex = nextAnswers.length;
249
+ approvalAnswer = JSON.stringify(nextAnswers);
250
+ }
251
+ if (answer === 'y' || isDeniedReadApproveAnswer(answer)) {
252
+ this.config.approvedContext.current = {
253
+ callId: pendingApproval.callId,
254
+ toolName: pendingApproval.toolName,
255
+ };
256
+ }
257
+ this.config.ui.onApprovalResolved();
258
+ this.pendingApproval = null;
259
+ this.resetAskUserState();
260
+ if (isMaxTurnsPrompt && answer === 'n') {
261
+ this.config.ui.onTurnEnd();
262
+ return;
263
+ }
264
+ if (isMaxTurnsPrompt && answer === 'y') {
265
+ this.config.ui.onTurnStart();
266
+ const { botResponseUpdater, reasoningUpdater, applyConversationEvent, streamingState } = this.createTurnSession('maxTurnsContinuation');
267
+ try {
268
+ const result = await this.config.conversationService.sendMessage('Please continue with your previous task.', {
269
+ onEvent: this.createOnEventHandler(applyConversationEvent),
270
+ });
271
+ applyConversationEvent({ type: 'final', finalText: '' });
272
+ this.applyServiceResult(result, streamingState, streamingState.latestUsage);
273
+ }
274
+ catch (error) {
275
+ this.logError('Error in continuation after max turns', error);
276
+ if (isAbortLikeError(error)) {
277
+ this.config.loggingService.debug('Suppressing abort error in max turns continuation');
278
+ return;
279
+ }
280
+ const errorMessage = error instanceof Error ? error.message : String(error);
281
+ this.appendBotError(errorMessage);
282
+ this.config.ui.onApprovalResolved();
283
+ }
284
+ finally {
285
+ reasoningUpdater.flush();
286
+ botResponseUpdater.cancel();
287
+ this.config.ui.onTurnEnd();
288
+ }
289
+ return;
290
+ }
291
+ this.config.ui.onTurnStart();
292
+ const { botResponseUpdater, reasoningUpdater, applyConversationEvent, streamingState } = this.createTurnSession('approvalDecision');
293
+ try {
294
+ const result = await this.config.conversationService.handleApprovalDecision(answer, rejectionReason, {
295
+ onEvent: this.createOnEventHandler(applyConversationEvent),
296
+ approvalAnswer,
297
+ });
298
+ applyConversationEvent({ type: 'final', finalText: '' });
299
+ botResponseUpdater.flush();
300
+ this.applyServiceResult(result, streamingState, streamingState.latestUsage);
301
+ }
302
+ catch (error) {
303
+ this.logError('Error in handleApprovalDecision', error);
304
+ if (isAbortLikeError(error)) {
305
+ this.config.loggingService.debug('Suppressing abort error in handleApprovalDecision');
306
+ return;
307
+ }
308
+ const errorMessage = error instanceof Error ? error.message : String(error);
309
+ this.appendBotError(errorMessage);
310
+ this.config.ui.onApprovalResolved();
311
+ }
312
+ finally {
313
+ this.config.loggingService.debug('handleApprovalDecision finally block - resetting state');
314
+ reasoningUpdater.flush();
315
+ botResponseUpdater.cancel();
316
+ this.config.ui.onTurnEnd();
317
+ }
318
+ }
319
+ createTurnSession(label) {
320
+ return createStreamingSession({
321
+ appendMessages: this.config.messages.appendMessages,
322
+ setMessages: this.config.messages.setMessages,
323
+ trimMessages: this.config.messages.trimMessages,
324
+ annotateCommandMessage: (msg) => this.annotateCommandMessage(msg),
325
+ loggingService: this.config.loggingService,
326
+ setLastUsage: (usage) => this.config.ui.onUsageUpdate(usage),
327
+ setCodexRateLimit: (rateLimit) => this.config.ui.onRateLimitUpdate(rateLimit),
328
+ reasoningThrottleMs: REASONING_RESPONSE_THROTTLE_MS,
329
+ now: this.config.now,
330
+ }, label);
331
+ }
332
+ createOnEventHandler(baseOnEvent) {
333
+ return (event) => {
334
+ const eventType = typeof event?.type === 'string' ? event.type : undefined;
335
+ if (eventType === 'reasoning_delta') {
336
+ this.config.ui.onStreamingThinkingStarted((this.config.now ?? Date.now)());
337
+ }
338
+ else if (eventType && this.clearsThinkingIndicator(eventType)) {
339
+ this.config.ui.onStreamingThinkingCleared();
340
+ }
341
+ if (eventType === 'tool_call_streaming_delta') {
342
+ this.config.ui.onStreamingToolInfo({ toolName: event.toolName, argumentCharCount: event.argumentCharCount });
343
+ }
344
+ else if (eventType === 'tool_started' || eventType === 'text_delta' || eventType === 'final') {
345
+ this.config.ui.onStreamingToolInfo(null);
346
+ }
347
+ if (event?.type === 'user_message_consumed_for_abort') {
348
+ this.config.messages.setMessages((prev) => {
349
+ for (let i = prev.length - 1; i >= 0; i--) {
350
+ const msg = prev[i];
351
+ if (isUserMessage(msg)) {
352
+ if (msg.consumedForAbort)
353
+ return prev;
354
+ const next = prev.slice();
355
+ next[i] = { ...msg, consumedForAbort: true };
356
+ return next;
357
+ }
358
+ }
359
+ return prev;
360
+ });
361
+ return;
362
+ }
363
+ baseOnEvent(event);
364
+ if (event?.type === 'subagent_completed' && event?.result?.usage) {
365
+ this.config.subagentUsageAccumulator?.add(event.result.usage);
366
+ }
367
+ };
368
+ }
369
+ applyServiceResult(result, streamingState, latestStreamedUsage) {
370
+ if (!result) {
371
+ return;
372
+ }
373
+ if (result.type === 'approval_required') {
374
+ if (result.usage) {
375
+ this.config.ui.onUsageUpdate(latestStreamedUsage ?? result.usage);
376
+ }
377
+ this.pendingApproval = result.approval;
378
+ this.config.messages.setMessages((prev) => this.config.messages.trimMessages(filterPendingCommandMessagesForApproval(prev, result.approval)));
379
+ this.config.ui.onApprovalRequested({ ...result.approval, llmAdvisory: result.approval.llmAdvisory });
380
+ this.config.notifier?.approvalNeeded();
381
+ return;
382
+ }
383
+ this.pendingApproval = null;
384
+ this.config.messages.setMessages((prev) => computeNextMessages({
385
+ prev,
386
+ result,
387
+ streamingState,
388
+ createMessageId: this.createMessageId,
389
+ trimMessages: this.config.messages.trimMessages,
390
+ annotateCommandMessage: (msg) => this.annotateCommandMessage(msg),
391
+ }).next);
392
+ if (result.type === 'response' && streamingState.currentBotMessageId !== null) {
393
+ clearStreamingBotMessage(streamingState);
394
+ }
395
+ this.config.ui.onApprovalResolved();
396
+ this.config.notifier?.turnComplete();
397
+ if (result.usage) {
398
+ this.config.usageAccumulator?.add(result.usage);
399
+ this.config.ui.onUsageUpdate(latestStreamedUsage ?? result.usage);
400
+ }
401
+ }
402
+ annotateCommandMessage(cmdMsg) {
403
+ const approvedMessage = annotateApprovedCommandMessage(cmdMsg, this.config.approvedContext.current);
404
+ const matchedByToolName = approvedMessage !== cmdMsg &&
405
+ !this.config.approvedContext.current?.callId &&
406
+ Boolean(this.config.approvedContext.current?.toolName) &&
407
+ this.config.approvedContext.current?.toolName === cmdMsg.toolName;
408
+ if (matchedByToolName) {
409
+ this.config.approvedContext.current = null;
410
+ }
411
+ return approvedMessage;
412
+ }
413
+ clearsThinkingIndicator(eventType) {
414
+ return (eventType === 'text_delta' ||
415
+ eventType === 'tool_started' ||
416
+ eventType === 'tool_call_streaming_delta' ||
417
+ eventType === 'final');
418
+ }
419
+ resetAskUserState() {
420
+ this.askUserAnswers = [];
421
+ this.currentAskUserQuestionIndex = 0;
422
+ }
423
+ appendBotError(errorMessage) {
424
+ const botErrorMessage = {
425
+ id: this.createMessageId(),
426
+ sender: 'bot',
427
+ status: 'finalized',
428
+ text: `Error: ${errorMessage}`,
429
+ };
430
+ this.config.messages.appendMessages([botErrorMessage]);
431
+ }
432
+ logError(message, error) {
433
+ this.config.loggingService.error(message, {
434
+ error: error instanceof Error ? error.message : String(error),
435
+ stack: error instanceof Error ? error.stack : undefined,
436
+ ...(error instanceof Error && error.eventKind ? { eventKind: error.eventKind } : {}),
437
+ });
438
+ }
439
+ }
440
+ //# sourceMappingURL=conversation-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-orchestrator.js","sourceRoot":"","sources":["../../../source/services/conversation/conversation-orchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ import type { ConversationService } from './conversation-service.js';
2
+ import type { ILoggingService } from '../service-interfaces.js';
3
+ import type { ApprovedToolContext } from '../approval/approval-presentation-policy.js';
4
+ import type { PendingApproval } from '../../contracts/conversation.js';
5
+ import type { Message } from '../../types/message.js';
6
+ import type { NormalizedUsage, UsageAccumulator } from '../../utils/ai/token-usage.js';
7
+ import type { CodexRateLimitInfo } from './conversation-events.js';
8
+ export type AskUserAnswer = string | string[];
9
+ export interface ConversationNotifier {
10
+ approvalNeeded(): void;
11
+ turnComplete(): void;
12
+ }
13
+ export interface MessagePort {
14
+ getMessages(): readonly Message[];
15
+ setMessages(updater: (prev: Message[]) => Message[]): void;
16
+ appendMessages(additions: readonly Message[]): void;
17
+ trimMessages(msgs: Message[]): Message[];
18
+ }
19
+ export interface UIPort {
20
+ onTurnStart(): void;
21
+ onTurnEnd(): void;
22
+ onApprovalRequested(approval: PendingApproval): void;
23
+ onApprovalResolved(): void;
24
+ onUsageUpdate(usage: NormalizedUsage): void;
25
+ onRateLimitUpdate(rateLimit: CodexRateLimitInfo): void;
26
+ onRateLimitClear(): void;
27
+ onResetTransient(): void;
28
+ onResetAll(): void;
29
+ onStreamingThinkingStarted(timestamp: number): void;
30
+ onStreamingThinkingCleared(): void;
31
+ onStreamingToolInfo(info: {
32
+ toolName?: string;
33
+ argumentCharCount: number;
34
+ } | null): void;
35
+ onAskUserAnswerSubmitted(answer: AskUserAnswer): void;
36
+ onAskUserAdvanceToNext(nextIndex: number): void;
37
+ onAskUserGoBack(currentIndex: number, answers: readonly AskUserAnswer[]): void;
38
+ }
39
+ export interface ConversationOrchestratorConfig {
40
+ conversationService: ConversationService;
41
+ loggingService: ILoggingService;
42
+ messages: MessagePort;
43
+ ui: UIPort;
44
+ approvedContext: {
45
+ current: ApprovedToolContext | null;
46
+ };
47
+ usageAccumulator?: UsageAccumulator;
48
+ subagentUsageAccumulator?: UsageAccumulator;
49
+ notifier?: ConversationNotifier;
50
+ onRestoreInput?: (text: string) => void;
51
+ onClear?: () => void | Promise<void>;
52
+ now?: () => number;
53
+ createMessageId?: () => string;
54
+ logWriter?: {
55
+ append: (event: any) => void;
56
+ };
57
+ }
58
+ //# sourceMappingURL=conversation-orchestrator.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-orchestrator.types.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/conversation-orchestrator.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=conversation-orchestrator.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation-orchestrator.types.js","sourceRoot":"","sources":["../../../source/services/conversation/conversation-orchestrator.types.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-replay.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/conversation-replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,KAAK,EAAsB,WAAW,EAA2B,MAAM,uCAAuC,CAAC;AACtH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAGb,MAAM,qCAAqC,CAAC;AAI7C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA2/BD,wBAAgB,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa,CA4GpE"}
1
+ {"version":3,"file":"conversation-replay.d.ts","sourceRoot":"","sources":["../../../source/services/conversation/conversation-replay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAY,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEhF,OAAO,KAAK,EAAsB,WAAW,EAA2B,MAAM,uCAAuC,CAAC;AACtH,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAGb,MAAM,qCAAqC,CAAC;AAK7C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,EAAE,kBAAkB,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,eAAe,CAAC;IACxB,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiiCD,wBAAgB,YAAY,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,aAAa,CAmGpE"}
@@ -1,8 +1,9 @@
1
1
  import { createUsageAccumulator } from '../../utils/ai/token-usage.js';
2
- import { ToolExecutionLedger, callIdOf, reconcileHistoryWithToolLedger, } from '../tool-execution-ledger.js';
2
+ import { callIdOf } from '../tool-execution-ledger.js';
3
3
  import { repairConversationHistory } from './conversation-history-repair.js';
4
4
  import { synthesizeHistoryFromAssistantTurn } from './conversation-turn-items.js';
5
5
  import { formatPatchOutputItems, coerceToText } from '../../tools/format-helpers.js';
6
+ import { projectProviderHistory } from './conversation-state-projector.js';
6
7
  const INTERRUPTED_SYSTEM_MESSAGE = 'Previous turn was interrupted — send a message to continue.';
7
8
  const cloneSnapshot = (snap) => {
8
9
  try {
@@ -787,6 +788,42 @@ function applyInterruptedTurnJournals(state) {
787
788
  }
788
789
  }
789
790
  }
791
+ const journalBackedToolCallIds = (state) => {
792
+ const callIds = new Set();
793
+ for (const journal of state.pendingJournals.values()) {
794
+ if (journal.sawFinalTurn) {
795
+ continue;
796
+ }
797
+ for (const item of journal.items) {
798
+ if (item.type === 'tool_call' || item.type === 'tool_result') {
799
+ callIds.add(item.callId);
800
+ }
801
+ }
802
+ }
803
+ return callIds;
804
+ };
805
+ const markLegacyInFlightCallsAborted = (state, legacyInFlightCalls) => {
806
+ const abortedAt = new Date(0).toISOString();
807
+ for (const tc of legacyInFlightCalls) {
808
+ let entry = state.toolLedger.find((e) => e.callId === tc.callId);
809
+ if (!entry) {
810
+ entry = {
811
+ turnId: 'turn-interrupted',
812
+ callId: tc.callId,
813
+ toolName: tc.toolName,
814
+ status: 'started',
815
+ startedAt: abortedAt,
816
+ };
817
+ state.toolLedger.push(entry);
818
+ }
819
+ if (entry.status === 'started') {
820
+ entry.status = 'aborted';
821
+ entry.failureReason = 'Session ended unexpectedly';
822
+ entry.completedAt = abortedAt;
823
+ delete entry.historyItems;
824
+ }
825
+ }
826
+ };
790
827
  /**
791
828
  * Builds the SavedMessage list for a single journal turn. Mirrors the
792
829
  * rendering used by `replayAssistantTurn` so the UI sees the same shapes.
@@ -928,27 +965,15 @@ export function replayEvents(envelopes) {
928
965
  // and crash-after-partial-text cases called out in the plan.
929
966
  applyInterruptedTurnJournals(state);
930
967
  // Mid-turn crash handling
931
- if (state.trailingUserMessage || state.inFlightToolCalls.size > 0) {
932
- // Synthesize ledger entries for in-flight tool calls that started after the last snapshot.
933
- const ledgerWithInFlight = [...state.toolLedger];
934
- const existingCallIds = new Set(ledgerWithInFlight.map((e) => e.callId));
935
- for (const tc of state.inFlightToolCalls.values()) {
936
- if (existingCallIds.has(tc.callId))
937
- continue;
938
- ledgerWithInFlight.push({
939
- turnId: 'turn-interrupted',
940
- callId: tc.callId,
941
- toolName: tc.toolName,
942
- status: 'started',
943
- startedAt: new Date(0).toISOString(),
944
- });
968
+ const journalBackedCallIds = journalBackedToolCallIds(state);
969
+ const legacyInFlightCalls = [...state.inFlightToolCalls.values()].filter((tc) => !journalBackedCallIds.has(tc.callId));
970
+ if (state.trailingUserMessage || legacyInFlightCalls.length > 0) {
971
+ if (legacyInFlightCalls.length > 0) {
972
+ markLegacyInFlightCallsAborted(state, legacyInFlightCalls);
973
+ }
974
+ if (state.toolLedger.some((entry) => entry.status !== 'started' && entry.status !== 'approval_required')) {
975
+ state.history = projectProviderHistory({ history: state.history, toolLedger: state.toolLedger }).history;
945
976
  }
946
- const ledger = new ToolExecutionLedger();
947
- ledger.import(ledgerWithInFlight);
948
- ledger.markOpenCallsAborted('Session ended unexpectedly');
949
- state.toolLedger = ledger.export();
950
- const reconciled = reconcileHistoryWithToolLedger(state.history, state.toolLedger);
951
- state.history = reconciled.history;
952
977
  if (state.trailingUserMessage) {
953
978
  state.warnings.push('Previous turn was interrupted.');
954
979
  state.messages.push({