@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,687 @@
1
+ import { getMaxTransientRetries, MAX_HALLUCINATION_RETRIES } from './conversation-retry-policy.js';
2
+ import { getMethod, getCallIdFromObject } from './interruption-info.js';
3
+ import { createStreamAccumulator, processStreamEvents } from './stream-event-processor.js';
4
+ import { callIdOf, outputOf, reconcileHistoryWithToolLedger, toolNameOf } from './tool-execution-ledger.js';
5
+ import { ChainingTransportDowngradeError } from '../providers/fallback-responses-model.js';
6
+ import { describeError } from '../utils/error-helpers.js';
7
+ import { normalizeUserTurn } from '../types/user-turn.js';
8
+ import { toTerminalEvent } from './conversation-result-builder.js';
9
+ const asArray = (value) => (Array.isArray(value) ? value : []);
10
+ export class TurnExecutionOrchestrator {
11
+ host;
12
+ constructor(host) {
13
+ this.host = host;
14
+ }
15
+ async *run(input, { skipUserMessage = false, flexServiceTierFallbackCount = 0, hallucinationRetryCount = 0, transientRetryCount = 0, transportFallbackRetryCount = 0, maxModelRetries, signal, resumeState, } = {}) {
16
+ if (!skipUserMessage ||
17
+ hallucinationRetryCount > 0 ||
18
+ flexServiceTierFallbackCount > 0 ||
19
+ transientRetryCount > 0 ||
20
+ transportFallbackRetryCount > 0) {
21
+ this.host.resetTurnAccumulatorPersistedState();
22
+ }
23
+ const gen = this.host.getGeneration();
24
+ let stream = null;
25
+ let streamInput = '';
26
+ let inputSurgeKind = 'delta';
27
+ const turn = normalizeUserTurn(input);
28
+ const text = turn.text;
29
+ let addedUserMessage = false;
30
+ const ledgerSnapshot = this.host.toolLedger.export();
31
+ const maxTransientRetries = getMaxTransientRetries({
32
+ streamMaxRetries: getMethod(this.host.agentClient, 'getStreamMaxRetries')?.call(this.host.agentClient),
33
+ });
34
+ this.host.toolLedger.beginTurn();
35
+ let abortListener;
36
+ if (signal) {
37
+ if (signal.aborted) {
38
+ this.host.agentClient.abort();
39
+ throw Object.assign(new Error('Operation aborted'), { name: 'AbortError' });
40
+ }
41
+ abortListener = () => {
42
+ this.host.agentClient.abort();
43
+ };
44
+ signal.addEventListener('abort', abortListener);
45
+ }
46
+ try {
47
+ this.host.logger.debug('Conversation stream start', {
48
+ eventType: 'stream.started',
49
+ category: 'stream',
50
+ phase: 'request_start',
51
+ sessionId: this.host.id,
52
+ traceId: this.host.logger.getCorrelationId(),
53
+ });
54
+ const abortedContext = this.host.approvalFlow.consumeAborted();
55
+ const shouldAddUserMessage = !skipUserMessage && !abortedContext;
56
+ if (shouldAddUserMessage) {
57
+ this.host.conversationStore.addUserTurn(turn);
58
+ addedUserMessage = true;
59
+ }
60
+ else if (abortedContext && !skipUserMessage) {
61
+ yield { type: 'user_message_consumed_for_abort' };
62
+ }
63
+ if (abortedContext) {
64
+ this.host.logger.debug('Resolving aborted approval with fake execution', {
65
+ message: text,
66
+ });
67
+ const { removeInterceptor } = this.host.approvalFlow.prepareAbortResolution(abortedContext, text);
68
+ try {
69
+ const previousInputForSurge = this.host.getInputSurgeKind() === 'full_history' ? this.host.conversationStore.getHistory() : undefined;
70
+ const continuedStream = (await this.host.agentClient.continueRunStream(abortedContext.state, {
71
+ previousResponseId: this.host.getPreviousResponseId(),
72
+ sessionId: this.host.id,
73
+ toolResultCallIds: [getCallIdFromObject(abortedContext.interruption)].filter((callId) => typeof callId === 'string' && callId.length > 0),
74
+ }));
75
+ const acc = createStreamAccumulator();
76
+ acc.emittedCommandIds = new Set(abortedContext.emittedCommandIds);
77
+ for await (const event of processStreamEvents(continuedStream, acc, {
78
+ toolCallArgumentsById: this.host.toolCallArgumentsById,
79
+ emittedInvalidToolCallPackets: this.host.emittedInvalidToolCallPackets,
80
+ preserveExistingToolArgs: true,
81
+ onFunctionCallItem: (item) => this.host.toolLedger.recordFunctionCall(item),
82
+ onFunctionResultItem: (item) => {
83
+ this.host.toolLedger.recordFunctionResult(item);
84
+ const cid = callIdOf(item);
85
+ if (cid && this.host.conversationLogger.hasSink()) {
86
+ const entry = this.host.toolLedger.export().find((e) => e.callId === cid);
87
+ this.host.conversationLogger.log({
88
+ type: 'tool_result',
89
+ callId: cid,
90
+ toolName: entry?.toolName ?? toolNameOf(item),
91
+ status: entry?.status === 'failed' || entry?.status === 'aborted' ? entry.status : 'completed',
92
+ output: entry?.output ?? outputOf(item),
93
+ ...(entry?.historyItems ? { historyItems: entry.historyItems } : {}),
94
+ });
95
+ }
96
+ },
97
+ }, { logger: this.host.logger, sessionId: this.host.id })) {
98
+ const filtered = this.host.dedupeToolStarted(event);
99
+ if (filtered)
100
+ yield filtered;
101
+ }
102
+ this.host.finalizeStreamOutcome(continuedStream, gen, 'abortResolution');
103
+ if (continuedStream.interruptions && continuedStream.interruptions.length > 0) {
104
+ this.host.logger.warn('Another interruption occurred after fake execution - handling as approval');
105
+ const resolvedResult = yield* this.host.buildAndResolve(continuedStream, acc.finalOutput, acc.reasoningOutput, acc.emittedCommandIds, acc.latestUsage);
106
+ this.host.recordInputSurgeSuccess(this.host.conversationStore.getHistory(), {
107
+ kind: this.host.getInputSurgeKind(),
108
+ previousInput: previousInputForSurge,
109
+ });
110
+ yield toTerminalEvent(resolvedResult);
111
+ return;
112
+ }
113
+ this.host.logger.debug('Fake execution completed, agent received rejection message');
114
+ const resolvedResult = yield* this.host.buildAndResolve(continuedStream, acc.finalOutput, acc.reasoningOutput, acc.emittedCommandIds, acc.latestUsage);
115
+ this.host.recordInputSurgeSuccess(this.host.conversationStore.getHistory(), {
116
+ kind: this.host.getInputSurgeKind(),
117
+ previousInput: previousInputForSurge,
118
+ });
119
+ yield toTerminalEvent(resolvedResult);
120
+ return;
121
+ }
122
+ catch (error) {
123
+ this.host.logger.warn('Error resolving aborted approval with fake execution', {
124
+ error: error instanceof Error ? error.message : String(error),
125
+ });
126
+ }
127
+ finally {
128
+ removeInterceptor();
129
+ }
130
+ }
131
+ ({ streamInput, inputSurgeKind } = this.host.buildOutgoingInput(turn, {
132
+ includeTurn: false,
133
+ }));
134
+ this.host.setInputSurgeKind(inputSurgeKind);
135
+ const surgeDecision = this.host.inputSurgeGuard.inspect(streamInput, { kind: inputSurgeKind });
136
+ if (surgeDecision.action === 'block') {
137
+ let droppedUserMessage;
138
+ if (addedUserMessage && this.host.isCurrentGeneration(gen)) {
139
+ this.host.conversationStore.removeLastUserMessage();
140
+ droppedUserMessage = { text: turn.text, imageCount: turn.images?.length ?? 0 };
141
+ }
142
+ this.host.logger.warn('Input surge guard blocked provider request', {
143
+ eventType: 'input_surge.blocked',
144
+ category: 'provider',
145
+ phase: 'request_start',
146
+ sessionId: this.host.id,
147
+ traceId: this.host.logger.getCorrelationId(),
148
+ reason: surgeDecision.reason,
149
+ stats: surgeDecision.stats,
150
+ previousStats: surgeDecision.previousStats,
151
+ });
152
+ yield {
153
+ type: 'error',
154
+ kind: 'input_surge_guard',
155
+ message: `${surgeDecision.reason} Request blocked to prevent runaway context growth. Try /undo or /clear, or compact the conversation history.`,
156
+ ...(droppedUserMessage ? { droppedUserMessage } : {}),
157
+ };
158
+ return;
159
+ }
160
+ if (this.host.getPendingModeNotice()) {
161
+ this.host.clearPendingModeNotice();
162
+ }
163
+ try {
164
+ if (resumeState && typeof this.host.agentClient.continueRunStream === 'function') {
165
+ stream = (await this.host.agentClient.continueRunStream(resumeState, {
166
+ previousResponseId: this.host.getPreviousResponseId(),
167
+ sessionId: this.host.id,
168
+ }));
169
+ }
170
+ else {
171
+ stream = (await this.host.agentClient.startStream(streamInput, {
172
+ previousResponseId: inputSurgeKind === 'delta' ? this.host.getPreviousResponseId() : null,
173
+ sessionId: this.host.id,
174
+ }));
175
+ }
176
+ }
177
+ catch (chainingError) {
178
+ if (chainingError instanceof ChainingTransportDowngradeError && this.host.allowFreshStartRetries) {
179
+ this.host.breakChaining();
180
+ this.host.logger.warn('ChainingTransportDowngradeError caught, retrying with full history', {
181
+ eventType: 'retry.chaining_downgrade',
182
+ category: 'retry',
183
+ phase: 'retry',
184
+ retryType: 'chaining_downgrade',
185
+ sessionId: this.host.id,
186
+ traceId: this.host.logger.getCorrelationId(),
187
+ errorMessage: chainingError instanceof Error ? chainingError.message : String(chainingError),
188
+ });
189
+ const fullHistoryRetry = this.host.buildOutgoingInput(turn, { includeTurn: false });
190
+ inputSurgeKind = fullHistoryRetry.inputSurgeKind;
191
+ this.host.setInputSurgeKind(inputSurgeKind);
192
+ stream = (await this.host.agentClient.startStream(fullHistoryRetry.streamInput, {
193
+ previousResponseId: null,
194
+ sessionId: this.host.id,
195
+ }));
196
+ }
197
+ else {
198
+ throw chainingError;
199
+ }
200
+ }
201
+ const acc = createStreamAccumulator();
202
+ for await (const event of processStreamEvents(stream, acc, {
203
+ toolCallArgumentsById: this.host.toolCallArgumentsById,
204
+ emittedInvalidToolCallPackets: this.host.emittedInvalidToolCallPackets,
205
+ preserveExistingToolArgs: false,
206
+ onFunctionCallItem: (item) => this.host.toolLedger.recordFunctionCall(item),
207
+ onFunctionResultItem: (item) => this.host.toolLedger.recordFunctionResult(item),
208
+ }, { logger: this.host.logger, sessionId: this.host.id })) {
209
+ const filtered = this.host.dedupeToolStarted(event);
210
+ if (filtered)
211
+ yield filtered;
212
+ }
213
+ this.host.finalizeStreamOutcome(stream, gen, 'startStream');
214
+ const resolvedResult = yield* this.host.buildAndResolve(stream, acc.finalOutput || undefined, acc.reasoningOutput || undefined, acc.emittedCommandIds, acc.latestUsage);
215
+ this.host.recordInputSurgeSuccess(inputSurgeKind === 'delta' ? streamInput : this.host.conversationStore.getHistory(), inputSurgeKind === 'delta' ? { kind: inputSurgeKind } : { kind: inputSurgeKind, previousInput: streamInput });
216
+ if (resolvedResult.type === 'approval_required') {
217
+ if (resolvedResult.approval.callId) {
218
+ this.host.toolLedger.recordFunctionCall({
219
+ type: 'function_call',
220
+ callId: resolvedResult.approval.callId,
221
+ name: resolvedResult.approval.toolName,
222
+ arguments: resolvedResult.approval.argumentsText,
223
+ });
224
+ }
225
+ this.host.logger.debug('Tool approval required', {
226
+ eventType: 'approval.required',
227
+ category: 'approval',
228
+ phase: 'approval',
229
+ sessionId: this.host.id,
230
+ traceId: this.host.logger.getCorrelationId(),
231
+ toolName: resolvedResult.approval.toolName,
232
+ });
233
+ yield toTerminalEvent(resolvedResult);
234
+ return;
235
+ }
236
+ yield toTerminalEvent(resolvedResult);
237
+ }
238
+ catch (error) {
239
+ const streamHistoryLength = Array.isArray(stream?.history) ? stream.history.length : 0;
240
+ let decision = this.host.retryHandler.classifyError({
241
+ error,
242
+ transientRetryCount,
243
+ transportFallbackRetryCount,
244
+ hallucinationRetryCount,
245
+ flexServiceTierFallbackCount,
246
+ maxTransientRetries,
247
+ stream,
248
+ streamHistoryLength,
249
+ maxModelRetries,
250
+ });
251
+ if (!this.host.allowFreshStartRetries &&
252
+ !stream &&
253
+ decision.kind !== 'none' &&
254
+ decision.kind !== 'unrecoverable') {
255
+ this.host.logger.warn('Retry requires fresh start but fresh-start retries are disabled for this session', {
256
+ eventType: 'retry.fresh_start_blocked',
257
+ category: 'retry',
258
+ phase: 'retry',
259
+ sessionId: this.host.id,
260
+ traceId: this.host.logger.getCorrelationId(),
261
+ retryKind: decision.kind,
262
+ errorMessage: error instanceof Error ? error.message : String(error),
263
+ });
264
+ decision = { kind: 'unrecoverable' };
265
+ }
266
+ switch (decision.kind) {
267
+ case 'flex_fallback': {
268
+ this.host.logger.warn('Flex service tier timed out, retrying with standard service tier', {
269
+ eventType: 'retry.flex_service_tier',
270
+ category: 'retry',
271
+ phase: 'retry',
272
+ retryType: 'flex_service_tier',
273
+ retryAttempt: 1,
274
+ attempt: 1,
275
+ maxRetries: 1,
276
+ sessionId: this.host.id,
277
+ traceId: this.host.logger.getCorrelationId(),
278
+ errorMessage: error instanceof Error ? error.message : String(error),
279
+ });
280
+ yield {
281
+ type: 'retry',
282
+ toolName: 'service_tier',
283
+ attempt: 1,
284
+ maxRetries: 1,
285
+ errorMessage: 'Flex service tier timed out. Falling back to standard service tier and retrying.',
286
+ retryType: 'flex_service_tier',
287
+ };
288
+ getMethod(this.host.agentClient, 'useStandardServiceTierForNextRequest')?.call(this.host.agentClient);
289
+ this.host.retryHandler.restoreForRetry({
290
+ ledgerSnapshot,
291
+ stream,
292
+ toolLedger: this.host.toolLedger,
293
+ conversationStore: this.host.conversationStore,
294
+ clearPreviousResponseId: () => {
295
+ this.host.setPreviousResponseId(null);
296
+ },
297
+ restoreCompletedToolLedgerEntries: (snapshot) => this.host.restoreCompletedToolLedgerEntries(snapshot),
298
+ });
299
+ yield* this.run(turn, {
300
+ skipUserMessage: true,
301
+ flexServiceTierFallbackCount: flexServiceTierFallbackCount + 1,
302
+ maxModelRetries,
303
+ });
304
+ return;
305
+ }
306
+ case 'transient': {
307
+ this.host.logger.warn('Transient upstream error detected, retrying turn', {
308
+ eventType: 'retry.transient',
309
+ category: 'retry',
310
+ phase: 'retry',
311
+ retryType: 'upstream',
312
+ retryAttempt: decision.attempt,
313
+ attempt: decision.attempt,
314
+ maxRetries: maxTransientRetries,
315
+ sessionId: this.host.id,
316
+ traceId: this.host.logger.getCorrelationId(),
317
+ errorMessage: error instanceof Error ? error.message : String(error),
318
+ delayMs: decision.delay,
319
+ });
320
+ const isResuming = Boolean(stream?.state && typeof this.host.agentClient.continueRunStream === 'function');
321
+ yield {
322
+ type: 'retry',
323
+ toolName: isResuming ? 'continuation' : 'turn',
324
+ attempt: decision.attempt,
325
+ maxRetries: maxTransientRetries,
326
+ errorMessage: error instanceof Error ? error.message : String(error),
327
+ retryType: 'upstream',
328
+ };
329
+ if (!this.host.isCurrentGeneration(gen))
330
+ return;
331
+ if (!isResuming) {
332
+ this.host.retryHandler.restoreForRetry({
333
+ ledgerSnapshot,
334
+ stream,
335
+ toolLedger: this.host.toolLedger,
336
+ conversationStore: this.host.conversationStore,
337
+ clearPreviousResponseId: () => {
338
+ this.host.setPreviousResponseId(null);
339
+ },
340
+ restoreCompletedToolLedgerEntries: (snapshot) => this.host.restoreCompletedToolLedgerEntries(snapshot),
341
+ removeLastUserMessage: () => this.host.conversationStore.removeLastUserMessage(),
342
+ });
343
+ }
344
+ await new Promise((resolve) => setTimeout(resolve, decision.delay));
345
+ yield* this.run(turn, {
346
+ skipUserMessage: Boolean(stream),
347
+ transientRetryCount: decision.attempt,
348
+ transportFallbackRetryCount,
349
+ maxModelRetries,
350
+ resumeState: isResuming ? stream?.state : undefined,
351
+ });
352
+ return;
353
+ }
354
+ case 'transport_downgrade': {
355
+ const attempt = transportFallbackRetryCount + 1;
356
+ this.host.logger.warn('Transient upstream error exhausted WS retries, forcing HTTP fallback', {
357
+ eventType: 'retry.transport_fallback',
358
+ category: 'retry',
359
+ phase: 'retry',
360
+ retryType: 'upstream',
361
+ retryAttempt: attempt,
362
+ attempt,
363
+ maxRetries: 1,
364
+ sessionId: this.host.id,
365
+ traceId: this.host.logger.getCorrelationId(),
366
+ errorMessage: error instanceof Error ? error.message : String(error),
367
+ });
368
+ yield {
369
+ type: 'retry',
370
+ toolName: 'transport',
371
+ attempt,
372
+ maxRetries: 1,
373
+ errorMessage: 'WebSocket retries exhausted. Falling back to HTTP transport and retrying.',
374
+ retryType: 'upstream',
375
+ };
376
+ if (!this.host.isCurrentGeneration(gen))
377
+ return;
378
+ this.host.retryHandler.restoreForRetry({
379
+ ledgerSnapshot,
380
+ stream,
381
+ toolLedger: this.host.toolLedger,
382
+ conversationStore: this.host.conversationStore,
383
+ clearPreviousResponseId: () => {
384
+ this.host.setPreviousResponseId(null);
385
+ },
386
+ restoreCompletedToolLedgerEntries: (snapshot) => this.host.restoreCompletedToolLedgerEntries(snapshot),
387
+ removeLastUserMessage: () => this.host.conversationStore.removeLastUserMessage(),
388
+ });
389
+ yield* this.run(turn, {
390
+ skipUserMessage: Boolean(stream),
391
+ transientRetryCount: 0,
392
+ transportFallbackRetryCount: attempt,
393
+ maxModelRetries,
394
+ });
395
+ return;
396
+ }
397
+ case 'hallucination': {
398
+ const decisionResult = decision.decision;
399
+ if (decisionResult.kind !== 'retry') {
400
+ break;
401
+ }
402
+ this.host.logger.warn('Recoverable model error detected, retrying', {
403
+ eventType: 'retry.model_error',
404
+ category: 'retry',
405
+ phase: 'retry',
406
+ toolName: decisionResult.logPayload.toolName,
407
+ retryType: decisionResult.logPayload.retryType,
408
+ retryAttempt: decisionResult.attempt,
409
+ attempt: decisionResult.attempt,
410
+ maxRetries: maxModelRetries ?? MAX_HALLUCINATION_RETRIES,
411
+ sessionId: this.host.id,
412
+ traceId: this.host.logger.getCorrelationId(),
413
+ errorMessage: decisionResult.message,
414
+ });
415
+ yield decisionResult.retryEvent;
416
+ if (!this.host.isCurrentGeneration(gen))
417
+ return;
418
+ if (decisionResult.hadStream && stream) {
419
+ this.host.toolLedger.import(ledgerSnapshot);
420
+ if (decisionResult.shouldInjectErrorContext) {
421
+ this.host.conversationStore.addErrorContext(decisionResult.errorContextMessage);
422
+ }
423
+ }
424
+ else {
425
+ this.host.conversationStore.removeLastUserMessage();
426
+ }
427
+ yield* this.run(turn, {
428
+ ...decisionResult.nextRunOptions,
429
+ maxModelRetries,
430
+ });
431
+ return;
432
+ }
433
+ case 'none':
434
+ case 'unrecoverable':
435
+ break;
436
+ }
437
+ let droppedUserMessage;
438
+ if (addedUserMessage && !stream && this.host.isCurrentGeneration(gen)) {
439
+ this.host.conversationStore.removeLastUserMessage();
440
+ droppedUserMessage = { text: turn.text, imageCount: turn.images?.length ?? 0 };
441
+ }
442
+ if (stream && this.host.isCurrentGeneration(gen)) {
443
+ this.host.toolLedger.markOpenCallsAborted(error instanceof Error ? error.message : String(error));
444
+ const reconciled = reconcileHistoryWithToolLedger(this.host.conversationStore.getHistory(), this.host.toolLedger.export());
445
+ if (reconciled.addedCompletedPairs > 0 || reconciled.droppedIncompleteCalls > 0) {
446
+ this.host.conversationStore.replaceHistory(reconciled.history);
447
+ }
448
+ this.host.recordInputSurgeSuccess(this.host.conversationStore.getHistory(), {
449
+ kind: 'full_history',
450
+ previousInput: streamInput,
451
+ });
452
+ const recoverySummary = this.host.toolLedger.getRecoverySummary();
453
+ if (recoverySummary) {
454
+ yield {
455
+ type: 'tool_recovery',
456
+ recoveredCallIds: recoverySummary.recoveredCallIds,
457
+ droppedCallIds: recoverySummary.droppedCallIds,
458
+ message: recoverySummary.message,
459
+ };
460
+ }
461
+ }
462
+ yield {
463
+ type: 'error',
464
+ message: describeError(error),
465
+ ...(error instanceof Error && error.stack ? { stack: error.stack } : {}),
466
+ ...(droppedUserMessage ? { droppedUserMessage } : {}),
467
+ };
468
+ this.host.logger.error('Conversation stream error', {
469
+ eventType: 'stream.failed',
470
+ category: 'stream',
471
+ phase: 'abort',
472
+ sessionId: this.host.id,
473
+ traceId: this.host.logger.getCorrelationId(),
474
+ errorMessage: describeError(error),
475
+ stack: error instanceof Error ? error.stack : undefined,
476
+ });
477
+ throw error;
478
+ }
479
+ finally {
480
+ if (signal && abortListener) {
481
+ signal.removeEventListener('abort', abortListener);
482
+ }
483
+ }
484
+ }
485
+ async *continueApproval({ answer, rejectionReason, }) {
486
+ const gen = this.host.getGeneration();
487
+ const plan = this.host.approvalFlow.prepareContinuation(answer, rejectionReason);
488
+ if (!plan) {
489
+ return;
490
+ }
491
+ if (answer !== 'y') {
492
+ const interruption = plan.pendingApprovalContext.interruption;
493
+ const callId = getCallIdFromObject(interruption);
494
+ const output = rejectionReason
495
+ ? `Tool execution was not approved. User's reason: ${rejectionReason}`
496
+ : 'Tool execution was not approved.';
497
+ this.host.toolLedger.recordAbortedApproval(output, output, callId);
498
+ }
499
+ const { pendingApprovalContext: { state, interruption, toolCallArgumentsById, emittedCommandIds: previouslyEmittedIds }, toolStartedEvent, removeInterceptor, } = plan;
500
+ const ledgerSnapshot = this.host.toolLedger.export();
501
+ const approvedToolResultCallIds = [getCallIdFromObject(interruption)].filter((callId) => typeof callId === 'string' && callId.length > 0);
502
+ let stream = null;
503
+ if (toolStartedEvent) {
504
+ const filtered = this.host.dedupeToolStarted(toolStartedEvent);
505
+ if (filtered)
506
+ yield filtered;
507
+ }
508
+ this.host.toolCallArgumentsById.clear();
509
+ if (toolCallArgumentsById?.size) {
510
+ for (const [key, value] of toolCallArgumentsById.entries()) {
511
+ this.host.toolCallArgumentsById.set(key, value);
512
+ }
513
+ }
514
+ try {
515
+ let transientRetryCount = 0;
516
+ while (true) {
517
+ try {
518
+ const previousInputForSurge = this.host.getInputSurgeKind() === 'full_history' ? this.host.conversationStore.getHistory() : undefined;
519
+ stream = (await this.host.agentClient.continueRunStream(state, {
520
+ previousResponseId: this.host.getPreviousResponseId(),
521
+ sessionId: this.host.id,
522
+ toolResultCallIds: approvedToolResultCallIds,
523
+ }));
524
+ const acc = createStreamAccumulator();
525
+ for await (const event of processStreamEvents(stream, acc, {
526
+ toolCallArgumentsById: this.host.toolCallArgumentsById,
527
+ emittedInvalidToolCallPackets: this.host.emittedInvalidToolCallPackets,
528
+ preserveExistingToolArgs: true,
529
+ onFunctionCallItem: (item) => this.host.toolLedger.recordFunctionCall(item),
530
+ onFunctionResultItem: (item) => {
531
+ this.host.toolLedger.recordFunctionResult(item);
532
+ const cid = callIdOf(item);
533
+ if (cid && this.host.conversationLogger.hasSink()) {
534
+ const entry = this.host.toolLedger.export().find((e) => e.callId === cid);
535
+ this.host.conversationLogger.log({
536
+ type: 'tool_result',
537
+ callId: cid,
538
+ toolName: entry?.toolName ?? toolNameOf(item),
539
+ status: entry?.status === 'failed' || entry?.status === 'aborted' ? entry.status : 'completed',
540
+ output: entry?.output ?? outputOf(item),
541
+ ...(entry?.historyItems ? { historyItems: entry.historyItems } : {}),
542
+ });
543
+ }
544
+ },
545
+ }, { logger: this.host.logger, sessionId: this.host.id })) {
546
+ const filtered = this.host.dedupeToolStarted(event);
547
+ if (filtered)
548
+ yield filtered;
549
+ }
550
+ this.host.finalizeStreamOutcome(stream, gen, 'continueRunStream');
551
+ const allEmittedIds = new Set([...previouslyEmittedIds, ...acc.emittedCommandIds]);
552
+ const resolvedResult = yield* this.host.buildAndResolve(stream, acc.finalOutput || undefined, acc.reasoningOutput || undefined, allEmittedIds, acc.latestUsage);
553
+ if (resolvedResult.type === 'approval_required') {
554
+ if (resolvedResult.approval.callId) {
555
+ this.host.toolLedger.recordFunctionCall({
556
+ type: 'function_call',
557
+ callId: resolvedResult.approval.callId,
558
+ name: resolvedResult.approval.toolName,
559
+ arguments: resolvedResult.approval.argumentsText,
560
+ });
561
+ }
562
+ this.host.logger.debug('Tool approval required', {
563
+ eventType: 'approval.required',
564
+ category: 'approval',
565
+ phase: 'approval',
566
+ sessionId: this.host.id,
567
+ traceId: this.host.logger.getCorrelationId(),
568
+ toolName: resolvedResult.approval.toolName,
569
+ });
570
+ this.host.recordInputSurgeSuccess(this.host.conversationStore.getHistory(), {
571
+ kind: this.host.getInputSurgeKind(),
572
+ previousInput: previousInputForSurge,
573
+ });
574
+ yield toTerminalEvent(resolvedResult);
575
+ return;
576
+ }
577
+ this.host.recordInputSurgeSuccess(this.host.conversationStore.getHistory(), {
578
+ kind: this.host.getInputSurgeKind(),
579
+ previousInput: previousInputForSurge,
580
+ });
581
+ yield toTerminalEvent(resolvedResult);
582
+ return;
583
+ }
584
+ catch (error) {
585
+ const maxTransientRetries = getMaxTransientRetries({
586
+ streamMaxRetries: getMethod(this.host.agentClient, 'getStreamMaxRetries')?.call(this.host.agentClient),
587
+ });
588
+ const decision = this.host.retryHandler.classifyError({
589
+ error,
590
+ transientRetryCount,
591
+ transportFallbackRetryCount: 0,
592
+ hallucinationRetryCount: 0,
593
+ flexServiceTierFallbackCount: 0,
594
+ maxTransientRetries,
595
+ stream,
596
+ streamHistoryLength: Array.isArray(stream?.history) ? stream.history.length : 0,
597
+ });
598
+ if (!this.host.allowFreshStartRetries &&
599
+ !stream &&
600
+ decision.kind !== 'none' &&
601
+ decision.kind !== 'unrecoverable') {
602
+ this.host.logger.warn('Retry requires fresh start but fresh-start retries are disabled for this session', {
603
+ eventType: 'retry.fresh_start_blocked',
604
+ category: 'retry',
605
+ phase: 'retry',
606
+ sessionId: this.host.id,
607
+ traceId: this.host.logger.getCorrelationId(),
608
+ retryKind: decision.kind,
609
+ errorMessage: error instanceof Error ? error.message : String(error),
610
+ });
611
+ throw error;
612
+ }
613
+ if (decision.kind === 'transient') {
614
+ transientRetryCount = decision.attempt;
615
+ this.host.logger.warn('Transient error in continuation, retrying', {
616
+ eventType: 'retry.transient',
617
+ category: 'retry',
618
+ phase: 'retry',
619
+ retryType: 'upstream',
620
+ retryAttempt: transientRetryCount,
621
+ maxRetries: maxTransientRetries,
622
+ sessionId: this.host.id,
623
+ traceId: this.host.logger.getCorrelationId(),
624
+ errorMessage: error instanceof Error ? error.message : String(error),
625
+ delayMs: decision.delay,
626
+ });
627
+ yield {
628
+ type: 'retry',
629
+ toolName: 'continuation',
630
+ attempt: transientRetryCount,
631
+ maxRetries: maxTransientRetries,
632
+ errorMessage: error instanceof Error ? error.message : String(error),
633
+ retryType: 'upstream',
634
+ };
635
+ await new Promise((resolve) => setTimeout(resolve, decision.delay));
636
+ if (!this.host.isCurrentGeneration(gen))
637
+ return;
638
+ if (!stream) {
639
+ this.host.recoverApprovedToolResultsFromState(state, approvedToolResultCallIds);
640
+ this.host.retryHandler.restoreForRetry({
641
+ ledgerSnapshot,
642
+ stream,
643
+ toolLedger: this.host.toolLedger,
644
+ conversationStore: this.host.conversationStore,
645
+ clearPreviousResponseId: () => {
646
+ this.host.setPreviousResponseId(null);
647
+ },
648
+ restoreCompletedToolLedgerEntries: (snapshot) => this.host.restoreCompletedToolLedgerEntries(snapshot),
649
+ });
650
+ const lastUserText = this.host.conversationStore.getLastUserMessage();
651
+ const dummyTurn = { text: lastUserText };
652
+ yield* this.run(dummyTurn, {
653
+ skipUserMessage: true,
654
+ transientRetryCount,
655
+ });
656
+ return;
657
+ }
658
+ this.host.toolLedger.import(ledgerSnapshot);
659
+ continue;
660
+ }
661
+ throw error;
662
+ }
663
+ }
664
+ }
665
+ catch (error) {
666
+ this.host.logger.error('Conversation stream error during continuation', {
667
+ eventType: 'stream.failed',
668
+ category: 'stream',
669
+ phase: 'abort',
670
+ sessionId: this.host.id,
671
+ traceId: this.host.logger.getCorrelationId(),
672
+ errorMessage: describeError(error),
673
+ stack: error instanceof Error ? error.stack : undefined,
674
+ });
675
+ yield {
676
+ type: 'error',
677
+ message: describeError(error),
678
+ ...(error instanceof Error && error.stack ? { stack: error.stack } : {}),
679
+ };
680
+ throw error;
681
+ }
682
+ finally {
683
+ removeInterceptor();
684
+ }
685
+ }
686
+ }
687
+ //# sourceMappingURL=turn-execution-orchestrator.js.map