@qduc/term2 0.3.1 → 0.4.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 (552) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +46 -6
  3. package/dist/agent.js.map +1 -1
  4. package/dist/agent.test.d.ts +2 -0
  5. package/dist/agent.test.d.ts.map +1 -0
  6. package/dist/agent.test.js +198 -0
  7. package/dist/agent.test.js.map +1 -0
  8. package/dist/app.d.ts +5 -0
  9. package/dist/app.d.ts.map +1 -1
  10. package/dist/app.js +30 -14
  11. package/dist/app.js.map +1 -1
  12. package/dist/app.startup-banner.test.d.ts +2 -0
  13. package/dist/app.startup-banner.test.d.ts.map +1 -0
  14. package/dist/app.startup-banner.test.js +11 -0
  15. package/dist/app.startup-banner.test.js.map +1 -0
  16. package/dist/cli.d.ts +1 -1
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +18 -3
  19. package/dist/cli.js.map +1 -1
  20. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  21. package/dist/components/ApprovalPrompt.js +10 -10
  22. package/dist/components/ApprovalPrompt.js.map +1 -1
  23. package/dist/components/Banner.js +1 -1
  24. package/dist/components/Banner.js.map +1 -1
  25. package/dist/components/BottomArea.d.ts.map +1 -1
  26. package/dist/components/BottomArea.js +3 -4
  27. package/dist/components/BottomArea.js.map +1 -1
  28. package/dist/components/ChatMessage.d.ts +1 -0
  29. package/dist/components/ChatMessage.d.ts.map +1 -1
  30. package/dist/components/ChatMessage.js +2 -2
  31. package/dist/components/ChatMessage.js.map +1 -1
  32. package/dist/components/CommandMessage.d.ts.map +1 -1
  33. package/dist/components/CommandMessage.js +48 -3
  34. package/dist/components/CommandMessage.js.map +1 -1
  35. package/dist/components/CommandMessage.test.js +90 -0
  36. package/dist/components/CommandMessage.test.js.map +1 -1
  37. package/dist/components/Input/PopupManager.d.ts +3 -0
  38. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  39. package/dist/components/Input/PopupManager.js +2 -2
  40. package/dist/components/Input/PopupManager.js.map +1 -1
  41. package/dist/components/Input/insertions.d.ts.map +1 -1
  42. package/dist/components/Input/insertions.js +2 -2
  43. package/dist/components/Input/insertions.js.map +1 -1
  44. package/dist/components/Input/popup-key-navigation.d.ts +18 -0
  45. package/dist/components/Input/popup-key-navigation.d.ts.map +1 -0
  46. package/dist/components/Input/popup-key-navigation.js +16 -0
  47. package/dist/components/Input/popup-key-navigation.js.map +1 -0
  48. package/dist/components/Input/popup-key-navigation.test.d.ts +2 -0
  49. package/dist/components/Input/popup-key-navigation.test.d.ts.map +1 -0
  50. package/dist/components/Input/popup-key-navigation.test.js +73 -0
  51. package/dist/components/Input/popup-key-navigation.test.js.map +1 -0
  52. package/dist/components/Input/popup-props.d.ts.map +1 -1
  53. package/dist/components/Input/popup-props.js +2 -0
  54. package/dist/components/Input/popup-props.js.map +1 -1
  55. package/dist/components/Input/triggers.d.ts +1 -0
  56. package/dist/components/Input/triggers.d.ts.map +1 -1
  57. package/dist/components/Input/triggers.js +1 -0
  58. package/dist/components/Input/triggers.js.map +1 -1
  59. package/dist/components/InputBox.d.ts.map +1 -1
  60. package/dist/components/InputBox.js +130 -6
  61. package/dist/components/InputBox.js.map +1 -1
  62. package/dist/components/InputBox.test.js +42 -1
  63. package/dist/components/InputBox.test.js.map +1 -1
  64. package/dist/components/LiveResponse.d.ts +1 -3
  65. package/dist/components/LiveResponse.d.ts.map +1 -1
  66. package/dist/components/LiveResponse.js +5 -6
  67. package/dist/components/LiveResponse.js.map +1 -1
  68. package/dist/components/MarkdownRenderer.d.ts +5 -2
  69. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  70. package/dist/components/MarkdownRenderer.js +66 -45
  71. package/dist/components/MarkdownRenderer.js.map +1 -1
  72. package/dist/components/MessageList.d.ts +7 -1
  73. package/dist/components/MessageList.d.ts.map +1 -1
  74. package/dist/components/MessageList.js +98 -23
  75. package/dist/components/MessageList.js.map +1 -1
  76. package/dist/components/MessageList.test.js +177 -4
  77. package/dist/components/MessageList.test.js.map +1 -1
  78. package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
  79. package/dist/components/ModelSelectionMenu.js +54 -14
  80. package/dist/components/ModelSelectionMenu.js.map +1 -1
  81. package/dist/components/PathSelectionMenu.d.ts +2 -0
  82. package/dist/components/PathSelectionMenu.d.ts.map +1 -1
  83. package/dist/components/PathSelectionMenu.js +31 -12
  84. package/dist/components/PathSelectionMenu.js.map +1 -1
  85. package/dist/components/SettingsSelectionMenu.d.ts +1 -0
  86. package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
  87. package/dist/components/SettingsSelectionMenu.js +32 -23
  88. package/dist/components/SettingsSelectionMenu.js.map +1 -1
  89. package/dist/components/SettingsSelectionMenu.scroll.test.d.ts +2 -0
  90. package/dist/components/SettingsSelectionMenu.scroll.test.d.ts.map +1 -0
  91. package/dist/components/SettingsSelectionMenu.scroll.test.js +23 -0
  92. package/dist/components/SettingsSelectionMenu.scroll.test.js.map +1 -0
  93. package/dist/components/StatusBar.d.ts.map +1 -1
  94. package/dist/components/StatusBar.js +14 -14
  95. package/dist/components/StatusBar.js.map +1 -1
  96. package/dist/components/StatusBar.test.d.ts +2 -0
  97. package/dist/components/StatusBar.test.d.ts.map +1 -0
  98. package/dist/components/StatusBar.test.js +30 -0
  99. package/dist/components/StatusBar.test.js.map +1 -0
  100. package/dist/contracts/conversation.d.ts +1 -0
  101. package/dist/contracts/conversation.d.ts.map +1 -1
  102. package/dist/env-setup.d.ts +2 -0
  103. package/dist/env-setup.d.ts.map +1 -0
  104. package/dist/env-setup.js +7 -0
  105. package/dist/env-setup.js.map +1 -0
  106. package/dist/env-setup.test.d.ts +2 -0
  107. package/dist/env-setup.test.d.ts.map +1 -0
  108. package/dist/env-setup.test.js +6 -0
  109. package/dist/env-setup.test.js.map +1 -0
  110. package/dist/hooks/path-completion-filter.d.ts +4 -0
  111. package/dist/hooks/path-completion-filter.d.ts.map +1 -0
  112. package/dist/hooks/path-completion-filter.js +27 -0
  113. package/dist/hooks/path-completion-filter.js.map +1 -0
  114. package/dist/hooks/path-completion-filter.test.d.ts +2 -0
  115. package/dist/hooks/path-completion-filter.test.d.ts.map +1 -0
  116. package/dist/hooks/path-completion-filter.test.js +100 -0
  117. package/dist/hooks/path-completion-filter.test.js.map +1 -0
  118. package/dist/hooks/use-app-commands.d.ts +3 -1
  119. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  120. package/dist/hooks/use-app-commands.js +74 -6
  121. package/dist/hooks/use-app-commands.js.map +1 -1
  122. package/dist/hooks/use-app-commands.test.js +20 -3
  123. package/dist/hooks/use-app-commands.test.js.map +1 -1
  124. package/dist/hooks/use-conversation.d.ts +4 -9
  125. package/dist/hooks/use-conversation.d.ts.map +1 -1
  126. package/dist/hooks/use-conversation.js +32 -57
  127. package/dist/hooks/use-conversation.js.map +1 -1
  128. package/dist/hooks/use-mode-handlers.d.ts +3 -1
  129. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  130. package/dist/hooks/use-mode-handlers.js +8 -0
  131. package/dist/hooks/use-mode-handlers.js.map +1 -1
  132. package/dist/hooks/use-model-selection.d.ts +1 -1
  133. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  134. package/dist/hooks/use-model-selection.js +31 -16
  135. package/dist/hooks/use-model-selection.js.map +1 -1
  136. package/dist/hooks/use-model-selection.test.js +66 -1
  137. package/dist/hooks/use-model-selection.test.js.map +1 -1
  138. package/dist/hooks/use-path-completion.d.ts +1 -0
  139. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  140. package/dist/hooks/use-path-completion.js +22 -17
  141. package/dist/hooks/use-path-completion.js.map +1 -1
  142. package/dist/hooks/use-settings-completion.d.ts +2 -2
  143. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  144. package/dist/hooks/use-settings-completion.js +53 -18
  145. package/dist/hooks/use-settings-completion.js.map +1 -1
  146. package/dist/hooks/use-settings-completion.scroll.test.d.ts +2 -0
  147. package/dist/hooks/use-settings-completion.scroll.test.d.ts.map +1 -0
  148. package/dist/hooks/use-settings-completion.scroll.test.js +55 -0
  149. package/dist/hooks/use-settings-completion.scroll.test.js.map +1 -0
  150. package/dist/hooks/use-settings-completion.test.js +69 -79
  151. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  152. package/dist/hooks/use-settings-value-completion.d.ts +1 -2
  153. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  154. package/dist/hooks/use-settings-value-completion.js +47 -19
  155. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  156. package/dist/hooks/use-settings-value-completion.test.js +5 -18
  157. package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
  158. package/dist/hooks/use-slash-commands.d.ts +7 -0
  159. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  160. package/dist/hooks/use-slash-commands.js +20 -13
  161. package/dist/hooks/use-slash-commands.js.map +1 -1
  162. package/dist/hooks/use-slash-commands.test.js +52 -1
  163. package/dist/hooks/use-slash-commands.test.js.map +1 -1
  164. package/dist/hooks/use-trigger-detection.d.ts.map +1 -1
  165. package/dist/hooks/use-trigger-detection.js +7 -3
  166. package/dist/hooks/use-trigger-detection.js.map +1 -1
  167. package/dist/hooks/use-trigger-detection.test.d.ts +2 -0
  168. package/dist/hooks/use-trigger-detection.test.d.ts.map +1 -0
  169. package/dist/hooks/use-trigger-detection.test.js +59 -0
  170. package/dist/hooks/use-trigger-detection.test.js.map +1 -0
  171. package/dist/lib/openai-agent-client.d.ts +21 -0
  172. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  173. package/dist/lib/openai-agent-client.js +52 -17
  174. package/dist/lib/openai-agent-client.js.map +1 -1
  175. package/dist/lib/openai-agent-client.test.js +63 -0
  176. package/dist/lib/openai-agent-client.test.js.map +1 -1
  177. package/dist/lib/tool-invoke.d.ts +3 -2
  178. package/dist/lib/tool-invoke.d.ts.map +1 -1
  179. package/dist/lib/tool-invoke.js +69 -4
  180. package/dist/lib/tool-invoke.js.map +1 -1
  181. package/dist/lib/tool-invoke.test.js +25 -0
  182. package/dist/lib/tool-invoke.test.js.map +1 -1
  183. package/dist/non-interactive.d.ts.map +1 -1
  184. package/dist/non-interactive.js +3 -0
  185. package/dist/non-interactive.js.map +1 -1
  186. package/dist/prompts/gpt-5-modern.md +66 -0
  187. package/dist/prompts/gpt-5.md +10 -0
  188. package/dist/prompts/lite.md +10 -27
  189. package/dist/prompts/prompt-selector.js +2 -2
  190. package/dist/prompts/prompt-selector.js.map +1 -1
  191. package/dist/prompts/prompt-selector.test.js +7 -2
  192. package/dist/prompts/prompt-selector.test.js.map +1 -1
  193. package/dist/prompts/prompt-selector.test.ts +22 -2
  194. package/dist/prompts/prompt-selector.ts +2 -2
  195. package/dist/prompts/search-via-shell.d.ts +7 -0
  196. package/dist/prompts/search-via-shell.d.ts.map +1 -0
  197. package/dist/prompts/search-via-shell.js +59 -0
  198. package/dist/prompts/search-via-shell.js.map +1 -0
  199. package/dist/prompts/search-via-shell.test.d.ts +2 -0
  200. package/dist/prompts/search-via-shell.test.d.ts.map +1 -0
  201. package/dist/prompts/search-via-shell.test.js +40 -0
  202. package/dist/prompts/search-via-shell.test.js.map +1 -0
  203. package/dist/prompts/search-via-shell.test.ts +47 -0
  204. package/dist/prompts/search-via-shell.ts +71 -0
  205. package/dist/prompts/simple.md +40 -186
  206. package/dist/providers/ai-sdk-agents-adapter.d.ts +7 -0
  207. package/dist/providers/ai-sdk-agents-adapter.d.ts.map +1 -0
  208. package/dist/providers/ai-sdk-agents-adapter.js +80 -0
  209. package/dist/providers/ai-sdk-agents-adapter.js.map +1 -0
  210. package/dist/providers/ai-sdk-agents-adapter.test.d.ts +2 -0
  211. package/dist/providers/ai-sdk-agents-adapter.test.d.ts.map +1 -0
  212. package/dist/providers/ai-sdk-agents-adapter.test.js +158 -0
  213. package/dist/providers/ai-sdk-agents-adapter.test.js.map +1 -0
  214. package/dist/providers/ai-sdk-anthropic.provider.d.ts +14 -0
  215. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -0
  216. package/dist/providers/ai-sdk-anthropic.provider.js +18 -0
  217. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -0
  218. package/dist/providers/ai-sdk-google.provider.d.ts +14 -0
  219. package/dist/providers/ai-sdk-google.provider.d.ts.map +1 -0
  220. package/dist/providers/ai-sdk-google.provider.js +18 -0
  221. package/dist/providers/ai-sdk-google.provider.js.map +1 -0
  222. package/dist/providers/ai-sdk-logging-fetch.d.ts +11 -0
  223. package/dist/providers/ai-sdk-logging-fetch.d.ts.map +1 -0
  224. package/dist/providers/ai-sdk-logging-fetch.js +127 -0
  225. package/dist/providers/ai-sdk-logging-fetch.js.map +1 -0
  226. package/dist/providers/ai-sdk-logging-fetch.test.d.ts +2 -0
  227. package/dist/providers/ai-sdk-logging-fetch.test.d.ts.map +1 -0
  228. package/dist/providers/ai-sdk-logging-fetch.test.js +107 -0
  229. package/dist/providers/ai-sdk-logging-fetch.test.js.map +1 -0
  230. package/dist/providers/ai-sdk-message-normalizer.d.ts +2 -2
  231. package/dist/providers/ai-sdk-message-normalizer.d.ts.map +1 -1
  232. package/dist/providers/ai-sdk-message-normalizer.js +92 -47
  233. package/dist/providers/ai-sdk-message-normalizer.js.map +1 -1
  234. package/dist/providers/ai-sdk-message-normalizer.test.js +256 -16
  235. package/dist/providers/ai-sdk-message-normalizer.test.js.map +1 -1
  236. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +2 -0
  237. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
  238. package/dist/providers/ai-sdk-openai-compatible.provider.js +3 -3
  239. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
  240. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +25 -0
  241. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
  242. package/dist/providers/ai-sdk-openrouter.provider.d.ts +1 -1
  243. package/dist/providers/ai-sdk-openrouter.provider.d.ts.map +1 -1
  244. package/dist/providers/ai-sdk-openrouter.provider.js +2 -3
  245. package/dist/providers/ai-sdk-openrouter.provider.js.map +1 -1
  246. package/dist/providers/ai-sdk-openrouter.provider.test.js +23 -0
  247. package/dist/providers/ai-sdk-openrouter.provider.test.js.map +1 -1
  248. package/dist/providers/common/openai-compatible-messages.d.ts +1 -2
  249. package/dist/providers/common/openai-compatible-messages.d.ts.map +1 -1
  250. package/dist/providers/common/openai-compatible-messages.js +22 -48
  251. package/dist/providers/common/openai-compatible-messages.js.map +1 -1
  252. package/dist/providers/common/openai-compatible-messages.test.js +93 -1
  253. package/dist/providers/common/openai-compatible-messages.test.js.map +1 -1
  254. package/dist/providers/custom-provider-adapter.test.d.ts +2 -0
  255. package/dist/providers/custom-provider-adapter.test.d.ts.map +1 -0
  256. package/dist/providers/custom-provider-adapter.test.js +52 -0
  257. package/dist/providers/custom-provider-adapter.test.js.map +1 -0
  258. package/dist/providers/openai-compatible-behavior-gate.test.d.ts +2 -0
  259. package/dist/providers/openai-compatible-behavior-gate.test.d.ts.map +1 -0
  260. package/dist/providers/openai-compatible-behavior-gate.test.js +216 -0
  261. package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -0
  262. package/dist/providers/openai-compatible.provider.d.ts +10 -1
  263. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  264. package/dist/providers/openai-compatible.provider.js +341 -31
  265. package/dist/providers/openai-compatible.provider.js.map +1 -1
  266. package/dist/providers/openai-compatible.provider.test.d.ts +2 -0
  267. package/dist/providers/openai-compatible.provider.test.d.ts.map +1 -0
  268. package/dist/providers/openai-compatible.provider.test.js +462 -0
  269. package/dist/providers/openai-compatible.provider.test.js.map +1 -0
  270. package/dist/providers/openai.provider.js +2 -1
  271. package/dist/providers/openai.provider.js.map +1 -1
  272. package/dist/providers/openai.provider.test.d.ts +2 -0
  273. package/dist/providers/openai.provider.test.d.ts.map +1 -0
  274. package/dist/providers/openai.provider.test.js +22 -0
  275. package/dist/providers/openai.provider.test.js.map +1 -0
  276. package/dist/providers/openrouter.provider.js +28 -2
  277. package/dist/providers/openrouter.provider.js.map +1 -1
  278. package/dist/scripts/eval-auto-approval/dataset.d.ts +1 -1
  279. package/dist/services/conversation-events.d.ts +3 -0
  280. package/dist/services/conversation-events.d.ts.map +1 -1
  281. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  282. package/dist/services/conversation-result-builder.js +11 -1
  283. package/dist/services/conversation-result-builder.js.map +1 -1
  284. package/dist/services/conversation-result-builder.test.js +72 -0
  285. package/dist/services/conversation-result-builder.test.js.map +1 -1
  286. package/dist/services/conversation-session.d.ts +2 -1
  287. package/dist/services/conversation-session.d.ts.map +1 -1
  288. package/dist/services/conversation-session.js +30 -1
  289. package/dist/services/conversation-session.js.map +1 -1
  290. package/dist/services/file-service.js +1 -1
  291. package/dist/services/file-service.js.map +1 -1
  292. package/dist/services/logging-contract.d.ts +3 -3
  293. package/dist/services/logging-service.d.ts.map +1 -1
  294. package/dist/services/logging-service.js +18 -1
  295. package/dist/services/logging-service.js.map +1 -1
  296. package/dist/services/model-service.d.ts.map +1 -1
  297. package/dist/services/model-service.js +16 -8
  298. package/dist/services/model-service.js.map +1 -1
  299. package/dist/services/model-service.test.js +67 -1
  300. package/dist/services/model-service.test.js.map +1 -1
  301. package/dist/services/rtk-service.d.ts +23 -0
  302. package/dist/services/rtk-service.d.ts.map +1 -0
  303. package/dist/services/rtk-service.js +165 -0
  304. package/dist/services/rtk-service.js.map +1 -0
  305. package/dist/services/rtk-service.test.d.ts +2 -0
  306. package/dist/services/rtk-service.test.d.ts.map +1 -0
  307. package/dist/services/rtk-service.test.js +239 -0
  308. package/dist/services/rtk-service.test.js.map +1 -0
  309. package/dist/services/settings-persistence.d.ts +1 -0
  310. package/dist/services/settings-persistence.d.ts.map +1 -1
  311. package/dist/services/settings-persistence.js +28 -5
  312. package/dist/services/settings-persistence.js.map +1 -1
  313. package/dist/services/settings-persistence.test.js +55 -3
  314. package/dist/services/settings-persistence.test.js.map +1 -1
  315. package/dist/services/settings-schema.d.ts +55 -16
  316. package/dist/services/settings-schema.d.ts.map +1 -1
  317. package/dist/services/settings-schema.js +35 -4
  318. package/dist/services/settings-schema.js.map +1 -1
  319. package/dist/services/settings-schema.test.d.ts +2 -0
  320. package/dist/services/settings-schema.test.d.ts.map +1 -0
  321. package/dist/services/settings-schema.test.js +77 -0
  322. package/dist/services/settings-schema.test.js.map +1 -0
  323. package/dist/services/settings-service.d.ts.map +1 -1
  324. package/dist/services/settings-service.js +7 -4
  325. package/dist/services/settings-service.js.map +1 -1
  326. package/dist/services/settings-sources.d.ts.map +1 -1
  327. package/dist/services/settings-sources.js +1 -0
  328. package/dist/services/settings-sources.js.map +1 -1
  329. package/dist/services/shell-auto-approval-evaluator.d.ts +1 -1
  330. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
  331. package/dist/services/shell-auto-approval-evaluator.js +8 -2
  332. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  333. package/dist/services/stream-event-processor.d.ts.map +1 -1
  334. package/dist/services/stream-event-processor.js +10 -8
  335. package/dist/services/stream-event-processor.js.map +1 -1
  336. package/dist/services/stream-event-processor.test.js +32 -0
  337. package/dist/services/stream-event-processor.test.js.map +1 -1
  338. package/dist/services/terminal-result-collector.d.ts.map +1 -1
  339. package/dist/services/terminal-result-collector.js +1 -0
  340. package/dist/services/terminal-result-collector.js.map +1 -1
  341. package/dist/services/terminal-result-collector.test.js +22 -0
  342. package/dist/services/terminal-result-collector.test.js.map +1 -1
  343. package/dist/tools/apply-patch.d.ts +12 -4
  344. package/dist/tools/apply-patch.d.ts.map +1 -1
  345. package/dist/tools/apply-patch.js +204 -208
  346. package/dist/tools/apply-patch.js.map +1 -1
  347. package/dist/tools/apply-patch.test.js +44 -0
  348. package/dist/tools/apply-patch.test.js.map +1 -1
  349. package/dist/tools/code-context.d.ts +27 -0
  350. package/dist/tools/code-context.d.ts.map +1 -0
  351. package/dist/tools/code-context.js +512 -0
  352. package/dist/tools/code-context.js.map +1 -0
  353. package/dist/tools/code-context.test.d.ts +2 -0
  354. package/dist/tools/code-context.test.d.ts.map +1 -0
  355. package/dist/tools/code-context.test.js +368 -0
  356. package/dist/tools/code-context.test.js.map +1 -0
  357. package/dist/tools/create-file.d.ts.map +1 -1
  358. package/dist/tools/create-file.js +3 -2
  359. package/dist/tools/create-file.js.map +1 -1
  360. package/dist/tools/edit-healing.d.ts +4 -3
  361. package/dist/tools/edit-healing.d.ts.map +1 -1
  362. package/dist/tools/edit-healing.js +50 -20
  363. package/dist/tools/edit-healing.js.map +1 -1
  364. package/dist/tools/edit-healing.test.js +62 -0
  365. package/dist/tools/edit-healing.test.js.map +1 -1
  366. package/dist/tools/file-locks.d.ts +2 -0
  367. package/dist/tools/file-locks.d.ts.map +1 -0
  368. package/dist/tools/file-locks.js +21 -0
  369. package/dist/tools/file-locks.js.map +1 -0
  370. package/dist/tools/find-files.d.ts +1 -0
  371. package/dist/tools/find-files.d.ts.map +1 -1
  372. package/dist/tools/find-files.js +59 -139
  373. package/dist/tools/find-files.js.map +1 -1
  374. package/dist/tools/find-files.test.js +5 -10
  375. package/dist/tools/find-files.test.js.map +1 -1
  376. package/dist/tools/grep.d.ts +1 -0
  377. package/dist/tools/grep.d.ts.map +1 -1
  378. package/dist/tools/grep.js +10 -46
  379. package/dist/tools/grep.js.map +1 -1
  380. package/dist/tools/language-providers.d.ts +48 -0
  381. package/dist/tools/language-providers.d.ts.map +1 -0
  382. package/dist/tools/language-providers.js +244 -0
  383. package/dist/tools/language-providers.js.map +1 -0
  384. package/dist/tools/search-replace.d.ts +5 -2
  385. package/dist/tools/search-replace.d.ts.map +1 -1
  386. package/dist/tools/search-replace.js +201 -106
  387. package/dist/tools/search-replace.js.map +1 -1
  388. package/dist/tools/search-replace.test.js +111 -1
  389. package/dist/tools/search-replace.test.js.map +1 -1
  390. package/dist/tools/search.d.ts.map +1 -1
  391. package/dist/tools/search.js +5 -15
  392. package/dist/tools/search.js.map +1 -1
  393. package/dist/tools/shell.d.ts +2 -0
  394. package/dist/tools/shell.d.ts.map +1 -1
  395. package/dist/tools/shell.js +15 -7
  396. package/dist/tools/shell.js.map +1 -1
  397. package/dist/tools/shell.test.js +28 -0
  398. package/dist/tools/shell.test.js.map +1 -1
  399. package/dist/tools/tool-names.d.ts +3 -0
  400. package/dist/tools/tool-names.d.ts.map +1 -1
  401. package/dist/tools/tool-names.js +3 -0
  402. package/dist/tools/tool-names.js.map +1 -1
  403. package/dist/tools/tool-names.test.js +4 -1
  404. package/dist/tools/tool-names.test.js.map +1 -1
  405. package/dist/tools/tool-parameter-schema.test.js +18 -0
  406. package/dist/tools/tool-parameter-schema.test.js.map +1 -1
  407. package/dist/utils/command-safety/constants.d.ts.map +1 -1
  408. package/dist/utils/command-safety/constants.js +30 -5
  409. package/dist/utils/command-safety/constants.js.map +1 -1
  410. package/dist/utils/command-safety/index.d.ts.map +1 -1
  411. package/dist/utils/command-safety/index.js +3 -0
  412. package/dist/utils/command-safety/index.js.map +1 -1
  413. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  414. package/dist/utils/command-safety/path-analysis.js +8 -0
  415. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  416. package/dist/utils/command-safety.find.test.js +1 -1
  417. package/dist/utils/command-safety.find.test.js.map +1 -1
  418. package/dist/utils/command-safety.path.test.js +14 -0
  419. package/dist/utils/command-safety.path.test.js.map +1 -1
  420. package/dist/utils/command-safety.specialized-handlers.test.d.ts +2 -0
  421. package/dist/utils/command-safety.specialized-handlers.test.d.ts.map +1 -0
  422. package/dist/utils/command-safety.specialized-handlers.test.js +20 -0
  423. package/dist/utils/command-safety.specialized-handlers.test.js.map +1 -0
  424. package/dist/utils/conversation-event-handler.d.ts +8 -6
  425. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  426. package/dist/utils/conversation-event-handler.js +166 -46
  427. package/dist/utils/conversation-event-handler.js.map +1 -1
  428. package/dist/utils/conversation-event-handler.test.js +391 -12
  429. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  430. package/dist/utils/conversation-utils.d.ts +2 -0
  431. package/dist/utils/conversation-utils.d.ts.map +1 -1
  432. package/dist/utils/conversation-utils.js +2 -0
  433. package/dist/utils/conversation-utils.js.map +1 -1
  434. package/dist/utils/execute-shell.d.ts +5 -6
  435. package/dist/utils/execute-shell.d.ts.map +1 -1
  436. package/dist/utils/execute-shell.js +21 -11
  437. package/dist/utils/execute-shell.js.map +1 -1
  438. package/dist/utils/execute-shell.test.js +37 -6
  439. package/dist/utils/execute-shell.test.js.map +1 -1
  440. package/dist/utils/extract-command-messages.d.ts.map +1 -1
  441. package/dist/utils/extract-command-messages.js +4 -1
  442. package/dist/utils/extract-command-messages.js.map +1 -1
  443. package/dist/utils/flex-service-tier.d.ts +2 -0
  444. package/dist/utils/flex-service-tier.d.ts.map +1 -0
  445. package/dist/utils/flex-service-tier.js +20 -0
  446. package/dist/utils/flex-service-tier.js.map +1 -0
  447. package/dist/utils/flex-service-tier.test.d.ts +2 -0
  448. package/dist/utils/flex-service-tier.test.d.ts.map +1 -0
  449. package/dist/utils/flex-service-tier.test.js +25 -0
  450. package/dist/utils/flex-service-tier.test.js.map +1 -0
  451. package/dist/utils/log-truncation.d.ts +4 -2
  452. package/dist/utils/log-truncation.d.ts.map +1 -1
  453. package/dist/utils/log-truncation.js +143 -41
  454. package/dist/utils/log-truncation.js.map +1 -1
  455. package/dist/utils/log-truncation.test.js +131 -1
  456. package/dist/utils/log-truncation.test.js.map +1 -1
  457. package/dist/utils/project-tree.d.ts +14 -0
  458. package/dist/utils/project-tree.d.ts.map +1 -0
  459. package/dist/utils/project-tree.js +111 -0
  460. package/dist/utils/project-tree.js.map +1 -0
  461. package/dist/utils/project-tree.test.d.ts +2 -0
  462. package/dist/utils/project-tree.test.d.ts.map +1 -0
  463. package/dist/utils/project-tree.test.js +149 -0
  464. package/dist/utils/project-tree.test.js.map +1 -0
  465. package/dist/utils/provider-traffic-extractor.d.ts.map +1 -1
  466. package/dist/utils/provider-traffic-extractor.js +0 -1
  467. package/dist/utils/provider-traffic-extractor.js.map +1 -1
  468. package/dist/utils/streaming-session-factory.d.ts +1 -3
  469. package/dist/utils/streaming-session-factory.d.ts.map +1 -1
  470. package/dist/utils/streaming-session-factory.js +29 -10
  471. package/dist/utils/streaming-session-factory.js.map +1 -1
  472. package/dist/utils/streaming-session-factory.test.js +47 -15
  473. package/dist/utils/streaming-session-factory.test.js.map +1 -1
  474. package/dist/utils/subsequence-filter.d.ts +8 -0
  475. package/dist/utils/subsequence-filter.d.ts.map +1 -0
  476. package/dist/utils/subsequence-filter.js +47 -0
  477. package/dist/utils/subsequence-filter.js.map +1 -0
  478. package/dist/utils/terminal-clear.d.ts +7 -0
  479. package/dist/utils/terminal-clear.d.ts.map +1 -0
  480. package/dist/utils/terminal-clear.js +5 -0
  481. package/dist/utils/terminal-clear.js.map +1 -0
  482. package/dist/utils/terminal-clear.test.d.ts +2 -0
  483. package/dist/utils/terminal-clear.test.d.ts.map +1 -0
  484. package/dist/utils/terminal-clear.test.js +13 -0
  485. package/dist/utils/terminal-clear.test.js.map +1 -0
  486. package/dist/utils/token-usage.d.ts +13 -1
  487. package/dist/utils/token-usage.d.ts.map +1 -1
  488. package/dist/utils/token-usage.js +119 -28
  489. package/dist/utils/token-usage.js.map +1 -1
  490. package/dist/utils/token-usage.test.js +135 -3
  491. package/dist/utils/token-usage.test.js.map +1 -1
  492. package/package.json +4 -4
  493. package/dist/providers/openai-compatible/api.d.ts +0 -17
  494. package/dist/providers/openai-compatible/api.d.ts.map +0 -1
  495. package/dist/providers/openai-compatible/api.js +0 -58
  496. package/dist/providers/openai-compatible/api.js.map +0 -1
  497. package/dist/providers/openai-compatible/model.d.ts +0 -17
  498. package/dist/providers/openai-compatible/model.d.ts.map +0 -1
  499. package/dist/providers/openai-compatible/model.js +0 -473
  500. package/dist/providers/openai-compatible/model.js.map +0 -1
  501. package/dist/providers/openai-compatible/provider.d.ts +0 -22
  502. package/dist/providers/openai-compatible/provider.d.ts.map +0 -1
  503. package/dist/providers/openai-compatible/provider.js +0 -43
  504. package/dist/providers/openai-compatible/provider.js.map +0 -1
  505. package/dist/providers/openai-compatible/reasoning-content.test.d.ts +0 -2
  506. package/dist/providers/openai-compatible/reasoning-content.test.d.ts.map +0 -1
  507. package/dist/providers/openai-compatible/reasoning-content.test.js +0 -258
  508. package/dist/providers/openai-compatible/reasoning-content.test.js.map +0 -1
  509. package/dist/providers/openai-compatible/utils.d.ts +0 -3
  510. package/dist/providers/openai-compatible/utils.d.ts.map +0 -1
  511. package/dist/providers/openai-compatible/utils.js +0 -11
  512. package/dist/providers/openai-compatible/utils.js.map +0 -1
  513. package/dist/providers/openrouter/api.d.ts +0 -39
  514. package/dist/providers/openrouter/api.d.ts.map +0 -1
  515. package/dist/providers/openrouter/api.js +0 -164
  516. package/dist/providers/openrouter/api.js.map +0 -1
  517. package/dist/providers/openrouter/converters.d.ts +0 -8
  518. package/dist/providers/openrouter/converters.d.ts.map +0 -1
  519. package/dist/providers/openrouter/converters.js +0 -391
  520. package/dist/providers/openrouter/converters.js.map +0 -1
  521. package/dist/providers/openrouter/converters.test.d.ts +0 -2
  522. package/dist/providers/openrouter/converters.test.d.ts.map +0 -1
  523. package/dist/providers/openrouter/converters.test.js +0 -179
  524. package/dist/providers/openrouter/converters.test.js.map +0 -1
  525. package/dist/providers/openrouter/index.d.ts +0 -4
  526. package/dist/providers/openrouter/index.d.ts.map +0 -1
  527. package/dist/providers/openrouter/index.js +0 -4
  528. package/dist/providers/openrouter/index.js.map +0 -1
  529. package/dist/providers/openrouter/model.d.ts +0 -14
  530. package/dist/providers/openrouter/model.d.ts.map +0 -1
  531. package/dist/providers/openrouter/model.js +0 -457
  532. package/dist/providers/openrouter/model.js.map +0 -1
  533. package/dist/providers/openrouter/provider.d.ts +0 -15
  534. package/dist/providers/openrouter/provider.d.ts.map +0 -1
  535. package/dist/providers/openrouter/provider.js +0 -21
  536. package/dist/providers/openrouter/provider.js.map +0 -1
  537. package/dist/providers/openrouter/reasoning-content.test.d.ts +0 -2
  538. package/dist/providers/openrouter/reasoning-content.test.d.ts.map +0 -1
  539. package/dist/providers/openrouter/reasoning-content.test.js +0 -122
  540. package/dist/providers/openrouter/reasoning-content.test.js.map +0 -1
  541. package/dist/providers/openrouter/utils.d.ts +0 -11
  542. package/dist/providers/openrouter/utils.d.ts.map +0 -1
  543. package/dist/providers/openrouter/utils.js +0 -29
  544. package/dist/providers/openrouter/utils.js.map +0 -1
  545. package/dist/providers/openrouter.api.retry.test.d.ts +0 -2
  546. package/dist/providers/openrouter.api.retry.test.d.ts.map +0 -1
  547. package/dist/providers/openrouter.api.retry.test.js +0 -148
  548. package/dist/providers/openrouter.api.retry.test.js.map +0 -1
  549. package/dist/providers/openrouter.test.d.ts +0 -2
  550. package/dist/providers/openrouter.test.d.ts.map +0 -1
  551. package/dist/providers/openrouter.test.js +0 -1449
  552. package/dist/providers/openrouter.test.js.map +0 -1
@@ -0,0 +1,59 @@
1
+ import { spawnSync } from 'child_process';
2
+ function defaultCheckBinary(cmd) {
3
+ try {
4
+ const result = spawnSync(cmd, ['--version'], {
5
+ stdio: 'ignore',
6
+ windowsHide: true,
7
+ });
8
+ return result.status === 0;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ }
14
+ export function getSearchViaShellAddendum(options = {}) {
15
+ const checkBinary = options.checkBinary ?? defaultCheckBinary;
16
+ const isRemote = options.executionContext?.isRemote() ?? false;
17
+ // For remote hosts, we can't synchronously check binary availability.
18
+ // Default to grep/find which are universally available on Unix-like systems.
19
+ const hasRg = isRemote ? false : checkBinary('rg');
20
+ const hasFd = isRemote ? false : checkBinary('fd');
21
+ const header = `### Searching via the shell
22
+
23
+ Use the \`shell\` tool with the standard CLI binaries.`;
24
+ const textSearch = hasRg
25
+ ? `**For text search**, use \`rg\` (ripgrep). Examples:
26
+ - \`rg "pattern" src/\` — basic search, respects \`.gitignore\` by default.
27
+ - \`rg -i "pattern" .\` — case-insensitive.
28
+ - \`rg --no-ignore "pattern" .\` — when you need to search \`node_modules\`, build output, or anything in \`.gitignore\`.
29
+ - \`rg -uu "pattern" .\` — include hidden + gitignored.
30
+ - \`rg -g '*.ts' "pattern" .\` — restrict by glob.
31
+ - \`rg -t ts "pattern" .\` — restrict by language preset.
32
+ - \`rg -n "pattern" .\` — show line numbers (useful for follow-up edits).
33
+ - \`rg -l "pattern" .\` — list files only.
34
+ - \`rg -C 3 "pattern" .\` — 3 lines of context.
35
+ - **Always pass an explicit path** (e.g. \`.\` or \`src/\`) to \`rg\`. When no path is given and stdin is a pipe, ripgrep reads stdin instead of searching the filesystem, returning no results.`
36
+ : `**For text search**, use \`grep\`. Examples:
37
+ - \`grep -rn "pattern" src/\` — recursive search with line numbers.
38
+ - \`grep -ri "pattern" src/\` — case-insensitive recursive search.
39
+ - \`grep -rl "pattern" src/\` — list matching files only.
40
+ - \`grep -C 3 "pattern" src/\` — show 3 lines of context.`;
41
+ const fileSearch = hasFd
42
+ ? `**For file search**, use \`fd\`. Examples:
43
+ - \`fd '\\.ts$'\` — regex over basenames.
44
+ - \`fd -e ts\` — by extension.
45
+ - \`fd -H -I\` — include hidden + gitignored (\`-uu\` style).
46
+ - \`fd 'pattern' path/\` — scoped to a directory.`
47
+ : `**For file search**, use \`find\`. Examples:
48
+ - \`find src/ -type f -name '*.ts'\` — search a subtree by basename glob.
49
+ - **Always search from a specific path, not \`/\`.** Scanning the whole filesystem can exhaust resources on large trees.
50
+ - When using \`find -regex\` with alternation, put the longest alternative first: \`'.*\\.(tsx|ts)'\` works; \`'.*\\.(ts|tsx)'\` silently skips \`.tsx\`.`;
51
+ const hygiene = `**General shell hygiene:**
52
+ - Quote paths that contain spaces.
53
+ - Prefer absolute paths or paths relative to a known root; avoid \`cd\`.
54
+ - When chaining commands, use \`&&\` for "stop on first failure", \`;\` only if you accept failures, never raw newlines.
55
+ - Don't use \`cat\` / \`head\` / \`tail\` / \`sed\` / \`echo\` for reading or writing files — use the dedicated \`read_file\`, \`apply_patch\`, and \`search_replace\` tools. The shell is for *search* and *one-shot inspection*, not for editing.
56
+ - For destructive operations (deletes, force-pushes, schema migrations), pause and confirm before running.`;
57
+ return `${header}\n\n${textSearch}\n\n${fileSearch}\n\n${hygiene}`;
58
+ }
59
+ //# sourceMappingURL=search-via-shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-via-shell.js","sourceRoot":"","sources":["../../source/prompts/search-via-shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG1C,SAAS,kBAAkB,CAAC,GAAW;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,EAAE;YAC3C,KAAK,EAAE,QAAQ;YACf,WAAW,EAAE,IAAI;SAClB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,yBAAyB,CAAC,UAAiC,EAAE;IAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,kBAAkB,CAAC;IAC9D,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,KAAK,CAAC;IAE/D,sEAAsE;IACtE,6EAA6E;IAC7E,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAEnD,MAAM,MAAM,GAAG;;uDAEsC,CAAC;IAEtD,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC;;;;;;;;;;iMAU2L;QAC7L,CAAC,CAAC;;;;0DAIoD,CAAC;IAEzD,MAAM,UAAU,GAAG,KAAK;QACtB,CAAC,CAAC;;;;kDAI4C;QAC9C,CAAC,CAAC;;;0JAGoJ,CAAC;IAEzJ,MAAM,OAAO,GAAG;;;;;2GAKyF,CAAC;IAE1G,OAAO,GAAG,MAAM,OAAO,UAAU,OAAO,UAAU,OAAO,OAAO,EAAE,CAAC;AACrE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=search-via-shell.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-via-shell.test.d.ts","sourceRoot":"","sources":["../../source/prompts/search-via-shell.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import test from 'ava';
2
+ import { getSearchViaShellAddendum } from './search-via-shell.js';
3
+ test('getSearchViaShellAddendum includes rg and fd when both available', (t) => {
4
+ const result = getSearchViaShellAddendum({
5
+ checkBinary: () => true,
6
+ });
7
+ t.true(result.includes('use `rg` (ripgrep)'));
8
+ t.true(result.includes('use `fd`'));
9
+ t.false(result.includes('use `grep`'));
10
+ t.false(result.includes('use `find`'));
11
+ t.true(result.includes('General shell hygiene'));
12
+ });
13
+ test('getSearchViaShellAddendum falls back to grep when rg is missing', (t) => {
14
+ const result = getSearchViaShellAddendum({
15
+ checkBinary: (cmd) => cmd === 'fd',
16
+ });
17
+ t.false(result.includes('use `rg` (ripgrep)'));
18
+ t.true(result.includes('use `grep`'));
19
+ t.true(result.includes('use `fd`'));
20
+ t.false(result.includes('use `find`'));
21
+ });
22
+ test('getSearchViaShellAddendum falls back to find when fd is missing', (t) => {
23
+ const result = getSearchViaShellAddendum({
24
+ checkBinary: (cmd) => cmd === 'rg',
25
+ });
26
+ t.true(result.includes('use `rg` (ripgrep)'));
27
+ t.false(result.includes('use `fd`'));
28
+ t.true(result.includes('use `find`'));
29
+ });
30
+ test('getSearchViaShellAddendum falls back to grep and find when both missing', (t) => {
31
+ const result = getSearchViaShellAddendum({
32
+ checkBinary: () => false,
33
+ });
34
+ t.false(result.includes('use `rg` (ripgrep)'));
35
+ t.true(result.includes('use `grep`'));
36
+ t.false(result.includes('use `fd`'));
37
+ t.true(result.includes('use `find`'));
38
+ t.true(result.includes('General shell hygiene'));
39
+ });
40
+ //# sourceMappingURL=search-via-shell.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-via-shell.test.js","sourceRoot":"","sources":["../../source/prompts/search-via-shell.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,KAAK,CAAC;AACvB,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,IAAI,CAAC,kEAAkE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC7E,MAAM,MAAM,GAAG,yBAAyB,CAAC;QACvC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI;KACxB,CAAC,CAAC;IAEH,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC5E,MAAM,MAAM,GAAG,yBAAyB,CAAC;QACvC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI;KACnC,CAAC,CAAC;IAEH,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACpC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iEAAiE,EAAE,CAAC,CAAC,EAAE,EAAE;IAC5E,MAAM,MAAM,GAAG,yBAAyB,CAAC;QACvC,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI;KACnC,CAAC,CAAC;IAEH,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,yEAAyE,EAAE,CAAC,CAAC,EAAE,EAAE;IACpF,MAAM,MAAM,GAAG,yBAAyB,CAAC;QACvC,WAAW,EAAE,GAAG,EAAE,CAAC,KAAK;KACzB,CAAC,CAAC;IAEH,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC/C,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC"}
@@ -0,0 +1,47 @@
1
+ import test from 'ava';
2
+ import { getSearchViaShellAddendum } from './search-via-shell.js';
3
+
4
+ test('getSearchViaShellAddendum includes rg and fd when both available', (t) => {
5
+ const result = getSearchViaShellAddendum({
6
+ checkBinary: () => true,
7
+ });
8
+
9
+ t.true(result.includes('use `rg` (ripgrep)'));
10
+ t.true(result.includes('use `fd`'));
11
+ t.false(result.includes('use `grep`'));
12
+ t.false(result.includes('use `find`'));
13
+ t.true(result.includes('General shell hygiene'));
14
+ });
15
+
16
+ test('getSearchViaShellAddendum falls back to grep when rg is missing', (t) => {
17
+ const result = getSearchViaShellAddendum({
18
+ checkBinary: (cmd) => cmd === 'fd',
19
+ });
20
+
21
+ t.false(result.includes('use `rg` (ripgrep)'));
22
+ t.true(result.includes('use `grep`'));
23
+ t.true(result.includes('use `fd`'));
24
+ t.false(result.includes('use `find`'));
25
+ });
26
+
27
+ test('getSearchViaShellAddendum falls back to find when fd is missing', (t) => {
28
+ const result = getSearchViaShellAddendum({
29
+ checkBinary: (cmd) => cmd === 'rg',
30
+ });
31
+
32
+ t.true(result.includes('use `rg` (ripgrep)'));
33
+ t.false(result.includes('use `fd`'));
34
+ t.true(result.includes('use `find`'));
35
+ });
36
+
37
+ test('getSearchViaShellAddendum falls back to grep and find when both missing', (t) => {
38
+ const result = getSearchViaShellAddendum({
39
+ checkBinary: () => false,
40
+ });
41
+
42
+ t.false(result.includes('use `rg` (ripgrep)'));
43
+ t.true(result.includes('use `grep`'));
44
+ t.false(result.includes('use `fd`'));
45
+ t.true(result.includes('use `find`'));
46
+ t.true(result.includes('General shell hygiene'));
47
+ });
@@ -0,0 +1,71 @@
1
+ import { spawnSync } from 'child_process';
2
+ import { ExecutionContext } from '../services/execution-context.js';
3
+
4
+ function defaultCheckBinary(cmd: string): boolean {
5
+ try {
6
+ const result = spawnSync(cmd, ['--version'], {
7
+ stdio: 'ignore',
8
+ windowsHide: true,
9
+ });
10
+ return result.status === 0;
11
+ } catch {
12
+ return false;
13
+ }
14
+ }
15
+
16
+ export interface SearchViaShellOptions {
17
+ checkBinary?: (cmd: string) => boolean;
18
+ executionContext?: ExecutionContext;
19
+ }
20
+
21
+ export function getSearchViaShellAddendum(options: SearchViaShellOptions = {}): string {
22
+ const checkBinary = options.checkBinary ?? defaultCheckBinary;
23
+ const isRemote = options.executionContext?.isRemote() ?? false;
24
+
25
+ // For remote hosts, we can't synchronously check binary availability.
26
+ // Default to grep/find which are universally available on Unix-like systems.
27
+ const hasRg = isRemote ? false : checkBinary('rg');
28
+ const hasFd = isRemote ? false : checkBinary('fd');
29
+
30
+ const header = `### Searching via the shell
31
+
32
+ Use the \`shell\` tool with the standard CLI binaries.`;
33
+
34
+ const textSearch = hasRg
35
+ ? `**For text search**, use \`rg\` (ripgrep). Examples:
36
+ - \`rg "pattern" src/\` — basic search, respects \`.gitignore\` by default.
37
+ - \`rg -i "pattern" .\` — case-insensitive.
38
+ - \`rg --no-ignore "pattern" .\` — when you need to search \`node_modules\`, build output, or anything in \`.gitignore\`.
39
+ - \`rg -uu "pattern" .\` — include hidden + gitignored.
40
+ - \`rg -g '*.ts' "pattern" .\` — restrict by glob.
41
+ - \`rg -t ts "pattern" .\` — restrict by language preset.
42
+ - \`rg -n "pattern" .\` — show line numbers (useful for follow-up edits).
43
+ - \`rg -l "pattern" .\` — list files only.
44
+ - \`rg -C 3 "pattern" .\` — 3 lines of context.
45
+ - **Always pass an explicit path** (e.g. \`.\` or \`src/\`) to \`rg\`. When no path is given and stdin is a pipe, ripgrep reads stdin instead of searching the filesystem, returning no results.`
46
+ : `**For text search**, use \`grep\`. Examples:
47
+ - \`grep -rn "pattern" src/\` — recursive search with line numbers.
48
+ - \`grep -ri "pattern" src/\` — case-insensitive recursive search.
49
+ - \`grep -rl "pattern" src/\` — list matching files only.
50
+ - \`grep -C 3 "pattern" src/\` — show 3 lines of context.`;
51
+
52
+ const fileSearch = hasFd
53
+ ? `**For file search**, use \`fd\`. Examples:
54
+ - \`fd '\\.ts$'\` — regex over basenames.
55
+ - \`fd -e ts\` — by extension.
56
+ - \`fd -H -I\` — include hidden + gitignored (\`-uu\` style).
57
+ - \`fd 'pattern' path/\` — scoped to a directory.`
58
+ : `**For file search**, use \`find\`. Examples:
59
+ - \`find src/ -type f -name '*.ts'\` — search a subtree by basename glob.
60
+ - **Always search from a specific path, not \`/\`.** Scanning the whole filesystem can exhaust resources on large trees.
61
+ - When using \`find -regex\` with alternation, put the longest alternative first: \`'.*\\.(tsx|ts)'\` works; \`'.*\\.(ts|tsx)'\` silently skips \`.tsx\`.`;
62
+
63
+ const hygiene = `**General shell hygiene:**
64
+ - Quote paths that contain spaces.
65
+ - Prefer absolute paths or paths relative to a known root; avoid \`cd\`.
66
+ - When chaining commands, use \`&&\` for "stop on first failure", \`;\` only if you accept failures, never raw newlines.
67
+ - Don't use \`cat\` / \`head\` / \`tail\` / \`sed\` / \`echo\` for reading or writing files — use the dedicated \`read_file\`, \`apply_patch\`, and \`search_replace\` tools. The shell is for *search* and *one-shot inspection*, not for editing.
68
+ - For destructive operations (deletes, force-pushes, schema migrations), pause and confirm before running.`;
69
+
70
+ return `${header}\n\n${textSearch}\n\n${fileSearch}\n\n${hygiene}`;
71
+ }
@@ -1,201 +1,55 @@
1
- You are an interactive CLI tool that helps users with software engineering tasks.
1
+ You are an interactive CLI coding assistant. Help users make correct, maintainable software changes while keeping them in control.
2
2
 
3
- # Core Principles
3
+ # Operating Principles
4
4
 
5
- - **Read before editing**: NEVER modify code you haven't read first
6
- - **Follow existing patterns**: Match the codebase's style, conventions, and practices
7
- - **Minimal changes**: Only make requested changes, no extras or improvements
8
- - **Complete tasks**: Finish what you start, don't stop mid-task
9
- - **Parallel tools**: Call independent tools together for better performance
5
+ - Treat the codebase as the source of truth. Read relevant files before editing.
6
+ - Make the smallest change that solves the user's request. Avoid unrelated cleanup, speculative features, and broad refactors.
7
+ - Follow existing patterns, naming, style, architecture, and test conventions.
8
+ - Work in small increments. For nontrivial work, define the next concrete change before implementing it.
9
+ - Keep human judgment in the loop. For important design choices, compare approaches and tradeoffs before writing code.
10
+ - Be defensive with generated code: review it, test it, and revise when evidence shows it is wrong.
11
+ - Finish what you start. Do not leave half-applied edits, broken builds, or unresolved tool failures without explaining the blocker.
10
12
 
11
13
  # Workflow
12
14
 
13
- 1. Explore codebase Use find_files and grep
14
- 2. Understand code Use grep and read_file
15
- 3. Read file content Use read_file
16
- 4. Modify code Read with grep or read_file, then search_replace
17
- 5. Run tests/build Use Shell
18
- 6. Unclear requirements Ask user first
19
- 7. Stuck or complex reasoning → ask_mentor
15
+ 1. Gather only the context needed for the task.
16
+ 2. Identify the next concrete change.
17
+ 3. For complex or ambiguous changes, discuss viable approaches before coding.
18
+ 4. Edit only files you have inspected.
19
+ 5. Run the narrowest useful tests or checks.
20
+ 6. Summarize what changed, what was verified, and any remaining risk.
20
21
 
21
- # What NOT to Do
22
+ # Tool Use
22
23
 
23
- - Over-engineer or add unrequested features
24
- - Add error handling for impossible scenarios
25
- - Create abstractions for one-time operations
26
- - Add comments/types to unchanged code
27
- - Keep unused code with hacks like `_vars` or `// removed`
24
+ - Prefer `read_file` for reading file contents.
25
+ - Use `search_replace` for precise edits to existing files.
26
+ - Use `create_file` only when a new file is clearly required.
27
+ - Use `Shell` for tests, builds, git, package commands, and user-requested terminal operations.
28
+ - Run independent tool calls in parallel when they do not depend on each other.
29
+ - Do not use shell commands to print user-facing answers. Respond directly.
28
30
 
29
- # Error Handling
30
-
31
- - After 2-3 failures on same operation, explain the blocker
32
- - Try different approaches, don't repeat failures
33
- - **ask_mentor** for advice if you are stuck or need a second opinion
34
-
35
- # Communication
36
-
37
- - Be concise (terminal output)
38
- - Output text directly, never via command outputs (echo, comments)
39
-
40
- # Planning Complex Tasks
41
-
42
- Create and maintain a short, step-by-step plan for the task. Each step should be a single concise action (no more than 5–7 words) and each step should have a status: pending, in progress, or completed.
43
-
44
- Keep the plan up to date as the task moves forward. When a step is finished, change its status to completed and mark the next step as in progress. There should always be exactly one step marked as in progress until the entire task is finished.
45
-
46
- When all steps are finished, ensure every step is marked as completed.
47
-
48
- Use a plan when:
49
-
50
- - The task is non-trivial and will require multiple actions over a long time horizon.
51
- - There are logical phases or dependencies where sequencing matters.
52
- - The work has ambiguity that benefits from outlining high-level goals.
53
- - When the user asked you to do more than one thing in a single prompt
54
-
55
- ### Examples
56
-
57
- **High-quality plans**
58
-
59
- Example 1:
60
-
61
- 1. Add CLI entry with file args
62
- 2. Parse Markdown via CommonMark library
63
- 3. Apply semantic HTML template
64
- 4. Handle code blocks, images, links
65
- 5. Add error handling for invalid files
66
-
67
- **Low-quality plans**
68
-
69
- Example 1:
70
-
71
- 1. Create CLI tool
72
- 2. Add Markdown parser
73
- 3. Convert to HTML
74
-
75
- # Tools
76
-
77
- ## read_file
78
-
79
- Read file content with line numbers (1-indexed). Supports reading specific line ranges.
80
-
81
- - Use for reading entire files or specific sections
82
- - Automatically adds line numbers (like `cat -n`)
83
- - Supports `start_line` and `end_line` for partial reads
84
- - Prefer this over Shell commands like `sed` or `cat`
85
-
86
- ## find_files
87
-
88
- Search for files by name or glob pattern in the workspace.
89
-
90
- - Use for finding files by pattern (e.g., `*.ts`, `**/*.test.ts`)
91
- - Supports glob patterns for flexible matching
92
- - Returns up to 50 results by default (configurable with `max_results`)
93
- - Prefer this over Shell commands like `ls` or `rg --files`
94
-
95
- ## create_file
96
-
97
- Create a new file with the specified content.
31
+ # Planning
98
32
 
99
- - Use this for explicitly creating new files
100
- - Fails if the file already exists (use `search_replace` for existing files)
101
- - Automatically creates parent directories if they don't exist
33
+ Use a short plan when the task has multiple steps, ambiguity, or meaningful sequencing. Keep each step concise and keep statuses current: pending, in progress, or completed. Avoid plans for simple questions or single obvious edits.
102
34
 
103
- ## search_replace
35
+ # Quality Bar
104
36
 
105
- Modify files with exact text replacement.
37
+ - Write tests first for behavior changes when practical.
38
+ - Test behavior rather than implementation details.
39
+ - Prefer public interfaces and deterministic tests.
40
+ - Do not add comments, types, abstractions, or error handling unless they serve the requested change.
41
+ - Remove obsolete code instead of hiding it with unused variables or placeholder comments.
42
+ - Preserve user changes and unrelated work.
106
43
 
107
- - Include surrounding context (whitespace, indentation) for accuracy
108
- - `replace_all: true` updates all occurrences; `false` expects single match
109
- - For large replacements, include 3+ lines of context
110
- - Use `<...>` on its own line in `search_content` to skip unchanged middle content (gap matching)
111
- - Saves tokens: provide only the head and tail anchors, omit the middle
112
- - Example: `"function foo() {\n<...>\nreturn result;\n}"` matches from head to tail
113
- - `replace_content` is always the full replacement text (no `<...>` marker)
114
-
115
- ## grep
116
-
117
- Search patterns across files. Always use before editing.
118
-
119
- - Be specific: `function myFunc(` not just `myFunc`
120
- - Use `file_pattern` (e.g., `*.ts`) to narrow scope
121
- - grep uses `rg` under the hood
122
- - Use for finding code patterns, not file names (use find_files instead)
123
-
124
- ## Shell
125
-
126
- Execute shell commands (tests, builds, git, dependencies).
127
-
128
- - Use for running tests, builds, git operations, package management
129
- - Single commands preferred; provide `timeout_ms` for long operations
130
- - For reading files, use read_file tool instead
131
- - For finding files, use find_files tool instead
132
-
133
- ## ask_mentor
134
-
135
- Use `ask_mentor` when you need high-level guidance, architectural advice, or are stuck on a bug.
136
-
137
- - Mentor is a single-shot prompt and has no codebase access
138
- - Provide a tight summary: goal, constraints, what you tried, and 1-2 concrete questions
139
- - Include only essential details and avoid file dumps
140
- - Ask after 2-3 failed attempts or when a decision has trade-offs you can’t resolve
141
-
142
- # Codebase Exploration
143
-
144
- ## Quick Decision Tree
145
-
146
- 1. Know file path? → read_file directly
147
- 2. Know general area? → find_files with pattern, then grep or read_file
148
- 3. Looking for specific symbol? → grep with pattern (e.g., `"class UserService"`)
149
- 4. New codebase? → find_files to map structure, then grep to narrow
150
-
151
- ## Tool Selection Tips
152
-
153
- - Start with find_files to locate files by pattern
154
- - Use grep to find specific code patterns across files
155
- - Use read_file to view complete file content with line numbers
156
- - Keep a tight find → search → read → edit loop; avoid broad scans
157
- - Prefer small, surgical replacements with stable context
158
- - After 2 dead-end searches, pivot symbols, globs, or entry points
159
-
160
- ## Key Strategies
161
-
162
- - **Progressive narrowing**: find_files → grep content → read_file sections
163
- - **Use glob patterns in find_files**:
164
- - Good: `"*.ts"`, `"**/*.test.ts"` | Bad: overly broad patterns
165
- - **Use file_pattern in grep**:
166
- - Good: `"*.{ts,tsx,js,jsx}"` | Bad: `null`
167
- - **Specific patterns in grep**: `"function handleLogin"` not `"login"`
168
- - **Stop after 2 failed searches**: Reconsider approach, try different entry point
169
-
170
- ## State Your Intent
171
-
172
- Before exploring, briefly state why (e.g., "Searching for UserService to understand auth flow")
173
-
174
- # Examples
175
-
176
- **Fix login button styling**:
177
-
178
- 1. find_files or grep → find component
179
- 2. read_file → view component code
180
- 3. search_replace → update styles
181
- 4. Shell → run tests
182
-
183
- **Read a file to understand flow**:
184
-
185
- 1. find_files → list files (`*.ts` pattern)
186
- 2. grep → locate symbol (`createSession`)
187
- 3. read_file → view file or specific line range
188
-
189
- **ask_mentor effectively**:
44
+ # Error Handling
190
45
 
191
- 1. Summarize goal and constraints in 2-3 lines
192
- 2. List what you tried and the blocker
193
- 3. Ask 1-2 focused questions
46
+ - If a tool or approach fails, adjust the approach instead of repeating the same failure.
47
+ - After 2-3 failed attempts on the same problem, explain the blocker and what you tried.
48
+ - Use `ask_mentor` when you are stuck, need architectural advice, or need a second opinion on a tradeoff.
194
49
 
195
- **Add API error handling**:
50
+ # Communication
196
51
 
197
- 1. grep find all endpoints (parallel if multiple)
198
- 2. grep understand current handling
199
- 3. Ask user strategy if unclear
200
- 4. search_replace update all endpoints
201
- 5. Shell → verify changes
52
+ - Be concise and direct. This is a terminal UI.
53
+ - State intent before substantial exploration or edits.
54
+ - Ask the user when requirements are unclear and a wrong assumption would be costly.
55
+ - Report test results explicitly after changes.
@@ -0,0 +1,7 @@
1
+ import { aisdk, type AiSdkModelOptions } from '@openai/agents-extensions/ai-sdk';
2
+ import type { Model } from '@openai/agents-core';
3
+ type LanguageModelCompatible = Parameters<typeof aisdk>[0];
4
+ export declare function withForwardedReasoningSettings<T extends Model>(model: T, provider?: string, providerOptionsKey?: string): T;
5
+ export declare function adaptAiSdkModelForAgents(model: LanguageModelCompatible, options?: AiSdkModelOptions, providerOptionsKey?: string): Model;
6
+ export {};
7
+ //# sourceMappingURL=ai-sdk-agents-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk-agents-adapter.d.ts","sourceRoot":"","sources":["../../source/providers/ai-sdk-agents-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,KAAK,EAAE,KAAK,EAAgB,MAAM,qBAAqB,CAAC;AAG/D,KAAK,uBAAuB,GAAG,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AA4E3D,wBAAgB,8BAA8B,CAAC,CAAC,SAAS,KAAK,EAC5D,KAAK,EAAE,CAAC,EACR,QAAQ,CAAC,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GAC1B,CAAC,CAiBH;AAED,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,uBAAuB,EAC9B,OAAO,CAAC,EAAE,iBAAiB,EAC3B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,KAAK,CAIP"}
@@ -0,0 +1,80 @@
1
+ import { aisdk } from '@openai/agents-extensions/ai-sdk';
2
+ import { withMergedAssistantMessages } from './ai-sdk-message-normalizer.js';
3
+ function getProviderOptionsKey(provider) {
4
+ return provider?.split('.')[0] || undefined;
5
+ }
6
+ function getProviderDataOptions(providerData, providerOptionsKey) {
7
+ const { providerOptions: _providerOptions, ...extraBody } = providerData;
8
+ return {
9
+ ...extraBody,
10
+ ...(providerData.providerOptions?.[providerOptionsKey] ?? {}),
11
+ };
12
+ }
13
+ function getOpenRouterProviderOptions(providerData, reasoning) {
14
+ return {
15
+ ...getProviderDataOptions(providerData, 'openrouter'),
16
+ ...(providerData.reasoning || reasoning ? { reasoning: providerData.reasoning ?? reasoning } : {}),
17
+ };
18
+ }
19
+ function forwardProviderSettings(request, provider, explicitProviderOptionsKey) {
20
+ const reasoning = request.modelSettings?.reasoning;
21
+ const providerData = request.modelSettings.providerData ?? {};
22
+ const providerOptionsKey = explicitProviderOptionsKey || getProviderOptionsKey(provider);
23
+ const shouldForwardProviderData = Boolean(providerOptionsKey) && Object.keys(providerData).some((key) => key !== 'providerOptions');
24
+ if (!reasoning && !shouldForwardProviderData) {
25
+ return request;
26
+ }
27
+ const providerOptions = shouldForwardProviderData && providerOptionsKey
28
+ ? {
29
+ ...(providerData.providerOptions ?? {}),
30
+ [providerOptionsKey]: providerOptionsKey === 'openrouter'
31
+ ? getOpenRouterProviderOptions(providerData, reasoning)
32
+ : getProviderDataOptions(providerData, providerOptionsKey),
33
+ }
34
+ : providerData.providerOptions;
35
+ if (providerData.reasoning) {
36
+ return providerOptions === providerData.providerOptions
37
+ ? request
38
+ : {
39
+ ...request,
40
+ modelSettings: {
41
+ ...request.modelSettings,
42
+ providerData: {
43
+ ...providerData,
44
+ providerOptions,
45
+ },
46
+ },
47
+ };
48
+ }
49
+ return {
50
+ ...request,
51
+ modelSettings: {
52
+ ...request.modelSettings,
53
+ providerData: {
54
+ ...providerData,
55
+ ...(reasoning ? { reasoning } : {}),
56
+ ...(providerOptions ? { providerOptions } : {}),
57
+ },
58
+ },
59
+ };
60
+ }
61
+ export function withForwardedReasoningSettings(model, provider, providerOptionsKey) {
62
+ return new Proxy(model, {
63
+ get(target, prop, receiver) {
64
+ if (prop === 'getResponse') {
65
+ return (request) => target.getResponse(forwardProviderSettings(request, provider, providerOptionsKey));
66
+ }
67
+ if (prop === 'getStreamedResponse') {
68
+ return (request) => target.getStreamedResponse(forwardProviderSettings(request, provider, providerOptionsKey));
69
+ }
70
+ const value = Reflect.get(target, prop, receiver);
71
+ return typeof value === 'function' ? value.bind(target) : value;
72
+ },
73
+ });
74
+ }
75
+ export function adaptAiSdkModelForAgents(model, options, providerOptionsKey) {
76
+ const normalizedModel = withMergedAssistantMessages(model);
77
+ const agentsModel = aisdk(normalizedModel, options);
78
+ return withForwardedReasoningSettings(agentsModel, model.provider, providerOptionsKey);
79
+ }
80
+ //# sourceMappingURL=ai-sdk-agents-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk-agents-adapter.js","sourceRoot":"","sources":["../../source/providers/ai-sdk-agents-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ai-sdk-agents-adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-sdk-agents-adapter.test.d.ts","sourceRoot":"","sources":["../../source/providers/ai-sdk-agents-adapter.test.ts"],"names":[],"mappings":""}