@qduc/term2 0.4.0 → 0.6.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 (529) hide show
  1. package/dist/agent.d.ts +5 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +61 -8
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agent.test.js +122 -10
  6. package/dist/agent.test.js.map +1 -1
  7. package/dist/app.d.ts +13 -0
  8. package/dist/app.d.ts.map +1 -1
  9. package/dist/app.js +71 -18
  10. package/dist/app.js.map +1 -1
  11. package/dist/app.startup-banner.test.js +48 -1
  12. package/dist/app.startup-banner.test.js.map +1 -1
  13. package/dist/cli.js +197 -28
  14. package/dist/cli.js.map +1 -1
  15. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  16. package/dist/components/ApprovalPrompt.js +11 -34
  17. package/dist/components/ApprovalPrompt.js.map +1 -1
  18. package/dist/components/Banner.d.ts.map +1 -1
  19. package/dist/components/Banner.js +2 -7
  20. package/dist/components/Banner.js.map +1 -1
  21. package/dist/components/BottomArea.d.ts +7 -1
  22. package/dist/components/BottomArea.d.ts.map +1 -1
  23. package/dist/components/BottomArea.js +2 -2
  24. package/dist/components/BottomArea.js.map +1 -1
  25. package/dist/components/ChatMessage.d.ts.map +1 -1
  26. package/dist/components/ChatMessage.js +2 -1
  27. package/dist/components/ChatMessage.js.map +1 -1
  28. package/dist/components/CommandMessage.d.ts.map +1 -1
  29. package/dist/components/CommandMessage.js +45 -48
  30. package/dist/components/CommandMessage.js.map +1 -1
  31. package/dist/components/CommandMessage.test.js +69 -0
  32. package/dist/components/CommandMessage.test.js.map +1 -1
  33. package/dist/components/DiffView.d.ts +7 -0
  34. package/dist/components/DiffView.d.ts.map +1 -0
  35. package/dist/components/DiffView.js +80 -0
  36. package/dist/components/DiffView.js.map +1 -0
  37. package/dist/components/DiffView.test.d.ts +2 -0
  38. package/dist/components/DiffView.test.d.ts.map +1 -0
  39. package/dist/components/DiffView.test.js +45 -0
  40. package/dist/components/DiffView.test.js.map +1 -0
  41. package/dist/components/Input/PopupManager.d.ts +7 -0
  42. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  43. package/dist/components/Input/PopupManager.js +4 -2
  44. package/dist/components/Input/PopupManager.js.map +1 -1
  45. package/dist/components/Input/determine-active-menu.d.ts.map +1 -1
  46. package/dist/components/Input/determine-active-menu.js +4 -1
  47. package/dist/components/Input/determine-active-menu.js.map +1 -1
  48. package/dist/components/Input/popup-props.d.ts +3 -1
  49. package/dist/components/Input/popup-props.d.ts.map +1 -1
  50. package/dist/components/Input/popup-props.js +7 -1
  51. package/dist/components/Input/popup-props.js.map +1 -1
  52. package/dist/components/InputBox.d.ts +6 -0
  53. package/dist/components/InputBox.d.ts.map +1 -1
  54. package/dist/components/InputBox.js +74 -11
  55. package/dist/components/InputBox.js.map +1 -1
  56. package/dist/components/InputBox.menu-logic.test.js +16 -1
  57. package/dist/components/InputBox.menu-logic.test.js.map +1 -1
  58. package/dist/components/InputBox.test.js +1 -0
  59. package/dist/components/InputBox.test.js.map +1 -1
  60. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  61. package/dist/components/MarkdownRenderer.js +65 -7
  62. package/dist/components/MarkdownRenderer.js.map +1 -1
  63. package/dist/components/MessageList.d.ts.map +1 -1
  64. package/dist/components/MessageList.js +62 -9
  65. package/dist/components/MessageList.js.map +1 -1
  66. package/dist/components/MessageList.test.js +128 -0
  67. package/dist/components/MessageList.test.js.map +1 -1
  68. package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
  69. package/dist/components/SettingsValueSelectionMenu.js +4 -1
  70. package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
  71. package/dist/components/StatusBar.d.ts.map +1 -1
  72. package/dist/components/StatusBar.js +8 -6
  73. package/dist/components/StatusBar.js.map +1 -1
  74. package/dist/components/StatusBar.test.js +24 -0
  75. package/dist/components/StatusBar.test.js.map +1 -1
  76. package/dist/components/SubagentActivityMessage.d.ts +12 -0
  77. package/dist/components/SubagentActivityMessage.d.ts.map +1 -0
  78. package/dist/components/SubagentActivityMessage.js +30 -0
  79. package/dist/components/SubagentActivityMessage.js.map +1 -0
  80. package/dist/components/UndoSelectionMenu.d.ts +12 -0
  81. package/dist/components/UndoSelectionMenu.d.ts.map +1 -0
  82. package/dist/components/UndoSelectionMenu.js +46 -0
  83. package/dist/components/UndoSelectionMenu.js.map +1 -0
  84. package/dist/components/UndoSelectionMenu.test.d.ts +2 -0
  85. package/dist/components/UndoSelectionMenu.test.d.ts.map +1 -0
  86. package/dist/components/UndoSelectionMenu.test.js +40 -0
  87. package/dist/components/UndoSelectionMenu.test.js.map +1 -0
  88. package/dist/components/theme.d.ts +8 -0
  89. package/dist/components/theme.d.ts.map +1 -0
  90. package/dist/components/theme.js +20 -0
  91. package/dist/components/theme.js.map +1 -0
  92. package/dist/context/InputContext.d.ts +1 -1
  93. package/dist/context/InputContext.d.ts.map +1 -1
  94. package/dist/context/InputContext.js.map +1 -1
  95. package/dist/hooks/use-app-commands.d.ts +20 -2
  96. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  97. package/dist/hooks/use-app-commands.js +138 -52
  98. package/dist/hooks/use-app-commands.js.map +1 -1
  99. package/dist/hooks/use-app-commands.test.js +264 -1
  100. package/dist/hooks/use-app-commands.test.js.map +1 -1
  101. package/dist/hooks/use-conversation.d.ts +20 -2
  102. package/dist/hooks/use-conversation.d.ts.map +1 -1
  103. package/dist/hooks/use-conversation.js +114 -14
  104. package/dist/hooks/use-conversation.js.map +1 -1
  105. package/dist/hooks/use-conversation.resume.test.d.ts +2 -0
  106. package/dist/hooks/use-conversation.resume.test.d.ts.map +1 -0
  107. package/dist/hooks/use-conversation.resume.test.js +26 -0
  108. package/dist/hooks/use-conversation.resume.test.js.map +1 -0
  109. package/dist/hooks/use-escape-key.d.ts.map +1 -1
  110. package/dist/hooks/use-escape-key.js +14 -7
  111. package/dist/hooks/use-escape-key.js.map +1 -1
  112. package/dist/hooks/use-escape-key.test.js +168 -4
  113. package/dist/hooks/use-escape-key.test.js.map +1 -1
  114. package/dist/hooks/use-input-history.d.ts +4 -3
  115. package/dist/hooks/use-input-history.d.ts.map +1 -1
  116. package/dist/hooks/use-input-history.js +10 -8
  117. package/dist/hooks/use-input-history.js.map +1 -1
  118. package/dist/hooks/use-input-history.test.d.ts +2 -0
  119. package/dist/hooks/use-input-history.test.d.ts.map +1 -0
  120. package/dist/hooks/use-input-history.test.js +43 -0
  121. package/dist/hooks/use-input-history.test.js.map +1 -0
  122. package/dist/hooks/use-mode-handlers.d.ts +10 -2
  123. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  124. package/dist/hooks/use-mode-handlers.js +21 -2
  125. package/dist/hooks/use-mode-handlers.js.map +1 -1
  126. package/dist/hooks/use-model-selection.d.ts +3 -0
  127. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  128. package/dist/hooks/use-model-selection.js +3 -0
  129. package/dist/hooks/use-model-selection.js.map +1 -1
  130. package/dist/hooks/use-path-completion.test.d.ts +2 -0
  131. package/dist/hooks/use-path-completion.test.d.ts.map +1 -0
  132. package/dist/hooks/use-path-completion.test.js +54 -0
  133. package/dist/hooks/use-path-completion.test.js.map +1 -0
  134. package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
  135. package/dist/hooks/use-runtime-settings.js +15 -6
  136. package/dist/hooks/use-runtime-settings.js.map +1 -1
  137. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  138. package/dist/hooks/use-settings-completion.js +0 -1
  139. package/dist/hooks/use-settings-completion.js.map +1 -1
  140. package/dist/hooks/use-settings-value-completion.d.ts +1 -0
  141. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  142. package/dist/hooks/use-settings-value-completion.js +25 -19
  143. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  144. package/dist/hooks/use-shell-mode.d.ts.map +1 -1
  145. package/dist/hooks/use-shell-mode.js +2 -1
  146. package/dist/hooks/use-shell-mode.js.map +1 -1
  147. package/dist/hooks/use-slash-commands.d.ts +1 -0
  148. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  149. package/dist/hooks/use-slash-commands.js +10 -1
  150. package/dist/hooks/use-slash-commands.js.map +1 -1
  151. package/dist/hooks/use-undo-selection.d.ts +19 -0
  152. package/dist/hooks/use-undo-selection.d.ts.map +1 -0
  153. package/dist/hooks/use-undo-selection.js +76 -0
  154. package/dist/hooks/use-undo-selection.js.map +1 -0
  155. package/dist/lib/editor-impl.test.js +63 -50
  156. package/dist/lib/editor-impl.test.js.map +1 -1
  157. package/dist/lib/openai-agent-client.d.ts +9 -0
  158. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  159. package/dist/lib/openai-agent-client.js +104 -134
  160. package/dist/lib/openai-agent-client.js.map +1 -1
  161. package/dist/lib/openai-agent-client.test.js +30 -0
  162. package/dist/lib/openai-agent-client.test.js.map +1 -1
  163. package/dist/non-interactive.d.ts +6 -1
  164. package/dist/non-interactive.d.ts.map +1 -1
  165. package/dist/non-interactive.js +70 -4
  166. package/dist/non-interactive.js.map +1 -1
  167. package/dist/non-interactive.test.js +176 -1
  168. package/dist/non-interactive.test.js.map +1 -1
  169. package/dist/prompts/orchestrator.md +46 -0
  170. package/dist/prompts/plan-mode-info.md +17 -0
  171. package/dist/prompts/prompt-selector.d.ts +2 -1
  172. package/dist/prompts/prompt-selector.d.ts.map +1 -1
  173. package/dist/prompts/prompt-selector.js +5 -1
  174. package/dist/prompts/prompt-selector.js.map +1 -1
  175. package/dist/prompts/prompt-selector.test.js +7 -0
  176. package/dist/prompts/prompt-selector.test.js.map +1 -1
  177. package/dist/prompts/prompt-selector.test.ts +18 -0
  178. package/dist/prompts/prompt-selector.ts +7 -1
  179. package/dist/prompts/reasoning-efficiency.d.ts +7 -0
  180. package/dist/prompts/reasoning-efficiency.d.ts.map +1 -0
  181. package/dist/prompts/reasoning-efficiency.js +19 -0
  182. package/dist/prompts/reasoning-efficiency.js.map +1 -0
  183. package/dist/prompts/reasoning-efficiency.ts +18 -0
  184. package/dist/prompts/search-via-shell.test.js +17 -17
  185. package/dist/prompts/search-via-shell.test.js.map +1 -1
  186. package/dist/prompts/search-via-shell.test.ts +17 -17
  187. package/dist/prompts/shell-auto-approval.d.ts +3 -0
  188. package/dist/prompts/shell-auto-approval.d.ts.map +1 -0
  189. package/dist/prompts/shell-auto-approval.js +23 -0
  190. package/dist/prompts/shell-auto-approval.js.map +1 -0
  191. package/dist/prompts/shell-auto-approval.ts +23 -0
  192. package/dist/prompts/subagent-delegation.d.ts +10 -0
  193. package/dist/prompts/subagent-delegation.d.ts.map +1 -0
  194. package/dist/prompts/subagent-delegation.js +33 -0
  195. package/dist/prompts/subagent-delegation.js.map +1 -0
  196. package/dist/prompts/subagent-delegation.test.d.ts +2 -0
  197. package/dist/prompts/subagent-delegation.test.d.ts.map +1 -0
  198. package/dist/prompts/subagent-delegation.test.js +17 -0
  199. package/dist/prompts/subagent-delegation.test.js.map +1 -0
  200. package/dist/prompts/subagent-delegation.test.ts +21 -0
  201. package/dist/prompts/subagent-delegation.ts +40 -0
  202. package/dist/prompts/subagents/explorer.md +41 -0
  203. package/dist/prompts/subagents/mentor.md +15 -0
  204. package/dist/prompts/subagents/researcher.md +39 -0
  205. package/dist/prompts/subagents/worker.md +40 -0
  206. package/dist/providers/ai-sdk-anthropic.provider.d.ts +1 -0
  207. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -1
  208. package/dist/providers/ai-sdk-anthropic.provider.js +67 -1
  209. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -1
  210. package/dist/providers/ai-sdk-anthropic.provider.test.d.ts +2 -0
  211. package/dist/providers/ai-sdk-anthropic.provider.test.d.ts.map +1 -0
  212. package/dist/providers/ai-sdk-anthropic.provider.test.js +87 -0
  213. package/dist/providers/ai-sdk-anthropic.provider.test.js.map +1 -0
  214. package/dist/providers/common/openai-compatible-messages.d.ts +1 -1
  215. package/dist/providers/common/openai-compatible-messages.d.ts.map +1 -1
  216. package/dist/providers/common/openai-compatible-messages.js +47 -16
  217. package/dist/providers/common/openai-compatible-messages.js.map +1 -1
  218. package/dist/providers/common/openai-compatible-messages.test.js +77 -14
  219. package/dist/providers/common/openai-compatible-messages.test.js.map +1 -1
  220. package/dist/providers/custom-provider-adapter.test.js +39 -1
  221. package/dist/providers/custom-provider-adapter.test.js.map +1 -1
  222. package/dist/providers/openai-compatible.provider.d.ts +11 -1
  223. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  224. package/dist/providers/openai-compatible.provider.js +124 -10
  225. package/dist/providers/openai-compatible.provider.js.map +1 -1
  226. package/dist/providers/openai-compatible.provider.test.js +62 -1
  227. package/dist/providers/openai-compatible.provider.test.js.map +1 -1
  228. package/dist/providers/openrouter.provider.js +1 -1
  229. package/dist/providers/openrouter.provider.js.map +1 -1
  230. package/dist/scripts/eval-auto-approval/dataset.d.ts +1 -1
  231. package/dist/services/agent-stream.d.ts +1 -0
  232. package/dist/services/agent-stream.d.ts.map +1 -1
  233. package/dist/services/approval-flow-coordinator.d.ts +2 -0
  234. package/dist/services/approval-flow-coordinator.d.ts.map +1 -1
  235. package/dist/services/approval-flow-coordinator.js +45 -18
  236. package/dist/services/approval-flow-coordinator.js.map +1 -1
  237. package/dist/services/approval-flow-coordinator.test.js +87 -0
  238. package/dist/services/approval-flow-coordinator.test.js.map +1 -1
  239. package/dist/services/approval-rejection-interceptor.test.js +5 -0
  240. package/dist/services/approval-rejection-interceptor.test.js.map +1 -1
  241. package/dist/services/approval-state.d.ts +4 -0
  242. package/dist/services/approval-state.d.ts.map +1 -1
  243. package/dist/services/approval-state.js +2 -0
  244. package/dist/services/approval-state.js.map +1 -1
  245. package/dist/services/approval-state.test.js +21 -0
  246. package/dist/services/approval-state.test.js.map +1 -1
  247. package/dist/services/conversation-events.d.ts +25 -1
  248. package/dist/services/conversation-events.d.ts.map +1 -1
  249. package/dist/services/conversation-persistence.d.ts +52 -0
  250. package/dist/services/conversation-persistence.d.ts.map +1 -0
  251. package/dist/services/conversation-persistence.js +163 -0
  252. package/dist/services/conversation-persistence.js.map +1 -0
  253. package/dist/services/conversation-persistence.test.d.ts +2 -0
  254. package/dist/services/conversation-persistence.test.d.ts.map +1 -0
  255. package/dist/services/conversation-persistence.test.js +418 -0
  256. package/dist/services/conversation-persistence.test.js.map +1 -0
  257. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  258. package/dist/services/conversation-result-builder.js +13 -0
  259. package/dist/services/conversation-result-builder.js.map +1 -1
  260. package/dist/services/conversation-service.d.ts +22 -0
  261. package/dist/services/conversation-service.d.ts.map +1 -1
  262. package/dist/services/conversation-service.js +18 -0
  263. package/dist/services/conversation-service.js.map +1 -1
  264. package/dist/services/conversation-session.auto-approval.test.js +57 -9
  265. package/dist/services/conversation-session.auto-approval.test.js.map +1 -1
  266. package/dist/services/conversation-session.d.ts +25 -0
  267. package/dist/services/conversation-session.d.ts.map +1 -1
  268. package/dist/services/conversation-session.js +208 -40
  269. package/dist/services/conversation-session.js.map +1 -1
  270. package/dist/services/conversation-store.d.ts +42 -0
  271. package/dist/services/conversation-store.d.ts.map +1 -1
  272. package/dist/services/conversation-store.js +182 -1
  273. package/dist/services/conversation-store.js.map +1 -1
  274. package/dist/services/conversation-store.test.js +310 -1
  275. package/dist/services/conversation-store.test.js.map +1 -1
  276. package/dist/services/history-service.d.ts +6 -1
  277. package/dist/services/history-service.d.ts.map +1 -1
  278. package/dist/services/history-service.js +46 -6
  279. package/dist/services/history-service.js.map +1 -1
  280. package/dist/services/history-service.test.d.ts +2 -0
  281. package/dist/services/history-service.test.d.ts.map +1 -0
  282. package/dist/services/history-service.test.js +77 -0
  283. package/dist/services/history-service.test.js.map +1 -0
  284. package/dist/services/input-surge-guard.d.ts +37 -0
  285. package/dist/services/input-surge-guard.d.ts.map +1 -0
  286. package/dist/services/input-surge-guard.js +190 -0
  287. package/dist/services/input-surge-guard.js.map +1 -0
  288. package/dist/services/input-surge-guard.test.d.ts +2 -0
  289. package/dist/services/input-surge-guard.test.d.ts.map +1 -0
  290. package/dist/services/input-surge-guard.test.js +126 -0
  291. package/dist/services/input-surge-guard.test.js.map +1 -0
  292. package/dist/services/interruption-info.js +1 -1
  293. package/dist/services/interruption-info.js.map +1 -1
  294. package/dist/services/interruption-info.test.js +12 -0
  295. package/dist/services/interruption-info.test.js.map +1 -1
  296. package/dist/services/mode-notices.d.ts +11 -0
  297. package/dist/services/mode-notices.d.ts.map +1 -0
  298. package/dist/services/mode-notices.js +16 -0
  299. package/dist/services/mode-notices.js.map +1 -0
  300. package/dist/services/plan-mode-interceptor.d.ts +10 -0
  301. package/dist/services/plan-mode-interceptor.d.ts.map +1 -0
  302. package/dist/services/plan-mode-interceptor.js +38 -0
  303. package/dist/services/plan-mode-interceptor.js.map +1 -0
  304. package/dist/services/plan-mode-interceptor.test.d.ts +2 -0
  305. package/dist/services/plan-mode-interceptor.test.d.ts.map +1 -0
  306. package/dist/services/plan-mode-interceptor.test.js +55 -0
  307. package/dist/services/plan-mode-interceptor.test.js.map +1 -0
  308. package/dist/services/rtk-service.d.ts.map +1 -1
  309. package/dist/services/rtk-service.js +104 -9
  310. package/dist/services/rtk-service.js.map +1 -1
  311. package/dist/services/rtk-service.test.js +55 -20
  312. package/dist/services/rtk-service.test.js.map +1 -1
  313. package/dist/services/service-interfaces.d.ts +4 -1
  314. package/dist/services/service-interfaces.d.ts.map +1 -1
  315. package/dist/services/settings-persistence.js +1 -1
  316. package/dist/services/settings-schema.d.ts +107 -4
  317. package/dist/services/settings-schema.d.ts.map +1 -1
  318. package/dist/services/settings-schema.js +103 -5
  319. package/dist/services/settings-schema.js.map +1 -1
  320. package/dist/services/settings-schema.test.js +35 -1
  321. package/dist/services/settings-schema.test.js.map +1 -1
  322. package/dist/services/settings-service.d.ts +3 -1
  323. package/dist/services/settings-service.d.ts.map +1 -1
  324. package/dist/services/settings-service.js +40 -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 +2 -1
  328. package/dist/services/settings-sources.js.map +1 -1
  329. package/dist/services/settings-sources.test.js +4 -0
  330. package/dist/services/settings-sources.test.js.map +1 -1
  331. package/dist/services/shell-auto-approval-evaluator.d.ts +2 -1
  332. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
  333. package/dist/services/shell-auto-approval-evaluator.js +12 -29
  334. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  335. package/dist/services/shell-auto-approval-evaluator.test.js +2 -4
  336. package/dist/services/shell-auto-approval-evaluator.test.js.map +1 -1
  337. package/dist/services/shell-auto-approval-resolver.test.js +1 -1
  338. package/dist/services/shell-auto-approval-resolver.test.js.map +1 -1
  339. package/dist/services/stream-event-processor.d.ts.map +1 -1
  340. package/dist/services/stream-event-processor.js +24 -8
  341. package/dist/services/stream-event-processor.js.map +1 -1
  342. package/dist/services/stream-event-processor.test.js +27 -0
  343. package/dist/services/stream-event-processor.test.js.map +1 -1
  344. package/dist/services/subagents/subagent-manager.d.ts +16 -0
  345. package/dist/services/subagents/subagent-manager.d.ts.map +1 -0
  346. package/dist/services/subagents/subagent-manager.js +670 -0
  347. package/dist/services/subagents/subagent-manager.js.map +1 -0
  348. package/dist/services/subagents/subagent-manager.test.d.ts +2 -0
  349. package/dist/services/subagents/subagent-manager.test.d.ts.map +1 -0
  350. package/dist/services/subagents/subagent-manager.test.js +880 -0
  351. package/dist/services/subagents/subagent-manager.test.js.map +1 -0
  352. package/dist/services/subagents/subagent-session.d.ts +26 -0
  353. package/dist/services/subagents/subagent-session.d.ts.map +1 -0
  354. package/dist/services/subagents/subagent-session.js +86 -0
  355. package/dist/services/subagents/subagent-session.js.map +1 -0
  356. package/dist/services/subagents/subagent-session.test.d.ts +2 -0
  357. package/dist/services/subagents/subagent-session.test.d.ts.map +1 -0
  358. package/dist/services/subagents/subagent-session.test.js +118 -0
  359. package/dist/services/subagents/subagent-session.test.js.map +1 -0
  360. package/dist/services/subagents/types.d.ts +41 -0
  361. package/dist/services/subagents/types.d.ts.map +1 -0
  362. package/dist/services/subagents/types.js +2 -0
  363. package/dist/services/subagents/types.js.map +1 -0
  364. package/dist/services/terminal-result-collector.d.ts.map +1 -1
  365. package/dist/services/terminal-result-collector.js +31 -5
  366. package/dist/services/terminal-result-collector.js.map +1 -1
  367. package/dist/services/terminal-result-collector.test.js +81 -0
  368. package/dist/services/terminal-result-collector.test.js.map +1 -1
  369. package/dist/slash-commands.d.ts +1 -0
  370. package/dist/slash-commands.d.ts.map +1 -1
  371. package/dist/slash-commands.js +8 -1
  372. package/dist/slash-commands.js.map +1 -1
  373. package/dist/slash-commands.test.d.ts +2 -0
  374. package/dist/slash-commands.test.d.ts.map +1 -0
  375. package/dist/slash-commands.test.js +22 -0
  376. package/dist/slash-commands.test.js.map +1 -0
  377. package/dist/tools/apply-patch.d.ts +2 -2
  378. package/dist/tools/apply-patch.d.ts.map +1 -1
  379. package/dist/tools/apply-patch.js +2 -6
  380. package/dist/tools/apply-patch.js.map +1 -1
  381. package/dist/tools/apply-patch.test.js +2 -13
  382. package/dist/tools/apply-patch.test.js.map +1 -1
  383. package/dist/tools/ask-mentor.d.ts +2 -2
  384. package/dist/tools/ask-mentor.d.ts.map +1 -1
  385. package/dist/tools/ask-mentor.js.map +1 -1
  386. package/dist/tools/code-context.d.ts +3 -3
  387. package/dist/tools/code-context.d.ts.map +1 -1
  388. package/dist/tools/code-context.js.map +1 -1
  389. package/dist/tools/code-context.test.js +2 -2
  390. package/dist/tools/code-context.test.js.map +1 -1
  391. package/dist/tools/command-message-formatters.d.ts +5 -0
  392. package/dist/tools/command-message-formatters.d.ts.map +1 -0
  393. package/dist/tools/command-message-formatters.js +13 -0
  394. package/dist/tools/command-message-formatters.js.map +1 -0
  395. package/dist/tools/command-message-formatters.test.d.ts +2 -0
  396. package/dist/tools/command-message-formatters.test.d.ts.map +1 -0
  397. package/dist/tools/command-message-formatters.test.js +23 -0
  398. package/dist/tools/command-message-formatters.test.js.map +1 -0
  399. package/dist/tools/create-file.d.ts +2 -2
  400. package/dist/tools/create-file.d.ts.map +1 -1
  401. package/dist/tools/create-file.js +14 -9
  402. package/dist/tools/create-file.js.map +1 -1
  403. package/dist/tools/create-file.test.js +13 -13
  404. package/dist/tools/create-file.test.js.map +1 -1
  405. package/dist/tools/edit-healing.d.ts +3 -3
  406. package/dist/tools/edit-healing.d.ts.map +1 -1
  407. package/dist/tools/edit-healing.js.map +1 -1
  408. package/dist/tools/edit-healing.test.js +0 -1
  409. package/dist/tools/edit-healing.test.js.map +1 -1
  410. package/dist/tools/file-locks.d.ts +1 -0
  411. package/dist/tools/file-locks.d.ts.map +1 -1
  412. package/dist/tools/file-locks.js +16 -0
  413. package/dist/tools/file-locks.js.map +1 -1
  414. package/dist/tools/find-files.d.ts +2 -2
  415. package/dist/tools/find-files.d.ts.map +1 -1
  416. package/dist/tools/find-files.js.map +1 -1
  417. package/dist/tools/find-files.test.js +1 -1
  418. package/dist/tools/find-files.test.js.map +1 -1
  419. package/dist/tools/grep.d.ts +3 -2
  420. package/dist/tools/grep.d.ts.map +1 -1
  421. package/dist/tools/grep.js +65 -4
  422. package/dist/tools/grep.js.map +1 -1
  423. package/dist/tools/grep.test.d.ts +2 -0
  424. package/dist/tools/grep.test.d.ts.map +1 -0
  425. package/dist/tools/grep.test.js +39 -0
  426. package/dist/tools/grep.test.js.map +1 -0
  427. package/dist/tools/read-file.d.ts +3 -2
  428. package/dist/tools/read-file.d.ts.map +1 -1
  429. package/dist/tools/read-file.js +7 -5
  430. package/dist/tools/read-file.js.map +1 -1
  431. package/dist/tools/read-file.test.js +2 -2
  432. package/dist/tools/read-file.test.js.map +1 -1
  433. package/dist/tools/run-subagent.d.ts +14 -0
  434. package/dist/tools/run-subagent.d.ts.map +1 -0
  435. package/dist/tools/run-subagent.js +200 -0
  436. package/dist/tools/run-subagent.js.map +1 -0
  437. package/dist/tools/run-subagent.test.d.ts +2 -0
  438. package/dist/tools/run-subagent.test.d.ts.map +1 -0
  439. package/dist/tools/run-subagent.test.js +206 -0
  440. package/dist/tools/run-subagent.test.js.map +1 -0
  441. package/dist/tools/search-replace.d.ts +15 -7
  442. package/dist/tools/search-replace.d.ts.map +1 -1
  443. package/dist/tools/search-replace.js +93 -119
  444. package/dist/tools/search-replace.js.map +1 -1
  445. package/dist/tools/search-replace.test.js +330 -217
  446. package/dist/tools/search-replace.test.js.map +1 -1
  447. package/dist/tools/search.d.ts.map +1 -1
  448. package/dist/tools/search.js.map +1 -1
  449. package/dist/tools/shell.d.ts +3 -2
  450. package/dist/tools/shell.d.ts.map +1 -1
  451. package/dist/tools/shell.js +14 -6
  452. package/dist/tools/shell.js.map +1 -1
  453. package/dist/tools/shell.test.js +189 -11
  454. package/dist/tools/shell.test.js.map +1 -1
  455. package/dist/tools/tool-parameter-schema.test.js +13 -4
  456. package/dist/tools/tool-parameter-schema.test.js.map +1 -1
  457. package/dist/tools/types.d.ts +3 -2
  458. package/dist/tools/types.d.ts.map +1 -1
  459. package/dist/tools/utils.d.ts.map +1 -1
  460. package/dist/tools/utils.js +11 -1
  461. package/dist/tools/utils.js.map +1 -1
  462. package/dist/tools/utils.test.js +13 -0
  463. package/dist/tools/utils.test.js.map +1 -1
  464. package/dist/tools/web-fetch.d.ts +2 -2
  465. package/dist/tools/web-fetch.d.ts.map +1 -1
  466. package/dist/tools/web-fetch.js +29 -4
  467. package/dist/tools/web-fetch.js.map +1 -1
  468. package/dist/tools/web-fetch.test.js +64 -0
  469. package/dist/tools/web-fetch.test.js.map +1 -1
  470. package/dist/tools/web-search.d.ts +2 -2
  471. package/dist/tools/web-search.d.ts.map +1 -1
  472. package/dist/tools/web-search.js.map +1 -1
  473. package/dist/utils/clipboard.d.ts +2 -2
  474. package/dist/utils/clipboard.d.ts.map +1 -1
  475. package/dist/utils/clipboard.js +58 -22
  476. package/dist/utils/clipboard.js.map +1 -1
  477. package/dist/utils/clipboard.test.js +25 -6
  478. package/dist/utils/clipboard.test.js.map +1 -1
  479. package/dist/utils/command-safety/handlers/sed-handler.d.ts.map +1 -1
  480. package/dist/utils/command-safety/handlers/sed-handler.js +10 -7
  481. package/dist/utils/command-safety/handlers/sed-handler.js.map +1 -1
  482. package/dist/utils/command-safety/index.d.ts.map +1 -1
  483. package/dist/utils/command-safety/index.js +153 -117
  484. package/dist/utils/command-safety/index.js.map +1 -1
  485. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  486. package/dist/utils/command-safety/path-analysis.js +6 -2
  487. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  488. package/dist/utils/command-safety/utils.js +2 -2
  489. package/dist/utils/command-safety/utils.js.map +1 -1
  490. package/dist/utils/command-safety.path.test.js +15 -1
  491. package/dist/utils/command-safety.path.test.js.map +1 -1
  492. package/dist/utils/conversation-event-handler.d.ts +15 -0
  493. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  494. package/dist/utils/conversation-event-handler.js +108 -8
  495. package/dist/utils/conversation-event-handler.js.map +1 -1
  496. package/dist/utils/conversation-event-handler.test.js +207 -2
  497. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  498. package/dist/utils/conversation-utils.d.ts +1 -0
  499. package/dist/utils/conversation-utils.d.ts.map +1 -1
  500. package/dist/utils/conversation-utils.js +1 -0
  501. package/dist/utils/conversation-utils.js.map +1 -1
  502. package/dist/utils/execute-shell.d.ts +2 -0
  503. package/dist/utils/execute-shell.d.ts.map +1 -1
  504. package/dist/utils/execute-shell.js +25 -1
  505. package/dist/utils/execute-shell.js.map +1 -1
  506. package/dist/utils/execute-shell.test.js +22 -0
  507. package/dist/utils/execute-shell.test.js.map +1 -1
  508. package/dist/utils/extract-command-messages.d.ts.map +1 -1
  509. package/dist/utils/extract-command-messages.js +2 -21
  510. package/dist/utils/extract-command-messages.js.map +1 -1
  511. package/dist/utils/model-settings.d.ts.map +1 -1
  512. package/dist/utils/model-settings.js +18 -0
  513. package/dist/utils/model-settings.js.map +1 -1
  514. package/dist/utils/output-trim.d.ts.map +1 -1
  515. package/dist/utils/output-trim.js +14 -6
  516. package/dist/utils/output-trim.js.map +1 -1
  517. package/dist/utils/streaming-session-factory.d.ts.map +1 -1
  518. package/dist/utils/streaming-session-factory.js +16 -1
  519. package/dist/utils/streaming-session-factory.js.map +1 -1
  520. package/dist/utils/streaming-session-factory.test.js +42 -0
  521. package/dist/utils/streaming-session-factory.test.js.map +1 -1
  522. package/dist/utils/token-usage.d.ts +13 -0
  523. package/dist/utils/token-usage.d.ts.map +1 -1
  524. package/dist/utils/token-usage.js +92 -1
  525. package/dist/utils/token-usage.js.map +1 -1
  526. package/dist/utils/token-usage.test.js +93 -1
  527. package/dist/utils/token-usage.test.js.map +1 -1
  528. package/package.json +4 -4
  529. package/readme.md +271 -44
@@ -1,4 +1,7 @@
1
1
  import { ConversationSession } from './services/conversation-session.js';
2
+ import { classifyCommandDetailed } from './utils/command-safety/index.js';
3
+ import { SafetyStatus } from './utils/command-safety/constants.js';
4
+ import { evaluateShellAutoApprovalAdvisories } from './services/shell-auto-approval-evaluator.js';
2
5
  export const NON_INTERACTIVE_REJECTION_REASON = 'Non-interactive mode: use --auto-approve to allow tool execution';
3
6
  const safePreview = (value, maxLen = 500) => {
4
7
  try {
@@ -40,6 +43,11 @@ export async function runWithSession(session, config) {
40
43
  const onEvent = (event) => {
41
44
  if (event.type === 'text_delta') {
42
45
  stdout.write(event.delta);
46
+ stderr.write(event.delta);
47
+ return;
48
+ }
49
+ if (event.type === 'reasoning_delta') {
50
+ stderr.write(event.delta);
43
51
  return;
44
52
  }
45
53
  const line = formatEventForStderr(event);
@@ -54,9 +62,66 @@ export async function runWithSession(session, config) {
54
62
  let result = await session.sendMessage(config.prompt, { onEvent });
55
63
  while (result?.type === 'approval_required') {
56
64
  if (config.autoApprove) {
57
- result = await session.handleApprovalDecision('y', undefined, {
58
- onEvent,
59
- });
65
+ const approval = result.approval;
66
+ let shouldApprove = true;
67
+ let rejectionReason;
68
+ if (approval.toolName === 'shell' || approval.toolName === 'bash') {
69
+ const command = approval.argumentsText;
70
+ const classification = classifyCommandDetailed(command, config.logger);
71
+ if (classification.status === SafetyStatus.RED) {
72
+ shouldApprove = false;
73
+ rejectionReason = `Heuristic validation failed: command is RED (dangerous) and cannot be executed automatically: ${command}`;
74
+ }
75
+ else if (classification.status === SafetyStatus.YELLOW) {
76
+ const autoApproveModel = config.settingsService?.get('agent.autoApproveModel');
77
+ if (!autoApproveModel) {
78
+ shouldApprove = false;
79
+ rejectionReason = `Heuristic validation failed: command is YELLOW (suspicious) and no auto-approve model is configured: ${command}`;
80
+ }
81
+ else {
82
+ const history = session.exportState ? session.exportState().history : [];
83
+ try {
84
+ const advisories = await evaluateShellAutoApprovalAdvisories({
85
+ commands: [{ id: approval.callId || '__single__', command }],
86
+ history: history,
87
+ settingsService: config.settingsService,
88
+ agentClient: config.agentClient,
89
+ logger: config.logger ??
90
+ {
91
+ debug: () => { },
92
+ info: () => { },
93
+ warn: () => { },
94
+ error: () => { },
95
+ security: () => { },
96
+ },
97
+ });
98
+ const advisory = advisories.get(approval.callId || '__single__');
99
+ if (advisory?.approved) {
100
+ shouldApprove = true;
101
+ }
102
+ else {
103
+ shouldApprove = false;
104
+ rejectionReason = `LLM evaluation rejected the command: ${advisory?.reasoning ?? 'No reasoning provided'}`;
105
+ }
106
+ }
107
+ catch (err) {
108
+ shouldApprove = false;
109
+ rejectionReason = `LLM auto-approval evaluation failed: ${err instanceof Error ? err.message : String(err)}`;
110
+ }
111
+ }
112
+ }
113
+ }
114
+ if (shouldApprove) {
115
+ result = await session.handleApprovalDecision('y', undefined, {
116
+ onEvent,
117
+ });
118
+ }
119
+ else {
120
+ stderr.write(`Approval Rejected: ${rejectionReason}\n`);
121
+ result = await session.handleApprovalDecision('n', rejectionReason, {
122
+ onEvent,
123
+ });
124
+ }
60
125
  }
61
126
  else {
62
127
  result = await session.handleApprovalDecision('n', NON_INTERACTIVE_REJECTION_REASON, { onEvent });
@@ -68,6 +133,7 @@ export async function runWithSession(session, config) {
68
133
  }
69
134
  if (result?.type === 'response') {
70
135
  stdout.write('\n');
136
+ stderr.write('\n');
71
137
  return 0;
72
138
  }
73
139
  stderr.write('error Unexpected conversation result.\n');
@@ -82,7 +148,7 @@ export async function runWithSession(session, config) {
82
148
  export async function runNonInteractive(config) {
83
149
  const session = new ConversationSession('non-interactive', {
84
150
  agentClient: config.agentClient,
85
- deps: { logger: config.logger },
151
+ deps: { logger: config.logger, settingsService: config.settingsService },
86
152
  });
87
153
  return runWithSession(session, config);
88
154
  }
@@ -1 +1 @@
1
- {"version":3,"file":"non-interactive.js","sourceRoot":"","sources":["../source/non-interactive.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"non-interactive.js","sourceRoot":"","sources":["../source/non-interactive.ts"],"names":[],"mappings":"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"}
@@ -37,7 +37,32 @@ test('streams text_delta events to stdout and appends newline', async (t) => {
37
37
  });
38
38
  t.is(exitCode, 0);
39
39
  t.is(stdout.getOutput(), 'Hello world\n');
40
- t.is(stderr.getOutput(), '');
40
+ t.is(stderr.getOutput(), 'Hello world\n');
41
+ });
42
+ test('streams reasoning_delta events to stderr only', async (t) => {
43
+ const stdout = createStringWritable();
44
+ const stderr = createStringWritable();
45
+ const session = {
46
+ async sendMessage(_prompt, { onEvent }) {
47
+ onEvent?.({ type: 'reasoning_delta', delta: 'Thinking' });
48
+ onEvent?.({ type: 'reasoning_delta', delta: ' hard' });
49
+ onEvent?.({ type: 'text_delta', delta: 'OK' });
50
+ return { type: 'response', finalText: 'OK', commandMessages: [] };
51
+ },
52
+ async handleApprovalDecision() {
53
+ t.fail('handleApprovalDecision should not be called');
54
+ return null;
55
+ },
56
+ };
57
+ const exitCode = await runWithSession(session, {
58
+ prompt: 'hi',
59
+ autoApprove: false,
60
+ stdout: stdout.stream,
61
+ stderr: stderr.stream,
62
+ });
63
+ t.is(exitCode, 0);
64
+ t.is(stdout.getOutput(), 'OK\n');
65
+ t.is(stderr.getOutput(), 'Thinking hardOK\n');
41
66
  });
42
67
  test('returns exit code 1 on error event', async (t) => {
43
68
  const stdout = createStringWritable();
@@ -169,6 +194,7 @@ test('writes tool_started and command_message summaries to stderr only', async (
169
194
  t.true(err.includes('bash'));
170
195
  t.true(err.includes('command_message'));
171
196
  t.true(err.includes('ls'));
197
+ t.true(err.includes('OK\n'));
172
198
  });
173
199
  test('handles multiple consecutive approval rounds', async (t) => {
174
200
  const stdout = createStringWritable();
@@ -210,4 +236,153 @@ test('handles multiple consecutive approval rounds', async (t) => {
210
236
  t.is(exitCode, 0);
211
237
  t.is(approvals, 2);
212
238
  });
239
+ test('with autoApprove=true: auto-approves GREEN commands without LLM check', async (t) => {
240
+ const stdout = createStringWritable();
241
+ const stderr = createStringWritable();
242
+ const calls = [];
243
+ const session = {
244
+ async sendMessage(_prompt) {
245
+ return {
246
+ type: 'approval_required',
247
+ approval: {
248
+ agentName: 'CLI Agent',
249
+ toolName: 'bash',
250
+ argumentsText: 'ls -la',
251
+ },
252
+ };
253
+ },
254
+ async handleApprovalDecision(answer, rejectionReason) {
255
+ calls.push({ answer, rejectionReason });
256
+ return { type: 'response', finalText: 'done', commandMessages: [] };
257
+ },
258
+ };
259
+ const exitCode = await runWithSession(session, {
260
+ prompt: 'run',
261
+ autoApprove: true,
262
+ stdout: stdout.stream,
263
+ stderr: stderr.stream,
264
+ });
265
+ t.is(exitCode, 0);
266
+ t.deepEqual(calls, [{ answer: 'y', rejectionReason: undefined }]);
267
+ });
268
+ test('with autoApprove=true: strictly rejects RED commands', async (t) => {
269
+ const stdout = createStringWritable();
270
+ const stderr = createStringWritable();
271
+ const calls = [];
272
+ const session = {
273
+ async sendMessage(_prompt) {
274
+ return {
275
+ type: 'approval_required',
276
+ approval: {
277
+ agentName: 'CLI Agent',
278
+ toolName: 'bash',
279
+ argumentsText: 'rm -rf /',
280
+ },
281
+ };
282
+ },
283
+ async handleApprovalDecision(answer, rejectionReason) {
284
+ calls.push({ answer, rejectionReason });
285
+ return { type: 'response', finalText: 'done', commandMessages: [] };
286
+ },
287
+ };
288
+ const exitCode = await runWithSession(session, {
289
+ prompt: 'run',
290
+ autoApprove: true,
291
+ stdout: stdout.stream,
292
+ stderr: stderr.stream,
293
+ });
294
+ t.is(exitCode, 0);
295
+ t.is(calls.length, 1);
296
+ t.is(calls[0].answer, 'n');
297
+ t.regex(calls[0].rejectionReason ?? '', /RED/);
298
+ });
299
+ test('with autoApprove=true: rejects YELLOW command if no auto-approve model configured', async (t) => {
300
+ const stdout = createStringWritable();
301
+ const stderr = createStringWritable();
302
+ const calls = [];
303
+ const session = {
304
+ async sendMessage(_prompt) {
305
+ return {
306
+ type: 'approval_required',
307
+ approval: {
308
+ agentName: 'CLI Agent',
309
+ toolName: 'bash',
310
+ argumentsText: 'npm install',
311
+ },
312
+ };
313
+ },
314
+ async handleApprovalDecision(answer, rejectionReason) {
315
+ calls.push({ answer, rejectionReason });
316
+ return { type: 'response', finalText: 'done', commandMessages: [] };
317
+ },
318
+ };
319
+ const settingsService = {
320
+ get(key) {
321
+ if (key === 'agent.autoApproveModel')
322
+ return undefined;
323
+ return undefined;
324
+ },
325
+ };
326
+ const exitCode = await runWithSession(session, {
327
+ prompt: 'run',
328
+ autoApprove: true,
329
+ stdout: stdout.stream,
330
+ stderr: stderr.stream,
331
+ settingsService,
332
+ });
333
+ t.is(exitCode, 0);
334
+ t.is(calls.length, 1);
335
+ t.is(calls[0].answer, 'n');
336
+ t.regex(calls[0].rejectionReason ?? '', /YELLOW/);
337
+ });
338
+ test('with autoApprove=true: uses LLM to evaluate YELLOW commands', async (t) => {
339
+ const stdout = createStringWritable();
340
+ const stderr = createStringWritable();
341
+ const calls = [];
342
+ const session = {
343
+ async sendMessage(_prompt) {
344
+ return {
345
+ type: 'approval_required',
346
+ approval: {
347
+ agentName: 'CLI Agent',
348
+ toolName: 'bash',
349
+ argumentsText: 'npm install',
350
+ callId: 'call-yellow-1',
351
+ },
352
+ };
353
+ },
354
+ async handleApprovalDecision(answer, rejectionReason) {
355
+ calls.push({ answer, rejectionReason });
356
+ return { type: 'response', finalText: 'done', commandMessages: [] };
357
+ },
358
+ exportState() {
359
+ return { history: [] };
360
+ },
361
+ };
362
+ const settingsService = {
363
+ get(key) {
364
+ if (key === 'agent.autoApproveModel')
365
+ return 'gpt-4o-mini';
366
+ return undefined;
367
+ },
368
+ };
369
+ let chatCalled = false;
370
+ const agentClient = {
371
+ async chat() {
372
+ chatCalled = true;
373
+ return '{ "results": [ { "approved": true, "reasoning": "Safe command" } ] }';
374
+ },
375
+ };
376
+ const exitCode = await runWithSession(session, {
377
+ prompt: 'run',
378
+ autoApprove: true,
379
+ stdout: stdout.stream,
380
+ stderr: stderr.stream,
381
+ settingsService,
382
+ agentClient,
383
+ });
384
+ t.is(exitCode, 0);
385
+ t.true(chatCalled);
386
+ t.deepEqual(calls, [{ answer: 'y', rejectionReason: undefined }]);
387
+ });
213
388
  //# sourceMappingURL=non-interactive.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"non-interactive.test.js","sourceRoot":"","sources":["../source/non-interactive.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"non-interactive.test.js","sourceRoot":"","sources":["../source/non-interactive.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ You are in Orchestrator mode — the coordinator. Subagents do the work; you plan, delegate, verify, and report. Direct tools exist for spot-checking subagent results, not for executing the user's task yourself.
2
+
3
+ ## Capabilities
4
+ You have `run_subagent` for all task execution, plus narrow read-only tools (`read_file`, `grep`) for verifying subagent results and resolving specific ambiguities. All writes, edits, shell, and web access go through `run_subagent`. Your context window is the project's scarcest resource — delegate any work whose raw output would be noise rather than decision-grade signal.
5
+
6
+ ## Decision Rule
7
+ - If the user's request can be answered from reasoning alone, answer directly.
8
+ - For workspace inspection, edits, shell, web, or anything requiring environment access: delegate via `run_subagent`.
9
+ - Use `read_file` / `grep` only to spot-check a known location after a subagent has reported, or to resolve a specific ambiguity before the next delegation. Not for primary discovery.
10
+
11
+ ## Delegation Contract
12
+ Each `run_subagent` call must include:
13
+ - **goal**: one sentence describing what the subagent should achieve.
14
+ - **context**: relevant paths, prior findings, and constraints.
15
+ - **doneWhen**: a concrete, checkable completion condition.
16
+ - **writeBoundary** (required when the worker may edit): array of paths/globs
17
+ the worker is permitted to modify.
18
+
19
+ Keep tasks single-purpose and verifiable. Launch independent subagents in
20
+ parallel; sequence them only on true dependencies. Parallel subagents must have
21
+ disjoint `writeBoundary`s — if two workers' boundaries overlap, sequence them.
22
+
23
+ ## Failure Handling
24
+ - **Error reported:** inspect, refine task or context, retry once. Escalate when retrying would not help (missing credentials, ambiguous intent, repeated tool failure).
25
+ - **Success reported but artifact wrong:** do not retry the same task. Verify what actually happened with `read_file` / `grep`, then re-delegate with the corrected context embedded.
26
+ - **Partial result:** decide whether the partial output is usable. If yes, stitch and continue. If no, re-delegate the remaining scope as a new task — do not re-run the original.
27
+ - **Conflicting results from parallel subagents:** read the conflicting artifacts directly to determine ground truth, then re-delegate from that point.
28
+
29
+ ## Verification
30
+ Before reporting completion to the user, confirm the combined result satisfies the original objective. Options, cheapest first:
31
+ - Re-read the key changed range with `read_file` to confirm the artifact matches what the subagent claimed.
32
+ - For multi-file or behavioral claims, delegate a verification `explorer` or `worker` (e.g., "run the focused test for X and report pass/fail").
33
+ - Treat subagent "done" reports as claims, not facts. A worker reporting success does not mean the artifact is correct.
34
+
35
+ ## Reporting
36
+ Synthesize subagent results into a short summary plus concrete artifacts
37
+ (diffs, output, paths). Preserve uncertainty and partial completion — do not
38
+ claim work the parent did not delegate, and do not round "mostly done" up to
39
+ "done."
40
+
41
+ ## Example: delegate → verify → report
42
+ User asks to fix a bug in `source/foo.ts`.
43
+ 1. Delegate `explorer` to locate the bug site and adjacent tests.
44
+ 2. Delegate `worker` with `writeBoundary: ["source/foo.ts", "source/foo.test.ts"]` and the explorer's findings embedded as context.
45
+ 3. Worker reports success. Use `read_file` on the changed range to confirm the edit matches the intent.
46
+ 4. Delegate `worker` to run the focused test; report pass/fail to the user.
@@ -0,0 +1,17 @@
1
+ ### Operating Modes
2
+
3
+ This assistant supports a read-only **Plan Mode**. When Plan Mode is active, you are strictly restricted from making modifications to the workspace or system state.
4
+
5
+ - You **must not** attempt to create or modify files, run state-changing shell commands, or spawn write-capable subagents (the `worker` role).
6
+ - You **should** use read-only tools (like search tools, file-reading tools, and read-only shell commands like `ls`, `git log`) to investigate and research. Read-only subagents (`explorer`, `researcher`, `mentor`) are still available for delegated investigation.
7
+ - Your goal in Plan Mode is to deliver a concrete, ordered, step-by-step implementation plan.
8
+ - The user will notify you via a system message when Plan Mode is enabled or disabled.
9
+ - Any attempts to execute mutating actions while Plan Mode is active will be blocked and returned as tool execution errors by the system.
10
+
11
+ #### Plan Mode Workflow
12
+
13
+ Follow these steps in order:
14
+
15
+ 1. **Understand the codebase.** Dispatch `explorer` subagents to investigate the relevant areas. Prefer launching several in parallel, each scoped to a distinct aspect (e.g. data model, call sites, tests, configuration), rather than one broad request.
16
+ 2. **Clarify ambiguity.** If requirements, scope, or trade-offs are unclear, ask the user targeted questions before drafting. Do not guess on decisions that materially change the plan.
17
+ 3. **Draft the plan.** Deliver a concrete, ordered, step-by-step implementation plan grounded in what you found. Call out the files to change and any risks or open questions, and tell the user to exit Plan Mode to execute it.
@@ -2,7 +2,8 @@ type PromptSelectorOptions = {
2
2
  basePromptDir: string;
3
3
  model: string;
4
4
  liteMode: boolean;
5
+ orchestratorMode?: boolean;
5
6
  };
6
- export declare function getPromptPath({ basePromptDir, model, liteMode }: PromptSelectorOptions): string;
7
+ export declare function getPromptPath({ basePromptDir, model, liteMode, orchestratorMode }: PromptSelectorOptions): string;
7
8
  export {};
8
9
  //# sourceMappingURL=prompt-selector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-selector.d.ts","sourceRoot":"","sources":["../../source/prompts/prompt-selector.ts"],"names":[],"mappings":"AAQA,KAAK,qBAAqB,GAAG;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,qBAAqB,GAAG,MAAM,CAe/F"}
1
+ {"version":3,"file":"prompt-selector.d.ts","sourceRoot":"","sources":["../../source/prompts/prompt-selector.ts"],"names":[],"mappings":"AASA,KAAK,qBAAqB,GAAG;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,wBAAgB,aAAa,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,EAAE,qBAAqB,GAAG,MAAM,CAmBjH"}
@@ -4,12 +4,16 @@ const ANTHROPIC_PROMPT = 'anthropic.md';
4
4
  const MODERN_GPT_PROMPT = 'gpt-5-modern.md';
5
5
  const CODEX_PROMPT = 'codex.md';
6
6
  const LITE_PROMPT = 'lite.md';
7
- export function getPromptPath({ basePromptDir, model, liteMode }) {
7
+ const ORCHESTRATOR_PROMPT = 'orchestrator.md';
8
+ export function getPromptPath({ basePromptDir, model, liteMode, orchestratorMode }) {
8
9
  const normalizedModel = model.trim().toLowerCase();
9
10
  // Lite mode takes precedence - minimal context for terminal assistance
10
11
  if (liteMode) {
11
12
  return path.join(basePromptDir, LITE_PROMPT);
12
13
  }
14
+ if (orchestratorMode) {
15
+ return path.join(basePromptDir, ORCHESTRATOR_PROMPT);
16
+ }
13
17
  if (normalizedModel.includes('sonnet') || normalizedModel.includes('haiku'))
14
18
  return path.join(basePromptDir, ANTHROPIC_PROMPT);
15
19
  if (normalizedModel.includes('gpt-5') && normalizedModel.includes('codex'))
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-selector.js","sourceRoot":"","sources":["../../source/prompts/prompt-selector.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAC5C,MAAM,YAAY,GAAG,UAAU,CAAC;AAChC,MAAM,WAAW,GAAG,SAAS,CAAC;AAQ9B,MAAM,UAAU,aAAa,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAyB;IACrF,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEnD,uEAAuE;IACvE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACpD,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAChD,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAE1F,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"prompt-selector.js","sourceRoot":"","sources":["../../source/prompts/prompt-selector.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,MAAM,cAAc,GAAG,WAAW,CAAC;AACnC,MAAM,gBAAgB,GAAG,cAAc,CAAC;AACxC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAC5C,MAAM,YAAY,GAAG,UAAU,CAAC;AAChC,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;AAS9C,MAAM,UAAU,aAAa,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAyB;IACvG,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAEnD,uEAAuE;IACvE,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;QACzE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IACpD,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IAChD,IAAI,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IAE1F,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAClD,CAAC"}
@@ -23,4 +23,11 @@ test('getPromptPath selects modern gpt-5 prompt for all non-codex gpt-5 models',
23
23
  test('getPromptPath falls back to simple prompt', (t) => {
24
24
  t.is(getPromptPath({ basePromptDir, model: 'gpt-4o', liteMode: false }), path.join(basePromptDir, 'simple.md'));
25
25
  });
26
+ test('getPromptPath selects orchestrator prompt when orchestratorMode is true', (t) => {
27
+ t.is(getPromptPath({ basePromptDir, model: 'gpt-4o', liteMode: false, orchestratorMode: true }), path.join(basePromptDir, 'orchestrator.md'));
28
+ t.is(getPromptPath({ basePromptDir, model: 'gpt-5', liteMode: false, orchestratorMode: true }), path.join(basePromptDir, 'orchestrator.md'));
29
+ });
30
+ test('getPromptPath prefers lite over orchestrator when both are true', (t) => {
31
+ t.is(getPromptPath({ basePromptDir, model: 'gpt-4o', liteMode: true, orchestratorMode: true }), path.join(basePromptDir, 'lite.md'));
32
+ });
26
33
  //# sourceMappingURL=prompt-selector.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-selector.test.js","sourceRoot":"","sources":["../../source/prompts/prompt-selector.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-selector.test.js","sourceRoot":"","sources":["../../source/prompts/prompt-selector.test.ts"],"names":[],"mappings":"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"}
@@ -50,3 +50,21 @@ test('getPromptPath selects modern gpt-5 prompt for all non-codex gpt-5 models',
50
50
  test('getPromptPath falls back to simple prompt', (t) => {
51
51
  t.is(getPromptPath({ basePromptDir, model: 'gpt-4o', liteMode: false }), path.join(basePromptDir, 'simple.md'));
52
52
  });
53
+
54
+ test('getPromptPath selects orchestrator prompt when orchestratorMode is true', (t) => {
55
+ t.is(
56
+ getPromptPath({ basePromptDir, model: 'gpt-4o', liteMode: false, orchestratorMode: true }),
57
+ path.join(basePromptDir, 'orchestrator.md'),
58
+ );
59
+ t.is(
60
+ getPromptPath({ basePromptDir, model: 'gpt-5', liteMode: false, orchestratorMode: true }),
61
+ path.join(basePromptDir, 'orchestrator.md'),
62
+ );
63
+ });
64
+
65
+ test('getPromptPath prefers lite over orchestrator when both are true', (t) => {
66
+ t.is(
67
+ getPromptPath({ basePromptDir, model: 'gpt-4o', liteMode: true, orchestratorMode: true }),
68
+ path.join(basePromptDir, 'lite.md'),
69
+ );
70
+ });
@@ -5,14 +5,16 @@ const ANTHROPIC_PROMPT = 'anthropic.md';
5
5
  const MODERN_GPT_PROMPT = 'gpt-5-modern.md';
6
6
  const CODEX_PROMPT = 'codex.md';
7
7
  const LITE_PROMPT = 'lite.md';
8
+ const ORCHESTRATOR_PROMPT = 'orchestrator.md';
8
9
 
9
10
  type PromptSelectorOptions = {
10
11
  basePromptDir: string;
11
12
  model: string;
12
13
  liteMode: boolean;
14
+ orchestratorMode?: boolean;
13
15
  };
14
16
 
15
- export function getPromptPath({ basePromptDir, model, liteMode }: PromptSelectorOptions): string {
17
+ export function getPromptPath({ basePromptDir, model, liteMode, orchestratorMode }: PromptSelectorOptions): string {
16
18
  const normalizedModel = model.trim().toLowerCase();
17
19
 
18
20
  // Lite mode takes precedence - minimal context for terminal assistance
@@ -20,6 +22,10 @@ export function getPromptPath({ basePromptDir, model, liteMode }: PromptSelector
20
22
  return path.join(basePromptDir, LITE_PROMPT);
21
23
  }
22
24
 
25
+ if (orchestratorMode) {
26
+ return path.join(basePromptDir, ORCHESTRATOR_PROMPT);
27
+ }
28
+
23
29
  if (normalizedModel.includes('sonnet') || normalizedModel.includes('haiku'))
24
30
  return path.join(basePromptDir, ANTHROPIC_PROMPT);
25
31
  if (normalizedModel.includes('gpt-5') && normalizedModel.includes('codex'))
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Single source of truth for reasoning-efficiency guidance.
3
+ *
4
+ * Injected into the main system prompt for models known to over-think.
5
+ */
6
+ export declare function getReasoningEfficiencyAddendum(): string;
7
+ //# sourceMappingURL=reasoning-efficiency.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-efficiency.d.ts","sourceRoot":"","sources":["../../source/prompts/reasoning-efficiency.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,8BAA8B,IAAI,MAAM,CAYvD"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Single source of truth for reasoning-efficiency guidance.
3
+ *
4
+ * Injected into the main system prompt for models known to over-think.
5
+ */
6
+ export function getReasoningEfficiencyAddendum() {
7
+ return `### Reasoning Efficiency Guidelines
8
+
9
+ Match effort to difficulty. For simple or factual questions, answer directly without extended deliberation. Reserve step-by-step reasoning for problems that genuinely require it (multi-step math, logic, code with edge cases, ambiguous requirements).
10
+
11
+ Commit by default. Trust your first line of reasoning unless you spot a concrete, specific error — not a vague feeling that something might be off. "I'm not sure" is not a reason to restart; finding an actual contradiction is.
12
+
13
+ Revise once, not repeatedly. If you do catch a real mistake, correct it cleanly and move on. Do not re-examine the correction, second-guess the revision, or loop back to verify multiple times.
14
+
15
+ No performative hedging. Skip phrases like "let me reconsider," "on second thought," or "actually, wait" unless they precede a substantive change. If the answer stays the same, the hedge added nothing — cut it.
16
+
17
+ End when done. Once you have an answer that addresses the question, deliver it. Do not append extra verification passes "just to be sure."`;
18
+ }
19
+ //# sourceMappingURL=reasoning-efficiency.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-efficiency.js","sourceRoot":"","sources":["../../source/prompts/reasoning-efficiency.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,8BAA8B;IAC5C,OAAO;;;;;;;;;;2IAUkI,CAAC;AAC5I,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Single source of truth for reasoning-efficiency guidance.
3
+ *
4
+ * Injected into the main system prompt for models known to over-think.
5
+ */
6
+ export function getReasoningEfficiencyAddendum(): string {
7
+ return `### Reasoning Efficiency Guidelines
8
+
9
+ Match effort to difficulty. For simple or factual questions, answer directly without extended deliberation. Reserve step-by-step reasoning for problems that genuinely require it (multi-step math, logic, code with edge cases, ambiguous requirements).
10
+
11
+ Commit by default. Trust your first line of reasoning unless you spot a concrete, specific error — not a vague feeling that something might be off. "I'm not sure" is not a reason to restart; finding an actual contradiction is.
12
+
13
+ Revise once, not repeatedly. If you do catch a real mistake, correct it cleanly and move on. Do not re-examine the correction, second-guess the revision, or loop back to verify multiple times.
14
+
15
+ No performative hedging. Skip phrases like "let me reconsider," "on second thought," or "actually, wait" unless they precede a substantive change. If the answer stays the same, the hedge added nothing — cut it.
16
+
17
+ End when done. Once you have an answer that addresses the question, deliver it. Do not append extra verification passes "just to be sure."`;
18
+ }