@qduc/term2 0.5.0 → 0.6.1

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 (488) hide show
  1. package/dist/agent.d.ts +1 -1
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +55 -7
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agent.test.js +135 -10
  6. package/dist/agent.test.js.map +1 -1
  7. package/dist/app.d.ts +15 -0
  8. package/dist/app.d.ts.map +1 -1
  9. package/dist/app.js +86 -16
  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 +226 -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 -35
  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/CommandMessage.d.ts.map +1 -1
  26. package/dist/components/CommandMessage.js +38 -42
  27. package/dist/components/CommandMessage.js.map +1 -1
  28. package/dist/components/CommandMessage.test.js +69 -0
  29. package/dist/components/CommandMessage.test.js.map +1 -1
  30. package/dist/components/DiffView.d.ts +7 -0
  31. package/dist/components/DiffView.d.ts.map +1 -0
  32. package/dist/components/DiffView.js +80 -0
  33. package/dist/components/DiffView.js.map +1 -0
  34. package/dist/components/DiffView.test.d.ts +2 -0
  35. package/dist/components/DiffView.test.d.ts.map +1 -0
  36. package/dist/components/DiffView.test.js +45 -0
  37. package/dist/components/DiffView.test.js.map +1 -0
  38. package/dist/components/Input/PopupManager.d.ts +7 -0
  39. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  40. package/dist/components/Input/PopupManager.js +4 -2
  41. package/dist/components/Input/PopupManager.js.map +1 -1
  42. package/dist/components/Input/determine-active-menu.d.ts.map +1 -1
  43. package/dist/components/Input/determine-active-menu.js +4 -1
  44. package/dist/components/Input/determine-active-menu.js.map +1 -1
  45. package/dist/components/Input/popup-props.d.ts +3 -1
  46. package/dist/components/Input/popup-props.d.ts.map +1 -1
  47. package/dist/components/Input/popup-props.js +7 -1
  48. package/dist/components/Input/popup-props.js.map +1 -1
  49. package/dist/components/InputBox.d.ts +6 -0
  50. package/dist/components/InputBox.d.ts.map +1 -1
  51. package/dist/components/InputBox.js +74 -11
  52. package/dist/components/InputBox.js.map +1 -1
  53. package/dist/components/InputBox.menu-logic.test.js +16 -1
  54. package/dist/components/InputBox.menu-logic.test.js.map +1 -1
  55. package/dist/components/InputBox.test.js +1 -0
  56. package/dist/components/InputBox.test.js.map +1 -1
  57. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  58. package/dist/components/MarkdownRenderer.js +52 -1
  59. package/dist/components/MarkdownRenderer.js.map +1 -1
  60. package/dist/components/MessageList.d.ts.map +1 -1
  61. package/dist/components/MessageList.js +3 -2
  62. package/dist/components/MessageList.js.map +1 -1
  63. package/dist/components/MessageList.test.js +16 -0
  64. package/dist/components/MessageList.test.js.map +1 -1
  65. package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
  66. package/dist/components/SettingsValueSelectionMenu.js +4 -1
  67. package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
  68. package/dist/components/StatusBar.d.ts.map +1 -1
  69. package/dist/components/StatusBar.js +5 -3
  70. package/dist/components/StatusBar.js.map +1 -1
  71. package/dist/components/StatusBar.test.js +24 -0
  72. package/dist/components/StatusBar.test.js.map +1 -1
  73. package/dist/components/SubagentActivityMessage.d.ts.map +1 -1
  74. package/dist/components/SubagentActivityMessage.js +16 -1
  75. package/dist/components/SubagentActivityMessage.js.map +1 -1
  76. package/dist/components/UndoSelectionMenu.d.ts +12 -0
  77. package/dist/components/UndoSelectionMenu.d.ts.map +1 -0
  78. package/dist/components/UndoSelectionMenu.js +46 -0
  79. package/dist/components/UndoSelectionMenu.js.map +1 -0
  80. package/dist/components/UndoSelectionMenu.test.d.ts +2 -0
  81. package/dist/components/UndoSelectionMenu.test.d.ts.map +1 -0
  82. package/dist/components/UndoSelectionMenu.test.js +40 -0
  83. package/dist/components/UndoSelectionMenu.test.js.map +1 -0
  84. package/dist/components/theme.d.ts +1 -1
  85. package/dist/components/theme.d.ts.map +1 -1
  86. package/dist/components/theme.js +1 -3
  87. package/dist/components/theme.js.map +1 -1
  88. package/dist/context/InputContext.d.ts +1 -1
  89. package/dist/context/InputContext.d.ts.map +1 -1
  90. package/dist/context/InputContext.js.map +1 -1
  91. package/dist/hooks/use-app-commands.d.ts +14 -2
  92. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  93. package/dist/hooks/use-app-commands.js +115 -32
  94. package/dist/hooks/use-app-commands.js.map +1 -1
  95. package/dist/hooks/use-app-commands.test.js +231 -1
  96. package/dist/hooks/use-app-commands.test.js.map +1 -1
  97. package/dist/hooks/use-conversation.clear.test.d.ts +2 -0
  98. package/dist/hooks/use-conversation.clear.test.d.ts.map +1 -0
  99. package/dist/hooks/use-conversation.clear.test.js +49 -0
  100. package/dist/hooks/use-conversation.clear.test.js.map +1 -0
  101. package/dist/hooks/use-conversation.d.ts +12 -2
  102. package/dist/hooks/use-conversation.d.ts.map +1 -1
  103. package/dist/hooks/use-conversation.js +88 -5
  104. package/dist/hooks/use-conversation.js.map +1 -1
  105. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts +2 -0
  106. package/dist/hooks/use-conversation.max-turns-undo.test.d.ts.map +1 -0
  107. package/dist/hooks/use-conversation.max-turns-undo.test.js +118 -0
  108. package/dist/hooks/use-conversation.max-turns-undo.test.js.map +1 -0
  109. package/dist/hooks/use-conversation.resume.test.d.ts +2 -0
  110. package/dist/hooks/use-conversation.resume.test.d.ts.map +1 -0
  111. package/dist/hooks/use-conversation.resume.test.js +26 -0
  112. package/dist/hooks/use-conversation.resume.test.js.map +1 -0
  113. package/dist/hooks/use-escape-key.d.ts.map +1 -1
  114. package/dist/hooks/use-escape-key.js +14 -7
  115. package/dist/hooks/use-escape-key.js.map +1 -1
  116. package/dist/hooks/use-escape-key.test.js +168 -4
  117. package/dist/hooks/use-escape-key.test.js.map +1 -1
  118. package/dist/hooks/use-input-history.d.ts +4 -3
  119. package/dist/hooks/use-input-history.d.ts.map +1 -1
  120. package/dist/hooks/use-input-history.js +10 -8
  121. package/dist/hooks/use-input-history.js.map +1 -1
  122. package/dist/hooks/use-input-history.test.d.ts +2 -0
  123. package/dist/hooks/use-input-history.test.d.ts.map +1 -0
  124. package/dist/hooks/use-input-history.test.js +43 -0
  125. package/dist/hooks/use-input-history.test.js.map +1 -0
  126. package/dist/hooks/use-mode-handlers.d.ts +10 -2
  127. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  128. package/dist/hooks/use-mode-handlers.js +21 -2
  129. package/dist/hooks/use-mode-handlers.js.map +1 -1
  130. package/dist/hooks/use-model-selection.d.ts +3 -0
  131. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  132. package/dist/hooks/use-model-selection.js +3 -0
  133. package/dist/hooks/use-model-selection.js.map +1 -1
  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/openai-agent-client.chat.test.js +40 -0
  156. package/dist/lib/openai-agent-client.chat.test.js.map +1 -1
  157. package/dist/lib/openai-agent-client.d.ts +10 -1
  158. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  159. package/dist/lib/openai-agent-client.js +114 -6
  160. package/dist/lib/openai-agent-client.js.map +1 -1
  161. package/dist/lib/openai-agent-client.test.js +23 -0
  162. package/dist/lib/openai-agent-client.test.js.map +1 -1
  163. package/dist/lib/retry-executor.js +45 -7
  164. package/dist/lib/retry-executor.js.map +1 -1
  165. package/dist/lib/retry-executor.test.js +63 -0
  166. package/dist/lib/retry-executor.test.js.map +1 -1
  167. package/dist/non-interactive.d.ts +7 -1
  168. package/dist/non-interactive.d.ts.map +1 -1
  169. package/dist/non-interactive.js +73 -5
  170. package/dist/non-interactive.js.map +1 -1
  171. package/dist/non-interactive.test.js +184 -2
  172. package/dist/non-interactive.test.js.map +1 -1
  173. package/dist/prompts/orchestrator.md +46 -0
  174. package/dist/prompts/plan-mode-info.md +17 -0
  175. package/dist/prompts/prompt-selector.d.ts +2 -1
  176. package/dist/prompts/prompt-selector.d.ts.map +1 -1
  177. package/dist/prompts/prompt-selector.js +5 -1
  178. package/dist/prompts/prompt-selector.js.map +1 -1
  179. package/dist/prompts/prompt-selector.test.js +7 -0
  180. package/dist/prompts/prompt-selector.test.js.map +1 -1
  181. package/dist/prompts/prompt-selector.test.ts +18 -0
  182. package/dist/prompts/prompt-selector.ts +7 -1
  183. package/dist/prompts/reasoning-efficiency.d.ts +7 -0
  184. package/dist/prompts/reasoning-efficiency.d.ts.map +1 -0
  185. package/dist/prompts/reasoning-efficiency.js +19 -0
  186. package/dist/prompts/reasoning-efficiency.js.map +1 -0
  187. package/dist/prompts/reasoning-efficiency.ts +18 -0
  188. package/dist/prompts/search-via-shell.test.js +17 -17
  189. package/dist/prompts/search-via-shell.test.js.map +1 -1
  190. package/dist/prompts/search-via-shell.test.ts +17 -17
  191. package/dist/prompts/shell-auto-approval.d.ts +3 -0
  192. package/dist/prompts/shell-auto-approval.d.ts.map +1 -0
  193. package/dist/prompts/shell-auto-approval.js +23 -0
  194. package/dist/prompts/shell-auto-approval.js.map +1 -0
  195. package/dist/prompts/shell-auto-approval.ts +23 -0
  196. package/dist/prompts/subagent-delegation.d.ts +10 -0
  197. package/dist/prompts/subagent-delegation.d.ts.map +1 -0
  198. package/dist/prompts/subagent-delegation.js +33 -0
  199. package/dist/prompts/subagent-delegation.js.map +1 -0
  200. package/dist/prompts/subagent-delegation.test.d.ts +2 -0
  201. package/dist/prompts/subagent-delegation.test.d.ts.map +1 -0
  202. package/dist/prompts/subagent-delegation.test.js +17 -0
  203. package/dist/prompts/subagent-delegation.test.js.map +1 -0
  204. package/dist/prompts/subagent-delegation.test.ts +21 -0
  205. package/dist/prompts/subagent-delegation.ts +40 -0
  206. package/dist/prompts/subagents/explorer.md +1 -2
  207. package/dist/prompts/subagents/mentor.md +0 -1
  208. package/dist/prompts/subagents/researcher.md +0 -1
  209. package/dist/prompts/subagents/worker.md +3 -4
  210. package/dist/providers/ai-sdk-anthropic.provider.d.ts +1 -0
  211. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -1
  212. package/dist/providers/ai-sdk-anthropic.provider.js +67 -1
  213. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -1
  214. package/dist/providers/ai-sdk-anthropic.provider.test.d.ts +2 -0
  215. package/dist/providers/ai-sdk-anthropic.provider.test.d.ts.map +1 -0
  216. package/dist/providers/ai-sdk-anthropic.provider.test.js +87 -0
  217. package/dist/providers/ai-sdk-anthropic.provider.test.js.map +1 -0
  218. package/dist/providers/ai-sdk-logging-fetch.d.ts +1 -1
  219. package/dist/providers/ai-sdk-logging-fetch.d.ts.map +1 -1
  220. package/dist/providers/ai-sdk-logging-fetch.js +67 -44
  221. package/dist/providers/ai-sdk-logging-fetch.js.map +1 -1
  222. package/dist/providers/ai-sdk-logging-fetch.test.js +59 -5
  223. package/dist/providers/ai-sdk-logging-fetch.test.js.map +1 -1
  224. package/dist/providers/common/openai-compatible-messages.d.ts.map +1 -1
  225. package/dist/providers/common/openai-compatible-messages.js +10 -4
  226. package/dist/providers/common/openai-compatible-messages.js.map +1 -1
  227. package/dist/providers/common/openai-compatible-messages.test.js +22 -0
  228. package/dist/providers/common/openai-compatible-messages.test.js.map +1 -1
  229. package/dist/providers/custom-provider-adapter.test.js +39 -1
  230. package/dist/providers/custom-provider-adapter.test.js.map +1 -1
  231. package/dist/providers/openai-compatible.provider.d.ts +11 -1
  232. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  233. package/dist/providers/openai-compatible.provider.js +122 -8
  234. package/dist/providers/openai-compatible.provider.js.map +1 -1
  235. package/dist/providers/openai-compatible.provider.test.js +61 -0
  236. package/dist/providers/openai-compatible.provider.test.js.map +1 -1
  237. package/dist/providers/openai.provider.js +21 -1
  238. package/dist/providers/openai.provider.js.map +1 -1
  239. package/dist/providers/openrouter.provider.d.ts +2 -0
  240. package/dist/providers/openrouter.provider.d.ts.map +1 -1
  241. package/dist/providers/openrouter.provider.js +20 -2
  242. package/dist/providers/openrouter.provider.js.map +1 -1
  243. package/dist/providers/openrouter.provider.request-preprocessing.test.d.ts +2 -0
  244. package/dist/providers/openrouter.provider.request-preprocessing.test.d.ts.map +1 -0
  245. package/dist/providers/openrouter.provider.request-preprocessing.test.js +48 -0
  246. package/dist/providers/openrouter.provider.request-preprocessing.test.js.map +1 -0
  247. package/dist/providers/registry.test.js +27 -2
  248. package/dist/providers/registry.test.js.map +1 -1
  249. package/dist/scripts/eval-auto-approval/dataset.d.ts +2 -2
  250. package/dist/services/agent-stream.d.ts +1 -0
  251. package/dist/services/agent-stream.d.ts.map +1 -1
  252. package/dist/services/approval-flow-coordinator.d.ts +2 -0
  253. package/dist/services/approval-flow-coordinator.d.ts.map +1 -1
  254. package/dist/services/approval-flow-coordinator.js +45 -18
  255. package/dist/services/approval-flow-coordinator.js.map +1 -1
  256. package/dist/services/approval-flow-coordinator.test.js +87 -0
  257. package/dist/services/approval-flow-coordinator.test.js.map +1 -1
  258. package/dist/services/approval-state.d.ts +4 -0
  259. package/dist/services/approval-state.d.ts.map +1 -1
  260. package/dist/services/approval-state.js +2 -0
  261. package/dist/services/approval-state.js.map +1 -1
  262. package/dist/services/approval-state.test.js +21 -0
  263. package/dist/services/approval-state.test.js.map +1 -1
  264. package/dist/services/conversation-clear-save.test.d.ts +2 -0
  265. package/dist/services/conversation-clear-save.test.d.ts.map +1 -0
  266. package/dist/services/conversation-clear-save.test.js +85 -0
  267. package/dist/services/conversation-clear-save.test.js.map +1 -0
  268. package/dist/services/conversation-history-repair.d.ts +25 -0
  269. package/dist/services/conversation-history-repair.d.ts.map +1 -0
  270. package/dist/services/conversation-history-repair.js +227 -0
  271. package/dist/services/conversation-history-repair.js.map +1 -0
  272. package/dist/services/conversation-history-repair.test.d.ts +2 -0
  273. package/dist/services/conversation-history-repair.test.d.ts.map +1 -0
  274. package/dist/services/conversation-history-repair.test.js +76 -0
  275. package/dist/services/conversation-history-repair.test.js.map +1 -0
  276. package/dist/services/conversation-persistence.d.ts +55 -0
  277. package/dist/services/conversation-persistence.d.ts.map +1 -0
  278. package/dist/services/conversation-persistence.js +216 -0
  279. package/dist/services/conversation-persistence.js.map +1 -0
  280. package/dist/services/conversation-persistence.test.d.ts +2 -0
  281. package/dist/services/conversation-persistence.test.d.ts.map +1 -0
  282. package/dist/services/conversation-persistence.test.js +713 -0
  283. package/dist/services/conversation-persistence.test.js.map +1 -0
  284. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  285. package/dist/services/conversation-result-builder.js +13 -0
  286. package/dist/services/conversation-result-builder.js.map +1 -1
  287. package/dist/services/conversation-retry-policy.d.ts +7 -0
  288. package/dist/services/conversation-retry-policy.d.ts.map +1 -1
  289. package/dist/services/conversation-retry-policy.js +34 -0
  290. package/dist/services/conversation-retry-policy.js.map +1 -1
  291. package/dist/services/conversation-retry-policy.test.js +44 -2
  292. package/dist/services/conversation-retry-policy.test.js.map +1 -1
  293. package/dist/services/conversation-service.d.ts +25 -2
  294. package/dist/services/conversation-service.d.ts.map +1 -1
  295. package/dist/services/conversation-service.js +29 -3
  296. package/dist/services/conversation-service.js.map +1 -1
  297. package/dist/services/conversation-session.auto-approval.test.js +7 -10
  298. package/dist/services/conversation-session.auto-approval.test.js.map +1 -1
  299. package/dist/services/conversation-session.d.ts +28 -1
  300. package/dist/services/conversation-session.d.ts.map +1 -1
  301. package/dist/services/conversation-session.js +300 -95
  302. package/dist/services/conversation-session.js.map +1 -1
  303. package/dist/services/conversation-store.d.ts +42 -0
  304. package/dist/services/conversation-store.d.ts.map +1 -1
  305. package/dist/services/conversation-store.js +188 -6
  306. package/dist/services/conversation-store.js.map +1 -1
  307. package/dist/services/conversation-store.test.js +344 -1
  308. package/dist/services/conversation-store.test.js.map +1 -1
  309. package/dist/services/history-service.d.ts +6 -1
  310. package/dist/services/history-service.d.ts.map +1 -1
  311. package/dist/services/history-service.js +46 -6
  312. package/dist/services/history-service.js.map +1 -1
  313. package/dist/services/history-service.test.d.ts +2 -0
  314. package/dist/services/history-service.test.d.ts.map +1 -0
  315. package/dist/services/history-service.test.js +77 -0
  316. package/dist/services/history-service.test.js.map +1 -0
  317. package/dist/services/input-surge-guard.d.ts +37 -0
  318. package/dist/services/input-surge-guard.d.ts.map +1 -0
  319. package/dist/services/input-surge-guard.js +190 -0
  320. package/dist/services/input-surge-guard.js.map +1 -0
  321. package/dist/services/input-surge-guard.test.d.ts +2 -0
  322. package/dist/services/input-surge-guard.test.d.ts.map +1 -0
  323. package/dist/services/input-surge-guard.test.js +126 -0
  324. package/dist/services/input-surge-guard.test.js.map +1 -0
  325. package/dist/services/logging-contract.d.ts +1 -1
  326. package/dist/services/logging-service.d.ts +4 -0
  327. package/dist/services/logging-service.d.ts.map +1 -1
  328. package/dist/services/logging-service.js +91 -33
  329. package/dist/services/logging-service.js.map +1 -1
  330. package/dist/services/mode-notices.d.ts +11 -0
  331. package/dist/services/mode-notices.d.ts.map +1 -0
  332. package/dist/services/mode-notices.js +16 -0
  333. package/dist/services/mode-notices.js.map +1 -0
  334. package/dist/services/model-service.d.ts.map +1 -1
  335. package/dist/services/model-service.js +0 -1
  336. package/dist/services/model-service.js.map +1 -1
  337. package/dist/services/plan-mode-interceptor.d.ts +10 -0
  338. package/dist/services/plan-mode-interceptor.d.ts.map +1 -0
  339. package/dist/services/plan-mode-interceptor.js +38 -0
  340. package/dist/services/plan-mode-interceptor.js.map +1 -0
  341. package/dist/services/plan-mode-interceptor.test.d.ts +2 -0
  342. package/dist/services/plan-mode-interceptor.test.d.ts.map +1 -0
  343. package/dist/services/plan-mode-interceptor.test.js +55 -0
  344. package/dist/services/plan-mode-interceptor.test.js.map +1 -0
  345. package/dist/services/provider-traffic.d.ts +87 -0
  346. package/dist/services/provider-traffic.d.ts.map +1 -0
  347. package/dist/services/provider-traffic.js +545 -0
  348. package/dist/services/provider-traffic.js.map +1 -0
  349. package/dist/services/provider-traffic.test.d.ts +2 -0
  350. package/dist/services/provider-traffic.test.d.ts.map +1 -0
  351. package/dist/services/provider-traffic.test.js +383 -0
  352. package/dist/services/provider-traffic.test.js.map +1 -0
  353. package/dist/services/service-interfaces.d.ts +20 -1
  354. package/dist/services/service-interfaces.d.ts.map +1 -1
  355. package/dist/services/settings-persistence.js +1 -1
  356. package/dist/services/settings-schema.d.ts +107 -4
  357. package/dist/services/settings-schema.d.ts.map +1 -1
  358. package/dist/services/settings-schema.js +103 -5
  359. package/dist/services/settings-schema.js.map +1 -1
  360. package/dist/services/settings-schema.test.js +35 -1
  361. package/dist/services/settings-schema.test.js.map +1 -1
  362. package/dist/services/settings-service.d.ts +3 -1
  363. package/dist/services/settings-service.d.ts.map +1 -1
  364. package/dist/services/settings-service.js +40 -4
  365. package/dist/services/settings-service.js.map +1 -1
  366. package/dist/services/settings-sources.d.ts.map +1 -1
  367. package/dist/services/settings-sources.js +2 -1
  368. package/dist/services/settings-sources.js.map +1 -1
  369. package/dist/services/settings-sources.test.js +4 -0
  370. package/dist/services/settings-sources.test.js.map +1 -1
  371. package/dist/services/shell-auto-approval-evaluator.d.ts +3 -2
  372. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
  373. package/dist/services/shell-auto-approval-evaluator.js +287 -101
  374. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  375. package/dist/services/shell-auto-approval-evaluator.test.js +216 -18
  376. package/dist/services/shell-auto-approval-evaluator.test.js.map +1 -1
  377. package/dist/services/shell-auto-approval-resolver.test.js +1 -1
  378. package/dist/services/shell-auto-approval-resolver.test.js.map +1 -1
  379. package/dist/services/stream-event-processor.d.ts.map +1 -1
  380. package/dist/services/stream-event-processor.js +5 -0
  381. package/dist/services/stream-event-processor.js.map +1 -1
  382. package/dist/services/stream-event-processor.test.js +27 -0
  383. package/dist/services/stream-event-processor.test.js.map +1 -1
  384. package/dist/services/subagents/reasoning-inheritance.test.d.ts +2 -0
  385. package/dist/services/subagents/reasoning-inheritance.test.d.ts.map +1 -0
  386. package/dist/services/subagents/reasoning-inheritance.test.js +73 -0
  387. package/dist/services/subagents/reasoning-inheritance.test.js.map +1 -0
  388. package/dist/services/subagents/subagent-manager.d.ts +2 -0
  389. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  390. package/dist/services/subagents/subagent-manager.js +204 -33
  391. package/dist/services/subagents/subagent-manager.js.map +1 -1
  392. package/dist/services/subagents/subagent-manager.test.js +331 -42
  393. package/dist/services/subagents/subagent-manager.test.js.map +1 -1
  394. package/dist/services/subagents/types.d.ts +6 -0
  395. package/dist/services/subagents/types.d.ts.map +1 -1
  396. package/dist/services/terminal-result-collector.d.ts.map +1 -1
  397. package/dist/services/terminal-result-collector.js +1 -2
  398. package/dist/services/terminal-result-collector.js.map +1 -1
  399. package/dist/slash-commands.d.ts +1 -0
  400. package/dist/slash-commands.d.ts.map +1 -1
  401. package/dist/slash-commands.js +8 -1
  402. package/dist/slash-commands.js.map +1 -1
  403. package/dist/slash-commands.test.d.ts +2 -0
  404. package/dist/slash-commands.test.d.ts.map +1 -0
  405. package/dist/slash-commands.test.js +22 -0
  406. package/dist/slash-commands.test.js.map +1 -0
  407. package/dist/tools/apply-patch.d.ts.map +1 -1
  408. package/dist/tools/apply-patch.js +2 -6
  409. package/dist/tools/apply-patch.js.map +1 -1
  410. package/dist/tools/apply-patch.test.js +2 -13
  411. package/dist/tools/apply-patch.test.js.map +1 -1
  412. package/dist/tools/code-context.test.js +4 -3
  413. package/dist/tools/code-context.test.js.map +1 -1
  414. package/dist/tools/create-file.d.ts.map +1 -1
  415. package/dist/tools/create-file.js +2 -3
  416. package/dist/tools/create-file.js.map +1 -1
  417. package/dist/tools/create-file.test.js +3 -14
  418. package/dist/tools/create-file.test.js.map +1 -1
  419. package/dist/tools/edit-healing.d.ts +3 -3
  420. package/dist/tools/edit-healing.d.ts.map +1 -1
  421. package/dist/tools/edit-healing.js.map +1 -1
  422. package/dist/tools/edit-healing.test.js +0 -1
  423. package/dist/tools/edit-healing.test.js.map +1 -1
  424. package/dist/tools/find-files.test.js +3 -2
  425. package/dist/tools/find-files.test.js.map +1 -1
  426. package/dist/tools/grep.d.ts +1 -0
  427. package/dist/tools/grep.d.ts.map +1 -1
  428. package/dist/tools/grep.js +65 -4
  429. package/dist/tools/grep.js.map +1 -1
  430. package/dist/tools/grep.test.js +39 -0
  431. package/dist/tools/grep.test.js.map +1 -0
  432. package/dist/tools/read-file.d.ts +1 -0
  433. package/dist/tools/read-file.d.ts.map +1 -1
  434. package/dist/tools/read-file.js +7 -5
  435. package/dist/tools/read-file.js.map +1 -1
  436. package/dist/tools/read-file.test.js +3 -2
  437. package/dist/tools/read-file.test.js.map +1 -1
  438. package/dist/tools/run-subagent.d.ts +1 -1
  439. package/dist/tools/run-subagent.d.ts.map +1 -1
  440. package/dist/tools/run-subagent.js +27 -23
  441. package/dist/tools/run-subagent.js.map +1 -1
  442. package/dist/tools/run-subagent.test.js +55 -8
  443. package/dist/tools/run-subagent.test.js.map +1 -1
  444. package/dist/tools/search-replace.d.ts +13 -5
  445. package/dist/tools/search-replace.d.ts.map +1 -1
  446. package/dist/tools/search-replace.js +46 -115
  447. package/dist/tools/search-replace.js.map +1 -1
  448. package/dist/tools/search-replace.test.js +275 -240
  449. package/dist/tools/search-replace.test.js.map +1 -1
  450. package/dist/tools/shell.d.ts +1 -0
  451. package/dist/tools/shell.d.ts.map +1 -1
  452. package/dist/tools/shell.js +14 -6
  453. package/dist/tools/shell.js.map +1 -1
  454. package/dist/tools/shell.test.js +52 -0
  455. package/dist/tools/shell.test.js.map +1 -1
  456. package/dist/tools/tool-parameter-schema.test.js +13 -4
  457. package/dist/tools/tool-parameter-schema.test.js.map +1 -1
  458. package/dist/tools/types.d.ts +1 -1
  459. package/dist/tools/types.d.ts.map +1 -1
  460. package/dist/tools/web-fetch.d.ts.map +1 -1
  461. package/dist/tools/web-fetch.js +29 -4
  462. package/dist/tools/web-fetch.js.map +1 -1
  463. package/dist/tools/web-fetch.test.js +64 -0
  464. package/dist/tools/web-fetch.test.js.map +1 -1
  465. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  466. package/dist/utils/command-safety/path-analysis.js +143 -35
  467. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  468. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  469. package/dist/utils/conversation-event-handler.js +23 -3
  470. package/dist/utils/conversation-event-handler.js.map +1 -1
  471. package/dist/utils/conversation-event-handler.test.js +94 -0
  472. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  473. package/dist/utils/execute-shell.d.ts +2 -0
  474. package/dist/utils/execute-shell.d.ts.map +1 -1
  475. package/dist/utils/execute-shell.js +25 -1
  476. package/dist/utils/execute-shell.js.map +1 -1
  477. package/dist/utils/execute-shell.test.js +22 -0
  478. package/dist/utils/execute-shell.test.js.map +1 -1
  479. package/dist/utils/model-settings.d.ts.map +1 -1
  480. package/dist/utils/model-settings.js +18 -0
  481. package/dist/utils/model-settings.js.map +1 -1
  482. package/dist/utils/output-trim.d.ts.map +1 -1
  483. package/dist/utils/output-trim.js +14 -6
  484. package/dist/utils/output-trim.js.map +1 -1
  485. package/dist/utils/token-usage.test.js +31 -0
  486. package/dist/utils/token-usage.test.js.map +1 -1
  487. package/package.json +3 -3
  488. package/readme.md +271 -44
@@ -1,11 +1,12 @@
1
1
  import * as winston from 'winston';
2
2
  import * as path from 'node:path';
3
3
  import * as fs from 'node:fs';
4
+ import { AsyncLocalStorage } from 'node:async_hooks';
4
5
  import envPaths from 'env-paths';
5
6
  import DailyRotateFile from 'winston-daily-rotate-file';
6
7
  import { RuntimeLogSchema, buildRuntimeLogRecord, parseCategoryFilter, shouldIncludeVerbosePayload, shouldLogForCategory, shouldSampleLog, } from './logging-contract.js';
7
8
  import { truncateLogText, sanitizeLogMetadata } from '../utils/log-truncation.js';
8
- import { extractProviderTrafficRecordFromRuntimeLog, } from '../utils/provider-traffic-extractor.js';
9
+ import { ProviderTrafficArtifactStore } from './provider-traffic.js';
9
10
  const LOG_LEVELS = {
10
11
  error: 0,
11
12
  warn: 1,
@@ -32,6 +33,7 @@ const parseBooleanEnv = (value) => {
32
33
  * - Optional console output for development
33
34
  */
34
35
  export class LoggingService {
36
+ static #trafficContextStorage = new AsyncLocalStorage();
35
37
  logger;
36
38
  correlationId;
37
39
  debugLogging;
@@ -41,6 +43,7 @@ export class LoggingService {
41
43
  enabledCategories;
42
44
  verbosePayloads;
43
45
  sampleRate;
46
+ providerTrafficStore;
44
47
  constructor(config = {}) {
45
48
  const { logDir, logLevel = process.env.LOG_LEVEL || 'info', disableLogging, console: enableConsole = false, debugLogging = false, suppressConsoleOutput = true, } = config;
46
49
  const resolvedDisableLogging = disableLogging ?? (parseBooleanEnv(process.env.DISABLE_LOGGING) || Boolean(process.env.AVA));
@@ -56,6 +59,7 @@ export class LoggingService {
56
59
  const finalLogDir = logDir || path.join(envPaths('term2').log, 'logs');
57
60
  this.providerTrafficDir = path.join(finalLogDir, 'provider-traffic');
58
61
  this.evaluatorTrafficDir = path.join(finalLogDir, 'evaluator-traffic');
62
+ this.providerTrafficStore = new ProviderTrafficArtifactStore({ rootDir: this.providerTrafficDir });
59
63
  // Create log directory if needed and logging is enabled
60
64
  if (!resolvedDisableLogging) {
61
65
  try {
@@ -203,6 +207,12 @@ export class LoggingService {
203
207
  getCorrelationId() {
204
208
  return this.correlationId;
205
209
  }
210
+ runWithTrafficContext(context, fn) {
211
+ return LoggingService.#trafficContextStorage.run(context, fn);
212
+ }
213
+ getTrafficContext() {
214
+ return LoggingService.#trafficContextStorage.getStore() ?? null;
215
+ }
206
216
  /**
207
217
  * Remove provider and evaluator traffic logs older than maxFiles (default 30d)
208
218
  */
@@ -220,21 +230,28 @@ export class LoggingService {
220
230
  const thresholdStr = threshold.toISOString().slice(0, 10); // YYYY-MM-DD
221
231
  const entries = fs.readdirSync(dir, { withFileTypes: true });
222
232
  for (const entry of entries) {
223
- if (!entry.isFile()) {
224
- continue;
233
+ let dateKey;
234
+ let isDir = false;
235
+ if (entry.isFile()) {
236
+ const match = entry.name.match(/^traffic-(\d{4}-\d{2}-\d{2})\.log$/);
237
+ if (match) {
238
+ dateKey = match[1];
239
+ }
225
240
  }
226
- const match = entry.name.match(/^traffic-(\d{4}-\d{2}-\d{2})\.log$/);
227
- if (!match) {
228
- continue;
241
+ else if (entry.isDirectory()) {
242
+ const match = entry.name.match(/^(\d{4}-\d{2}-\d{2})$/);
243
+ if (match) {
244
+ dateKey = match[1];
245
+ isDir = true;
246
+ }
229
247
  }
230
- const dateKey = match[1];
231
- if (dateKey < thresholdStr) {
248
+ if (dateKey && dateKey < thresholdStr) {
232
249
  const fullPath = path.join(dir, entry.name);
233
250
  try {
234
- fs.rmSync(fullPath, { force: true });
251
+ fs.rmSync(fullPath, { recursive: true, force: true });
235
252
  }
236
253
  catch (err) {
237
- this.emitConsoleError(`[LoggingService] Failed to delete old traffic log ${entry.name}: ${err.message}`);
254
+ this.emitConsoleError(`[LoggingService] Failed to delete old traffic ${isDir ? 'directory' : 'log'} ${entry.name}: ${err.message}`);
238
255
  }
239
256
  }
240
257
  }
@@ -306,32 +323,73 @@ export class LoggingService {
306
323
  #log(level, message, meta) {
307
324
  this.log(level, message, meta);
308
325
  }
309
- writeProviderTrafficArtifact(runtimeRecord, message) {
310
- const trafficRecord = extractProviderTrafficRecordFromRuntimeLog({
311
- ...runtimeRecord,
312
- message,
313
- });
314
- if (!trafficRecord) {
326
+ writeProviderTrafficArtifact(runtimeRecord, _message) {
327
+ const eventType = typeof runtimeRecord.eventType === 'string' ? runtimeRecord.eventType : '';
328
+ const requestId = typeof runtimeRecord.requestId === 'string' ? runtimeRecord.requestId : undefined;
329
+ const sessionId = typeof runtimeRecord.sessionId === 'string' ? runtimeRecord.sessionId : undefined;
330
+ const sessionStartedAt = typeof runtimeRecord.sessionStartedAt === 'string' ? runtimeRecord.sessionStartedAt : undefined;
331
+ if (!requestId || !sessionId || !sessionStartedAt) {
315
332
  return;
316
333
  }
317
- const baseDir = trafficRecord.isEvaluator ? this.evaluatorTrafficDir : this.providerTrafficDir;
318
- const dateKey = (() => {
319
- const timestamp = String(trafficRecord.timestamp ?? '');
320
- const matched = timestamp.match(/^(\d{4}-\d{2}-\d{2})/);
321
- if (matched?.[1]) {
322
- return matched[1];
323
- }
324
- return new Date().toISOString().slice(0, 10);
325
- })();
326
- const artifact = {
327
- ...trafficRecord,
328
- eventType: runtimeRecord.eventType,
329
- messageId: runtimeRecord.messageId,
330
- };
331
- const filePath = path.join(baseDir, `traffic-${dateKey}.log`);
334
+ const timestamp = typeof runtimeRecord.timestamp === 'string' && runtimeRecord.timestamp
335
+ ? runtimeRecord.timestamp
336
+ : new Date().toISOString();
337
+ const provider = typeof runtimeRecord.provider === 'string' ? runtimeRecord.provider : 'unknown';
338
+ const model = typeof runtimeRecord.model === 'string' ? runtimeRecord.model : 'unknown';
339
+ const mode = typeof runtimeRecord.mode === 'string' ? runtimeRecord.mode : 'unknown';
340
+ const firstUserMessagePreview = typeof runtimeRecord.firstUserMessagePreview === 'string' ? runtimeRecord.firstUserMessagePreview : undefined;
332
341
  try {
333
- fs.mkdirSync(baseDir, { recursive: true });
334
- fs.appendFileSync(filePath, `${JSON.stringify(artifact)}\n`, 'utf8');
342
+ if (eventType === 'provider.request.started' || eventType === 'evaluator.request.started') {
343
+ const payload = runtimeRecord.payload;
344
+ if (payload && typeof payload === 'object' && !Array.isArray(payload)) {
345
+ this.providerTrafficStore.recordRequestStart({
346
+ requestId,
347
+ timestamp,
348
+ provider,
349
+ model,
350
+ sessionId,
351
+ sessionStartedAt,
352
+ mode,
353
+ firstUserMessagePreview,
354
+ sentBody: payload,
355
+ evaluator: eventType === 'evaluator.request.started',
356
+ });
357
+ }
358
+ return;
359
+ }
360
+ if (eventType === 'provider.response.received' || eventType === 'evaluator.response.received') {
361
+ const summary = runtimeRecord.payload;
362
+ this.providerTrafficStore.recordRequestComplete({
363
+ requestId,
364
+ timestamp,
365
+ provider,
366
+ model,
367
+ sessionId,
368
+ sessionStartedAt,
369
+ mode,
370
+ receivedSummary: summary && typeof summary === 'object' && !Array.isArray(summary) ? summary : {},
371
+ evaluator: eventType === 'evaluator.response.received',
372
+ });
373
+ return;
374
+ }
375
+ if (eventType === 'provider.response.failed' || eventType === 'provider.response.log_failed') {
376
+ this.providerTrafficStore.recordRequestComplete({
377
+ requestId,
378
+ timestamp,
379
+ provider,
380
+ model,
381
+ sessionId,
382
+ sessionStartedAt,
383
+ mode,
384
+ error: {
385
+ message: typeof runtimeRecord.error === 'string'
386
+ ? runtimeRecord.error
387
+ : typeof runtimeRecord.errorMessage === 'string'
388
+ ? runtimeRecord.errorMessage
389
+ : 'unknown_error',
390
+ },
391
+ });
392
+ }
335
393
  }
336
394
  catch (error) {
337
395
  this.emitConsoleError(`[LoggingService] Failed to write provider traffic artifact: ${error.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"logging-service.js","sourceRoot":"","sources":["../../source/services/logging-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logging-service.js","sourceRoot":"","sources":["../../source/services/logging-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Canonical mode-change notices injected into the conversation when the user
3
+ * toggles plan mode at runtime. They are persisted into the conversation
4
+ * history (append-only, at the tail) so the cached prefix only ever grows —
5
+ * a transient one-shot notice would make consecutive requests diverge at the
6
+ * tail and break the provider prompt cache.
7
+ */
8
+ export declare const PLAN_MODE_ENTER_NOTICE: string;
9
+ export declare const PLAN_MODE_EXIT_NOTICE: string;
10
+ export declare const planModeNotice: (entering: boolean) => string;
11
+ //# sourceMappingURL=mode-notices.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode-notices.d.ts","sourceRoot":"","sources":["../../source/services/mode-notices.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,QAIZ,CAAC;AAExB,eAAO,MAAM,qBAAqB,QAGrB,CAAC;AAEd,eAAO,MAAM,cAAc,GAAI,UAAU,OAAO,KAAG,MACQ,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Canonical mode-change notices injected into the conversation when the user
3
+ * toggles plan mode at runtime. They are persisted into the conversation
4
+ * history (append-only, at the tail) so the cached prefix only ever grows —
5
+ * a transient one-shot notice would make consecutive requests diverge at the
6
+ * tail and break the provider prompt cache.
7
+ */
8
+ export const PLAN_MODE_ENTER_NOTICE = 'Plan Mode is now ON: the workspace is read-only. Do not create or modify files, run ' +
9
+ 'state-changing commands, or spawn write-capable subagents. Investigate with read-only ' +
10
+ 'tools and deliver a concrete, ordered implementation plan; tell the user to exit Plan ' +
11
+ 'Mode to execute it.';
12
+ export const PLAN_MODE_EXIT_NOTICE = 'Plan Mode is now OFF: the read-only restriction is lifted. You may again create and ' +
13
+ 'modify files, run state-changing commands, and spawn write-capable subagents to execute ' +
14
+ 'the plan.';
15
+ export const planModeNotice = (entering) => entering ? PLAN_MODE_ENTER_NOTICE : PLAN_MODE_EXIT_NOTICE;
16
+ //# sourceMappingURL=mode-notices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode-notices.js","sourceRoot":"","sources":["../../source/services/mode-notices.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,sFAAsF;IACtF,wFAAwF;IACxF,wFAAwF;IACxF,qBAAqB,CAAC;AAExB,MAAM,CAAC,MAAM,qBAAqB,GAChC,sFAAsF;IACtF,0FAA0F;IAC1F,WAAW,CAAC;AAEd,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAiB,EAAU,EAAE,CAC1D,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"model-service.d.ts","sourceRoot":"","sources":["../../source/services/model-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAI5D,wBAAsB,WAAW,CAC/B,IAAI,EAAE;IACJ,eAAe,EAAE,gBAAgB,CAAC;IAClC,cAAc,EAAE,eAAe,CAAC;CACjC,EACD,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,GAAE,OAAsB,GAChC,OAAO,CAAC,SAAS,EAAE,CAAC,CA8BtB;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAqB5E"}
1
+ {"version":3,"file":"model-service.d.ts","sourceRoot":"","sources":["../../source/services/model-service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AAI5D,wBAAsB,WAAW,CAC/B,IAAI,EAAE;IACJ,eAAe,EAAE,gBAAgB,CAAC;IAClC,cAAc,EAAE,eAAe,CAAC;CACjC,EACD,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,GAAE,OAAsB,GAChC,OAAO,CAAC,SAAS,EAAE,CAAC,CA8BtB;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,CAoB5E"}
@@ -48,7 +48,6 @@ export function filterModels(models, query) {
48
48
  return { model, score };
49
49
  })
50
50
  .filter(({ score }) => score !== -Infinity)
51
- .sort((a, b) => b.score - a.score)
52
51
  .map(({ model }) => model);
53
52
  }
54
53
  //# sourceMappingURL=model-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-service.js","sourceRoot":"","sources":["../../source/services/model-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-service.js","sourceRoot":"","sources":["../../source/services/model-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ISettingsService } from './service-interfaces.js';
2
+ type ToolInterceptor = (name: string, params: unknown, toolCallId?: string) => Promise<string | null>;
3
+ type InterceptorCapableClient = {
4
+ addToolInterceptor: (interceptor: ToolInterceptor) => () => void;
5
+ };
6
+ export declare const installPlanModeInterceptor: (agentClient: InterceptorCapableClient, deps: {
7
+ settingsService: ISettingsService;
8
+ }) => (() => void);
9
+ export {};
10
+ //# sourceMappingURL=plan-mode-interceptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-mode-interceptor.d.ts","sourceRoot":"","sources":["../../source/services/plan-mode-interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,KAAK,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAEtG,KAAK,wBAAwB,GAAG;IAC9B,kBAAkB,EAAE,CAAC,WAAW,EAAE,eAAe,KAAK,MAAM,IAAI,CAAC;CAClE,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,aAAa,wBAAwB,EACrC,MAAM;IAAE,eAAe,EAAE,gBAAgB,CAAA;CAAE,KAC1C,CAAC,MAAM,IAAI,CA2Cb,CAAC"}
@@ -0,0 +1,38 @@
1
+ export const installPlanModeInterceptor = (agentClient, deps) => {
2
+ // Subagent roles that cannot mutate the workspace (canWrite: false). The
3
+ // `worker` role (and any future write-capable/custom role) is blocked.
4
+ const READ_ONLY_SUBAGENT_ROLES = new Set(['explorer', 'researcher', 'mentor']);
5
+ const extractRole = (params) => {
6
+ let obj = params;
7
+ if (typeof obj === 'string') {
8
+ try {
9
+ obj = JSON.parse(obj);
10
+ }
11
+ catch {
12
+ return undefined;
13
+ }
14
+ }
15
+ const role = obj?.role;
16
+ return typeof role === 'string' ? role : undefined;
17
+ };
18
+ const interceptor = async (name, params) => {
19
+ const isPlanMode = deps.settingsService.get('app.planMode');
20
+ if (!isPlanMode) {
21
+ return null;
22
+ }
23
+ if (['create_file', 'search_replace', 'apply_patch'].includes(name)) {
24
+ return `Plan mode is active (read-only). The "${name}" tool is disabled. Do not attempt file or state changes — investigate with read-only tools and present an ordered implementation plan. Tell the user to exit plan mode to execute it.`;
25
+ }
26
+ if (name === 'run_subagent') {
27
+ const role = extractRole(params);
28
+ // Allow only read-only subagent roles; block worker and unknown roles
29
+ // (an unknown role could be a write-capable custom subagent).
30
+ if (!role || !READ_ONLY_SUBAGENT_ROLES.has(role)) {
31
+ return `Plan mode is active (read-only). The "run_subagent" tool is restricted to read-only roles (explorer, researcher, mentor) — the "${role ?? 'unknown'}" role is disabled. Use a read-only subagent to investigate, then present an ordered implementation plan. Tell the user to exit plan mode to execute it.`;
32
+ }
33
+ }
34
+ return null;
35
+ };
36
+ return agentClient.addToolInterceptor(interceptor);
37
+ };
38
+ //# sourceMappingURL=plan-mode-interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-mode-interceptor.js","sourceRoot":"","sources":["../../source/services/plan-mode-interceptor.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACxC,WAAqC,EACrC,IAA2C,EAC7B,EAAE;IAChB,yEAAyE;IACzE,uEAAuE;IACvE,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/E,MAAM,WAAW,GAAG,CAAC,MAAe,EAAsB,EAAE;QAC1D,IAAI,GAAG,GAAG,MAAM,CAAC;QACjB,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,IAAI,CAAC;gBACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAI,GAAiC,EAAE,IAAI,CAAC;QACtD,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACrD,CAAC,CAAC;IAEF,MAAM,WAAW,GAAoB,KAAK,EAAE,IAAY,EAAE,MAAe,EAAE,EAAE;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAU,cAAc,CAAC,CAAC;QACrE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,gBAAgB,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpE,OAAO,yCAAyC,IAAI,wLAAwL,CAAC;QAC/O,CAAC;QAED,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YACjC,sEAAsE;YACtE,8DAA8D;YAC9D,IAAI,CAAC,IAAI,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,OAAO,mIACL,IAAI,IAAI,SACV,0JAA0J,CAAC;YAC7J,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,OAAO,WAAW,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACrD,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=plan-mode-interceptor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-mode-interceptor.test.d.ts","sourceRoot":"","sources":["../../source/services/plan-mode-interceptor.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,55 @@
1
+ import test from 'ava';
2
+ import { installPlanModeInterceptor } from './plan-mode-interceptor.js';
3
+ test('installPlanModeInterceptor rejects mutating tools when planMode is true', async (t) => {
4
+ let capturedInterceptor;
5
+ let planMode = true;
6
+ const mockSettingsService = {
7
+ get: (key) => {
8
+ if (key === 'app.planMode')
9
+ return planMode;
10
+ return false;
11
+ },
12
+ };
13
+ installPlanModeInterceptor({
14
+ addToolInterceptor(interceptor) {
15
+ capturedInterceptor = interceptor;
16
+ return () => { };
17
+ },
18
+ }, { settingsService: mockSettingsService });
19
+ t.truthy(capturedInterceptor);
20
+ // When planMode is true, mutating tools should be blocked
21
+ const rejectCreate = await capturedInterceptor('create_file', {});
22
+ t.truthy(rejectCreate);
23
+ t.true(rejectCreate.includes('disabled'));
24
+ const rejectSearchReplace = await capturedInterceptor('search_replace', {});
25
+ t.truthy(rejectSearchReplace);
26
+ t.true(rejectSearchReplace.includes('disabled'));
27
+ const rejectApplyPatch = await capturedInterceptor('apply_patch', {});
28
+ t.truthy(rejectApplyPatch);
29
+ t.true(rejectApplyPatch.includes('disabled'));
30
+ // Write-capable worker subagent is blocked
31
+ const rejectWorker = await capturedInterceptor('run_subagent', { role: 'worker' });
32
+ t.truthy(rejectWorker);
33
+ t.true(rejectWorker.includes('disabled'));
34
+ // Unknown / missing role is blocked (could be a write-capable custom role)
35
+ t.truthy(await capturedInterceptor('run_subagent', {}));
36
+ t.truthy(await capturedInterceptor('run_subagent', { role: 'mystery' }));
37
+ // Read-only subagent roles are allowed in plan mode
38
+ t.is(await capturedInterceptor('run_subagent', { role: 'explorer' }), null);
39
+ t.is(await capturedInterceptor('run_subagent', { role: 'researcher' }), null);
40
+ t.is(await capturedInterceptor('run_subagent', { role: 'mentor' }), null);
41
+ // Role passed as a JSON string (provider may stringify args)
42
+ t.is(await capturedInterceptor('run_subagent', JSON.stringify({ role: 'explorer' })), null);
43
+ // Non-mutating tools should pass through
44
+ t.is(await capturedInterceptor('read_file', {}), null);
45
+ t.is(await capturedInterceptor('grep', {}), null);
46
+ t.is(await capturedInterceptor('shell', {}), null);
47
+ // When planMode is false, all tools should pass through
48
+ planMode = false;
49
+ t.is(await capturedInterceptor('create_file', {}), null);
50
+ t.is(await capturedInterceptor('search_replace', {}), null);
51
+ t.is(await capturedInterceptor('apply_patch', {}), null);
52
+ t.is(await capturedInterceptor('run_subagent', {}), null);
53
+ t.is(await capturedInterceptor('read_file', {}), null);
54
+ });
55
+ //# sourceMappingURL=plan-mode-interceptor.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plan-mode-interceptor.test.js","sourceRoot":"","sources":["../../source/services/plan-mode-interceptor.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
1
+ export declare const TRAFFIC_TEXT_LIMIT = 100;
2
+ export type SessionTrafficContext = {
3
+ sessionId: string;
4
+ sessionStartedAt: string;
5
+ firstUserMessagePreview?: string;
6
+ mode?: string;
7
+ traceId?: string;
8
+ evaluator?: boolean;
9
+ };
10
+ export type SentTrafficRecord = {
11
+ requestId: string;
12
+ timestamp: string;
13
+ provider: string;
14
+ model: string;
15
+ sessionId: string;
16
+ sessionStartedAt: string;
17
+ mode?: string;
18
+ firstUserMessagePreview?: string;
19
+ sentBody: Record<string, unknown>;
20
+ };
21
+ export type ReceivedTrafficSummary = {
22
+ transport: 'json' | 'sse' | 'text' | 'unknown';
23
+ status: number;
24
+ errorFrames: Array<Record<string, unknown>>;
25
+ malformedFrames: Array<{
26
+ raw: string;
27
+ error: string;
28
+ }>;
29
+ unknownFrames: Array<{
30
+ signature: string;
31
+ count: number;
32
+ firstRaw: string;
33
+ lastRaw: string;
34
+ }>;
35
+ fallbackBody?: unknown;
36
+ payload?: unknown;
37
+ };
38
+ export type DailySessionIndexEntry = {
39
+ sessionId: string;
40
+ sessionDir: string;
41
+ firstRequestAt: string;
42
+ lastRequestAt: string;
43
+ requestCount: number;
44
+ firstUserMessagePreview: string;
45
+ latestProvider: string;
46
+ latestModel: string;
47
+ providersSeen: string[];
48
+ modelsSeen: string[];
49
+ latestMode: string;
50
+ modesSeen: string[];
51
+ };
52
+ export declare const sanitizeSentTrafficBody: (body: Record<string, unknown>) => Record<string, unknown>;
53
+ export declare function summarizeReceivedTraffic(response: Response): Promise<ReceivedTrafficSummary>;
54
+ type RequestStartInput = {
55
+ requestId: string;
56
+ timestamp: string;
57
+ provider: string;
58
+ model: string;
59
+ sessionId: string;
60
+ sessionStartedAt: string;
61
+ mode?: string;
62
+ firstUserMessagePreview?: string;
63
+ sentBody: Record<string, unknown>;
64
+ evaluator?: boolean;
65
+ };
66
+ type RequestCompleteInput = {
67
+ requestId: string;
68
+ timestamp: string;
69
+ provider: string;
70
+ model: string;
71
+ sessionId: string;
72
+ sessionStartedAt: string;
73
+ mode?: string;
74
+ receivedSummary?: Record<string, unknown>;
75
+ error?: Record<string, unknown>;
76
+ evaluator?: boolean;
77
+ };
78
+ export declare class ProviderTrafficArtifactStore {
79
+ #private;
80
+ constructor({ rootDir }: {
81
+ rootDir: string;
82
+ });
83
+ recordRequestStart(input: RequestStartInput): void;
84
+ recordRequestComplete(input: RequestCompleteInput): void;
85
+ }
86
+ export {};
87
+ //# sourceMappingURL=provider-traffic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-traffic.d.ts","sourceRoot":"","sources":["../../source/services/provider-traffic.ts"],"names":[],"mappings":"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"}