@qduc/term2 0.3.1 → 0.5.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 (775) hide show
  1. package/dist/agent.d.ts +5 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +54 -7
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agent.lite-mode.test.d.ts +2 -0
  6. package/dist/agent.lite-mode.test.d.ts.map +1 -0
  7. package/dist/agent.lite-mode.test.js +39 -0
  8. package/dist/agent.lite-mode.test.js.map +1 -0
  9. package/dist/agent.test.d.ts +2 -0
  10. package/dist/agent.test.d.ts.map +1 -0
  11. package/dist/agent.test.js +198 -0
  12. package/dist/agent.test.js.map +1 -0
  13. package/dist/app.d.ts +5 -0
  14. package/dist/app.d.ts.map +1 -1
  15. package/dist/app.js +36 -14
  16. package/dist/app.js.map +1 -1
  17. package/dist/app.startup-banner.test.d.ts +2 -0
  18. package/dist/app.startup-banner.test.d.ts.map +1 -0
  19. package/dist/app.startup-banner.test.js +11 -0
  20. package/dist/app.startup-banner.test.js.map +1 -0
  21. package/dist/cli.d.ts +1 -1
  22. package/dist/cli.d.ts.map +1 -1
  23. package/dist/cli.js +18 -3
  24. package/dist/cli.js.map +1 -1
  25. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  26. package/dist/components/ApprovalPrompt.js +13 -12
  27. package/dist/components/ApprovalPrompt.js.map +1 -1
  28. package/dist/components/ApprovalPrompt.test.d.ts +2 -0
  29. package/dist/components/ApprovalPrompt.test.d.ts.map +1 -0
  30. package/dist/components/ApprovalPrompt.test.js +23 -0
  31. package/dist/components/ApprovalPrompt.test.js.map +1 -0
  32. package/dist/components/Banner.js +1 -1
  33. package/dist/components/Banner.js.map +1 -1
  34. package/dist/components/BottomArea.d.ts.map +1 -1
  35. package/dist/components/BottomArea.js +3 -4
  36. package/dist/components/BottomArea.js.map +1 -1
  37. package/dist/components/ChatMessage.d.ts +1 -0
  38. package/dist/components/ChatMessage.d.ts.map +1 -1
  39. package/dist/components/ChatMessage.js +3 -2
  40. package/dist/components/ChatMessage.js.map +1 -1
  41. package/dist/components/CommandMessage.d.ts.map +1 -1
  42. package/dist/components/CommandMessage.js +54 -8
  43. package/dist/components/CommandMessage.js.map +1 -1
  44. package/dist/components/CommandMessage.test.js +90 -0
  45. package/dist/components/CommandMessage.test.js.map +1 -1
  46. package/dist/components/Input/PopupManager.d.ts +3 -0
  47. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  48. package/dist/components/Input/PopupManager.js +2 -2
  49. package/dist/components/Input/PopupManager.js.map +1 -1
  50. package/dist/components/Input/insertions.d.ts.map +1 -1
  51. package/dist/components/Input/insertions.js +2 -2
  52. package/dist/components/Input/insertions.js.map +1 -1
  53. package/dist/components/Input/popup-key-navigation.d.ts +18 -0
  54. package/dist/components/Input/popup-key-navigation.d.ts.map +1 -0
  55. package/dist/components/Input/popup-key-navigation.js +16 -0
  56. package/dist/components/Input/popup-key-navigation.js.map +1 -0
  57. package/dist/components/Input/popup-key-navigation.test.d.ts +2 -0
  58. package/dist/components/Input/popup-key-navigation.test.d.ts.map +1 -0
  59. package/dist/components/Input/popup-key-navigation.test.js +73 -0
  60. package/dist/components/Input/popup-key-navigation.test.js.map +1 -0
  61. package/dist/components/Input/popup-props.d.ts.map +1 -1
  62. package/dist/components/Input/popup-props.js +2 -0
  63. package/dist/components/Input/popup-props.js.map +1 -1
  64. package/dist/components/Input/triggers.d.ts +1 -0
  65. package/dist/components/Input/triggers.d.ts.map +1 -1
  66. package/dist/components/Input/triggers.js +1 -0
  67. package/dist/components/Input/triggers.js.map +1 -1
  68. package/dist/components/InputBox.d.ts.map +1 -1
  69. package/dist/components/InputBox.js +130 -6
  70. package/dist/components/InputBox.js.map +1 -1
  71. package/dist/components/InputBox.test.js +42 -1
  72. package/dist/components/InputBox.test.js.map +1 -1
  73. package/dist/components/LiveResponse.d.ts +1 -3
  74. package/dist/components/LiveResponse.d.ts.map +1 -1
  75. package/dist/components/LiveResponse.js +5 -6
  76. package/dist/components/LiveResponse.js.map +1 -1
  77. package/dist/components/LiveResponse.test.d.ts +2 -0
  78. package/dist/components/LiveResponse.test.d.ts.map +1 -0
  79. package/dist/components/LiveResponse.test.js +13 -0
  80. package/dist/components/LiveResponse.test.js.map +1 -0
  81. package/dist/components/MarkdownRenderer.d.ts +5 -2
  82. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  83. package/dist/components/MarkdownRenderer.js +77 -49
  84. package/dist/components/MarkdownRenderer.js.map +1 -1
  85. package/dist/components/MessageList.d.ts +7 -1
  86. package/dist/components/MessageList.d.ts.map +1 -1
  87. package/dist/components/MessageList.js +150 -23
  88. package/dist/components/MessageList.js.map +1 -1
  89. package/dist/components/MessageList.test.js +289 -4
  90. package/dist/components/MessageList.test.js.map +1 -1
  91. package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
  92. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts +2 -0
  93. package/dist/components/ModelSelectionMenu.error-tabs.test.d.ts.map +1 -0
  94. package/dist/components/ModelSelectionMenu.error-tabs.test.js +18 -0
  95. package/dist/components/ModelSelectionMenu.error-tabs.test.js.map +1 -0
  96. package/dist/components/ModelSelectionMenu.js +54 -14
  97. package/dist/components/ModelSelectionMenu.js.map +1 -1
  98. package/dist/components/PathSelectionMenu.d.ts +2 -0
  99. package/dist/components/PathSelectionMenu.d.ts.map +1 -1
  100. package/dist/components/PathSelectionMenu.js +31 -12
  101. package/dist/components/PathSelectionMenu.js.map +1 -1
  102. package/dist/components/SettingsSelectionMenu.d.ts +1 -0
  103. package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
  104. package/dist/components/SettingsSelectionMenu.js +32 -23
  105. package/dist/components/SettingsSelectionMenu.js.map +1 -1
  106. package/dist/components/SettingsSelectionMenu.scroll.test.d.ts +2 -0
  107. package/dist/components/SettingsSelectionMenu.scroll.test.d.ts.map +1 -0
  108. package/dist/components/SettingsSelectionMenu.scroll.test.js +23 -0
  109. package/dist/components/SettingsSelectionMenu.scroll.test.js.map +1 -0
  110. package/dist/components/StatusBar.d.ts.map +1 -1
  111. package/dist/components/StatusBar.js +15 -15
  112. package/dist/components/StatusBar.js.map +1 -1
  113. package/dist/components/StatusBar.test.d.ts +2 -0
  114. package/dist/components/StatusBar.test.d.ts.map +1 -0
  115. package/dist/components/StatusBar.test.js +30 -0
  116. package/dist/components/StatusBar.test.js.map +1 -0
  117. package/dist/components/SubagentActivityMessage.d.ts +12 -0
  118. package/dist/components/SubagentActivityMessage.d.ts.map +1 -0
  119. package/dist/components/SubagentActivityMessage.js +15 -0
  120. package/dist/components/SubagentActivityMessage.js.map +1 -0
  121. package/dist/components/TextInput.d.ts +42 -0
  122. package/dist/components/TextInput.d.ts.map +1 -0
  123. package/dist/components/TextInput.js +398 -0
  124. package/dist/components/TextInput.js.map +1 -0
  125. package/dist/components/TextInput.test.d.ts +2 -0
  126. package/dist/components/TextInput.test.d.ts.map +1 -0
  127. package/dist/components/TextInput.test.js +75 -0
  128. package/dist/components/TextInput.test.js.map +1 -0
  129. package/dist/components/theme.d.ts +8 -0
  130. package/dist/components/theme.d.ts.map +1 -0
  131. package/dist/components/theme.js +22 -0
  132. package/dist/components/theme.js.map +1 -0
  133. package/dist/contracts/conversation.d.ts +1 -0
  134. package/dist/contracts/conversation.d.ts.map +1 -1
  135. package/dist/debug_ask_mentor.d.ts +2 -0
  136. package/dist/debug_ask_mentor.d.ts.map +1 -0
  137. package/dist/debug_ask_mentor.js +73 -0
  138. package/dist/debug_ask_mentor.js.map +1 -0
  139. package/dist/env-setup.d.ts +2 -0
  140. package/dist/env-setup.d.ts.map +1 -0
  141. package/dist/env-setup.js +7 -0
  142. package/dist/env-setup.js.map +1 -0
  143. package/dist/env-setup.test.d.ts +2 -0
  144. package/dist/env-setup.test.d.ts.map +1 -0
  145. package/dist/env-setup.test.js +6 -0
  146. package/dist/env-setup.test.js.map +1 -0
  147. package/dist/hooks/path-completion-filter.d.ts +4 -0
  148. package/dist/hooks/path-completion-filter.d.ts.map +1 -0
  149. package/dist/hooks/path-completion-filter.js +27 -0
  150. package/dist/hooks/path-completion-filter.js.map +1 -0
  151. package/dist/hooks/path-completion-filter.test.d.ts +2 -0
  152. package/dist/hooks/path-completion-filter.test.d.ts.map +1 -0
  153. package/dist/hooks/path-completion-filter.test.js +100 -0
  154. package/dist/hooks/path-completion-filter.test.js.map +1 -0
  155. package/dist/hooks/use-app-commands.d.ts +9 -1
  156. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  157. package/dist/hooks/use-app-commands.js +97 -26
  158. package/dist/hooks/use-app-commands.js.map +1 -1
  159. package/dist/hooks/use-app-commands.test.js +53 -3
  160. package/dist/hooks/use-app-commands.test.js.map +1 -1
  161. package/dist/hooks/use-conversation.d.ts +14 -8
  162. package/dist/hooks/use-conversation.d.ts.map +1 -1
  163. package/dist/hooks/use-conversation.js +59 -61
  164. package/dist/hooks/use-conversation.js.map +1 -1
  165. package/dist/hooks/use-mode-handlers.d.ts +3 -1
  166. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  167. package/dist/hooks/use-mode-handlers.js +8 -0
  168. package/dist/hooks/use-mode-handlers.js.map +1 -1
  169. package/dist/hooks/use-model-selection.d.ts +1 -1
  170. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  171. package/dist/hooks/use-model-selection.js +31 -16
  172. package/dist/hooks/use-model-selection.js.map +1 -1
  173. package/dist/hooks/use-model-selection.test.js +66 -1
  174. package/dist/hooks/use-model-selection.test.js.map +1 -1
  175. package/dist/hooks/use-path-completion.d.ts +1 -0
  176. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  177. package/dist/hooks/use-path-completion.js +22 -17
  178. package/dist/hooks/use-path-completion.js.map +1 -1
  179. package/dist/hooks/use-settings-completion.d.ts +2 -2
  180. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  181. package/dist/hooks/use-settings-completion.js +53 -18
  182. package/dist/hooks/use-settings-completion.js.map +1 -1
  183. package/dist/hooks/use-settings-completion.scroll.test.d.ts +2 -0
  184. package/dist/hooks/use-settings-completion.scroll.test.d.ts.map +1 -0
  185. package/dist/hooks/use-settings-completion.scroll.test.js +55 -0
  186. package/dist/hooks/use-settings-completion.scroll.test.js.map +1 -0
  187. package/dist/hooks/use-settings-completion.test.js +69 -79
  188. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  189. package/dist/hooks/use-settings-value-completion.d.ts +1 -2
  190. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  191. package/dist/hooks/use-settings-value-completion.js +47 -19
  192. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  193. package/dist/hooks/use-settings-value-completion.test.js +5 -18
  194. package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
  195. package/dist/hooks/use-slash-commands.d.ts +7 -0
  196. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  197. package/dist/hooks/use-slash-commands.js +20 -13
  198. package/dist/hooks/use-slash-commands.js.map +1 -1
  199. package/dist/hooks/use-slash-commands.test.js +52 -1
  200. package/dist/hooks/use-slash-commands.test.js.map +1 -1
  201. package/dist/hooks/use-trigger-detection.d.ts.map +1 -1
  202. package/dist/hooks/use-trigger-detection.js +7 -3
  203. package/dist/hooks/use-trigger-detection.js.map +1 -1
  204. package/dist/hooks/use-trigger-detection.test.d.ts +2 -0
  205. package/dist/hooks/use-trigger-detection.test.d.ts.map +1 -0
  206. package/dist/hooks/use-trigger-detection.test.js +59 -0
  207. package/dist/hooks/use-trigger-detection.test.js.map +1 -0
  208. package/dist/lib/editor-impl.test.js +63 -50
  209. package/dist/lib/editor-impl.test.js.map +1 -1
  210. package/dist/lib/openai-agent-client.d.ts +28 -0
  211. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  212. package/dist/lib/openai-agent-client.js +82 -143
  213. package/dist/lib/openai-agent-client.js.map +1 -1
  214. package/dist/lib/openai-agent-client.test.js +70 -0
  215. package/dist/lib/openai-agent-client.test.js.map +1 -1
  216. package/dist/lib/shell.d.ts +7 -0
  217. package/dist/lib/shell.d.ts.map +1 -0
  218. package/dist/lib/shell.js +56 -0
  219. package/dist/lib/shell.js.map +1 -0
  220. package/dist/lib/tool-invoke.d.ts +3 -2
  221. package/dist/lib/tool-invoke.d.ts.map +1 -1
  222. package/dist/lib/tool-invoke.js +69 -4
  223. package/dist/lib/tool-invoke.js.map +1 -1
  224. package/dist/lib/tool-invoke.test.js +25 -0
  225. package/dist/lib/tool-invoke.test.js.map +1 -1
  226. package/dist/modes/companion/command-index.d.ts +26 -0
  227. package/dist/modes/companion/command-index.d.ts.map +1 -0
  228. package/dist/modes/companion/command-index.js +50 -0
  229. package/dist/modes/companion/command-index.js.map +1 -0
  230. package/dist/modes/companion/command-index.test.d.ts +2 -0
  231. package/dist/modes/companion/command-index.test.d.ts.map +1 -0
  232. package/dist/modes/companion/command-index.test.js +86 -0
  233. package/dist/modes/companion/command-index.test.js.map +1 -0
  234. package/dist/modes/companion/companion-app.d.ts +12 -0
  235. package/dist/modes/companion/companion-app.d.ts.map +1 -0
  236. package/dist/modes/companion/companion-app.js +297 -0
  237. package/dist/modes/companion/companion-app.js.map +1 -0
  238. package/dist/modes/companion/companion-session.d.ts +63 -0
  239. package/dist/modes/companion/companion-session.d.ts.map +1 -0
  240. package/dist/modes/companion/companion-session.js +146 -0
  241. package/dist/modes/companion/companion-session.js.map +1 -0
  242. package/dist/modes/companion/companion-session.test.d.ts +2 -0
  243. package/dist/modes/companion/companion-session.test.d.ts.map +1 -0
  244. package/dist/modes/companion/companion-session.test.js +28 -0
  245. package/dist/modes/companion/companion-session.test.js.map +1 -0
  246. package/dist/modes/companion/components/status-bar.d.ts +13 -0
  247. package/dist/modes/companion/components/status-bar.d.ts.map +1 -0
  248. package/dist/modes/companion/components/status-bar.js +26 -0
  249. package/dist/modes/companion/components/status-bar.js.map +1 -0
  250. package/dist/modes/companion/context-buffer.d.ts +65 -0
  251. package/dist/modes/companion/context-buffer.d.ts.map +1 -0
  252. package/dist/modes/companion/context-buffer.js +156 -0
  253. package/dist/modes/companion/context-buffer.js.map +1 -0
  254. package/dist/modes/companion/context-buffer.test.d.ts +2 -0
  255. package/dist/modes/companion/context-buffer.test.d.ts.map +1 -0
  256. package/dist/modes/companion/context-buffer.test.js +154 -0
  257. package/dist/modes/companion/context-buffer.test.js.map +1 -0
  258. package/dist/modes/companion/event-detector.d.ts +46 -0
  259. package/dist/modes/companion/event-detector.d.ts.map +1 -0
  260. package/dist/modes/companion/event-detector.js +169 -0
  261. package/dist/modes/companion/event-detector.js.map +1 -0
  262. package/dist/modes/companion/event-detector.test.d.ts +2 -0
  263. package/dist/modes/companion/event-detector.test.d.ts.map +1 -0
  264. package/dist/modes/companion/event-detector.test.js +121 -0
  265. package/dist/modes/companion/event-detector.test.js.map +1 -0
  266. package/dist/modes/companion/index.d.ts +33 -0
  267. package/dist/modes/companion/index.d.ts.map +1 -0
  268. package/dist/modes/companion/index.js +21 -0
  269. package/dist/modes/companion/index.js.map +1 -0
  270. package/dist/modes/companion/input-key-mapper.d.ts +3 -0
  271. package/dist/modes/companion/input-key-mapper.d.ts.map +1 -0
  272. package/dist/modes/companion/input-key-mapper.js +31 -0
  273. package/dist/modes/companion/input-key-mapper.js.map +1 -0
  274. package/dist/modes/companion/input-key-mapper.test.d.ts +2 -0
  275. package/dist/modes/companion/input-key-mapper.test.d.ts.map +1 -0
  276. package/dist/modes/companion/input-key-mapper.test.js +26 -0
  277. package/dist/modes/companion/input-key-mapper.test.js.map +1 -0
  278. package/dist/modes/companion/input-parser.d.ts +53 -0
  279. package/dist/modes/companion/input-parser.d.ts.map +1 -0
  280. package/dist/modes/companion/input-parser.js +114 -0
  281. package/dist/modes/companion/input-parser.js.map +1 -0
  282. package/dist/modes/companion/input-parser.test.d.ts +2 -0
  283. package/dist/modes/companion/input-parser.test.d.ts.map +1 -0
  284. package/dist/modes/companion/input-parser.test.js +123 -0
  285. package/dist/modes/companion/input-parser.test.js.map +1 -0
  286. package/dist/modes/companion/mode-manager.d.ts +41 -0
  287. package/dist/modes/companion/mode-manager.d.ts.map +1 -0
  288. package/dist/modes/companion/mode-manager.js +56 -0
  289. package/dist/modes/companion/mode-manager.js.map +1 -0
  290. package/dist/modes/companion/mode-manager.test.d.ts +2 -0
  291. package/dist/modes/companion/mode-manager.test.d.ts.map +1 -0
  292. package/dist/modes/companion/mode-manager.test.js +65 -0
  293. package/dist/modes/companion/mode-manager.test.js.map +1 -0
  294. package/dist/modes/companion/output-classifier.d.ts +15 -0
  295. package/dist/modes/companion/output-classifier.d.ts.map +1 -0
  296. package/dist/modes/companion/output-classifier.js +77 -0
  297. package/dist/modes/companion/output-classifier.js.map +1 -0
  298. package/dist/modes/companion/output-classifier.test.d.ts +2 -0
  299. package/dist/modes/companion/output-classifier.test.d.ts.map +1 -0
  300. package/dist/modes/companion/output-classifier.test.js +133 -0
  301. package/dist/modes/companion/output-classifier.test.js.map +1 -0
  302. package/dist/modes/companion/pty-wrapper.d.ts +46 -0
  303. package/dist/modes/companion/pty-wrapper.d.ts.map +1 -0
  304. package/dist/modes/companion/pty-wrapper.js +143 -0
  305. package/dist/modes/companion/pty-wrapper.js.map +1 -0
  306. package/dist/modes/companion/safety-classifier.d.ts +31 -0
  307. package/dist/modes/companion/safety-classifier.d.ts.map +1 -0
  308. package/dist/modes/companion/safety-classifier.js +140 -0
  309. package/dist/modes/companion/safety-classifier.js.map +1 -0
  310. package/dist/modes/companion/safety-classifier.test.d.ts +2 -0
  311. package/dist/modes/companion/safety-classifier.test.d.ts.map +1 -0
  312. package/dist/modes/companion/safety-classifier.test.js +151 -0
  313. package/dist/modes/companion/safety-classifier.test.js.map +1 -0
  314. package/dist/modes/companion/summarizer.d.ts +24 -0
  315. package/dist/modes/companion/summarizer.d.ts.map +1 -0
  316. package/dist/modes/companion/summarizer.js +132 -0
  317. package/dist/modes/companion/summarizer.js.map +1 -0
  318. package/dist/modes/companion/terminal-history.d.ts +27 -0
  319. package/dist/modes/companion/terminal-history.d.ts.map +1 -0
  320. package/dist/modes/companion/terminal-history.js +142 -0
  321. package/dist/modes/companion/terminal-history.js.map +1 -0
  322. package/dist/non-interactive.d.ts.map +1 -1
  323. package/dist/non-interactive.js +3 -0
  324. package/dist/non-interactive.js.map +1 -1
  325. package/dist/prompts/gpt-5-modern.md +66 -0
  326. package/dist/prompts/gpt-5.md +7 -0
  327. package/dist/prompts/lite.md +10 -27
  328. package/dist/prompts/prompt-selector.js +2 -2
  329. package/dist/prompts/prompt-selector.js.map +1 -1
  330. package/dist/prompts/prompt-selector.test.js +7 -2
  331. package/dist/prompts/prompt-selector.test.js.map +1 -1
  332. package/dist/prompts/prompt-selector.test.ts +22 -2
  333. package/dist/prompts/prompt-selector.ts +2 -2
  334. package/dist/prompts/search-via-shell.d.ts +7 -0
  335. package/dist/prompts/search-via-shell.d.ts.map +1 -0
  336. package/dist/prompts/search-via-shell.js +59 -0
  337. package/dist/prompts/search-via-shell.js.map +1 -0
  338. package/dist/prompts/search-via-shell.test.d.ts +2 -0
  339. package/dist/prompts/search-via-shell.test.d.ts.map +1 -0
  340. package/dist/prompts/search-via-shell.test.js +40 -0
  341. package/dist/prompts/search-via-shell.test.js.map +1 -0
  342. package/dist/prompts/search-via-shell.test.ts +47 -0
  343. package/dist/prompts/search-via-shell.ts +71 -0
  344. package/dist/prompts/simple-mentor.md +215 -0
  345. package/dist/prompts/simple.md +40 -186
  346. package/dist/prompts/subagents/explorer.md +42 -0
  347. package/dist/prompts/subagents/mentor.md +16 -0
  348. package/dist/prompts/subagents/researcher.md +40 -0
  349. package/dist/prompts/subagents/worker.md +41 -0
  350. package/dist/providers/ai-sdk-agents-adapter.d.ts +7 -0
  351. package/dist/providers/ai-sdk-agents-adapter.d.ts.map +1 -0
  352. package/dist/providers/ai-sdk-agents-adapter.js +80 -0
  353. package/dist/providers/ai-sdk-agents-adapter.js.map +1 -0
  354. package/dist/providers/ai-sdk-agents-adapter.test.d.ts +2 -0
  355. package/dist/providers/ai-sdk-agents-adapter.test.d.ts.map +1 -0
  356. package/dist/providers/ai-sdk-agents-adapter.test.js +158 -0
  357. package/dist/providers/ai-sdk-agents-adapter.test.js.map +1 -0
  358. package/dist/providers/ai-sdk-anthropic.provider.d.ts +14 -0
  359. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -0
  360. package/dist/providers/ai-sdk-anthropic.provider.js +18 -0
  361. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -0
  362. package/dist/providers/ai-sdk-google.provider.d.ts +14 -0
  363. package/dist/providers/ai-sdk-google.provider.d.ts.map +1 -0
  364. package/dist/providers/ai-sdk-google.provider.js +18 -0
  365. package/dist/providers/ai-sdk-google.provider.js.map +1 -0
  366. package/dist/providers/ai-sdk-logging-fetch.d.ts +11 -0
  367. package/dist/providers/ai-sdk-logging-fetch.d.ts.map +1 -0
  368. package/dist/providers/ai-sdk-logging-fetch.js +127 -0
  369. package/dist/providers/ai-sdk-logging-fetch.js.map +1 -0
  370. package/dist/providers/ai-sdk-logging-fetch.test.d.ts +2 -0
  371. package/dist/providers/ai-sdk-logging-fetch.test.d.ts.map +1 -0
  372. package/dist/providers/ai-sdk-logging-fetch.test.js +107 -0
  373. package/dist/providers/ai-sdk-logging-fetch.test.js.map +1 -0
  374. package/dist/providers/ai-sdk-message-normalizer.d.ts +2 -2
  375. package/dist/providers/ai-sdk-message-normalizer.d.ts.map +1 -1
  376. package/dist/providers/ai-sdk-message-normalizer.js +92 -47
  377. package/dist/providers/ai-sdk-message-normalizer.js.map +1 -1
  378. package/dist/providers/ai-sdk-message-normalizer.test.js +256 -16
  379. package/dist/providers/ai-sdk-message-normalizer.test.js.map +1 -1
  380. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts +4 -0
  381. package/dist/providers/ai-sdk-openai-compatible.provider.d.ts.map +1 -1
  382. package/dist/providers/ai-sdk-openai-compatible.provider.js +10 -6
  383. package/dist/providers/ai-sdk-openai-compatible.provider.js.map +1 -1
  384. package/dist/providers/ai-sdk-openai-compatible.provider.test.js +144 -1
  385. package/dist/providers/ai-sdk-openai-compatible.provider.test.js.map +1 -1
  386. package/dist/providers/ai-sdk-openai.provider.d.ts +14 -0
  387. package/dist/providers/ai-sdk-openai.provider.d.ts.map +1 -0
  388. package/dist/providers/ai-sdk-openai.provider.js +18 -0
  389. package/dist/providers/ai-sdk-openai.provider.js.map +1 -0
  390. package/dist/providers/ai-sdk-openrouter.provider.d.ts +1 -1
  391. package/dist/providers/ai-sdk-openrouter.provider.d.ts.map +1 -1
  392. package/dist/providers/ai-sdk-openrouter.provider.js +2 -3
  393. package/dist/providers/ai-sdk-openrouter.provider.js.map +1 -1
  394. package/dist/providers/ai-sdk-openrouter.provider.test.js +23 -0
  395. package/dist/providers/ai-sdk-openrouter.provider.test.js.map +1 -1
  396. package/dist/providers/common/openai-compatible-messages.d.ts +1 -2
  397. package/dist/providers/common/openai-compatible-messages.d.ts.map +1 -1
  398. package/dist/providers/common/openai-compatible-messages.js +47 -48
  399. package/dist/providers/common/openai-compatible-messages.js.map +1 -1
  400. package/dist/providers/common/openai-compatible-messages.test.js +134 -1
  401. package/dist/providers/common/openai-compatible-messages.test.js.map +1 -1
  402. package/dist/providers/custom-provider-adapter.test.d.ts +2 -0
  403. package/dist/providers/custom-provider-adapter.test.d.ts.map +1 -0
  404. package/dist/providers/custom-provider-adapter.test.js +52 -0
  405. package/dist/providers/custom-provider-adapter.test.js.map +1 -0
  406. package/dist/providers/github-copilot/converters.d.ts +45 -0
  407. package/dist/providers/github-copilot/converters.d.ts.map +1 -0
  408. package/dist/providers/github-copilot/converters.js +118 -0
  409. package/dist/providers/github-copilot/converters.js.map +1 -0
  410. package/dist/providers/github-copilot/converters.test.d.ts +2 -0
  411. package/dist/providers/github-copilot/converters.test.d.ts.map +1 -0
  412. package/dist/providers/github-copilot/converters.test.js +162 -0
  413. package/dist/providers/github-copilot/converters.test.js.map +1 -0
  414. package/dist/providers/github-copilot/github-copilot.provider.d.ts +2 -0
  415. package/dist/providers/github-copilot/github-copilot.provider.d.ts.map +1 -0
  416. package/dist/providers/github-copilot/github-copilot.provider.js +75 -0
  417. package/dist/providers/github-copilot/github-copilot.provider.js.map +1 -0
  418. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts +2 -0
  419. package/dist/providers/github-copilot/github-copilot.provider.test.d.ts.map +1 -0
  420. package/dist/providers/github-copilot/github-copilot.provider.test.js +26 -0
  421. package/dist/providers/github-copilot/github-copilot.provider.test.js.map +1 -0
  422. package/dist/providers/github-copilot/index.d.ts +4 -0
  423. package/dist/providers/github-copilot/index.d.ts.map +1 -0
  424. package/dist/providers/github-copilot/index.js +4 -0
  425. package/dist/providers/github-copilot/index.js.map +1 -0
  426. package/dist/providers/github-copilot/model.d.ts +24 -0
  427. package/dist/providers/github-copilot/model.d.ts.map +1 -0
  428. package/dist/providers/github-copilot/model.delta.test.d.ts +2 -0
  429. package/dist/providers/github-copilot/model.delta.test.d.ts.map +1 -0
  430. package/dist/providers/github-copilot/model.delta.test.js +15 -0
  431. package/dist/providers/github-copilot/model.delta.test.js.map +1 -0
  432. package/dist/providers/github-copilot/model.js +498 -0
  433. package/dist/providers/github-copilot/model.js.map +1 -0
  434. package/dist/providers/github-copilot/model.test.d.ts +2 -0
  435. package/dist/providers/github-copilot/model.test.d.ts.map +1 -0
  436. package/dist/providers/github-copilot/model.test.js +63 -0
  437. package/dist/providers/github-copilot/model.test.js.map +1 -0
  438. package/dist/providers/github-copilot/provider.d.ts +15 -0
  439. package/dist/providers/github-copilot/provider.d.ts.map +1 -0
  440. package/dist/providers/github-copilot/provider.js +25 -0
  441. package/dist/providers/github-copilot/provider.js.map +1 -0
  442. package/dist/providers/github-copilot/provider.test.d.ts +2 -0
  443. package/dist/providers/github-copilot/provider.test.d.ts.map +1 -0
  444. package/dist/providers/github-copilot/provider.test.js +52 -0
  445. package/dist/providers/github-copilot/provider.test.js.map +1 -0
  446. package/dist/providers/github-copilot/utils.d.ts +20 -0
  447. package/dist/providers/github-copilot/utils.d.ts.map +1 -0
  448. package/dist/providers/github-copilot/utils.js +142 -0
  449. package/dist/providers/github-copilot/utils.js.map +1 -0
  450. package/dist/providers/github-copilot/utils.test.d.ts +2 -0
  451. package/dist/providers/github-copilot/utils.test.d.ts.map +1 -0
  452. package/dist/providers/github-copilot/utils.test.js +21 -0
  453. package/dist/providers/github-copilot/utils.test.js.map +1 -0
  454. package/dist/providers/openai-compatible-behavior-gate.test.d.ts +2 -0
  455. package/dist/providers/openai-compatible-behavior-gate.test.d.ts.map +1 -0
  456. package/dist/providers/openai-compatible-behavior-gate.test.js +257 -0
  457. package/dist/providers/openai-compatible-behavior-gate.test.js.map +1 -0
  458. package/dist/providers/openai-compatible.provider.d.ts +10 -1
  459. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  460. package/dist/providers/openai-compatible.provider.js +341 -31
  461. package/dist/providers/openai-compatible.provider.js.map +1 -1
  462. package/dist/providers/openai-compatible.provider.test.d.ts +2 -0
  463. package/dist/providers/openai-compatible.provider.test.d.ts.map +1 -0
  464. package/dist/providers/openai-compatible.provider.test.js +462 -0
  465. package/dist/providers/openai-compatible.provider.test.js.map +1 -0
  466. package/dist/providers/openai.provider.js +2 -1
  467. package/dist/providers/openai.provider.js.map +1 -1
  468. package/dist/providers/openrouter.provider.js +28 -2
  469. package/dist/providers/openrouter.provider.js.map +1 -1
  470. package/dist/safety-checker.js +57 -0
  471. package/dist/scripts/eval-auto-approval/dataset.d.ts +1 -1
  472. package/dist/services/approval-rejection-interceptor.test.js +5 -0
  473. package/dist/services/approval-rejection-interceptor.test.js.map +1 -1
  474. package/dist/services/check_mock.d.ts +2 -0
  475. package/dist/services/check_mock.d.ts.map +1 -0
  476. package/dist/services/check_mock.js +22 -0
  477. package/dist/services/check_mock.js.map +1 -0
  478. package/dist/services/conversation-events.d.ts +28 -1
  479. package/dist/services/conversation-events.d.ts.map +1 -1
  480. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  481. package/dist/services/conversation-result-builder.js +11 -1
  482. package/dist/services/conversation-result-builder.js.map +1 -1
  483. package/dist/services/conversation-result-builder.test.js +72 -0
  484. package/dist/services/conversation-result-builder.test.js.map +1 -1
  485. package/dist/services/conversation-service.test.d.ts +2 -0
  486. package/dist/services/conversation-service.test.d.ts.map +1 -0
  487. package/dist/services/conversation-service.test.js +156 -0
  488. package/dist/services/conversation-service.test.js.map +1 -0
  489. package/dist/services/conversation-session.auto-approval.test.js +52 -0
  490. package/dist/services/conversation-session.auto-approval.test.js.map +1 -1
  491. package/dist/services/conversation-session.d.ts +2 -1
  492. package/dist/services/conversation-session.d.ts.map +1 -1
  493. package/dist/services/conversation-session.js +94 -31
  494. package/dist/services/conversation-session.js.map +1 -1
  495. package/dist/services/file-service.js +1 -1
  496. package/dist/services/file-service.js.map +1 -1
  497. package/dist/services/interruption-info.js +1 -1
  498. package/dist/services/interruption-info.js.map +1 -1
  499. package/dist/services/interruption-info.test.js +12 -0
  500. package/dist/services/interruption-info.test.js.map +1 -1
  501. package/dist/services/logging-contract.d.ts +3 -3
  502. package/dist/services/logging-service.d.ts.map +1 -1
  503. package/dist/services/logging-service.js +18 -1
  504. package/dist/services/logging-service.js.map +1 -1
  505. package/dist/services/model-service.d.ts.map +1 -1
  506. package/dist/services/model-service.js +16 -8
  507. package/dist/services/model-service.js.map +1 -1
  508. package/dist/services/model-service.test.js +67 -1
  509. package/dist/services/model-service.test.js.map +1 -1
  510. package/dist/services/rtk-service.d.ts +23 -0
  511. package/dist/services/rtk-service.d.ts.map +1 -0
  512. package/dist/services/rtk-service.js +260 -0
  513. package/dist/services/rtk-service.js.map +1 -0
  514. package/dist/services/rtk-service.test.d.ts +2 -0
  515. package/dist/services/rtk-service.test.d.ts.map +1 -0
  516. package/dist/services/rtk-service.test.js +274 -0
  517. package/dist/services/rtk-service.test.js.map +1 -0
  518. package/dist/services/settings-persistence.d.ts +1 -0
  519. package/dist/services/settings-persistence.d.ts.map +1 -1
  520. package/dist/services/settings-persistence.js +28 -5
  521. package/dist/services/settings-persistence.js.map +1 -1
  522. package/dist/services/settings-persistence.test.js +55 -3
  523. package/dist/services/settings-persistence.test.js.map +1 -1
  524. package/dist/services/settings-schema.d.ts +55 -16
  525. package/dist/services/settings-schema.d.ts.map +1 -1
  526. package/dist/services/settings-schema.js +35 -4
  527. package/dist/services/settings-schema.js.map +1 -1
  528. package/dist/services/settings-schema.test.d.ts +2 -0
  529. package/dist/services/settings-schema.test.d.ts.map +1 -0
  530. package/dist/services/settings-schema.test.js +77 -0
  531. package/dist/services/settings-schema.test.js.map +1 -0
  532. package/dist/services/settings-service.d.ts.map +1 -1
  533. package/dist/services/settings-service.js +7 -4
  534. package/dist/services/settings-service.js.map +1 -1
  535. package/dist/services/settings-sources.d.ts.map +1 -1
  536. package/dist/services/settings-sources.js +1 -0
  537. package/dist/services/settings-sources.js.map +1 -1
  538. package/dist/services/shell-auto-approval-evaluator.d.ts +1 -1
  539. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
  540. package/dist/services/shell-auto-approval-evaluator.js +8 -2
  541. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  542. package/dist/services/stream-event-processor.d.ts.map +1 -1
  543. package/dist/services/stream-event-processor.js +27 -14
  544. package/dist/services/stream-event-processor.js.map +1 -1
  545. package/dist/services/stream-event-processor.test.js +32 -0
  546. package/dist/services/stream-event-processor.test.js.map +1 -1
  547. package/dist/services/subagents/subagent-manager.d.ts +16 -0
  548. package/dist/services/subagents/subagent-manager.d.ts.map +1 -0
  549. package/dist/services/subagents/subagent-manager.js +530 -0
  550. package/dist/services/subagents/subagent-manager.js.map +1 -0
  551. package/dist/services/subagents/subagent-manager.test.d.ts +2 -0
  552. package/dist/services/subagents/subagent-manager.test.d.ts.map +1 -0
  553. package/dist/services/subagents/subagent-manager.test.js +690 -0
  554. package/dist/services/subagents/subagent-manager.test.js.map +1 -0
  555. package/dist/services/subagents/subagent-session.d.ts +26 -0
  556. package/dist/services/subagents/subagent-session.d.ts.map +1 -0
  557. package/dist/services/subagents/subagent-session.js +86 -0
  558. package/dist/services/subagents/subagent-session.js.map +1 -0
  559. package/dist/services/subagents/subagent-session.test.d.ts +2 -0
  560. package/dist/services/subagents/subagent-session.test.d.ts.map +1 -0
  561. package/dist/services/subagents/subagent-session.test.js +118 -0
  562. package/dist/services/subagents/subagent-session.test.js.map +1 -0
  563. package/dist/services/subagents/types.d.ts +35 -0
  564. package/dist/services/subagents/types.d.ts.map +1 -0
  565. package/dist/services/subagents/types.js +2 -0
  566. package/dist/services/subagents/types.js.map +1 -0
  567. package/dist/services/terminal-result-collector.d.ts.map +1 -1
  568. package/dist/services/terminal-result-collector.js +30 -2
  569. package/dist/services/terminal-result-collector.js.map +1 -1
  570. package/dist/services/terminal-result-collector.test.js +103 -0
  571. package/dist/services/terminal-result-collector.test.js.map +1 -1
  572. package/dist/tools/apply-patch.d.ts +14 -6
  573. package/dist/tools/apply-patch.d.ts.map +1 -1
  574. package/dist/tools/apply-patch.js +204 -208
  575. package/dist/tools/apply-patch.js.map +1 -1
  576. package/dist/tools/apply-patch.test.js +44 -0
  577. package/dist/tools/apply-patch.test.js.map +1 -1
  578. package/dist/tools/ask-mentor.d.ts +2 -2
  579. package/dist/tools/ask-mentor.d.ts.map +1 -1
  580. package/dist/tools/ask-mentor.js.map +1 -1
  581. package/dist/tools/bash.d.ts +10 -0
  582. package/dist/tools/bash.d.ts.map +1 -0
  583. package/dist/tools/bash.js +55 -0
  584. package/dist/tools/bash.js.map +1 -0
  585. package/dist/tools/code-context.d.ts +27 -0
  586. package/dist/tools/code-context.d.ts.map +1 -0
  587. package/dist/tools/code-context.js +512 -0
  588. package/dist/tools/code-context.js.map +1 -0
  589. package/dist/tools/code-context.test.d.ts +2 -0
  590. package/dist/tools/code-context.test.d.ts.map +1 -0
  591. package/dist/tools/code-context.test.js +367 -0
  592. package/dist/tools/code-context.test.js.map +1 -0
  593. package/dist/tools/command-message-formatters.d.ts +5 -0
  594. package/dist/tools/command-message-formatters.d.ts.map +1 -0
  595. package/dist/tools/command-message-formatters.js +13 -0
  596. package/dist/tools/command-message-formatters.js.map +1 -0
  597. package/dist/tools/command-message-formatters.test.d.ts +2 -0
  598. package/dist/tools/command-message-formatters.test.d.ts.map +1 -0
  599. package/dist/tools/command-message-formatters.test.js +23 -0
  600. package/dist/tools/command-message-formatters.test.js.map +1 -0
  601. package/dist/tools/create-file.d.ts +2 -2
  602. package/dist/tools/create-file.d.ts.map +1 -1
  603. package/dist/tools/create-file.js +18 -11
  604. package/dist/tools/create-file.js.map +1 -1
  605. package/dist/tools/create-file.test.js +11 -0
  606. package/dist/tools/create-file.test.js.map +1 -1
  607. package/dist/tools/edit-healing.d.ts +4 -3
  608. package/dist/tools/edit-healing.d.ts.map +1 -1
  609. package/dist/tools/edit-healing.js +50 -20
  610. package/dist/tools/edit-healing.js.map +1 -1
  611. package/dist/tools/edit-healing.test.js +62 -0
  612. package/dist/tools/edit-healing.test.js.map +1 -1
  613. package/dist/tools/file-locks.d.ts +3 -0
  614. package/dist/tools/file-locks.d.ts.map +1 -0
  615. package/dist/tools/file-locks.js +37 -0
  616. package/dist/tools/file-locks.js.map +1 -0
  617. package/dist/tools/find-files.d.ts +3 -2
  618. package/dist/tools/find-files.d.ts.map +1 -1
  619. package/dist/tools/find-files.js +59 -139
  620. package/dist/tools/find-files.js.map +1 -1
  621. package/dist/tools/find-files.test.js +6 -12
  622. package/dist/tools/find-files.test.js.map +1 -1
  623. package/dist/tools/grep.d.ts +3 -2
  624. package/dist/tools/grep.d.ts.map +1 -1
  625. package/dist/tools/grep.js +10 -46
  626. package/dist/tools/grep.js.map +1 -1
  627. package/dist/tools/grep.test.d.ts +2 -0
  628. package/dist/tools/grep.test.d.ts.map +1 -0
  629. package/dist/tools/language-providers.d.ts +48 -0
  630. package/dist/tools/language-providers.d.ts.map +1 -0
  631. package/dist/tools/language-providers.js +244 -0
  632. package/dist/tools/language-providers.js.map +1 -0
  633. package/dist/tools/read-file.d.ts +2 -2
  634. package/dist/tools/read-file.d.ts.map +1 -1
  635. package/dist/tools/read-file.js.map +1 -1
  636. package/dist/tools/read-file.test.js +2 -3
  637. package/dist/tools/read-file.test.js.map +1 -1
  638. package/dist/tools/run-subagent.d.ts +14 -0
  639. package/dist/tools/run-subagent.d.ts.map +1 -0
  640. package/dist/tools/run-subagent.js +196 -0
  641. package/dist/tools/run-subagent.js.map +1 -0
  642. package/dist/tools/run-subagent.test.d.ts +2 -0
  643. package/dist/tools/run-subagent.test.d.ts.map +1 -0
  644. package/dist/tools/run-subagent.test.js +159 -0
  645. package/dist/tools/run-subagent.test.js.map +1 -0
  646. package/dist/tools/search-replace.d.ts +7 -4
  647. package/dist/tools/search-replace.d.ts.map +1 -1
  648. package/dist/tools/search-replace.js +248 -110
  649. package/dist/tools/search-replace.js.map +1 -1
  650. package/dist/tools/search-replace.test.js +189 -1
  651. package/dist/tools/search-replace.test.js.map +1 -1
  652. package/dist/tools/search.d.ts.map +1 -1
  653. package/dist/tools/search.js +5 -15
  654. package/dist/tools/search.js.map +1 -1
  655. package/dist/tools/shell.d.ts +4 -2
  656. package/dist/tools/shell.d.ts.map +1 -1
  657. package/dist/tools/shell.js +15 -7
  658. package/dist/tools/shell.js.map +1 -1
  659. package/dist/tools/shell.test.js +154 -0
  660. package/dist/tools/shell.test.js.map +1 -1
  661. package/dist/tools/tool-names.d.ts +3 -0
  662. package/dist/tools/tool-names.d.ts.map +1 -1
  663. package/dist/tools/tool-names.js +3 -0
  664. package/dist/tools/tool-names.js.map +1 -1
  665. package/dist/tools/tool-names.test.js +4 -1
  666. package/dist/tools/tool-names.test.js.map +1 -1
  667. package/dist/tools/tool-parameter-schema.test.js +18 -0
  668. package/dist/tools/tool-parameter-schema.test.js.map +1 -1
  669. package/dist/tools/types.d.ts +2 -1
  670. package/dist/tools/types.d.ts.map +1 -1
  671. package/dist/tools/utils.d.ts.map +1 -1
  672. package/dist/tools/utils.js +11 -1
  673. package/dist/tools/utils.js.map +1 -1
  674. package/dist/tools/utils.test.js +13 -0
  675. package/dist/tools/utils.test.js.map +1 -1
  676. package/dist/tools/web-fetch.d.ts +2 -2
  677. package/dist/tools/web-fetch.d.ts.map +1 -1
  678. package/dist/tools/web-fetch.js.map +1 -1
  679. package/dist/tools/web-search.d.ts +2 -2
  680. package/dist/tools/web-search.d.ts.map +1 -1
  681. package/dist/tools/web-search.js.map +1 -1
  682. package/dist/utils/clipboard.d.ts +2 -2
  683. package/dist/utils/clipboard.d.ts.map +1 -1
  684. package/dist/utils/clipboard.js +58 -22
  685. package/dist/utils/clipboard.js.map +1 -1
  686. package/dist/utils/clipboard.test.js +25 -6
  687. package/dist/utils/clipboard.test.js.map +1 -1
  688. package/dist/utils/command-safety/constants.d.ts.map +1 -1
  689. package/dist/utils/command-safety/constants.js +30 -5
  690. package/dist/utils/command-safety/constants.js.map +1 -1
  691. package/dist/utils/command-safety/handlers/sed-handler.d.ts.map +1 -1
  692. package/dist/utils/command-safety/handlers/sed-handler.js +10 -7
  693. package/dist/utils/command-safety/handlers/sed-handler.js.map +1 -1
  694. package/dist/utils/command-safety/index.d.ts.map +1 -1
  695. package/dist/utils/command-safety/index.js +153 -114
  696. package/dist/utils/command-safety/index.js.map +1 -1
  697. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  698. package/dist/utils/command-safety/path-analysis.js +14 -2
  699. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  700. package/dist/utils/command-safety/utils.js +2 -2
  701. package/dist/utils/command-safety/utils.js.map +1 -1
  702. package/dist/utils/command-safety.d.ts +21 -0
  703. package/dist/utils/command-safety.d.ts.map +1 -0
  704. package/dist/utils/command-safety.devnull.test.d.ts +2 -0
  705. package/dist/utils/command-safety.devnull.test.d.ts.map +1 -0
  706. package/dist/utils/command-safety.devnull.test.js +13 -0
  707. package/dist/utils/command-safety.devnull.test.js.map +1 -0
  708. package/dist/utils/command-safety.find.test.js +1 -1
  709. package/dist/utils/command-safety.find.test.js.map +1 -1
  710. package/dist/utils/command-safety.js +348 -0
  711. package/dist/utils/command-safety.js.map +1 -0
  712. package/dist/utils/command-safety.path.test.js +29 -1
  713. package/dist/utils/command-safety.path.test.js.map +1 -1
  714. package/dist/utils/command-safety.specialized-handlers.test.d.ts +2 -0
  715. package/dist/utils/command-safety.specialized-handlers.test.d.ts.map +1 -0
  716. package/dist/utils/command-safety.specialized-handlers.test.js +20 -0
  717. package/dist/utils/command-safety.specialized-handlers.test.js.map +1 -0
  718. package/dist/utils/conversation-event-handler.d.ts +23 -6
  719. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  720. package/dist/utils/conversation-event-handler.js +262 -46
  721. package/dist/utils/conversation-event-handler.js.map +1 -1
  722. package/dist/utils/conversation-event-handler.test.js +576 -14
  723. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  724. package/dist/utils/conversation-utils.d.ts +3 -0
  725. package/dist/utils/conversation-utils.d.ts.map +1 -1
  726. package/dist/utils/conversation-utils.js +3 -0
  727. package/dist/utils/conversation-utils.js.map +1 -1
  728. package/dist/utils/execute-shell.d.ts +5 -6
  729. package/dist/utils/execute-shell.d.ts.map +1 -1
  730. package/dist/utils/execute-shell.js +21 -11
  731. package/dist/utils/execute-shell.js.map +1 -1
  732. package/dist/utils/execute-shell.test.js +37 -6
  733. package/dist/utils/execute-shell.test.js.map +1 -1
  734. package/dist/utils/extract-command-messages.d.ts.map +1 -1
  735. package/dist/utils/extract-command-messages.js +2 -18
  736. package/dist/utils/extract-command-messages.js.map +1 -1
  737. package/dist/utils/extract-command-messages.test.d.ts +2 -0
  738. package/dist/utils/extract-command-messages.test.d.ts.map +1 -0
  739. package/dist/utils/flex-service-tier.d.ts +2 -0
  740. package/dist/utils/flex-service-tier.d.ts.map +1 -0
  741. package/dist/utils/flex-service-tier.js +20 -0
  742. package/dist/utils/flex-service-tier.js.map +1 -0
  743. package/dist/utils/flex-service-tier.test.d.ts +2 -0
  744. package/dist/utils/flex-service-tier.test.d.ts.map +1 -0
  745. package/dist/utils/flex-service-tier.test.js +25 -0
  746. package/dist/utils/flex-service-tier.test.js.map +1 -0
  747. package/dist/utils/log-truncation.d.ts +4 -2
  748. package/dist/utils/log-truncation.d.ts.map +1 -1
  749. package/dist/utils/log-truncation.js +143 -41
  750. package/dist/utils/log-truncation.js.map +1 -1
  751. package/dist/utils/log-truncation.test.js +131 -1
  752. package/dist/utils/log-truncation.test.js.map +1 -1
  753. package/dist/utils/provider-traffic-extractor.d.ts.map +1 -1
  754. package/dist/utils/provider-traffic-extractor.js +0 -1
  755. package/dist/utils/provider-traffic-extractor.js.map +1 -1
  756. package/dist/utils/provider-traffic-extractor.repro.test.d.ts +2 -0
  757. package/dist/utils/provider-traffic-extractor.repro.test.d.ts.map +1 -0
  758. package/dist/utils/provider-traffic-extractor.repro.test.js.map +1 -0
  759. package/dist/utils/streaming-session-factory.d.ts +1 -3
  760. package/dist/utils/streaming-session-factory.d.ts.map +1 -1
  761. package/dist/utils/streaming-session-factory.js +45 -11
  762. package/dist/utils/streaming-session-factory.js.map +1 -1
  763. package/dist/utils/streaming-session-factory.test.js +89 -15
  764. package/dist/utils/streaming-session-factory.test.js.map +1 -1
  765. package/dist/utils/subsequence-filter.d.ts +8 -0
  766. package/dist/utils/subsequence-filter.d.ts.map +1 -0
  767. package/dist/utils/subsequence-filter.js +47 -0
  768. package/dist/utils/subsequence-filter.js.map +1 -0
  769. package/dist/utils/token-usage.d.ts +26 -1
  770. package/dist/utils/token-usage.d.ts.map +1 -1
  771. package/dist/utils/token-usage.js +210 -28
  772. package/dist/utils/token-usage.js.map +1 -1
  773. package/dist/utils/token-usage.test.js +196 -3
  774. package/dist/utils/token-usage.test.js.map +1 -1
  775. package/package.json +5 -5
@@ -0,0 +1,530 @@
1
+ import { Agent, run, tool as createTool } from '@openai/agents';
2
+ import { randomUUID } from 'node:crypto';
3
+ import path from 'node:path';
4
+ import fs from 'node:fs';
5
+ import { getProvider } from '../../providers/index.js';
6
+ import { SubagentSession } from './subagent-session.js';
7
+ import { wrapToolInvoke } from '../../lib/tool-invoke.js';
8
+ import { wrapNeedsApproval } from '../../lib/openai-agent-client.js';
9
+ import { toOpenAIStrictToolSchema } from '../../lib/openai-strict-tool-schema.js';
10
+ import { shouldUseStrictToolSchema } from '../../lib/tool-selection-policy.js';
11
+ import { createReadFileToolDefinition } from '../../tools/read-file.js';
12
+ import { createGrepToolDefinition } from '../../tools/grep.js';
13
+ import { createFindFilesToolDefinition } from '../../tools/find-files.js';
14
+ import { createReadCodeOutlineToolDefinition, createCodeContextSearchToolDefinition, } from '../../tools/code-context.js';
15
+ import { createWebSearchToolDefinition } from '../../tools/web-search.js';
16
+ import { createWebFetchToolDefinition } from '../../tools/web-fetch.js';
17
+ import { createApplyPatchToolDefinition } from '../../tools/apply-patch.js';
18
+ import { createSearchReplaceToolDefinition } from '../../tools/search-replace.js';
19
+ import { createCreateFileToolDefinition } from '../../tools/create-file.js';
20
+ import { registerToolFormatters } from '../../tools/command-message-formatters.js';
21
+ import { trimToolOutput } from '../../utils/trim-tool-output.js';
22
+ import { extractUsage } from '../../utils/token-usage.js';
23
+ import { getEnvInfo, getAgentsInstructions } from '../../agent.js';
24
+ import { tryAcquireFileLock } from '../../tools/file-locks.js';
25
+ const PROMPTS_DIR = path.join(import.meta.dirname, '../../prompts/subagents');
26
+ const ROLE_MAX_TURNS_DEFAULT = 20;
27
+ function parseFrontmatter(content) {
28
+ const match = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n?([\s\S]*)$/);
29
+ if (!match) {
30
+ return { frontmatter: {}, body: content };
31
+ }
32
+ const frontmatterText = match[1];
33
+ const body = match[2];
34
+ const frontmatter = {};
35
+ for (const line of frontmatterText.split('\n')) {
36
+ const colonIdx = line.indexOf(':');
37
+ if (colonIdx === -1)
38
+ continue;
39
+ const key = line.slice(0, colonIdx).trim();
40
+ let raw = line.slice(colonIdx + 1).trim();
41
+ const quoted = raw.length >= 2 && ((raw.startsWith('"') && raw.endsWith('"')) || (raw.startsWith("'") && raw.endsWith("'")));
42
+ if (quoted) {
43
+ frontmatter[key] = raw.slice(1, -1);
44
+ continue;
45
+ }
46
+ if (raw === 'true') {
47
+ frontmatter[key] = true;
48
+ }
49
+ else if (raw === 'false') {
50
+ frontmatter[key] = false;
51
+ }
52
+ else if (!isNaN(Number(raw)) && raw !== '') {
53
+ frontmatter[key] = Number(raw);
54
+ }
55
+ else {
56
+ frontmatter[key] = raw;
57
+ }
58
+ }
59
+ return { frontmatter, body: body.trim() };
60
+ }
61
+ function loadRoleDefinition(role, settings) {
62
+ const filePath = path.join(PROMPTS_DIR, `${role}.md`);
63
+ if (!fs.existsSync(filePath)) {
64
+ throw new Error(`Unknown subagent role: "${role}". No definition found at ${filePath}`);
65
+ }
66
+ const content = fs.readFileSync(filePath, 'utf-8');
67
+ const { frontmatter, body } = parseFrontmatter(content);
68
+ const resolve = (value, settingKey, defaultValue) => {
69
+ if (value === 'inherit' || value === undefined || value === null || value === '') {
70
+ return settings.get(settingKey) ?? defaultValue;
71
+ }
72
+ return value;
73
+ };
74
+ return {
75
+ role,
76
+ name: frontmatter.name ?? role,
77
+ instructions: body,
78
+ canRead: frontmatter.canRead ?? false,
79
+ canWrite: frontmatter.canWrite ?? false,
80
+ canSearchWeb: frontmatter.canSearchWeb ?? false,
81
+ canRunShell: frontmatter.canRunShell ?? false,
82
+ maxTurns: frontmatter.maxTurns ?? ROLE_MAX_TURNS_DEFAULT,
83
+ model: resolve(frontmatter.model, 'agent.model', 'gpt-4o'),
84
+ provider: resolve(frontmatter.provider, 'agent.provider', 'openai'),
85
+ reasoningEffort: resolve(frontmatter.reasoningEffort, 'agent.reasoningEffort', 'default'),
86
+ description: frontmatter.description ?? '',
87
+ };
88
+ }
89
+ function buildAgentTools(toolDefinitions, options) {
90
+ const providerDef = getProvider(options.providerId);
91
+ const capabilities = {
92
+ supportsConversationChaining: providerDef?.capabilities?.supportsConversationChaining ?? false,
93
+ supportsTracingControl: providerDef?.capabilities?.supportsTracingControl ?? false,
94
+ usesStrictToolSchema: providerDef?.capabilities?.usesStrictToolSchema,
95
+ };
96
+ const useStrictSchema = shouldUseStrictToolSchema({
97
+ providerId: options.providerId,
98
+ capabilities,
99
+ });
100
+ return toolDefinitions.map((definition) => wrapToolInvoke(createTool({
101
+ name: definition.name,
102
+ description: definition.description,
103
+ parameters: useStrictSchema ? toOpenAIStrictToolSchema(definition.parameters) : definition.parameters,
104
+ needsApproval: wrapNeedsApproval(definition),
105
+ execute: async (params, _context) => {
106
+ options.onToolStart?.(definition.name, params, formatRunningCommandMessages(definition, params));
107
+ const maxOutputLength = options.settings.get('shell.maxOutputChars');
108
+ const result = await definition.execute(params, _context);
109
+ options.onToolComplete?.(definition.name);
110
+ return trimToolOutput(result, undefined, maxOutputLength ?? undefined);
111
+ },
112
+ })));
113
+ }
114
+ function formatRunningCommandMessages(definition, params) {
115
+ const callId = `subagent-tool-${randomUUID()}`;
116
+ const item = {
117
+ id: callId,
118
+ rawItem: {
119
+ id: callId,
120
+ callId,
121
+ arguments: params,
122
+ output: '',
123
+ },
124
+ };
125
+ try {
126
+ const messages = definition.formatCommandMessage(item, 0, new Map());
127
+ if (messages.length > 0) {
128
+ return messages.map((message, index) => ({
129
+ ...message,
130
+ id: `${callId}-${index}`,
131
+ status: 'running',
132
+ output: '',
133
+ success: undefined,
134
+ failureReason: undefined,
135
+ toolName: message.toolName ?? definition.name,
136
+ toolArgs: message.toolArgs ?? params,
137
+ }));
138
+ }
139
+ }
140
+ catch {
141
+ // Fall back to the tool name if a formatter cannot handle an in-flight item.
142
+ }
143
+ return [
144
+ {
145
+ id: `${callId}-0`,
146
+ sender: 'command',
147
+ status: 'running',
148
+ command: definition.name,
149
+ output: '',
150
+ toolName: definition.name,
151
+ toolArgs: params,
152
+ },
153
+ ];
154
+ }
155
+ function runWithProvider(providerId, runner, agent, input, options) {
156
+ const providerDef = getProvider(providerId);
157
+ const supportsTracingControl = providerDef?.capabilities?.supportsTracingControl ?? false;
158
+ const effectiveOptions = { ...options };
159
+ if (!supportsTracingControl) {
160
+ effectiveOptions.tracingDisabled = true;
161
+ }
162
+ if (!runner && providerId !== 'openai') {
163
+ const label = providerDef?.label || providerId;
164
+ throw new Error(`${label} is configured but could not be initialized. ` +
165
+ `Please check that all required credentials and provider settings are set.`);
166
+ }
167
+ return runner ? runner.run(agent, input, effectiveOptions) : run(agent, input, effectiveOptions);
168
+ }
169
+ function isToolHistoryItem(raw) {
170
+ const type = typeof raw?.type === 'string' ? raw.type : '';
171
+ if (raw?.role === 'tool')
172
+ return true;
173
+ return /tool|function_call/i.test(type);
174
+ }
175
+ function assistantText(raw) {
176
+ if (raw?.role !== 'assistant')
177
+ return null;
178
+ const content = raw?.content;
179
+ if (typeof content === 'string')
180
+ return content;
181
+ if (Array.isArray(content)) {
182
+ return content
183
+ .filter((c) => typeof c?.text === 'string')
184
+ .map((c) => c.text)
185
+ .join('');
186
+ }
187
+ return null;
188
+ }
189
+ /**
190
+ * Returns only the subagent's final answer. When the run used tools, the
191
+ * answer is the last assistant message that appears strictly after the last
192
+ * tool item, so intermediate narration emitted between tool calls does not
193
+ * leak into the parent agent context.
194
+ */
195
+ function extractFinalText(result) {
196
+ if (typeof result.finalOutput === 'string' && result.finalOutput) {
197
+ return result.finalOutput;
198
+ }
199
+ if (Array.isArray(result.history)) {
200
+ const history = result.history;
201
+ let lastToolIndex = -1;
202
+ for (let i = history.length - 1; i >= 0; i--) {
203
+ if (isToolHistoryItem(history[i]?.rawItem ?? history[i])) {
204
+ lastToolIndex = i;
205
+ break;
206
+ }
207
+ }
208
+ for (let i = history.length - 1; i > lastToolIndex; i--) {
209
+ const text = assistantText(history[i]?.rawItem ?? history[i]);
210
+ if (text !== null)
211
+ return text;
212
+ }
213
+ }
214
+ return '';
215
+ }
216
+ function aggregateToolUsage(toolCounts) {
217
+ return Array.from(toolCounts.entries()).map(([toolName, count]) => ({ toolName, count }));
218
+ }
219
+ export class SubagentManager {
220
+ #logger;
221
+ #settings;
222
+ #executionContext;
223
+ #onEvent;
224
+ #mentorSession;
225
+ constructor(deps) {
226
+ this.#logger = deps.logger;
227
+ this.#settings = deps.settings;
228
+ this.#executionContext = deps.executionContext;
229
+ this.#onEvent = deps.onEvent;
230
+ this.#mentorSession = new SubagentSession(randomUUID(), 'mentor');
231
+ }
232
+ #emit(event) {
233
+ try {
234
+ this.#onEvent?.(event);
235
+ }
236
+ catch (error) {
237
+ this.#logger.debug('Subagent event emit failed', { error: error?.message });
238
+ }
239
+ }
240
+ resetMentorSession() {
241
+ this.#mentorSession.reset();
242
+ }
243
+ async run(request) {
244
+ const agentId = randomUUID();
245
+ this.#logger.debug('SubagentManager.run', { agentId, role: request.role, taskLength: request.task.length });
246
+ this.#emit({ type: 'subagent_started', agentId, role: request.role, task: request.task });
247
+ try {
248
+ const result = request.role === 'mentor'
249
+ ? await this.#runMentor(agentId, request.task)
250
+ : await this.#runSubagent(agentId, request, loadRoleDefinition(request.role, this.#settings));
251
+ this.#emit({ type: 'subagent_completed', result });
252
+ return result;
253
+ }
254
+ catch (error) {
255
+ this.#logger.error('Subagent run failed', { agentId, role: request.role, error: error?.message });
256
+ const result = {
257
+ agentId,
258
+ role: request.role,
259
+ status: 'failed',
260
+ finalText: '',
261
+ filesChanged: [],
262
+ toolsUsed: [],
263
+ error: error?.message || String(error),
264
+ };
265
+ this.#emit({ type: 'subagent_completed', result });
266
+ return result;
267
+ }
268
+ }
269
+ async #runMentor(agentId, task) {
270
+ const mentorModel = this.#settings.get('agent.mentorModel');
271
+ if (!mentorModel) {
272
+ throw new Error('Mentor model is not configured');
273
+ }
274
+ const mentorProvider = this.#settings.get('agent.mentorProvider') ?? this.#settings.get('agent.provider') ?? 'openai';
275
+ const mentorMode = this.#settings.get('app.mentorMode');
276
+ // model/provider/reasoning stay on the mentor-specific settings (compat
277
+ // bridge); the prompt body and maxTurns come from the mentor role markdown.
278
+ const definition = loadRoleDefinition('mentor', this.#settings);
279
+ const baseInstructions = mentorMode
280
+ ? 'You are a senior architect acting as a peer reviewer. You have no codebase access—you rely on what the user reports.\n\n' +
281
+ 'Your role is adversarial review, not rubber-stamping:\n' +
282
+ '- Challenge assumptions, even when reasoning sounds solid\n' +
283
+ '- Probe for gaps: what did they not check? What could go wrong?\n' +
284
+ '- Suggest alternatives they may have dismissed too quickly\n' +
285
+ '- Ask for evidence when confidence seems misplaced\n\n' +
286
+ 'When satisfied, give clear approval with specific next steps. When not, say exactly what needs more investigation.\n\n' +
287
+ "Be concise. Push back hard, but don't block unnecessarily."
288
+ : definition.instructions;
289
+ const envInfo = getEnvInfo(this.#settings, this.#executionContext);
290
+ const cwd = this.#executionContext?.getCwd() ?? process.cwd();
291
+ const agentsInstructions = this.#executionContext?.isRemote() ? '' : getAgentsInstructions(cwd);
292
+ const instructions = `${baseInstructions}\n\nEnvironment: ${envInfo}${agentsInstructions}`;
293
+ this.#mentorSession.switchProvider(mentorProvider);
294
+ const mentorRunner = this.#mentorSession.ensureRunner(mentorProvider, (providerId) => {
295
+ const providerDef = getProvider(providerId);
296
+ return providerDef?.createRunner?.({ settingsService: this.#settings, loggingService: this.#logger }) ?? null;
297
+ });
298
+ const mentorAgent = this.#mentorSession.ensureAgent(() => {
299
+ const reasoningEffort = this.#settings.get('agent.mentorReasoningEffort');
300
+ const modelSettings = {};
301
+ if (reasoningEffort && reasoningEffort !== 'default') {
302
+ modelSettings.reasoning = { effort: reasoningEffort, summary: 'auto' };
303
+ }
304
+ return new Agent({
305
+ name: definition.name,
306
+ model: mentorModel,
307
+ ...(Object.keys(modelSettings).length > 0 ? { modelSettings } : {}),
308
+ instructions,
309
+ });
310
+ });
311
+ this.#mentorSession.addUserMessage(task);
312
+ const providerDef = getProvider(mentorProvider);
313
+ const supportsChaining = providerDef?.capabilities?.supportsConversationChaining ?? false;
314
+ const input = this.#mentorSession.getInput(task, supportsChaining);
315
+ const runOptions = this.#mentorSession.getRunOptions(supportsChaining, definition.maxTurns);
316
+ const result = await runWithProvider(mentorProvider, mentorRunner, mentorAgent, input, runOptions);
317
+ this.#mentorSession.updateFromResult(result);
318
+ return {
319
+ agentId,
320
+ role: 'mentor',
321
+ status: 'completed',
322
+ finalText: extractFinalText(result),
323
+ filesChanged: [],
324
+ toolsUsed: [],
325
+ usage: extractUsage(result),
326
+ };
327
+ }
328
+ async #runSubagent(agentId, request, definition) {
329
+ const toolCounts = new Map();
330
+ const filesChanged = [];
331
+ const toolDefinitions = this.#buildToolDefinitions(definition, request.writeBoundary, filesChanged);
332
+ const providerId = definition.provider;
333
+ const tools = buildAgentTools(toolDefinitions, {
334
+ providerId,
335
+ logger: this.#logger,
336
+ settings: this.#settings,
337
+ onToolStart: (name, _params, commandMessages) => {
338
+ toolCounts.set(name, (toolCounts.get(name) ?? 0) + 1);
339
+ this.#emit({
340
+ type: 'subagent_tool_started',
341
+ agentId,
342
+ role: request.role,
343
+ toolName: name,
344
+ commandMessages,
345
+ });
346
+ },
347
+ });
348
+ const providerDef = getProvider(providerId);
349
+ const runner = providerId !== 'openai'
350
+ ? providerDef?.createRunner?.({ settingsService: this.#settings, loggingService: this.#logger }) ?? null
351
+ : null;
352
+ const modelSettings = {};
353
+ if (definition.reasoningEffort && definition.reasoningEffort !== 'default') {
354
+ modelSettings.reasoning = { effort: definition.reasoningEffort, summary: 'auto' };
355
+ }
356
+ const envInfo = getEnvInfo(this.#settings, this.#executionContext);
357
+ const cwd = this.#executionContext?.getCwd() ?? process.cwd();
358
+ const agentsInstructions = this.#executionContext?.isRemote() ? '' : getAgentsInstructions(cwd);
359
+ const fullInstructions = [
360
+ definition.instructions,
361
+ `Environment: ${envInfo}${agentsInstructions}`,
362
+ request.writeBoundary?.length
363
+ ? `Write boundary: you may only write to paths within: ${request.writeBoundary.join(', ')}`
364
+ : '',
365
+ ]
366
+ .filter(Boolean)
367
+ .join('\n\n');
368
+ const agent = new Agent({
369
+ name: definition.name,
370
+ model: definition.model,
371
+ ...(Object.keys(modelSettings).length > 0 ? { modelSettings } : {}),
372
+ instructions: fullInstructions,
373
+ tools,
374
+ });
375
+ const result = await runWithProvider(providerId, runner, agent, request.task, {
376
+ stream: false,
377
+ maxTurns: definition.maxTurns,
378
+ });
379
+ return {
380
+ agentId,
381
+ role: request.role,
382
+ status: 'completed',
383
+ finalText: extractFinalText(result),
384
+ filesChanged: [...new Set(filesChanged)],
385
+ toolsUsed: aggregateToolUsage(toolCounts),
386
+ usage: extractUsage(result),
387
+ };
388
+ }
389
+ #buildToolDefinitions(definition, writeBoundary, filesChanged) {
390
+ const tools = [];
391
+ const cwd = this.#executionContext?.getCwd() ?? process.cwd();
392
+ const isRemote = this.#executionContext?.isRemote() ?? false;
393
+ if (definition.canRead) {
394
+ tools.push(createReadFileToolDefinition({ executionContext: this.#executionContext, allowOutsideWorkspace: false }), createGrepToolDefinition({ executionContext: this.#executionContext }), createFindFilesToolDefinition({ executionContext: this.#executionContext }));
395
+ if (!isRemote) {
396
+ tools.push(createReadCodeOutlineToolDefinition({ executionContext: this.#executionContext }), createCodeContextSearchToolDefinition({ executionContext: this.#executionContext }));
397
+ }
398
+ }
399
+ if (definition.canSearchWeb) {
400
+ tools.push(createWebSearchToolDefinition({ settingsService: this.#settings, loggingService: this.#logger }), createWebFetchToolDefinition({ settingsService: this.#settings, loggingService: this.#logger }));
401
+ }
402
+ if (definition.canWrite) {
403
+ tools.push(this.#wrapWriteTool(createApplyPatchToolDefinition({
404
+ settingsService: this.#settings,
405
+ loggingService: this.#logger,
406
+ executionContext: this.#executionContext,
407
+ }), writeBoundary, cwd, filesChanged, (params) => this.#extractPathsFromApplyPatch(params)), this.#wrapWriteTool(createSearchReplaceToolDefinition({
408
+ settingsService: this.#settings,
409
+ loggingService: this.#logger,
410
+ executionContext: this.#executionContext,
411
+ }), writeBoundary, cwd, filesChanged, (params) => this.#extractPathsFromSearchReplace(params)), this.#wrapWriteTool(createCreateFileToolDefinition({
412
+ settingsService: this.#settings,
413
+ loggingService: this.#logger,
414
+ executionContext: this.#executionContext,
415
+ }), writeBoundary, cwd, filesChanged, (params) => (params?.path ? [params.path] : [])));
416
+ }
417
+ registerToolFormatters(tools);
418
+ return tools;
419
+ }
420
+ #extractPathsFromApplyPatch(params) {
421
+ if (Array.isArray(params?.operations)) {
422
+ return params.operations.map((op) => op?.path).filter(Boolean);
423
+ }
424
+ return params?.path ? [params.path] : [];
425
+ }
426
+ #extractPathsFromSearchReplace(params) {
427
+ if (Array.isArray(params?.replacements)) {
428
+ return params.replacements.map((replacement) => replacement?.path).filter(Boolean);
429
+ }
430
+ return params?.path ? [params.path] : [];
431
+ }
432
+ #extractSuccessfulWritePaths(result) {
433
+ if (typeof result !== 'string')
434
+ return [];
435
+ try {
436
+ const parsed = JSON.parse(result);
437
+ if (Array.isArray(parsed?.output)) {
438
+ return parsed.output
439
+ .filter((item) => item?.success === true && typeof item?.path === 'string')
440
+ .map((item) => item.path);
441
+ }
442
+ if (parsed?.success === true && typeof parsed?.path === 'string') {
443
+ return [parsed.path];
444
+ }
445
+ }
446
+ catch {
447
+ return [];
448
+ }
449
+ return [];
450
+ }
451
+ #tryAcquireWorkerWriteLocks(paths, cwd) {
452
+ const uniqueResolvedPaths = [...new Set(paths.map((filePath) => path.resolve(cwd, filePath)))];
453
+ const releases = [];
454
+ for (const resolvedPath of uniqueResolvedPaths) {
455
+ const release = tryAcquireFileLock(resolvedPath);
456
+ if (!release) {
457
+ for (const unlock of releases.reverse()) {
458
+ unlock();
459
+ }
460
+ return null;
461
+ }
462
+ releases.push(release);
463
+ }
464
+ return () => {
465
+ for (const unlock of releases.reverse()) {
466
+ unlock();
467
+ }
468
+ };
469
+ }
470
+ // An explicit writeBoundary narrows where a worker may write. When omitted it
471
+ // defaults to the workspace root, so writes outside the workspace are always
472
+ // rejected even without an explicit boundary.
473
+ #isWithinWriteBoundary(filePath, writeBoundary, cwd) {
474
+ const boundaries = writeBoundary?.length ? writeBoundary : [cwd];
475
+ const resolved = path.resolve(cwd, filePath);
476
+ return boundaries.some((boundary) => {
477
+ const resolvedBoundary = path.resolve(cwd, boundary);
478
+ return resolved === resolvedBoundary || resolved.startsWith(resolvedBoundary + path.sep);
479
+ });
480
+ }
481
+ #wrapWriteTool(definition, writeBoundary, cwd, filesChanged, extractPaths) {
482
+ const originalExecute = definition.execute.bind(definition);
483
+ return {
484
+ ...definition,
485
+ // The writeBoundary is the worker's permission grant: in-boundary writes
486
+ // are auto-approved (there is no foreground approval channel for a
487
+ // subagent running inside a blocked parent tool call), and out-of-boundary
488
+ // writes are rejected deterministically by execute() below. Either way no
489
+ // interactive approval is required, so this never returns true.
490
+ needsApproval: () => false,
491
+ execute: async (params, context) => {
492
+ const paths = extractPaths(params);
493
+ for (const filePath of paths) {
494
+ if (!this.#isWithinWriteBoundary(filePath, writeBoundary, cwd)) {
495
+ return JSON.stringify({
496
+ output: [
497
+ {
498
+ success: false,
499
+ error: `Write rejected: path "${filePath}" is outside the allowed write boundary.`,
500
+ },
501
+ ],
502
+ });
503
+ }
504
+ }
505
+ const releaseWorkerLocks = this.#tryAcquireWorkerWriteLocks(paths, cwd);
506
+ if (!releaseWorkerLocks) {
507
+ return JSON.stringify({
508
+ output: [
509
+ {
510
+ success: false,
511
+ error: 'Write rejected: one or more target files are already being modified by another worker.',
512
+ },
513
+ ],
514
+ });
515
+ }
516
+ try {
517
+ const result = await originalExecute(params, context);
518
+ for (const successfulPath of this.#extractSuccessfulWritePaths(result)) {
519
+ filesChanged.push(successfulPath);
520
+ }
521
+ return result;
522
+ }
523
+ finally {
524
+ releaseWorkerLocks();
525
+ }
526
+ },
527
+ };
528
+ }
529
+ }
530
+ //# sourceMappingURL=subagent-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-manager.js","sourceRoot":"","sources":["../../../source/services/subagents/subagent-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=subagent-manager.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subagent-manager.test.d.ts","sourceRoot":"","sources":["../../../source/services/subagents/subagent-manager.test.ts"],"names":[],"mappings":""}