@qduc/term2 0.1.8 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (760) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +5 -3
  3. package/dist/agent.js.map +1 -1
  4. package/dist/agent.lite-mode.test.d.ts +2 -0
  5. package/dist/agent.lite-mode.test.d.ts.map +1 -0
  6. package/dist/agent.lite-mode.test.js +39 -0
  7. package/dist/agent.lite-mode.test.js.map +1 -0
  8. package/dist/app.d.ts +1 -5
  9. package/dist/app.d.ts.map +1 -1
  10. package/dist/app.js +45 -280
  11. package/dist/app.js.map +1 -1
  12. package/dist/app.parseInput.test.js +1 -9
  13. package/dist/app.parseInput.test.js.map +1 -1
  14. package/dist/cli.js +1 -0
  15. package/dist/cli.js.map +1 -1
  16. package/dist/components/ApprovalPrompt.d.ts +2 -1
  17. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  18. package/dist/components/ApprovalPrompt.js +15 -0
  19. package/dist/components/ApprovalPrompt.js.map +1 -1
  20. package/dist/components/BottomArea.d.ts +4 -3
  21. package/dist/components/BottomArea.d.ts.map +1 -1
  22. package/dist/components/BottomArea.js.map +1 -1
  23. package/dist/components/Input/PopupManager.d.ts +1 -1
  24. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  25. package/dist/components/Input/PopupManager.js.map +1 -1
  26. package/dist/components/Input/determine-active-menu.d.ts +24 -0
  27. package/dist/components/Input/determine-active-menu.d.ts.map +1 -0
  28. package/dist/components/Input/determine-active-menu.js +70 -0
  29. package/dist/components/Input/determine-active-menu.js.map +1 -0
  30. package/dist/components/Input/input-width.d.ts +7 -0
  31. package/dist/components/Input/input-width.d.ts.map +1 -0
  32. package/dist/components/Input/input-width.js +20 -0
  33. package/dist/components/Input/input-width.js.map +1 -0
  34. package/dist/components/Input/insertions.d.ts +34 -0
  35. package/dist/components/Input/insertions.d.ts.map +1 -0
  36. package/dist/components/Input/insertions.js +52 -0
  37. package/dist/components/Input/insertions.js.map +1 -0
  38. package/dist/components/Input/popup-props.d.ts +18 -0
  39. package/dist/components/Input/popup-props.d.ts.map +1 -0
  40. package/dist/components/Input/popup-props.js +42 -0
  41. package/dist/components/Input/popup-props.js.map +1 -0
  42. package/dist/components/Input/triggers.d.ts +9 -0
  43. package/dist/components/Input/triggers.d.ts.map +1 -0
  44. package/dist/components/Input/triggers.js +25 -0
  45. package/dist/components/Input/triggers.js.map +1 -0
  46. package/dist/components/InputBox.d.ts +5 -8
  47. package/dist/components/InputBox.d.ts.map +1 -1
  48. package/dist/components/InputBox.js +152 -405
  49. package/dist/components/InputBox.js.map +1 -1
  50. package/dist/components/InputBox.menu-logic.test.js +126 -103
  51. package/dist/components/InputBox.menu-logic.test.js.map +1 -1
  52. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  53. package/dist/components/MarkdownRenderer.js +126 -41
  54. package/dist/components/MarkdownRenderer.js.map +1 -1
  55. package/dist/components/MessageList.d.ts +8 -0
  56. package/dist/components/MessageList.d.ts.map +1 -1
  57. package/dist/components/MessageList.js +25 -7
  58. package/dist/components/MessageList.js.map +1 -1
  59. package/dist/components/MessageList.test.js +62 -1
  60. package/dist/components/MessageList.test.js.map +1 -1
  61. package/dist/components/SlashCommandMenu.d.ts +1 -6
  62. package/dist/components/SlashCommandMenu.d.ts.map +1 -1
  63. package/dist/components/SlashCommandMenu.js.map +1 -1
  64. package/dist/components/StatusBar.d.ts +1 -1
  65. package/dist/components/StatusBar.d.ts.map +1 -1
  66. package/dist/components/StatusBar.js +49 -38
  67. package/dist/components/StatusBar.js.map +1 -1
  68. package/dist/components/TextInput.d.ts.map +1 -1
  69. package/dist/components/TextInput.js +2 -1
  70. package/dist/components/TextInput.js.map +1 -1
  71. package/dist/components/TextInput.test.js.map +1 -1
  72. package/dist/contracts/conversation.d.ts +9 -0
  73. package/dist/contracts/conversation.d.ts.map +1 -1
  74. package/dist/debug_ask_mentor.d.ts +2 -0
  75. package/dist/debug_ask_mentor.d.ts.map +1 -0
  76. package/dist/debug_ask_mentor.js +73 -0
  77. package/dist/debug_ask_mentor.js.map +1 -0
  78. package/dist/hooks/message-id.d.ts +3 -0
  79. package/dist/hooks/message-id.d.ts.map +1 -0
  80. package/dist/hooks/message-id.js +17 -0
  81. package/dist/hooks/message-id.js.map +1 -0
  82. package/dist/hooks/message-id.test.d.ts +2 -0
  83. package/dist/hooks/message-id.test.d.ts.map +1 -0
  84. package/dist/hooks/message-id.test.js +17 -0
  85. package/dist/hooks/message-id.test.js.map +1 -0
  86. package/dist/hooks/use-app-commands.d.ts +20 -0
  87. package/dist/hooks/use-app-commands.d.ts.map +1 -0
  88. package/dist/hooks/use-app-commands.js +201 -0
  89. package/dist/hooks/use-app-commands.js.map +1 -0
  90. package/dist/hooks/use-app-commands.test.d.ts +2 -0
  91. package/dist/hooks/use-app-commands.test.d.ts.map +1 -0
  92. package/dist/hooks/use-app-commands.test.js +34 -0
  93. package/dist/hooks/use-app-commands.test.js.map +1 -0
  94. package/dist/hooks/use-conversation.d.ts +13 -12
  95. package/dist/hooks/use-conversation.d.ts.map +1 -1
  96. package/dist/hooks/use-conversation.js +19 -14
  97. package/dist/hooks/use-conversation.js.map +1 -1
  98. package/dist/hooks/use-escape-key.d.ts +24 -0
  99. package/dist/hooks/use-escape-key.d.ts.map +1 -0
  100. package/dist/hooks/use-escape-key.js +60 -0
  101. package/dist/hooks/use-escape-key.js.map +1 -0
  102. package/dist/hooks/use-escape-key.test.d.ts +2 -0
  103. package/dist/hooks/use-escape-key.test.d.ts.map +1 -0
  104. package/dist/hooks/use-escape-key.test.js +49 -0
  105. package/dist/hooks/use-escape-key.test.js.map +1 -0
  106. package/dist/hooks/use-mode-handlers.d.ts +35 -0
  107. package/dist/hooks/use-mode-handlers.d.ts.map +1 -0
  108. package/dist/hooks/use-mode-handlers.js +79 -0
  109. package/dist/hooks/use-mode-handlers.js.map +1 -0
  110. package/dist/hooks/use-model-selection.d.ts +6 -3
  111. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  112. package/dist/hooks/use-model-selection.js +19 -16
  113. package/dist/hooks/use-model-selection.js.map +1 -1
  114. package/dist/hooks/use-model-selection.test.d.ts.map +1 -1
  115. package/dist/hooks/use-model-selection.test.js +53 -22
  116. package/dist/hooks/use-model-selection.test.js.map +1 -1
  117. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  118. package/dist/hooks/use-path-completion.js +5 -36
  119. package/dist/hooks/use-path-completion.js.map +1 -1
  120. package/dist/hooks/use-runtime-settings.d.ts +12 -0
  121. package/dist/hooks/use-runtime-settings.d.ts.map +1 -0
  122. package/dist/hooks/use-runtime-settings.js +68 -0
  123. package/dist/hooks/use-runtime-settings.js.map +1 -0
  124. package/dist/hooks/use-selection.d.ts +8 -0
  125. package/dist/hooks/use-selection.d.ts.map +1 -0
  126. package/dist/hooks/use-selection.js +31 -0
  127. package/dist/hooks/use-selection.js.map +1 -0
  128. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  129. package/dist/hooks/use-settings-completion.js +15 -30
  130. package/dist/hooks/use-settings-completion.js.map +1 -1
  131. package/dist/hooks/use-settings-completion.test.js +9 -9
  132. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  133. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  134. package/dist/hooks/use-settings-value-completion.js +30 -28
  135. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  136. package/dist/hooks/use-settings-value-completion.test.js +13 -0
  137. package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
  138. package/dist/hooks/use-shell-mode.d.ts +31 -0
  139. package/dist/hooks/use-shell-mode.d.ts.map +1 -0
  140. package/dist/hooks/use-shell-mode.js +85 -0
  141. package/dist/hooks/use-shell-mode.js.map +1 -0
  142. package/dist/hooks/use-slash-commands.d.ts +2 -1
  143. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  144. package/dist/hooks/use-slash-commands.js +32 -23
  145. package/dist/hooks/use-slash-commands.js.map +1 -1
  146. package/dist/hooks/use-terminal-width.d.ts +7 -0
  147. package/dist/hooks/use-terminal-width.d.ts.map +1 -0
  148. package/dist/hooks/use-terminal-width.js +33 -0
  149. package/dist/hooks/use-terminal-width.js.map +1 -0
  150. package/dist/hooks/use-trigger-detection.d.ts +42 -0
  151. package/dist/hooks/use-trigger-detection.d.ts.map +1 -0
  152. package/dist/hooks/use-trigger-detection.js +45 -0
  153. package/dist/hooks/use-trigger-detection.js.map +1 -0
  154. package/dist/lib/editor-impl.js +6 -6
  155. package/dist/lib/editor-impl.js.map +1 -1
  156. package/dist/lib/openai-agent-client.d.ts +4 -1
  157. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  158. package/dist/lib/openai-agent-client.js +189 -195
  159. package/dist/lib/openai-agent-client.js.map +1 -1
  160. package/dist/lib/openai-agent-client.public-methods.test.js +61 -13
  161. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  162. package/dist/lib/openai-agent-client.test.js +1 -1
  163. package/dist/lib/openai-agent-client.test.js.map +1 -1
  164. package/dist/lib/retry-executor.d.ts +16 -0
  165. package/dist/lib/retry-executor.d.ts.map +1 -0
  166. package/dist/lib/retry-executor.js +70 -0
  167. package/dist/lib/retry-executor.js.map +1 -0
  168. package/dist/lib/retry-executor.test.d.ts +2 -0
  169. package/dist/lib/retry-executor.test.d.ts.map +1 -0
  170. package/dist/lib/retry-executor.test.js +177 -0
  171. package/dist/lib/retry-executor.test.js.map +1 -0
  172. package/dist/lib/tool-selection-policy.d.ts +14 -0
  173. package/dist/lib/tool-selection-policy.d.ts.map +1 -0
  174. package/dist/lib/tool-selection-policy.js +17 -0
  175. package/dist/lib/tool-selection-policy.js.map +1 -0
  176. package/dist/lib/tool-selection-policy.test.d.ts +2 -0
  177. package/dist/lib/tool-selection-policy.test.d.ts.map +1 -0
  178. package/dist/lib/tool-selection-policy.test.js +69 -0
  179. package/dist/lib/tool-selection-policy.test.js.map +1 -0
  180. package/dist/modes/companion/command-index.d.ts +26 -0
  181. package/dist/modes/companion/command-index.d.ts.map +1 -0
  182. package/dist/modes/companion/command-index.js +50 -0
  183. package/dist/modes/companion/command-index.js.map +1 -0
  184. package/dist/modes/companion/command-index.test.d.ts +2 -0
  185. package/dist/modes/companion/command-index.test.d.ts.map +1 -0
  186. package/dist/modes/companion/command-index.test.js +86 -0
  187. package/dist/modes/companion/command-index.test.js.map +1 -0
  188. package/dist/modes/companion/companion-app.d.ts +12 -0
  189. package/dist/modes/companion/companion-app.d.ts.map +1 -0
  190. package/dist/modes/companion/companion-app.js +297 -0
  191. package/dist/modes/companion/companion-app.js.map +1 -0
  192. package/dist/modes/companion/companion-session.d.ts +63 -0
  193. package/dist/modes/companion/companion-session.d.ts.map +1 -0
  194. package/dist/modes/companion/companion-session.js +146 -0
  195. package/dist/modes/companion/companion-session.js.map +1 -0
  196. package/dist/modes/companion/companion-session.test.d.ts +2 -0
  197. package/dist/modes/companion/companion-session.test.d.ts.map +1 -0
  198. package/dist/modes/companion/companion-session.test.js +28 -0
  199. package/dist/modes/companion/companion-session.test.js.map +1 -0
  200. package/dist/modes/companion/components/status-bar.d.ts +13 -0
  201. package/dist/modes/companion/components/status-bar.d.ts.map +1 -0
  202. package/dist/modes/companion/components/status-bar.js +26 -0
  203. package/dist/modes/companion/components/status-bar.js.map +1 -0
  204. package/dist/modes/companion/context-buffer.d.ts +65 -0
  205. package/dist/modes/companion/context-buffer.d.ts.map +1 -0
  206. package/dist/modes/companion/context-buffer.js +156 -0
  207. package/dist/modes/companion/context-buffer.js.map +1 -0
  208. package/dist/modes/companion/context-buffer.test.d.ts +2 -0
  209. package/dist/modes/companion/context-buffer.test.d.ts.map +1 -0
  210. package/dist/modes/companion/context-buffer.test.js +154 -0
  211. package/dist/modes/companion/context-buffer.test.js.map +1 -0
  212. package/dist/modes/companion/event-detector.d.ts +46 -0
  213. package/dist/modes/companion/event-detector.d.ts.map +1 -0
  214. package/dist/modes/companion/event-detector.js +169 -0
  215. package/dist/modes/companion/event-detector.js.map +1 -0
  216. package/dist/modes/companion/event-detector.test.d.ts +2 -0
  217. package/dist/modes/companion/event-detector.test.d.ts.map +1 -0
  218. package/dist/modes/companion/event-detector.test.js +121 -0
  219. package/dist/modes/companion/event-detector.test.js.map +1 -0
  220. package/dist/modes/companion/index.d.ts +33 -0
  221. package/dist/modes/companion/index.d.ts.map +1 -0
  222. package/dist/modes/companion/index.js +21 -0
  223. package/dist/modes/companion/index.js.map +1 -0
  224. package/dist/modes/companion/input-key-mapper.d.ts +3 -0
  225. package/dist/modes/companion/input-key-mapper.d.ts.map +1 -0
  226. package/dist/modes/companion/input-key-mapper.js +31 -0
  227. package/dist/modes/companion/input-key-mapper.js.map +1 -0
  228. package/dist/modes/companion/input-key-mapper.test.d.ts +2 -0
  229. package/dist/modes/companion/input-key-mapper.test.d.ts.map +1 -0
  230. package/dist/modes/companion/input-key-mapper.test.js +26 -0
  231. package/dist/modes/companion/input-key-mapper.test.js.map +1 -0
  232. package/dist/modes/companion/input-parser.d.ts +53 -0
  233. package/dist/modes/companion/input-parser.d.ts.map +1 -0
  234. package/dist/modes/companion/input-parser.js +114 -0
  235. package/dist/modes/companion/input-parser.js.map +1 -0
  236. package/dist/modes/companion/input-parser.test.d.ts +2 -0
  237. package/dist/modes/companion/input-parser.test.d.ts.map +1 -0
  238. package/dist/modes/companion/input-parser.test.js +123 -0
  239. package/dist/modes/companion/input-parser.test.js.map +1 -0
  240. package/dist/modes/companion/mode-manager.d.ts +41 -0
  241. package/dist/modes/companion/mode-manager.d.ts.map +1 -0
  242. package/dist/modes/companion/mode-manager.js +56 -0
  243. package/dist/modes/companion/mode-manager.js.map +1 -0
  244. package/dist/modes/companion/mode-manager.test.d.ts +2 -0
  245. package/dist/modes/companion/mode-manager.test.d.ts.map +1 -0
  246. package/dist/modes/companion/mode-manager.test.js +65 -0
  247. package/dist/modes/companion/mode-manager.test.js.map +1 -0
  248. package/dist/modes/companion/output-classifier.d.ts +15 -0
  249. package/dist/modes/companion/output-classifier.d.ts.map +1 -0
  250. package/dist/modes/companion/output-classifier.js +77 -0
  251. package/dist/modes/companion/output-classifier.js.map +1 -0
  252. package/dist/modes/companion/output-classifier.test.d.ts +2 -0
  253. package/dist/modes/companion/output-classifier.test.d.ts.map +1 -0
  254. package/dist/modes/companion/output-classifier.test.js +133 -0
  255. package/dist/modes/companion/output-classifier.test.js.map +1 -0
  256. package/dist/modes/companion/pty-wrapper.d.ts +46 -0
  257. package/dist/modes/companion/pty-wrapper.d.ts.map +1 -0
  258. package/dist/modes/companion/pty-wrapper.js +143 -0
  259. package/dist/modes/companion/pty-wrapper.js.map +1 -0
  260. package/dist/modes/companion/safety-classifier.d.ts +31 -0
  261. package/dist/modes/companion/safety-classifier.d.ts.map +1 -0
  262. package/dist/modes/companion/safety-classifier.js +140 -0
  263. package/dist/modes/companion/safety-classifier.js.map +1 -0
  264. package/dist/modes/companion/safety-classifier.test.d.ts +2 -0
  265. package/dist/modes/companion/safety-classifier.test.d.ts.map +1 -0
  266. package/dist/modes/companion/safety-classifier.test.js +151 -0
  267. package/dist/modes/companion/safety-classifier.test.js.map +1 -0
  268. package/dist/modes/companion/summarizer.d.ts +24 -0
  269. package/dist/modes/companion/summarizer.d.ts.map +1 -0
  270. package/dist/modes/companion/summarizer.js +132 -0
  271. package/dist/modes/companion/summarizer.js.map +1 -0
  272. package/dist/modes/companion/terminal-history.d.ts +27 -0
  273. package/dist/modes/companion/terminal-history.d.ts.map +1 -0
  274. package/dist/modes/companion/terminal-history.js +142 -0
  275. package/dist/modes/companion/terminal-history.js.map +1 -0
  276. package/dist/prompts/simple-mentor.md +8 -0
  277. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +24 -0
  278. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -0
  279. package/dist/providers/ai-sdk-openai-compatible.provider.js +26 -0
  280. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -0
  281. package/dist/providers/ai-sdk-openai-compatible.provider.test.d.ts +2 -0
  282. package/dist/providers/ai-sdk-openai-compatible.provider.test.d.ts.map +1 -0
  283. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +68 -0
  284. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -0
  285. package/dist/providers/common/openai-compatible-messages.d.ts +8 -0
  286. package/dist/providers/common/openai-compatible-messages.d.ts.map +1 -0
  287. package/dist/providers/common/openai-compatible-messages.js +356 -0
  288. package/dist/providers/common/openai-compatible-messages.js.map +1 -0
  289. package/dist/providers/common/openai-compatible-messages.test.d.ts +2 -0
  290. package/dist/providers/common/openai-compatible-messages.test.d.ts.map +1 -0
  291. package/dist/providers/common/openai-compatible-messages.test.js +26 -0
  292. package/dist/providers/common/openai-compatible-messages.test.js.map +1 -0
  293. package/dist/providers/common/openai-compatible-utils.d.ts +11 -0
  294. package/dist/providers/common/openai-compatible-utils.d.ts.map +1 -0
  295. package/dist/providers/common/openai-compatible-utils.js +33 -0
  296. package/dist/providers/common/openai-compatible-utils.js.map +1 -0
  297. package/dist/providers/common/provider-errors.d.ts +13 -0
  298. package/dist/providers/common/provider-errors.d.ts.map +1 -0
  299. package/dist/providers/common/provider-errors.js +25 -0
  300. package/dist/providers/common/provider-errors.js.map +1 -0
  301. package/dist/providers/github-copilot/model.d.ts.map +1 -1
  302. package/dist/providers/github-copilot/model.js +25 -108
  303. package/dist/providers/github-copilot/model.js.map +1 -1
  304. package/dist/providers/github-copilot/model.test.d.ts +2 -0
  305. package/dist/providers/github-copilot/model.test.d.ts.map +1 -0
  306. package/dist/providers/github-copilot/model.test.js +63 -0
  307. package/dist/providers/github-copilot/model.test.js.map +1 -0
  308. package/dist/providers/github-copilot/provider.d.ts +0 -5
  309. package/dist/providers/github-copilot/provider.d.ts.map +1 -1
  310. package/dist/providers/github-copilot/provider.js +2 -7
  311. package/dist/providers/github-copilot/provider.js.map +1 -1
  312. package/dist/providers/index.d.ts +1 -1
  313. package/dist/providers/index.d.ts.map +1 -1
  314. package/dist/providers/index.js +1 -1
  315. package/dist/providers/index.js.map +1 -1
  316. package/dist/providers/openai-compatible/model.d.ts.map +1 -1
  317. package/dist/providers/openai-compatible/model.js +68 -7
  318. package/dist/providers/openai-compatible/model.js.map +1 -1
  319. package/dist/providers/openai-compatible/reasoning-content.test.js +107 -6
  320. package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -1
  321. package/dist/providers/openai-compatible.provider.createRunner.test.d.ts +2 -0
  322. package/dist/providers/openai-compatible.provider.createRunner.test.d.ts.map +1 -0
  323. package/dist/providers/openai-compatible.provider.createRunner.test.js +39 -0
  324. package/dist/providers/openai-compatible.provider.createRunner.test.js.map +1 -0
  325. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  326. package/dist/providers/openai-compatible.provider.js +18 -8
  327. package/dist/providers/openai-compatible.provider.js.map +1 -1
  328. package/dist/providers/openai.provider.js +2 -0
  329. package/dist/providers/openai.provider.js.map +1 -1
  330. package/dist/providers/openrouter/converters.d.ts.map +1 -1
  331. package/dist/providers/openrouter/converters.js +8 -6
  332. package/dist/providers/openrouter/converters.js.map +1 -1
  333. package/dist/providers/openrouter/converters.test.js +24 -0
  334. package/dist/providers/openrouter/converters.test.js.map +1 -1
  335. package/dist/providers/openrouter/model.d.ts.map +1 -1
  336. package/dist/providers/openrouter/model.js +13 -5
  337. package/dist/providers/openrouter/model.js.map +1 -1
  338. package/dist/providers/openrouter/reasoning-content.test.js +48 -2
  339. package/dist/providers/openrouter/reasoning-content.test.js.map +1 -1
  340. package/dist/providers/openrouter.d.ts +1 -1
  341. package/dist/providers/openrouter.d.ts.map +1 -1
  342. package/dist/providers/openrouter.js +1 -3
  343. package/dist/providers/openrouter.js.map +1 -1
  344. package/dist/providers/openrouter.provider.createRunner.test.js +45 -9
  345. package/dist/providers/openrouter.provider.createRunner.test.js.map +1 -1
  346. package/dist/providers/openrouter.provider.js +13 -5
  347. package/dist/providers/openrouter.provider.js.map +1 -1
  348. package/dist/providers/openrouter.test.js +0 -2
  349. package/dist/providers/openrouter.test.js.map +1 -1
  350. package/dist/providers/registry.d.ts +17 -8
  351. package/dist/providers/registry.d.ts.map +1 -1
  352. package/dist/providers/registry.js +9 -0
  353. package/dist/providers/registry.js.map +1 -1
  354. package/dist/providers/web-search/exa.provider.d.ts +15 -0
  355. package/dist/providers/web-search/exa.provider.d.ts.map +1 -0
  356. package/dist/providers/web-search/exa.provider.js +82 -0
  357. package/dist/providers/web-search/exa.provider.js.map +1 -0
  358. package/dist/providers/web-search/exa.provider.test.d.ts +2 -0
  359. package/dist/providers/web-search/exa.provider.test.d.ts.map +1 -0
  360. package/dist/providers/web-search/exa.provider.test.js +67 -0
  361. package/dist/providers/web-search/exa.provider.test.js.map +1 -0
  362. package/dist/providers/web-search/index.d.ts +1 -0
  363. package/dist/providers/web-search/index.d.ts.map +1 -1
  364. package/dist/providers/web-search/index.js +1 -0
  365. package/dist/providers/web-search/index.js.map +1 -1
  366. package/dist/scripts/eval-auto-approval/cache.d.ts +9 -0
  367. package/dist/scripts/eval-auto-approval/cache.d.ts.map +1 -0
  368. package/dist/scripts/eval-auto-approval/cache.js +64 -0
  369. package/dist/scripts/eval-auto-approval/cache.js.map +1 -0
  370. package/dist/scripts/eval-auto-approval/dataset.d.ts +45 -0
  371. package/dist/scripts/eval-auto-approval/dataset.d.ts.map +1 -0
  372. package/dist/scripts/eval-auto-approval/dataset.js +65 -0
  373. package/dist/scripts/eval-auto-approval/dataset.js.map +1 -0
  374. package/dist/scripts/eval-auto-approval/dataset.test.d.ts +2 -0
  375. package/dist/scripts/eval-auto-approval/dataset.test.d.ts.map +1 -0
  376. package/dist/scripts/eval-auto-approval/dataset.test.js +88 -0
  377. package/dist/scripts/eval-auto-approval/dataset.test.js.map +1 -0
  378. package/dist/scripts/eval-auto-approval/leaderboard.d.ts +92 -0
  379. package/dist/scripts/eval-auto-approval/leaderboard.d.ts.map +1 -0
  380. package/dist/scripts/eval-auto-approval/leaderboard.js +402 -0
  381. package/dist/scripts/eval-auto-approval/leaderboard.js.map +1 -0
  382. package/dist/scripts/eval-auto-approval/leaderboard.test.d.ts +2 -0
  383. package/dist/scripts/eval-auto-approval/leaderboard.test.d.ts.map +1 -0
  384. package/dist/scripts/eval-auto-approval/leaderboard.test.js +689 -0
  385. package/dist/scripts/eval-auto-approval/leaderboard.test.js.map +1 -0
  386. package/dist/scripts/eval-auto-approval/metrics.d.ts +34 -0
  387. package/dist/scripts/eval-auto-approval/metrics.d.ts.map +1 -0
  388. package/dist/scripts/eval-auto-approval/metrics.js +74 -0
  389. package/dist/scripts/eval-auto-approval/metrics.js.map +1 -0
  390. package/dist/scripts/eval-auto-approval/metrics.test.d.ts +2 -0
  391. package/dist/scripts/eval-auto-approval/metrics.test.d.ts.map +1 -0
  392. package/dist/scripts/eval-auto-approval/metrics.test.js +79 -0
  393. package/dist/scripts/eval-auto-approval/metrics.test.js.map +1 -0
  394. package/dist/scripts/eval-auto-approval/report.d.ts +5 -0
  395. package/dist/scripts/eval-auto-approval/report.d.ts.map +1 -0
  396. package/dist/scripts/eval-auto-approval/report.js +51 -0
  397. package/dist/scripts/eval-auto-approval/report.js.map +1 -0
  398. package/dist/scripts/eval-auto-approval/report.test.d.ts +2 -0
  399. package/dist/scripts/eval-auto-approval/report.test.d.ts.map +1 -0
  400. package/dist/scripts/eval-auto-approval/report.test.js +23 -0
  401. package/dist/scripts/eval-auto-approval/report.test.js.map +1 -0
  402. package/dist/scripts/eval-auto-approval/runner-utils.d.ts +41 -0
  403. package/dist/scripts/eval-auto-approval/runner-utils.d.ts.map +1 -0
  404. package/dist/scripts/eval-auto-approval/runner-utils.js +187 -0
  405. package/dist/scripts/eval-auto-approval/runner-utils.js.map +1 -0
  406. package/dist/scripts/eval-auto-approval/runner-utils.test.d.ts +2 -0
  407. package/dist/scripts/eval-auto-approval/runner-utils.test.d.ts.map +1 -0
  408. package/dist/scripts/eval-auto-approval/runner-utils.test.js +135 -0
  409. package/dist/scripts/eval-auto-approval/runner-utils.test.js.map +1 -0
  410. package/dist/scripts/eval-auto-approval/runner.d.ts +2 -0
  411. package/dist/scripts/eval-auto-approval/runner.d.ts.map +1 -0
  412. package/dist/scripts/eval-auto-approval/runner.js +326 -0
  413. package/dist/scripts/eval-auto-approval/runner.js.map +1 -0
  414. package/dist/services/agent-stream.d.ts +11 -0
  415. package/dist/services/agent-stream.d.ts.map +1 -0
  416. package/dist/services/agent-stream.js +2 -0
  417. package/dist/services/agent-stream.js.map +1 -0
  418. package/dist/services/approval-flow-coordinator.d.ts +43 -0
  419. package/dist/services/approval-flow-coordinator.d.ts.map +1 -0
  420. package/dist/services/approval-flow-coordinator.js +120 -0
  421. package/dist/services/approval-flow-coordinator.js.map +1 -0
  422. package/dist/services/approval-flow-coordinator.test.d.ts +2 -0
  423. package/dist/services/approval-flow-coordinator.test.d.ts.map +1 -0
  424. package/dist/services/approval-flow-coordinator.test.js +168 -0
  425. package/dist/services/approval-flow-coordinator.test.js.map +1 -0
  426. package/dist/services/approval-rejection-interceptor.d.ts +16 -0
  427. package/dist/services/approval-rejection-interceptor.d.ts.map +1 -0
  428. package/dist/services/approval-rejection-interceptor.js +20 -0
  429. package/dist/services/approval-rejection-interceptor.js.map +1 -0
  430. package/dist/services/approval-rejection-interceptor.test.d.ts +2 -0
  431. package/dist/services/approval-rejection-interceptor.test.d.ts.map +1 -0
  432. package/dist/services/approval-rejection-interceptor.test.js +60 -0
  433. package/dist/services/approval-rejection-interceptor.test.js.map +1 -0
  434. package/dist/services/check_mock.d.ts +2 -0
  435. package/dist/services/check_mock.d.ts.map +1 -0
  436. package/dist/services/check_mock.js +22 -0
  437. package/dist/services/check_mock.js.map +1 -0
  438. package/dist/services/conversation-events.d.ts +4 -2
  439. package/dist/services/conversation-events.d.ts.map +1 -1
  440. package/dist/services/conversation-result-builder.d.ts +34 -34
  441. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  442. package/dist/services/conversation-result-builder.js +64 -76
  443. package/dist/services/conversation-result-builder.js.map +1 -1
  444. package/dist/services/conversation-result-builder.test.js +145 -65
  445. package/dist/services/conversation-result-builder.test.js.map +1 -1
  446. package/dist/services/conversation-retry-policy.d.ts +37 -0
  447. package/dist/services/conversation-retry-policy.d.ts.map +1 -0
  448. package/dist/services/conversation-retry-policy.js +51 -0
  449. package/dist/services/conversation-retry-policy.js.map +1 -0
  450. package/dist/services/conversation-retry-policy.test.d.ts +2 -0
  451. package/dist/services/conversation-retry-policy.test.d.ts.map +1 -0
  452. package/dist/services/conversation-retry-policy.test.js +79 -0
  453. package/dist/services/conversation-retry-policy.test.js.map +1 -0
  454. package/dist/services/conversation-service.d.ts +2 -1
  455. package/dist/services/conversation-service.d.ts.map +1 -1
  456. package/dist/services/conversation-service.test.d.ts +2 -0
  457. package/dist/services/conversation-service.test.d.ts.map +1 -0
  458. package/dist/services/conversation-service.test.js +149 -183
  459. package/dist/services/conversation-service.test.js.map +1 -0
  460. package/dist/services/conversation-session.auto-approval.test.d.ts +2 -0
  461. package/dist/services/conversation-session.auto-approval.test.d.ts.map +1 -0
  462. package/dist/services/conversation-session.auto-approval.test.js +617 -0
  463. package/dist/services/conversation-session.auto-approval.test.js.map +1 -0
  464. package/dist/services/conversation-session.d.ts +9 -5
  465. package/dist/services/conversation-session.d.ts.map +1 -1
  466. package/dist/services/conversation-session.js +174 -700
  467. package/dist/services/conversation-session.js.map +1 -1
  468. package/dist/services/conversation-store.d.ts +2 -0
  469. package/dist/services/conversation-store.d.ts.map +1 -1
  470. package/dist/services/conversation-store.js +27 -0
  471. package/dist/services/conversation-store.js.map +1 -1
  472. package/dist/services/conversation-store.test.js +34 -0
  473. package/dist/services/conversation-store.test.js.map +1 -1
  474. package/dist/services/interruption-info.d.ts +13 -0
  475. package/dist/services/interruption-info.d.ts.map +1 -0
  476. package/dist/services/interruption-info.js +89 -0
  477. package/dist/services/interruption-info.js.map +1 -0
  478. package/dist/services/interruption-info.test.d.ts +2 -0
  479. package/dist/services/interruption-info.test.d.ts.map +1 -0
  480. package/dist/services/interruption-info.test.js +84 -0
  481. package/dist/services/interruption-info.test.js.map +1 -0
  482. package/dist/services/logging-contract.d.ts +4 -4
  483. package/dist/services/logging-service.d.ts +6 -2
  484. package/dist/services/logging-service.d.ts.map +1 -1
  485. package/dist/services/logging-service.js +53 -92
  486. package/dist/services/logging-service.js.map +1 -1
  487. package/dist/services/model-service.test.js +1 -5
  488. package/dist/services/model-service.test.js.map +1 -1
  489. package/dist/services/settings-env.d.ts.map +1 -1
  490. package/dist/services/settings-env.js +3 -0
  491. package/dist/services/settings-env.js.map +1 -1
  492. package/dist/services/settings-schema.d.ts +46 -8
  493. package/dist/services/settings-schema.d.ts.map +1 -1
  494. package/dist/services/settings-schema.js +46 -0
  495. package/dist/services/settings-schema.js.map +1 -1
  496. package/dist/services/settings-service.d.ts.map +1 -1
  497. package/dist/services/settings-service.js +12 -166
  498. package/dist/services/settings-service.js.map +1 -1
  499. package/dist/services/settings-sources.d.ts +5 -0
  500. package/dist/services/settings-sources.d.ts.map +1 -0
  501. package/dist/services/settings-sources.js +92 -0
  502. package/dist/services/settings-sources.js.map +1 -0
  503. package/dist/services/settings-sources.test.d.ts +2 -0
  504. package/dist/services/settings-sources.test.d.ts.map +1 -0
  505. package/dist/services/settings-sources.test.js +34 -0
  506. package/dist/services/settings-sources.test.js.map +1 -0
  507. package/dist/services/shell-auto-approval-evaluator.d.ts +19 -0
  508. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -0
  509. package/dist/services/shell-auto-approval-evaluator.js +207 -0
  510. package/dist/services/shell-auto-approval-evaluator.js.map +1 -0
  511. package/dist/services/shell-auto-approval-evaluator.test.d.ts +2 -0
  512. package/dist/services/shell-auto-approval-evaluator.test.d.ts.map +1 -0
  513. package/dist/services/shell-auto-approval-evaluator.test.js +211 -0
  514. package/dist/services/shell-auto-approval-evaluator.test.js.map +1 -0
  515. package/dist/services/shell-auto-approval-resolver.d.ts +24 -0
  516. package/dist/services/shell-auto-approval-resolver.d.ts.map +1 -0
  517. package/dist/services/shell-auto-approval-resolver.js +59 -0
  518. package/dist/services/shell-auto-approval-resolver.js.map +1 -0
  519. package/dist/services/shell-auto-approval-resolver.test.d.ts +2 -0
  520. package/dist/services/shell-auto-approval-resolver.test.d.ts.map +1 -0
  521. package/dist/services/shell-auto-approval-resolver.test.js +110 -0
  522. package/dist/services/shell-auto-approval-resolver.test.js.map +1 -0
  523. package/dist/services/ssh-service.test.js +2 -2
  524. package/dist/services/ssh-service.test.js.map +1 -1
  525. package/dist/services/stream-event-processor.d.ts +18 -23
  526. package/dist/services/stream-event-processor.d.ts.map +1 -1
  527. package/dist/services/stream-event-processor.js +186 -325
  528. package/dist/services/stream-event-processor.js.map +1 -1
  529. package/dist/services/stream-event-processor.test.js +143 -90
  530. package/dist/services/stream-event-processor.test.js.map +1 -1
  531. package/dist/services/terminal-result-collector.d.ts +12 -0
  532. package/dist/services/terminal-result-collector.d.ts.map +1 -0
  533. package/dist/services/terminal-result-collector.js +64 -0
  534. package/dist/services/terminal-result-collector.js.map +1 -0
  535. package/dist/services/terminal-result-collector.test.d.ts +2 -0
  536. package/dist/services/terminal-result-collector.test.d.ts.map +1 -0
  537. package/dist/services/terminal-result-collector.test.js +93 -0
  538. package/dist/services/terminal-result-collector.test.js.map +1 -0
  539. package/dist/slash-commands.d.ts +20 -0
  540. package/dist/slash-commands.d.ts.map +1 -0
  541. package/dist/slash-commands.js +2 -0
  542. package/dist/slash-commands.js.map +1 -0
  543. package/dist/tools/apply-patch.js +5 -5
  544. package/dist/tools/apply-patch.js.map +1 -1
  545. package/dist/tools/create-file.js +2 -2
  546. package/dist/tools/create-file.js.map +1 -1
  547. package/dist/tools/edit-healing.d.ts.map +1 -1
  548. package/dist/tools/edit-healing.js +4 -1
  549. package/dist/tools/edit-healing.js.map +1 -1
  550. package/dist/tools/edit-healing.test.js +22 -0
  551. package/dist/tools/edit-healing.test.js.map +1 -1
  552. package/dist/tools/search-replace.d.ts.map +1 -1
  553. package/dist/tools/search-replace.js +114 -194
  554. package/dist/tools/search-replace.js.map +1 -1
  555. package/dist/tools/search-replace.test.js +38 -0
  556. package/dist/tools/search-replace.test.js.map +1 -1
  557. package/dist/tools/shell.js +2 -2
  558. package/dist/tools/shell.js.map +1 -1
  559. package/dist/tools/shell.test.js +0 -5
  560. package/dist/tools/shell.test.js.map +1 -1
  561. package/dist/tools/web-fetch.test.js +3 -3
  562. package/dist/tools/web-fetch.test.js.map +1 -1
  563. package/dist/types/user-turn.d.ts +16 -0
  564. package/dist/types/user-turn.d.ts.map +1 -0
  565. package/dist/types/user-turn.js +27 -0
  566. package/dist/types/user-turn.js.map +1 -0
  567. package/dist/types/user-turn.test.d.ts +2 -0
  568. package/dist/types/user-turn.test.d.ts.map +1 -0
  569. package/dist/types/user-turn.test.js +32 -0
  570. package/dist/types/user-turn.test.js.map +1 -0
  571. package/dist/utils/clipboard.d.ts +16 -0
  572. package/dist/utils/clipboard.d.ts.map +1 -0
  573. package/dist/utils/clipboard.js +55 -0
  574. package/dist/utils/clipboard.js.map +1 -0
  575. package/dist/utils/clipboard.test.d.ts +2 -0
  576. package/dist/utils/clipboard.test.d.ts.map +1 -0
  577. package/dist/utils/clipboard.test.js +59 -0
  578. package/dist/utils/clipboard.test.js.map +1 -0
  579. package/dist/utils/command-safety/constants.d.ts.map +1 -1
  580. package/dist/utils/command-safety/constants.js +3 -21
  581. package/dist/utils/command-safety/constants.js.map +1 -1
  582. package/dist/utils/command-safety/find-helpers.d.ts.map +1 -1
  583. package/dist/utils/command-safety/find-helpers.js +13 -95
  584. package/dist/utils/command-safety/find-helpers.js.map +1 -1
  585. package/dist/utils/command-safety/handlers/sed-handler.d.ts.map +1 -1
  586. package/dist/utils/command-safety/handlers/sed-handler.js +2 -4
  587. package/dist/utils/command-safety/handlers/sed-handler.js.map +1 -1
  588. package/dist/utils/command-safety/index.d.ts +9 -0
  589. package/dist/utils/command-safety/index.d.ts.map +1 -1
  590. package/dist/utils/command-safety/index.js +12 -2
  591. package/dist/utils/command-safety/index.js.map +1 -1
  592. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  593. package/dist/utils/command-safety/path-analysis.js +7 -6
  594. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  595. package/dist/utils/command-safety.d.ts.map +1 -1
  596. package/dist/utils/command-safety.devnull.test.d.ts +2 -0
  597. package/dist/utils/command-safety.devnull.test.d.ts.map +1 -0
  598. package/dist/utils/command-safety.devnull.test.js +13 -0
  599. package/dist/utils/command-safety.devnull.test.js.map +1 -0
  600. package/dist/utils/command-safety.find.test.js +56 -39
  601. package/dist/utils/command-safety.find.test.js.map +1 -1
  602. package/dist/utils/command-safety.js +10 -364
  603. package/dist/utils/command-safety.js.map +1 -1
  604. package/dist/utils/command-safety.path.test.js +7 -7
  605. package/dist/utils/command-safety.path.test.js.map +1 -1
  606. package/dist/utils/command-safety.red-yellow-policy.test.d.ts +2 -0
  607. package/dist/utils/command-safety.red-yellow-policy.test.d.ts.map +1 -0
  608. package/dist/utils/command-safety.red-yellow-policy.test.js +36 -0
  609. package/dist/utils/command-safety.red-yellow-policy.test.js.map +1 -0
  610. package/dist/utils/conversation-event-handler.d.ts +4 -3
  611. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  612. package/dist/utils/conversation-event-handler.js +15 -5
  613. package/dist/utils/conversation-event-handler.js.map +1 -1
  614. package/dist/utils/conversation-event-handler.test.js +24 -0
  615. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  616. package/dist/utils/conversation-utils.d.ts +1 -1
  617. package/dist/utils/execute-shell.d.ts +10 -0
  618. package/dist/utils/execute-shell.d.ts.map +1 -1
  619. package/dist/utils/execute-shell.js +3 -3
  620. package/dist/utils/execute-shell.js.map +1 -1
  621. package/dist/utils/execute-shell.test.js +19 -3
  622. package/dist/utils/execute-shell.test.js.map +1 -1
  623. package/dist/utils/extract-command-messages.test.d.ts +2 -0
  624. package/dist/utils/extract-command-messages.test.d.ts.map +1 -0
  625. package/dist/utils/extract-command-messages.test.js +58 -51
  626. package/dist/utils/extract-command-messages.test.js.map +1 -0
  627. package/dist/utils/input-parser.d.ts +13 -0
  628. package/dist/utils/input-parser.d.ts.map +1 -0
  629. package/dist/utils/input-parser.js +10 -0
  630. package/dist/utils/input-parser.js.map +1 -0
  631. package/dist/utils/log-truncation.d.ts +7 -0
  632. package/dist/utils/log-truncation.d.ts.map +1 -0
  633. package/dist/utils/log-truncation.js +66 -0
  634. package/dist/utils/log-truncation.js.map +1 -0
  635. package/dist/utils/log-truncation.test.d.ts +2 -0
  636. package/dist/utils/log-truncation.test.d.ts.map +1 -0
  637. package/dist/utils/log-truncation.test.js +44 -0
  638. package/dist/utils/log-truncation.test.js.map +1 -0
  639. package/dist/utils/model-provider-arg.d.ts +5 -0
  640. package/dist/utils/model-provider-arg.d.ts.map +1 -0
  641. package/dist/utils/model-provider-arg.js +15 -0
  642. package/dist/utils/model-provider-arg.js.map +1 -0
  643. package/dist/utils/model-provider-arg.test.d.ts +2 -0
  644. package/dist/utils/model-provider-arg.test.d.ts.map +1 -0
  645. package/dist/utils/model-provider-arg.test.js +21 -0
  646. package/dist/utils/model-provider-arg.test.js.map +1 -0
  647. package/dist/utils/model-settings.d.ts +12 -0
  648. package/dist/utils/model-settings.d.ts.map +1 -0
  649. package/dist/utils/model-settings.js +35 -0
  650. package/dist/utils/model-settings.js.map +1 -0
  651. package/dist/utils/provider-traffic-extractor.d.ts +1 -0
  652. package/dist/utils/provider-traffic-extractor.d.ts.map +1 -1
  653. package/dist/utils/provider-traffic-extractor.js +90 -5
  654. package/dist/utils/provider-traffic-extractor.js.map +1 -1
  655. package/dist/utils/provider-traffic-extractor.repro.test.d.ts +2 -0
  656. package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +1 -0
  657. package/dist/utils/provider-traffic-extractor.repro.test.js.map +1 -0
  658. package/dist/utils/settings-command.d.ts +1 -1
  659. package/dist/utils/settings-command.d.ts.map +1 -1
  660. package/dist/utils/settings-command.js +12 -8
  661. package/dist/utils/settings-command.js.map +1 -1
  662. package/dist/utils/streaming-session-factory.d.ts +1 -1
  663. package/dist/utils/streaming-session-factory.d.ts.map +1 -1
  664. package/dist/utils/streaming-session-factory.js +5 -2
  665. package/dist/utils/streaming-session-factory.js.map +1 -1
  666. package/dist/utils/streaming-session-factory.test.js +2 -2
  667. package/dist/utils/streaming-session-factory.test.js.map +1 -1
  668. package/dist/utils/streaming-updater.d.ts +2 -1
  669. package/dist/utils/streaming-updater.d.ts.map +1 -1
  670. package/dist/utils/streaming-updater.js +2 -2
  671. package/dist/utils/streaming-updater.js.map +1 -1
  672. package/dist/utils/throttle.d.ts +6 -1
  673. package/dist/utils/throttle.d.ts.map +1 -1
  674. package/dist/utils/throttle.js +11 -6
  675. package/dist/utils/throttle.js.map +1 -1
  676. package/dist/utils/viewport.d.ts +6 -0
  677. package/dist/utils/viewport.d.ts.map +1 -0
  678. package/dist/utils/viewport.js +20 -0
  679. package/dist/utils/viewport.js.map +1 -0
  680. package/dist/utils/viewport.test.d.ts +2 -0
  681. package/dist/utils/viewport.test.d.ts.map +1 -0
  682. package/dist/utils/viewport.test.js +43 -0
  683. package/dist/utils/viewport.test.js.map +1 -0
  684. package/package.json +8 -4
  685. package/dist/app.model-command-feedback.test.d.ts +0 -2
  686. package/dist/app.model-command-feedback.test.d.ts.map +0 -1
  687. package/dist/app.model-command-feedback.test.js +0 -19
  688. package/dist/app.model-command-feedback.test.js.map +0 -1
  689. package/dist/components/MentorMode.test.d.ts +0 -2
  690. package/dist/components/MentorMode.test.d.ts.map +0 -1
  691. package/dist/components/MentorMode.test.js.map +0 -1
  692. package/dist/components/StatusBar.test.d.ts +0 -2
  693. package/dist/components/StatusBar.test.d.ts.map +0 -1
  694. package/dist/components/StatusBar.test.js +0 -19
  695. package/dist/components/StatusBar.test.js.map +0 -1
  696. package/dist/debug-schema.d.ts +0 -2
  697. package/dist/debug-schema.d.ts.map +0 -1
  698. package/dist/debug-schema.js +0 -22
  699. package/dist/debug-schema.js.map +0 -1
  700. package/dist/hooks/use-path-completion.test.d.ts +0 -2
  701. package/dist/hooks/use-path-completion.test.d.ts.map +0 -1
  702. package/dist/hooks/use-path-completion.test.js +0 -29
  703. package/dist/hooks/use-path-completion.test.js.map +0 -1
  704. package/dist/lib/mentor-client.d.ts +0 -41
  705. package/dist/lib/mentor-client.d.ts.map +0 -1
  706. package/dist/lib/mentor-client.js +0 -146
  707. package/dist/lib/mentor-client.js.map +0 -1
  708. package/dist/lib/mentor-client.test.d.ts +0 -2
  709. package/dist/lib/mentor-client.test.d.ts.map +0 -1
  710. package/dist/lib/mentor-client.test.js +0 -440
  711. package/dist/lib/mentor-client.test.js.map +0 -1
  712. package/dist/lib/retry-strategy.d.ts +0 -43
  713. package/dist/lib/retry-strategy.d.ts.map +0 -1
  714. package/dist/lib/retry-strategy.js +0 -93
  715. package/dist/lib/retry-strategy.js.map +0 -1
  716. package/dist/lib/retry-strategy.test.d.ts +0 -2
  717. package/dist/lib/retry-strategy.test.d.ts.map +0 -1
  718. package/dist/lib/retry-strategy.test.js +0 -200
  719. package/dist/lib/retry-strategy.test.js.map +0 -1
  720. package/dist/prompts/default.md.bak +0 -77
  721. package/dist/providers/github-copilot/model-direct.d.ts +0 -34
  722. package/dist/providers/github-copilot/model-direct.d.ts.map +0 -1
  723. package/dist/providers/github-copilot/model-direct.js +0 -443
  724. package/dist/providers/github-copilot/model-direct.js.map +0 -1
  725. package/dist/providers/openrouter/merge-messages.test.d.ts +0 -2
  726. package/dist/providers/openrouter/merge-messages.test.d.ts.map +0 -1
  727. package/dist/providers/openrouter/merge-messages.test.js +0 -83
  728. package/dist/providers/openrouter/merge-messages.test.js.map +0 -1
  729. package/dist/providers/openrouter.history.test.d.ts +0 -2
  730. package/dist/providers/openrouter.history.test.d.ts.map +0 -1
  731. package/dist/providers/openrouter.history.test.js +0 -533
  732. package/dist/providers/openrouter.history.test.js.map +0 -1
  733. package/dist/reproduce_issue.test.d.ts +0 -2
  734. package/dist/reproduce_issue.test.d.ts.map +0 -1
  735. package/dist/reproduce_issue.test.js +0 -31
  736. package/dist/reproduce_issue.test.js.map +0 -1
  737. package/dist/services/conversation-session.usage.test.d.ts +0 -2
  738. package/dist/services/conversation-session.usage.test.d.ts.map +0 -1
  739. package/dist/services/conversation-session.usage.test.js +0 -59
  740. package/dist/services/conversation-session.usage.test.js.map +0 -1
  741. package/dist/test-search-tool.d.ts +0 -2
  742. package/dist/test-search-tool.d.ts.map +0 -1
  743. package/dist/test-search-tool.js +0 -36
  744. package/dist/test-search-tool.js.map +0 -1
  745. package/dist/types/messages.d.ts +0 -29
  746. package/dist/types/messages.d.ts.map +0 -1
  747. package/dist/types/messages.js +0 -2
  748. package/dist/types/messages.js.map +0 -1
  749. package/dist/utils/extract-command-messages.repro.test.d.ts +0 -2
  750. package/dist/utils/extract-command-messages.repro.test.d.ts.map +0 -1
  751. package/dist/utils/extract-command-messages.repro.test.js +0 -31
  752. package/dist/utils/extract-command-messages.repro.test.js.map +0 -1
  753. package/dist/utils/message-utils.d.ts +0 -17
  754. package/dist/utils/message-utils.d.ts.map +0 -1
  755. package/dist/utils/message-utils.js +0 -52
  756. package/dist/utils/message-utils.js.map +0 -1
  757. package/dist/utils/message-utils.test.d.ts +0 -2
  758. package/dist/utils/message-utils.test.d.ts.map +0 -1
  759. package/dist/utils/message-utils.test.js +0 -48
  760. package/dist/utils/message-utils.test.js.map +0 -1
@@ -1,7 +1,4 @@
1
- import { Agent, run, tool as createTool, webSearchTool, applyPatchTool } from '@openai/agents';
2
- import { APIConnectionError, APIConnectionTimeoutError, InternalServerError, RateLimitError } from 'openai';
3
- import { OpenRouterError } from '../providers/openrouter.js';
4
- import { OpenAICompatibleError } from '../providers/openai-compatible/api.js';
1
+ import { Agent, run, tool as createTool, webSearchTool, applyPatchTool, } from '@openai/agents';
5
2
  import { getProvider } from '../providers/index.js';
6
3
  import { randomUUID } from 'node:crypto';
7
4
  import { getAgentDefinition, getEnvInfo, getAgentsInstructions } from '../agent.js';
@@ -10,6 +7,80 @@ import { createEditorImpl } from './editor-impl.js';
10
7
  import { ConversationStore } from '../services/conversation-store.js';
11
8
  import { trimToolOutput } from '../utils/trim-tool-output.js';
12
9
  import { toOpenAIStrictToolSchema } from './openai-strict-tool-schema.js';
10
+ import { executeWithRetry } from './retry-executor.js';
11
+ import { shouldUseNativePatchTool, shouldUseStrictToolSchema } from './tool-selection-policy.js';
12
+ class MentorSession {
13
+ #provider = null;
14
+ #runner = null;
15
+ #agent = null;
16
+ #store = null;
17
+ #previousResponseId = null;
18
+ get provider() {
19
+ return this.#provider;
20
+ }
21
+ get runner() {
22
+ return this.#runner;
23
+ }
24
+ get agent() {
25
+ return this.#agent;
26
+ }
27
+ get previousResponseId() {
28
+ return this.#previousResponseId;
29
+ }
30
+ reset() {
31
+ if (this.#store) {
32
+ this.#store.clear();
33
+ }
34
+ this.#previousResponseId = null;
35
+ this.#store = null;
36
+ this.#runner = null;
37
+ this.#provider = null;
38
+ this.#agent = null;
39
+ }
40
+ switchProvider(provider) {
41
+ if (this.#provider !== provider) {
42
+ this.#agent = null;
43
+ this.#store = null;
44
+ this.#previousResponseId = null;
45
+ this.#runner = null;
46
+ this.#provider = provider;
47
+ }
48
+ }
49
+ ensureRunner(provider, createRunner) {
50
+ if (!this.#runner && provider !== 'openai') {
51
+ this.#runner = createRunner(provider);
52
+ }
53
+ return this.#runner;
54
+ }
55
+ ensureAgent(createAgent) {
56
+ if (!this.#agent) {
57
+ this.#agent = createAgent();
58
+ this.#store = new ConversationStore();
59
+ }
60
+ return this.#agent;
61
+ }
62
+ addUserMessage(message) {
63
+ this.#store.addUserMessage(message);
64
+ }
65
+ getInput(question, supportsConversationChaining) {
66
+ return supportsConversationChaining ? question : this.#store.getHistory();
67
+ }
68
+ getRunOptions(supportsConversationChaining) {
69
+ return {
70
+ stream: false,
71
+ maxTurns: 1,
72
+ ...(supportsConversationChaining && this.#previousResponseId
73
+ ? { previousResponseId: this.#previousResponseId }
74
+ : {}),
75
+ };
76
+ }
77
+ updateFromResult(result) {
78
+ this.#store.updateFromResult(result);
79
+ if (result.responseId) {
80
+ this.#previousResponseId = result.responseId;
81
+ }
82
+ }
83
+ }
13
84
  /**
14
85
  * Minimal adapter that isolates usage of @openai/agents.
15
86
  * Swap this module to change the underlying agent provider without touching the UI.
@@ -21,8 +92,6 @@ export class OpenAIAgentClient {
21
92
  #reasoningEffort;
22
93
  #temperature;
23
94
  #provider;
24
- #mentorProvider = null;
25
- #mentorRunner = null;
26
95
  #maxTurns;
27
96
  #retryAttempts;
28
97
  #currentAbortController = null;
@@ -34,23 +103,15 @@ export class OpenAIAgentClient {
34
103
  #settings;
35
104
  #executionContext;
36
105
  #editor;
37
- #mentorAgent = null;
38
- #mentorStore = null;
39
- #mentorPreviousResponseId = null;
106
+ #mentorSession;
40
107
  #resetMentorState() {
41
- if (this.#mentorStore) {
42
- this.#mentorStore.clear();
43
- }
44
- this.#mentorPreviousResponseId = null;
45
- this.#mentorStore = null;
46
- this.#mentorRunner = null;
47
- this.#mentorProvider = null;
48
- this.#mentorAgent = null;
108
+ this.#mentorSession.reset();
49
109
  }
50
110
  constructor({ model, reasoningEffort, maxTurns, retryAttempts, deps, }) {
51
111
  this.#logger = deps.logger;
52
112
  this.#settings = deps.settings;
53
113
  this.#executionContext = deps.executionContext;
114
+ this.#mentorSession = new MentorSession();
54
115
  this.#editor = createEditorImpl({
55
116
  loggingService: this.#logger,
56
117
  settingsService: this.#settings,
@@ -63,7 +124,7 @@ export class OpenAIAgentClient {
63
124
  this.#retryAttempts = retryAttempts ?? 2;
64
125
  this.#agent = this.#createAgent({ model, reasoningEffort });
65
126
  this.#runner = this.#createRunner(this.#provider);
66
- this.#logger.info('OpenAI Agent Client initialized', {
127
+ this.#logger.debug('OpenAI Agent Client initialized', {
67
128
  model: model || this.#settings.get('agent.model'),
68
129
  reasoningEffort: reasoningEffort ?? 'default',
69
130
  temperature: this.#temperature,
@@ -137,6 +198,8 @@ export class OpenAIAgentClient {
137
198
  return {
138
199
  supportsConversationChaining: providerDef?.capabilities?.supportsConversationChaining ?? false,
139
200
  supportsTracingControl: providerDef?.capabilities?.supportsTracingControl ?? false,
201
+ usesStrictToolSchema: providerDef?.capabilities?.usesStrictToolSchema,
202
+ nativePatchModelPrefixes: providerDef?.capabilities?.nativePatchModelPrefixes,
140
203
  };
141
204
  }
142
205
  #createRunner(providerId) {
@@ -187,7 +250,7 @@ export class OpenAIAgentClient {
187
250
  providerDef.clearConversations();
188
251
  }
189
252
  this.#refreshAgent();
190
- this.#logger.info('Conversation and agent refreshed');
253
+ this.#logger.debug('Conversation and agent refreshed');
191
254
  }
192
255
  async startStream(userInput, { previousResponseId } = {}) {
193
256
  // Abort any previous operation
@@ -203,7 +266,7 @@ export class OpenAIAgentClient {
203
266
  this.#logger.setCorrelationId(this.#currentCorrelationId);
204
267
  this.#currentAbortController = new AbortController();
205
268
  const signal = this.#currentAbortController.signal;
206
- this.#logger.info('Agent stream started', {
269
+ this.#logger.debug('Agent stream started', {
207
270
  eventType: 'provider.request.started',
208
271
  category: 'provider',
209
272
  phase: 'request_start',
@@ -213,6 +276,7 @@ export class OpenAIAgentClient {
213
276
  inputType: Array.isArray(userInput) ? 'array' : typeof userInput,
214
277
  inputLength: typeof userInput === 'string' ? userInput.length : undefined,
215
278
  inputItems: Array.isArray(userInput) ? userInput.length : undefined,
279
+ messages: Array.isArray(userInput) ? userInput : undefined,
216
280
  hasPreviousResponseId: !!previousResponseId,
217
281
  });
218
282
  try {
@@ -286,9 +350,7 @@ export class OpenAIAgentClient {
286
350
  const providerDef = getProvider(providerId);
287
351
  const providerLabel = providerDef?.label || providerId;
288
352
  throw new Error(`${providerLabel} is configured but could not be initialized. ` +
289
- `Please check that all required credentials are set. ` +
290
- `For OpenRouter, set OPENROUTER_API_KEY environment variable. ` +
291
- `Get your API key from: https://openrouter.ai/keys`);
353
+ `Please check that all required credentials and provider settings are set.`);
292
354
  }
293
355
  // Use runner if available (custom provider), otherwise use run() directly (OpenAI)
294
356
  if (runner) {
@@ -300,82 +362,29 @@ export class OpenAIAgentClient {
300
362
  return this.#runAgentWithProvider(this.#provider, this.#runner, agent, input, options);
301
363
  }
302
364
  async #executeWithRetry(operation, retries = this.#retryAttempts) {
303
- try {
304
- return await operation();
305
- }
306
- catch (error) {
307
- // Determine if the error is retryable
308
- // UserError and ModelBehaviorError are NOT retried (logic errors, not transient)
309
- const isTransientError = error instanceof APIConnectionError ||
310
- error instanceof APIConnectionTimeoutError ||
311
- error instanceof InternalServerError ||
312
- error instanceof RateLimitError;
313
- // Check if it's an OpenRouter error with retryable status
314
- const isOpenRouterRetryable = error instanceof OpenRouterError && (error.status === 429 || error.status >= 500);
315
- const isOpenAICompatibleRetryable = error instanceof OpenAICompatibleError && (error.status === 429 || error.status >= 500);
316
- const isRetryable = retries > 0 && (isTransientError || isOpenRouterRetryable || isOpenAICompatibleRetryable);
317
- if (isRetryable) {
318
- const attemptIndex = this.#retryAttempts - retries;
319
- let delay;
320
- // Check for Retry-After header (both OpenAI and OpenRouter)
321
- const retryAfterHeader = (error instanceof RateLimitError && error.headers?.['retry-after']) ||
322
- (error instanceof OpenRouterError && error.headers['retry-after']) ||
323
- (error instanceof OpenAICompatibleError && error.headers['retry-after']);
324
- if (retryAfterHeader) {
325
- // Respect the Retry-After header
326
- delay = parseInt(retryAfterHeader, 10) * 1000;
327
- }
328
- else {
329
- // Exponential backoff with full jitter
330
- // Base delay: 500-1000ms
331
- // Multiplier: 2^attemptIndex
332
- // Max cap: 30 seconds
333
- const baseDelay = 500 + Math.random() * 500; // 500-1000ms
334
- const exponentialDelay = baseDelay * Math.pow(2, attemptIndex);
335
- const maxDelay = 30000; // 30 seconds
336
- const cappedDelay = Math.min(exponentialDelay, maxDelay);
337
- // Apply full jitter: random value between 0 and cappedDelay
338
- delay = Math.random() * cappedDelay;
339
- }
340
- await new Promise((resolve) => setTimeout(resolve, delay));
341
- this.#logger.warn('Agent operation retry', {
342
- eventType: 'retry.upstream',
343
- category: 'retry',
344
- phase: 'retry',
345
- traceId: this.#currentCorrelationId,
346
- provider: this.#provider,
347
- model: this.#model,
348
- retryType: 'upstream',
349
- retryAttempt: attemptIndex + 1,
350
- errorType: error.constructor.name,
351
- retriesRemaining: retries - 1,
352
- delayMs: Math.round(delay),
353
- attemptIndex,
354
- errorMessage: error instanceof Error ? error.message : String(error),
355
- ...(error instanceof OpenRouterError && {
356
- status: error.status,
357
- }),
358
- ...(error instanceof OpenAICompatibleError && {
359
- status: error.status,
360
- }),
361
- });
362
- this.#retryCallback?.();
363
- return this.#executeWithRetry(operation, retries - 1);
364
- }
365
- throw error;
366
- }
365
+ return executeWithRetry({
366
+ operation,
367
+ retryAttempts: retries,
368
+ provider: this.#provider,
369
+ model: this.#model,
370
+ traceId: this.#currentCorrelationId,
371
+ logger: this.#logger,
372
+ onRetry: this.#retryCallback ?? undefined,
373
+ });
367
374
  }
368
375
  async chat(message, options = {}) {
376
+ const tempProvider = options.provider || this.#provider;
369
377
  this.#logger.debug('Agent chat request', {
370
378
  messageLength: message.length,
371
379
  model: options.model || this.#model,
380
+ provider: tempProvider,
372
381
  });
373
382
  try {
374
383
  // Create a temporary agent for this specific chat request if params differ
375
384
  let agentForChat = this.#agent;
376
- if (options.model || options.reasoningEffort) {
377
- const tempModel = options.model || this.#model;
378
- const tempEffort = options.reasoningEffort || this.#reasoningEffort;
385
+ const tempModel = options.model || this.#model;
386
+ const tempEffort = options.reasoningEffort || this.#reasoningEffort;
387
+ if (options.model || options.reasoningEffort || options.instructions || options.provider) {
379
388
  const modelSettings = {};
380
389
  if (tempEffort && tempEffort !== 'default') {
381
390
  modelSettings.reasoning = {
@@ -384,49 +393,24 @@ export class OpenAIAgentClient {
384
393
  };
385
394
  }
386
395
  // For simple chat, we generally don't need tools, but we keep the system instructions
387
- // Actually, for mentor mode, we might want a simpler agent without tools
388
396
  agentForChat = new Agent({
389
- name: 'Mentor',
397
+ name: 'Chat',
390
398
  model: tempModel,
391
399
  ...(Object.keys(modelSettings).length > 0 ? { modelSettings } : {}),
392
- instructions: options.instructions || 'You are a helpful mentor assistant.',
400
+ instructions: options.instructions || 'You are a helpful assistant.',
393
401
  });
394
- // Ensure runner is compatible or use run()
395
- if (!this.#runner && this.#provider !== 'openai') {
396
- // Logic to ensure runner exists... same as #runAgent
397
- const providerDef = getProvider(this.#provider);
398
- if (!providerDef)
399
- throw new Error(`Provider ${this.#provider} not found`);
400
- if (providerDef.createRunner) {
401
- // We can't easily reuse the main runner if it's bound to the main agent
402
- // But creating a new runner for every chat might be expensive?
403
- // For now, let's assume we can just use `run` if no tools are needed,
404
- // but some providers NEED a runner.
405
- // Actually, most providers' runners are stateless or lightweight wrappers.
406
- }
407
- }
402
+ }
403
+ // If provider is different from main provider, we need a separate runner
404
+ let runnerForChat = this.#runner;
405
+ if (tempProvider !== this.#provider) {
406
+ runnerForChat = this.#createRunner(tempProvider);
408
407
  }
409
408
  // We use a simplified run flow for chat
410
- const result = await this.#runAgent(agentForChat, message, {
409
+ const result = await this.#runAgentWithProvider(tempProvider, runnerForChat, agentForChat, message, {
411
410
  stream: false,
412
411
  maxTurns: 1, // Chat is usually single turn
413
412
  });
414
- if (result.finalOutput) {
415
- return result.finalOutput;
416
- }
417
- // Fallback: extract from messages if finalOutput is missing
418
- if (result.messages && Array.isArray(result.messages)) {
419
- const lastMessage = result.messages[result.messages.length - 1];
420
- if (lastMessage && lastMessage.content) {
421
- if (typeof lastMessage.content === 'string') {
422
- return lastMessage.content;
423
- }
424
- if (Array.isArray(lastMessage.content)) {
425
- return lastMessage.content.map((part) => part.text || part.value || '').join('');
426
- }
427
- }
428
- }
429
- return '';
413
+ return this.#extractResponse(result);
430
414
  }
431
415
  catch (error) {
432
416
  this.#logger.error('Agent chat failed', {
@@ -435,6 +419,24 @@ export class OpenAIAgentClient {
435
419
  throw error; // Propagate error
436
420
  }
437
421
  }
422
+ #extractResponse(result) {
423
+ if (result.finalOutput) {
424
+ return result.finalOutput;
425
+ }
426
+ // Fallback: extract from messages if finalOutput is missing
427
+ if (result.messages && Array.isArray(result.messages)) {
428
+ const lastMessage = result.messages[result.messages.length - 1];
429
+ if (lastMessage && lastMessage.content) {
430
+ if (typeof lastMessage.content === 'string') {
431
+ return lastMessage.content;
432
+ }
433
+ if (Array.isArray(lastMessage.content)) {
434
+ return lastMessage.content.map((part) => part.text || part.value || '').join('');
435
+ }
436
+ }
437
+ }
438
+ return '';
439
+ }
438
440
  #createMentor = async (question) => {
439
441
  const mentorModel = this.#settings.get('agent.mentorModel');
440
442
  if (!mentorModel) {
@@ -459,18 +461,9 @@ export class OpenAIAgentClient {
459
461
  const agentsInstructions = this.#executionContext?.isRemote() ? '' : getAgentsInstructions(cwd);
460
462
  const instructions = `${baseInstructions}\n\nEnvironment: ${envInfo}${agentsInstructions}`;
461
463
  // If mentor provider changed, reset mentor state to avoid mixing stores/prev ids across providers
462
- if (this.#mentorProvider !== mentorProvider) {
463
- this.#mentorAgent = null;
464
- this.#mentorStore = null;
465
- this.#mentorPreviousResponseId = null;
466
- this.#mentorRunner = null;
467
- this.#mentorProvider = mentorProvider;
468
- }
469
- // Initialize mentor runner/agent and conversation store if needed
470
- if (!this.#mentorRunner && mentorProvider !== 'openai') {
471
- this.#mentorRunner = this.#createRunner(mentorProvider);
472
- }
473
- if (!this.#mentorAgent) {
464
+ this.#mentorSession.switchProvider(mentorProvider);
465
+ const mentorRunner = this.#mentorSession.ensureRunner(mentorProvider, (providerId) => this.#createRunner(providerId));
466
+ const mentorAgent = this.#mentorSession.ensureAgent(() => {
474
467
  const reasoningEffort = this.#settings.get('agent.mentorReasoningEffort');
475
468
  const modelSettings = {};
476
469
  if (reasoningEffort && reasoningEffort !== 'default') {
@@ -479,52 +472,25 @@ export class OpenAIAgentClient {
479
472
  summary: 'auto',
480
473
  };
481
474
  }
482
- this.#mentorAgent = new Agent({
475
+ return new Agent({
483
476
  name: 'Mentor',
484
477
  model: mentorModel,
485
478
  ...(Object.keys(modelSettings).length > 0 ? { modelSettings } : {}),
486
479
  instructions,
487
480
  });
488
- this.#mentorStore = new ConversationStore();
489
- }
481
+ });
490
482
  try {
491
483
  // Add user message to conversation history
492
- this.#mentorStore.addUserMessage(question);
484
+ this.#mentorSession.addUserMessage(question);
493
485
  // Determine input based on provider
494
486
  // OpenAI uses previousResponseId for server-side history
495
487
  // Others need full conversation history from store
496
488
  const { supportsConversationChaining } = this.#getProviderCapabilities(mentorProvider);
497
- const input = supportsConversationChaining ? question : this.#mentorStore.getHistory();
498
- const result = await this.#runAgentWithProvider(mentorProvider, this.#mentorRunner, this.#mentorAgent, input, {
499
- stream: false,
500
- maxTurns: 1,
501
- ...(supportsConversationChaining && this.#mentorPreviousResponseId
502
- ? { previousResponseId: this.#mentorPreviousResponseId }
503
- : {}),
504
- });
489
+ const input = this.#mentorSession.getInput(question, supportsConversationChaining);
490
+ const result = await this.#runAgentWithProvider(mentorProvider, mentorRunner, mentorAgent, input, this.#mentorSession.getRunOptions(supportsConversationChaining));
505
491
  // Update conversation store with result
506
- this.#mentorStore.updateFromResult(result);
507
- // Track previousResponseId when provided by the provider.
508
- if (result.responseId) {
509
- this.#mentorPreviousResponseId = result.responseId;
510
- }
511
- // Extract response
512
- let response = '';
513
- if (result.finalOutput) {
514
- response = result.finalOutput;
515
- }
516
- else if (result.messages && Array.isArray(result.messages)) {
517
- const lastMessage = result.messages[result.messages.length - 1];
518
- if (lastMessage && lastMessage.content) {
519
- if (typeof lastMessage.content === 'string') {
520
- response = lastMessage.content;
521
- }
522
- else if (Array.isArray(lastMessage.content)) {
523
- response = lastMessage.content.map((part) => part.text || part.value || '').join('');
524
- }
525
- }
526
- }
527
- return response;
492
+ this.#mentorSession.updateFromResult(result);
493
+ return this.#extractResponse(result);
528
494
  }
529
495
  catch (error) {
530
496
  this.#logger.error('Mentor consultation failed', {
@@ -544,8 +510,47 @@ export class OpenAIAgentClient {
544
510
  // @ts-ignore - Definition update coming next
545
511
  askMentor: this.#createMentor,
546
512
  }, resolvedModel);
547
- // Determine if we should use the native applyPatchTool
548
- const shouldUseNativePatchTool = this.#provider === 'openai' && resolvedModel.startsWith('gpt-5.1');
513
+ const providerCapabilities = this.#getProviderCapabilities(this.#provider);
514
+ const shouldUseNativePatchToolForModel = shouldUseNativePatchTool({
515
+ providerId: this.#provider,
516
+ model: resolvedModel,
517
+ capabilities: providerCapabilities,
518
+ });
519
+ const tools = this.#buildAgentTools({
520
+ toolDefinitions,
521
+ resolvedModel,
522
+ reasoningEffort,
523
+ shouldUseNativePatchTool: shouldUseNativePatchToolForModel,
524
+ });
525
+ const modelSettings = this.#buildModelSettings({
526
+ reasoningEffort,
527
+ resolvedTemperature,
528
+ });
529
+ const agent = new Agent({
530
+ name,
531
+ model: resolvedModel,
532
+ ...(Object.keys(modelSettings).length > 0 ? { modelSettings } : {}),
533
+ instructions,
534
+ tools,
535
+ });
536
+ // Only add defaultRunOptions if an explicit effort is set (not
537
+ // 'default'). This ensures the API receives the param only when
538
+ // intended.
539
+ if (reasoningEffort && reasoningEffort !== 'default') {
540
+ agent.defaultRunOptions = {
541
+ ...(agent.defaultRunOptions || {}),
542
+ // Pass through to underlying client for models that support it
543
+ reasoning: { effort: reasoningEffort },
544
+ };
545
+ }
546
+ return agent;
547
+ }
548
+ #buildAgentTools({ toolDefinitions, resolvedModel, reasoningEffort, shouldUseNativePatchTool, }) {
549
+ const providerCapabilities = this.#getProviderCapabilities(this.#provider);
550
+ const useStrictToolSchema = shouldUseStrictToolSchema({
551
+ providerId: this.#provider,
552
+ capabilities: providerCapabilities,
553
+ });
549
554
  const tools = toolDefinitions
550
555
  .filter((definition) => {
551
556
  // Exclude custom apply_patch if we're using native one
@@ -557,7 +562,7 @@ export class OpenAIAgentClient {
557
562
  .map((definition) => wrapToolInvoke(createTool({
558
563
  name: definition.name,
559
564
  description: definition.description,
560
- parameters: this.#provider === 'openai' ? toOpenAIStrictToolSchema(definition.parameters) : definition.parameters,
565
+ parameters: useStrictToolSchema ? toOpenAIStrictToolSchema(definition.parameters) : definition.parameters,
561
566
  needsApproval: async (context, params) => definition.needsApproval(params, context),
562
567
  execute: async (params, _context, details) => {
563
568
  const maxOutputLengthValue = this.#settings.get('shell.maxOutputChars');
@@ -566,7 +571,7 @@ export class OpenAIAgentClient {
566
571
  // Check if this execution should be intercepted
567
572
  const rejectionMessage = await this.#checkToolInterceptors(definition.name, params, toolCallId);
568
573
  if (rejectionMessage) {
569
- this.#logger.info('Tool execution intercepted', {
574
+ this.#logger.debug('Tool execution intercepted', {
570
575
  tool: definition.name,
571
576
  params: JSON.stringify(params).substring(0, 100),
572
577
  });
@@ -609,7 +614,7 @@ export class OpenAIAgentClient {
609
614
  }
610
615
  const rejectionMessage = await this.#checkToolInterceptors('apply_patch', params, toolCallId);
611
616
  if (rejectionMessage) {
612
- this.#logger.info('Native tool execution intercepted', {
617
+ this.#logger.debug('Native tool execution intercepted', {
613
618
  tool: 'apply_patch',
614
619
  toolCallId,
615
620
  params: JSON.stringify(params).substring(0, 100),
@@ -631,13 +636,13 @@ export class OpenAIAgentClient {
631
636
  };
632
637
  }
633
638
  tools.push(nativePatchTool);
634
- this.#logger.info('Using native applyPatchTool from SDK', {
639
+ this.#logger.debug('Using native applyPatchTool from SDK', {
635
640
  model: resolvedModel,
636
641
  provider: this.#provider,
637
642
  });
638
643
  }
639
644
  else {
640
- this.#logger.info('Using custom apply_patch implementation', {
645
+ this.#logger.debug('Using custom apply_patch implementation', {
641
646
  model: resolvedModel,
642
647
  provider: this.#provider,
643
648
  });
@@ -652,6 +657,9 @@ export class OpenAIAgentClient {
652
657
  // handled differently, likely through approval mechanisms.
653
658
  tools.push(webTool);
654
659
  }
660
+ return tools;
661
+ }
662
+ #buildModelSettings({ reasoningEffort, resolvedTemperature, }) {
655
663
  // Build modelSettings only if an explicit effort value (other than
656
664
  // 'default') was provided. 'default' means we should not pass the
657
665
  // effort param and allow the underlying API to choose the default.
@@ -677,24 +685,10 @@ export class OpenAIAgentClient {
677
685
  service_tier: 'flex',
678
686
  };
679
687
  }
680
- const agent = new Agent({
681
- name,
682
- model: resolvedModel,
683
- ...(Object.keys(modelSettings).length > 0 ? { modelSettings } : {}),
684
- instructions,
685
- tools,
686
- });
687
- // Only add defaultRunOptions if an explicit effort is set (not
688
- // 'default'). This ensures the API receives the param only when
689
- // intended.
690
- if (reasoningEffort && reasoningEffort !== 'default') {
691
- agent.defaultRunOptions = {
692
- ...(agent.defaultRunOptions || {}),
693
- // Pass through to underlying client for models that support it
694
- reasoning: { effort: reasoningEffort },
695
- };
696
- }
697
- return agent;
688
+ return modelSettings;
689
+ }
690
+ getSettings() {
691
+ return this.#settings;
698
692
  }
699
693
  }
700
694
  //# sourceMappingURL=openai-agent-client.js.map