@qduc/term2 0.7.2 → 0.7.3

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 (469) hide show
  1. package/dist/agent.d.ts +1 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +17 -1
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agent.test.js +36 -0
  6. package/dist/agent.test.js.map +1 -1
  7. package/dist/app.d.ts.map +1 -1
  8. package/dist/app.js +57 -12
  9. package/dist/app.js.map +1 -1
  10. package/dist/cli.integration.test.js +60 -4
  11. package/dist/cli.integration.test.js.map +1 -1
  12. package/dist/cli.js +33 -2
  13. package/dist/cli.js.map +1 -1
  14. package/dist/components/ApprovalPrompt.ask-user.test.d.ts +2 -0
  15. package/dist/components/ApprovalPrompt.ask-user.test.d.ts.map +1 -0
  16. package/dist/components/ApprovalPrompt.ask-user.test.js +108 -0
  17. package/dist/components/ApprovalPrompt.ask-user.test.js.map +1 -0
  18. package/dist/components/ApprovalPrompt.d.ts +4 -4
  19. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  20. package/dist/components/ApprovalPrompt.js +76 -13
  21. package/dist/components/ApprovalPrompt.js.map +1 -1
  22. package/dist/components/BottomArea.d.ts +7 -2
  23. package/dist/components/BottomArea.d.ts.map +1 -1
  24. package/dist/components/BottomArea.js +11 -6
  25. package/dist/components/BottomArea.js.map +1 -1
  26. package/dist/components/BottomArea.test.js +4 -3
  27. package/dist/components/BottomArea.test.js.map +1 -1
  28. package/dist/components/Common/MenuContainer.d.ts +3 -2
  29. package/dist/components/Common/MenuContainer.d.ts.map +1 -1
  30. package/dist/components/Common/MenuContainer.js +14 -2
  31. package/dist/components/Common/MenuContainer.js.map +1 -1
  32. package/dist/components/Common/MenuContainer.test.d.ts +2 -0
  33. package/dist/components/Common/MenuContainer.test.d.ts.map +1 -0
  34. package/dist/components/Common/MenuContainer.test.js +66 -0
  35. package/dist/components/Common/MenuContainer.test.js.map +1 -0
  36. package/dist/components/Input/PopupManager.d.ts +14 -0
  37. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  38. package/dist/components/Input/PopupManager.js +6 -4
  39. package/dist/components/Input/PopupManager.js.map +1 -1
  40. package/dist/components/Input/popup-props.d.ts +3 -1
  41. package/dist/components/Input/popup-props.d.ts.map +1 -1
  42. package/dist/components/Input/popup-props.js +12 -1
  43. package/dist/components/Input/popup-props.js.map +1 -1
  44. package/dist/components/Input/popup-props.test.js +9 -0
  45. package/dist/components/Input/popup-props.test.js.map +1 -1
  46. package/dist/components/InputBox.d.ts +7 -0
  47. package/dist/components/InputBox.d.ts.map +1 -1
  48. package/dist/components/InputBox.js +81 -30
  49. package/dist/components/InputBox.js.map +1 -1
  50. package/dist/components/InputBox.test.js +133 -10
  51. package/dist/components/InputBox.test.js.map +1 -1
  52. package/dist/components/LargeUncachedConfirmationPrompt.d.ts +2 -1
  53. package/dist/components/LargeUncachedConfirmationPrompt.d.ts.map +1 -1
  54. package/dist/components/LargeUncachedConfirmationPrompt.js +8 -3
  55. package/dist/components/LargeUncachedConfirmationPrompt.js.map +1 -1
  56. package/dist/components/LargeUncachedConfirmationPrompt.test.js +5 -4
  57. package/dist/components/LargeUncachedConfirmationPrompt.test.js.map +1 -1
  58. package/dist/components/MessageList.d.ts +2 -1
  59. package/dist/components/MessageList.d.ts.map +1 -1
  60. package/dist/components/MessageList.js +6 -1
  61. package/dist/components/MessageList.js.map +1 -1
  62. package/dist/components/MessageList.test.js +26 -0
  63. package/dist/components/MessageList.test.js.map +1 -1
  64. package/dist/components/PathSelectionMenu.d.ts +1 -0
  65. package/dist/components/PathSelectionMenu.d.ts.map +1 -1
  66. package/dist/components/PathSelectionMenu.js +11 -9
  67. package/dist/components/PathSelectionMenu.js.map +1 -1
  68. package/dist/components/PathSelectionMenu.test.d.ts +2 -0
  69. package/dist/components/PathSelectionMenu.test.d.ts.map +1 -0
  70. package/dist/components/PathSelectionMenu.test.js +17 -0
  71. package/dist/components/PathSelectionMenu.test.js.map +1 -0
  72. package/dist/components/ProviderSelectionMenu.d.ts +15 -0
  73. package/dist/components/ProviderSelectionMenu.d.ts.map +1 -0
  74. package/dist/components/ProviderSelectionMenu.js +172 -0
  75. package/dist/components/ProviderSelectionMenu.js.map +1 -0
  76. package/dist/components/ProviderSelectionMenu.test.d.ts +2 -0
  77. package/dist/components/ProviderSelectionMenu.test.d.ts.map +1 -0
  78. package/dist/components/ProviderSelectionMenu.test.js +97 -0
  79. package/dist/components/ProviderSelectionMenu.test.js.map +1 -0
  80. package/dist/components/SettingsValueSelectionMenu.d.ts +2 -1
  81. package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
  82. package/dist/components/SettingsValueSelectionMenu.js +12 -6
  83. package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
  84. package/dist/components/StatusBar.d.ts +1 -0
  85. package/dist/components/StatusBar.d.ts.map +1 -1
  86. package/dist/components/StatusBar.js +3 -2
  87. package/dist/components/StatusBar.js.map +1 -1
  88. package/dist/components/StatusBar.test.js +11 -0
  89. package/dist/components/StatusBar.test.js.map +1 -1
  90. package/dist/context/InputContext.d.ts +1 -1
  91. package/dist/context/InputContext.d.ts.map +1 -1
  92. package/dist/context/InputContext.js.map +1 -1
  93. package/dist/hooks/use-app-commands.d.ts +2 -1
  94. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  95. package/dist/hooks/use-app-commands.js +11 -2
  96. package/dist/hooks/use-app-commands.js.map +1 -1
  97. package/dist/hooks/use-app-commands.test.js +2 -0
  98. package/dist/hooks/use-app-commands.test.js.map +1 -1
  99. package/dist/hooks/use-conversation.clear.test.js +31 -0
  100. package/dist/hooks/use-conversation.clear.test.js.map +1 -1
  101. package/dist/hooks/use-conversation.d.ts +4 -1
  102. package/dist/hooks/use-conversation.d.ts.map +1 -1
  103. package/dist/hooks/use-conversation.js +18 -2
  104. package/dist/hooks/use-conversation.js.map +1 -1
  105. package/dist/hooks/use-escape-key.d.ts +12 -3
  106. package/dist/hooks/use-escape-key.d.ts.map +1 -1
  107. package/dist/hooks/use-escape-key.js +25 -11
  108. package/dist/hooks/use-escape-key.js.map +1 -1
  109. package/dist/hooks/use-escape-key.test.js +154 -14
  110. package/dist/hooks/use-escape-key.test.js.map +1 -1
  111. package/dist/hooks/use-mode-handlers.d.ts +13 -1
  112. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  113. package/dist/hooks/use-mode-handlers.js +22 -1
  114. package/dist/hooks/use-mode-handlers.js.map +1 -1
  115. package/dist/hooks/use-mode-handlers.test.d.ts +2 -0
  116. package/dist/hooks/use-mode-handlers.test.d.ts.map +1 -0
  117. package/dist/hooks/use-mode-handlers.test.js +119 -0
  118. package/dist/hooks/use-mode-handlers.test.js.map +1 -0
  119. package/dist/hooks/use-path-completion.d.ts +10 -3
  120. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  121. package/dist/hooks/use-path-completion.js +53 -9
  122. package/dist/hooks/use-path-completion.js.map +1 -1
  123. package/dist/hooks/use-path-completion.test.js +61 -49
  124. package/dist/hooks/use-path-completion.test.js.map +1 -1
  125. package/dist/hooks/use-provider-selection.d.ts +60 -0
  126. package/dist/hooks/use-provider-selection.d.ts.map +1 -0
  127. package/dist/hooks/use-provider-selection.js +767 -0
  128. package/dist/hooks/use-provider-selection.js.map +1 -0
  129. package/dist/hooks/use-provider-selection.test.d.ts +2 -0
  130. package/dist/hooks/use-provider-selection.test.d.ts.map +1 -0
  131. package/dist/hooks/use-provider-selection.test.js +793 -0
  132. package/dist/hooks/use-provider-selection.test.js.map +1 -0
  133. package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
  134. package/dist/hooks/use-runtime-settings.js +2 -2
  135. package/dist/hooks/use-runtime-settings.js.map +1 -1
  136. package/dist/hooks/use-selection.d.ts +3 -1
  137. package/dist/hooks/use-selection.d.ts.map +1 -1
  138. package/dist/hooks/use-selection.js +115 -24
  139. package/dist/hooks/use-selection.js.map +1 -1
  140. package/dist/hooks/use-selection.test.js +96 -2
  141. package/dist/hooks/use-selection.test.js.map +1 -1
  142. package/dist/hooks/use-settings-value-completion.d.ts +3 -0
  143. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  144. package/dist/hooks/use-settings-value-completion.js +140 -18
  145. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  146. package/dist/hooks/use-settings-value-completion.test.js +71 -1
  147. package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
  148. package/dist/hooks/use-trigger-detection.d.ts +4 -2
  149. package/dist/hooks/use-trigger-detection.d.ts.map +1 -1
  150. package/dist/hooks/use-trigger-detection.js +42 -8
  151. package/dist/hooks/use-trigger-detection.js.map +1 -1
  152. package/dist/hooks/use-trigger-detection.test.js +2 -1
  153. package/dist/hooks/use-trigger-detection.test.js.map +1 -1
  154. package/dist/lib/openai-agent-client.chat.test.js +8 -0
  155. package/dist/lib/openai-agent-client.chat.test.js.map +1 -1
  156. package/dist/lib/openai-agent-client.d.ts +11 -6
  157. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  158. package/dist/lib/openai-agent-client.js +199 -15
  159. package/dist/lib/openai-agent-client.js.map +1 -1
  160. package/dist/lib/openai-agent-client.public-methods.test.js +326 -23
  161. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  162. package/dist/lib/openai-agent-client.test.js +62 -0
  163. package/dist/lib/openai-agent-client.test.js.map +1 -1
  164. package/dist/lib/tool-invoke.d.ts +27 -0
  165. package/dist/lib/tool-invoke.d.ts.map +1 -1
  166. package/dist/lib/tool-invoke.js +124 -95
  167. package/dist/lib/tool-invoke.js.map +1 -1
  168. package/dist/lib/tool-invoke.test.js +84 -22
  169. package/dist/lib/tool-invoke.test.js.map +1 -1
  170. package/dist/non-interactive.d.ts +2 -1
  171. package/dist/non-interactive.d.ts.map +1 -1
  172. package/dist/non-interactive.js +10 -2
  173. package/dist/non-interactive.js.map +1 -1
  174. package/dist/prompts/orchestrator.md +27 -41
  175. package/dist/prompts/plan-mode-info.md +2 -0
  176. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  177. package/dist/prompts/prompt-constructor.js +8 -0
  178. package/dist/prompts/prompt-constructor.js.map +1 -1
  179. package/dist/prompts/prompt-constructor.test.js +13 -0
  180. package/dist/prompts/prompt-constructor.test.js.map +1 -1
  181. package/dist/prompts/prompt-constructor.test.ts +16 -0
  182. package/dist/prompts/prompt-constructor.ts +10 -0
  183. package/dist/prompts/subagent-delegation.d.ts.map +1 -1
  184. package/dist/prompts/subagent-delegation.js +17 -1
  185. package/dist/prompts/subagent-delegation.js.map +1 -1
  186. package/dist/prompts/subagent-delegation.test.js +21 -0
  187. package/dist/prompts/subagent-delegation.test.js.map +1 -1
  188. package/dist/prompts/subagent-delegation.test.ts +26 -0
  189. package/dist/prompts/subagent-delegation.ts +17 -1
  190. package/dist/prompts/subagents/base-anthropic.md +3 -0
  191. package/dist/prompts/subagents/base-codex.md +3 -0
  192. package/dist/prompts/subagents/base-gpt-5-modern.md +3 -0
  193. package/dist/prompts/subagents/base-simple.md +3 -0
  194. package/dist/prompts/subagents/explorer.md +8 -10
  195. package/dist/prompts/subagents/researcher.md +2 -1
  196. package/dist/prompts/subagents/worker.md +12 -3
  197. package/dist/prompts/subagents/worktree-hygiene.md +6 -0
  198. package/dist/providers/ai-sdk-anthropic.provider.d.ts +4 -1
  199. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -1
  200. package/dist/providers/ai-sdk-anthropic.provider.js +65 -22
  201. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -1
  202. package/dist/providers/ai-sdk-anthropic.provider.test.js +24 -1
  203. package/dist/providers/ai-sdk-anthropic.provider.test.js.map +1 -1
  204. package/dist/providers/anthropic-middleware.d.ts +25 -0
  205. package/dist/providers/anthropic-middleware.d.ts.map +1 -0
  206. package/dist/providers/anthropic-middleware.js +32 -0
  207. package/dist/providers/anthropic-middleware.js.map +1 -0
  208. package/dist/providers/anthropic-middleware.test.d.ts +2 -0
  209. package/dist/providers/anthropic-middleware.test.d.ts.map +1 -0
  210. package/dist/providers/anthropic-middleware.test.js +142 -0
  211. package/dist/providers/anthropic-middleware.test.js.map +1 -0
  212. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  213. package/dist/providers/codex-responses-model.js +47 -30
  214. package/dist/providers/codex-responses-model.js.map +1 -1
  215. package/dist/providers/codex-responses-model.test.js +31 -0
  216. package/dist/providers/codex-responses-model.test.js.map +1 -1
  217. package/dist/providers/codex.provider.d.ts.map +1 -1
  218. package/dist/providers/codex.provider.js +16 -9
  219. package/dist/providers/codex.provider.js.map +1 -1
  220. package/dist/providers/codex.provider.test.js +2 -1
  221. package/dist/providers/codex.provider.test.js.map +1 -1
  222. package/dist/providers/custom-provider-adapter.test.js +6 -2
  223. package/dist/providers/custom-provider-adapter.test.js.map +1 -1
  224. package/dist/providers/fallback-responses-model.d.ts +3 -1
  225. package/dist/providers/fallback-responses-model.d.ts.map +1 -1
  226. package/dist/providers/fallback-responses-model.js +22 -3
  227. package/dist/providers/fallback-responses-model.js.map +1 -1
  228. package/dist/providers/fallback-responses-model.test.js +36 -8
  229. package/dist/providers/fallback-responses-model.test.js.map +1 -1
  230. package/dist/providers/fetch/composer.d.ts +1 -0
  231. package/dist/providers/fetch/composer.d.ts.map +1 -1
  232. package/dist/providers/fetch/composer.js +1 -0
  233. package/dist/providers/fetch/composer.js.map +1 -1
  234. package/dist/providers/fetch/composer.test.js +58 -17
  235. package/dist/providers/fetch/composer.test.js.map +1 -1
  236. package/dist/providers/fetch/logging-middleware.d.ts +3 -2
  237. package/dist/providers/fetch/logging-middleware.d.ts.map +1 -1
  238. package/dist/providers/fetch/logging-middleware.js +5 -2
  239. package/dist/providers/fetch/logging-middleware.js.map +1 -1
  240. package/dist/providers/openai-compatible-lazy.d.ts.map +1 -1
  241. package/dist/providers/openai-compatible-lazy.js +2 -1
  242. package/dist/providers/openai-compatible-lazy.js.map +1 -1
  243. package/dist/providers/openai-compatible-middleware.d.ts +5 -2
  244. package/dist/providers/openai-compatible-middleware.d.ts.map +1 -1
  245. package/dist/providers/openai-compatible-middleware.js +8 -11
  246. package/dist/providers/openai-compatible-middleware.js.map +1 -1
  247. package/dist/providers/openai-compatible.provider.d.ts +5 -1
  248. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  249. package/dist/providers/openai-compatible.provider.js +59 -37
  250. package/dist/providers/openai-compatible.provider.js.map +1 -1
  251. package/dist/providers/openai-compatible.provider.test.js +67 -3
  252. package/dist/providers/openai-compatible.provider.test.js.map +1 -1
  253. package/dist/providers/openai.provider.d.ts +8 -1
  254. package/dist/providers/openai.provider.d.ts.map +1 -1
  255. package/dist/providers/openai.provider.js +43 -10
  256. package/dist/providers/openai.provider.js.map +1 -1
  257. package/dist/providers/openai.provider.test.js +53 -16
  258. package/dist/providers/openai.provider.test.js.map +1 -1
  259. package/dist/providers/opencode-routing.d.ts +4 -0
  260. package/dist/providers/opencode-routing.d.ts.map +1 -0
  261. package/dist/providers/opencode-routing.js +14 -0
  262. package/dist/providers/opencode-routing.js.map +1 -0
  263. package/dist/providers/opencode-session.d.ts +19 -0
  264. package/dist/providers/opencode-session.d.ts.map +1 -0
  265. package/dist/providers/opencode-session.js +76 -0
  266. package/dist/providers/opencode-session.js.map +1 -0
  267. package/dist/providers/opencode.provider.d.ts +0 -8
  268. package/dist/providers/opencode.provider.d.ts.map +1 -1
  269. package/dist/providers/opencode.provider.js +0 -32
  270. package/dist/providers/opencode.provider.js.map +1 -1
  271. package/dist/providers/opencode.provider.test.d.ts +2 -0
  272. package/dist/providers/opencode.provider.test.d.ts.map +1 -0
  273. package/dist/providers/opencode.provider.test.js +186 -0
  274. package/dist/providers/opencode.provider.test.js.map +1 -0
  275. package/dist/providers/openrouter.provider.createRunner.test.js +5 -0
  276. package/dist/providers/openrouter.provider.createRunner.test.js.map +1 -1
  277. package/dist/providers/openrouter.provider.d.ts.map +1 -1
  278. package/dist/providers/openrouter.provider.js +8 -4
  279. package/dist/providers/openrouter.provider.js.map +1 -1
  280. package/dist/providers/registry.d.ts +3 -0
  281. package/dist/providers/registry.d.ts.map +1 -1
  282. package/dist/providers/registry.js.map +1 -1
  283. package/dist/providers/registry.test.js +1 -0
  284. package/dist/providers/registry.test.js.map +1 -1
  285. package/dist/scripts/eval-auto-approval/runner.js +4 -0
  286. package/dist/scripts/eval-auto-approval/runner.js.map +1 -1
  287. package/dist/services/conversation-integration.test.js +8 -4
  288. package/dist/services/conversation-integration.test.js.map +1 -1
  289. package/dist/services/conversation-persistence.test.js +7 -0
  290. package/dist/services/conversation-persistence.test.js.map +1 -1
  291. package/dist/services/conversation-replay.d.ts.map +1 -1
  292. package/dist/services/conversation-replay.js +95 -4
  293. package/dist/services/conversation-replay.js.map +1 -1
  294. package/dist/services/conversation-replay.test.js +312 -0
  295. package/dist/services/conversation-replay.test.js.map +1 -1
  296. package/dist/services/conversation-result-builder.test.js +9 -0
  297. package/dist/services/conversation-result-builder.test.js.map +1 -1
  298. package/dist/services/conversation-service.d.ts +3 -1
  299. package/dist/services/conversation-service.d.ts.map +1 -1
  300. package/dist/services/conversation-service.js +3 -0
  301. package/dist/services/conversation-service.js.map +1 -1
  302. package/dist/services/conversation-session-reasoning.test.js +5 -1
  303. package/dist/services/conversation-session-reasoning.test.js.map +1 -1
  304. package/dist/services/conversation-session.auto-approval.test.js +25 -1
  305. package/dist/services/conversation-session.auto-approval.test.js.map +1 -1
  306. package/dist/services/conversation-session.d.ts +7 -2
  307. package/dist/services/conversation-session.d.ts.map +1 -1
  308. package/dist/services/conversation-session.js +70 -45
  309. package/dist/services/conversation-session.js.map +1 -1
  310. package/dist/services/file-service.d.ts +20 -4
  311. package/dist/services/file-service.d.ts.map +1 -1
  312. package/dist/services/file-service.js +111 -52
  313. package/dist/services/file-service.js.map +1 -1
  314. package/dist/services/file-service.test.d.ts +2 -0
  315. package/dist/services/file-service.test.d.ts.map +1 -0
  316. package/dist/services/file-service.test.js +60 -0
  317. package/dist/services/file-service.test.js.map +1 -0
  318. package/dist/services/logging-service.d.ts +0 -3
  319. package/dist/services/logging-service.d.ts.map +1 -1
  320. package/dist/services/logging-service.js +12 -8
  321. package/dist/services/logging-service.js.map +1 -1
  322. package/dist/services/mode-notices.d.ts +4 -5
  323. package/dist/services/mode-notices.d.ts.map +1 -1
  324. package/dist/services/mode-notices.js +4 -5
  325. package/dist/services/mode-notices.js.map +1 -1
  326. package/dist/services/notification-service.d.ts +31 -11
  327. package/dist/services/notification-service.d.ts.map +1 -1
  328. package/dist/services/notification-service.js +88 -40
  329. package/dist/services/notification-service.js.map +1 -1
  330. package/dist/services/notification-service.test.js +135 -62
  331. package/dist/services/notification-service.test.js.map +1 -1
  332. package/dist/services/provider-traffic.d.ts +8 -9
  333. package/dist/services/provider-traffic.d.ts.map +1 -1
  334. package/dist/services/provider-traffic.js +24 -12
  335. package/dist/services/provider-traffic.js.map +1 -1
  336. package/dist/services/provider-traffic.test.js +51 -1
  337. package/dist/services/provider-traffic.test.js.map +1 -1
  338. package/dist/services/service-interfaces.d.ts +12 -16
  339. package/dist/services/service-interfaces.d.ts.map +1 -1
  340. package/dist/services/session-context-service.d.ts +8 -0
  341. package/dist/services/session-context-service.d.ts.map +1 -0
  342. package/dist/services/session-context-service.js +19 -0
  343. package/dist/services/session-context-service.js.map +1 -0
  344. package/dist/services/session-context-service.test.d.ts +2 -0
  345. package/dist/services/session-context-service.test.d.ts.map +1 -0
  346. package/dist/services/session-context-service.test.js +38 -0
  347. package/dist/services/session-context-service.test.js.map +1 -0
  348. package/dist/services/settings-env.d.ts.map +1 -1
  349. package/dist/services/settings-env.js +4 -1
  350. package/dist/services/settings-env.js.map +1 -1
  351. package/dist/services/settings-persistence.d.ts.map +1 -1
  352. package/dist/services/settings-persistence.js +0 -1
  353. package/dist/services/settings-persistence.js.map +1 -1
  354. package/dist/services/settings-persistence.test.js +2 -2
  355. package/dist/services/settings-persistence.test.js.map +1 -1
  356. package/dist/services/settings-schema.d.ts +9 -0
  357. package/dist/services/settings-schema.d.ts.map +1 -1
  358. package/dist/services/settings-schema.js +15 -4
  359. package/dist/services/settings-schema.js.map +1 -1
  360. package/dist/services/settings-service.d.ts +8 -0
  361. package/dist/services/settings-service.d.ts.map +1 -1
  362. package/dist/services/settings-service.js +58 -21
  363. package/dist/services/settings-service.js.map +1 -1
  364. package/dist/services/shell-auto-approval-evaluator.d.ts +3 -2
  365. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
  366. package/dist/services/shell-auto-approval-evaluator.js +3 -3
  367. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  368. package/dist/services/shell-auto-approval-evaluator.test.js +20 -0
  369. package/dist/services/shell-auto-approval-evaluator.test.js.map +1 -1
  370. package/dist/services/shell-auto-approval-resolver.d.ts +2 -1
  371. package/dist/services/shell-auto-approval-resolver.d.ts.map +1 -1
  372. package/dist/services/shell-auto-approval-resolver.js +2 -0
  373. package/dist/services/shell-auto-approval-resolver.js.map +1 -1
  374. package/dist/services/shell-auto-approval-resolver.test.js +10 -0
  375. package/dist/services/shell-auto-approval-resolver.test.js.map +1 -1
  376. package/dist/services/subagents/subagent-manager.d.ts +2 -1
  377. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  378. package/dist/services/subagents/subagent-manager.js +182 -13
  379. package/dist/services/subagents/subagent-manager.js.map +1 -1
  380. package/dist/services/subagents/subagent-manager.test.js +548 -17
  381. package/dist/services/subagents/subagent-manager.test.js.map +1 -1
  382. package/dist/tools/apply-patch.d.ts.map +1 -1
  383. package/dist/tools/apply-patch.js +2 -2
  384. package/dist/tools/apply-patch.js.map +1 -1
  385. package/dist/tools/ask-user-constants.d.ts +7 -0
  386. package/dist/tools/ask-user-constants.d.ts.map +1 -0
  387. package/dist/tools/ask-user-constants.js +7 -0
  388. package/dist/tools/ask-user-constants.js.map +1 -0
  389. package/dist/tools/ask-user.d.ts +11 -0
  390. package/dist/tools/ask-user.d.ts.map +1 -0
  391. package/dist/tools/ask-user.js +56 -0
  392. package/dist/tools/ask-user.js.map +1 -0
  393. package/dist/tools/ask-user.test.d.ts +2 -0
  394. package/dist/tools/ask-user.test.d.ts.map +1 -0
  395. package/dist/tools/ask-user.test.js +129 -0
  396. package/dist/tools/ask-user.test.js.map +1 -0
  397. package/dist/tools/format-helpers.d.ts +13 -0
  398. package/dist/tools/format-helpers.d.ts.map +1 -1
  399. package/dist/tools/format-helpers.js +34 -0
  400. package/dist/tools/format-helpers.js.map +1 -1
  401. package/dist/tools/format-helpers.test.d.ts +2 -0
  402. package/dist/tools/format-helpers.test.d.ts.map +1 -0
  403. package/dist/tools/format-helpers.test.js +51 -0
  404. package/dist/tools/format-helpers.test.js.map +1 -0
  405. package/dist/tools/search-replace.d.ts.map +1 -1
  406. package/dist/tools/search-replace.js +2 -2
  407. package/dist/tools/search-replace.js.map +1 -1
  408. package/dist/tools/tool-names.d.ts +1 -0
  409. package/dist/tools/tool-names.d.ts.map +1 -1
  410. package/dist/tools/tool-names.js +1 -0
  411. package/dist/tools/tool-names.js.map +1 -1
  412. package/dist/utils/command-safety/_scratch-classify.test.d.ts +2 -0
  413. package/dist/utils/command-safety/_scratch-classify.test.d.ts.map +1 -0
  414. package/dist/utils/command-safety/_scratch-classify.test.js +22 -0
  415. package/dist/utils/command-safety/_scratch-classify.test.js.map +1 -0
  416. package/dist/utils/command-safety/constants.d.ts.map +1 -1
  417. package/dist/utils/command-safety/constants.js +21 -0
  418. package/dist/utils/command-safety/constants.js.map +1 -1
  419. package/dist/utils/command-safety/handlers/git-handler.d.ts.map +1 -1
  420. package/dist/utils/command-safety/handlers/git-handler.js +28 -2
  421. package/dist/utils/command-safety/handlers/git-handler.js.map +1 -1
  422. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  423. package/dist/utils/command-safety/path-analysis.js +6 -0
  424. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  425. package/dist/utils/command-safety/scratch-classify.test.d.ts +2 -0
  426. package/dist/utils/command-safety/scratch-classify.test.d.ts.map +1 -0
  427. package/dist/utils/command-safety/scratch-classify.test.js +22 -0
  428. package/dist/utils/command-safety/scratch-classify.test.js.map +1 -0
  429. package/dist/utils/command-safety/scratch-tally.test.d.ts +2 -0
  430. package/dist/utils/command-safety/scratch-tally.test.d.ts.map +1 -0
  431. package/dist/utils/command-safety/scratch-tally.test.js +68 -0
  432. package/dist/utils/command-safety/scratch-tally.test.js.map +1 -0
  433. package/dist/utils/command-safety.evaluator-false-positives.test.d.ts +2 -0
  434. package/dist/utils/command-safety.evaluator-false-positives.test.d.ts.map +1 -0
  435. package/dist/utils/command-safety.evaluator-false-positives.test.js +72 -0
  436. package/dist/utils/command-safety.evaluator-false-positives.test.js.map +1 -0
  437. package/dist/utils/header-sanitizer.d.ts +2 -0
  438. package/dist/utils/header-sanitizer.d.ts.map +1 -0
  439. package/dist/utils/header-sanitizer.js +38 -0
  440. package/dist/utils/header-sanitizer.js.map +1 -0
  441. package/dist/utils/header-sanitizer.test.d.ts +2 -0
  442. package/dist/utils/header-sanitizer.test.d.ts.map +1 -0
  443. package/dist/utils/header-sanitizer.test.js +56 -0
  444. package/dist/utils/header-sanitizer.test.js.map +1 -0
  445. package/dist/utils/home-directory-start-guard.d.ts +10 -0
  446. package/dist/utils/home-directory-start-guard.d.ts.map +1 -0
  447. package/dist/utils/home-directory-start-guard.js +20 -0
  448. package/dist/utils/home-directory-start-guard.js.map +1 -0
  449. package/dist/utils/home-directory-start-guard.test.d.ts +2 -0
  450. package/dist/utils/home-directory-start-guard.test.d.ts.map +1 -0
  451. package/dist/utils/home-directory-start-guard.test.js +40 -0
  452. package/dist/utils/home-directory-start-guard.test.js.map +1 -0
  453. package/dist/utils/inject-warning-into-tool-output.d.ts +2 -0
  454. package/dist/utils/inject-warning-into-tool-output.d.ts.map +1 -0
  455. package/dist/utils/inject-warning-into-tool-output.js +66 -0
  456. package/dist/utils/inject-warning-into-tool-output.js.map +1 -0
  457. package/dist/utils/provider-traffic-extractor.d.ts +1 -0
  458. package/dist/utils/provider-traffic-extractor.d.ts.map +1 -1
  459. package/dist/utils/provider-traffic-extractor.js +1 -0
  460. package/dist/utils/provider-traffic-extractor.js.map +1 -1
  461. package/dist/utils/provider-traffic-extractor.test.js +2 -0
  462. package/dist/utils/provider-traffic-extractor.test.js.map +1 -1
  463. package/dist/utils/token-usage.d.ts +3 -1
  464. package/dist/utils/token-usage.d.ts.map +1 -1
  465. package/dist/utils/token-usage.js +7 -2
  466. package/dist/utils/token-usage.js.map +1 -1
  467. package/dist/utils/token-usage.test.js +15 -0
  468. package/dist/utils/token-usage.test.js.map +1 -1
  469. package/package.json +1 -1
@@ -1,72 +1,128 @@
1
1
  import path from 'node:path';
2
2
  import { promises as fs } from 'node:fs';
3
- import fg from 'fast-glob';
4
3
  import { default as createIgnore } from 'ignore';
5
4
  const workspaceRoot = process.cwd();
6
5
  const DEFAULT_IGNORES = ['.git/**'];
7
- const GITIGNORE_PATH = path.join(workspaceRoot, '.gitignore');
6
+ const GITIGNORE_NAME = '.gitignore';
8
7
  const MAX_SCAN_DEPTH = 25;
8
+ export const WORKSPACE_PATH_COMPLETION_ENTRY_LIMIT = 10_000;
9
9
  let cachedEntries = null;
10
10
  let lastLoadedAt = null;
11
- let ignorePromise = null;
11
+ let lastLoadTruncated = false;
12
+ let lastLoadTruncatedByTotalLimit = false;
12
13
  const normalizePath = (entryPath) => entryPath.replaceAll(path.sep, '/');
13
- const sortEntries = (entries) => entries.slice().sort((a, b) => {
14
- if (a.type === b.type) {
15
- return a.path.localeCompare(b.path);
14
+ // Resolve the target type of a symlink without traversing it. Symlinks are
15
+ // listed in completion results (matching the previous fast-glob behavior) but
16
+ // never descended into, to avoid traversal cycles.
17
+ const resolveSymlinkType = async (absolutePath) => {
18
+ try {
19
+ const stats = await fs.stat(absolutePath);
20
+ return stats.isDirectory() ? 'directory' : 'file';
16
21
  }
17
- return a.type === 'directory' ? -1 : 1;
22
+ catch {
23
+ // Broken symlink (dangling target): treat as a file so it remains listable.
24
+ return 'file';
25
+ }
26
+ };
27
+ const createIgnoreMatcher = async (cwd) => {
28
+ const matcher = createIgnore();
29
+ matcher.add(DEFAULT_IGNORES);
30
+ const gitignorePath = path.join(cwd, GITIGNORE_NAME);
31
+ try {
32
+ const gitignoreContents = await fs.readFile(gitignorePath, 'utf8');
33
+ matcher.add(gitignoreContents);
34
+ }
35
+ catch (error) {
36
+ if (error.code !== 'ENOENT') {
37
+ // Avoid importing the deprecated loggingService singleton here.
38
+ // This is a non-critical warning; console output is sufficient.
39
+ console.warn('[file-service] Failed to read .gitignore', {
40
+ error: error instanceof Error ? error.message : String(error),
41
+ path: gitignorePath,
42
+ });
43
+ }
44
+ }
45
+ return matcher;
46
+ };
47
+ const sortDirEntries = (entries) => entries.slice().sort((a, b) => {
48
+ if (a.isDirectory() && !b.isDirectory())
49
+ return -1;
50
+ if (!a.isDirectory() && b.isDirectory())
51
+ return 1;
52
+ return a.name.localeCompare(b.name);
18
53
  });
19
- const ensureIgnoreMatcher = async () => {
20
- if (!ignorePromise) {
21
- ignorePromise = (async () => {
22
- const matcher = createIgnore();
23
- matcher.add(DEFAULT_IGNORES);
24
- try {
25
- const gitignoreContents = await fs.readFile(GITIGNORE_PATH, 'utf8');
26
- matcher.add(gitignoreContents);
54
+ const loadDirectoryEntries = async (cwd, options = {}) => {
55
+ const matcher = await createIgnoreMatcher(cwd);
56
+ const maxDepth = options.maxDepth ?? MAX_SCAN_DEPTH;
57
+ const maxTotalEntries = options.maxTotalEntries ?? WORKSPACE_PATH_COMPLETION_ENTRY_LIMIT;
58
+ const includeFiles = options.includeFiles ?? true;
59
+ const queue = [{ dir: cwd, relativePath: '', depth: 0 }];
60
+ const entries = [];
61
+ let truncatedByTotalLimit = false;
62
+ // Children are only enqueued while current.depth < maxDepth, so a queued node
63
+ // can never exceed maxDepth; the only reason to stop draining the queue is the
64
+ // total-entry cap.
65
+ for (let index = 0; index < queue.length; index++) {
66
+ const current = queue[index];
67
+ if (entries.length >= maxTotalEntries) {
68
+ truncatedByTotalLimit = true;
69
+ continue;
70
+ }
71
+ let dirEntries;
72
+ try {
73
+ dirEntries = await fs.readdir(current.dir, { withFileTypes: true });
74
+ }
75
+ catch {
76
+ continue;
77
+ }
78
+ const filtered = sortDirEntries(dirEntries).filter((entry) => {
79
+ if (entry.name.length === 0)
80
+ return false;
81
+ if (!includeFiles && !entry.isDirectory())
82
+ return false;
83
+ const relativePath = current.relativePath ? `${current.relativePath}/${entry.name}` : entry.name;
84
+ const ignoredPath = entry.isDirectory() ? `${relativePath}/` : relativePath;
85
+ return !matcher.ignores(ignoredPath);
86
+ });
87
+ for (let entryIndex = 0; entryIndex < filtered.length; entryIndex++) {
88
+ if (entries.length >= maxTotalEntries) {
89
+ truncatedByTotalLimit = true;
90
+ break;
27
91
  }
28
- catch (error) {
29
- if (error.code !== 'ENOENT') {
30
- // Avoid importing the deprecated loggingService singleton here.
31
- // This is a non-critical warning; console output is sufficient.
32
- console.warn('[file-service] Failed to read .gitignore', {
33
- error: error instanceof Error ? error.message : String(error),
34
- path: GITIGNORE_PATH,
35
- });
36
- }
92
+ const entry = filtered[entryIndex];
93
+ const relativePath = current.relativePath ? `${current.relativePath}/${entry.name}` : entry.name;
94
+ const normalizedPath = normalizePath(relativePath);
95
+ const absolutePath = path.join(current.dir, entry.name);
96
+ const type = entry.isSymbolicLink()
97
+ ? await resolveSymlinkType(absolutePath)
98
+ : entry.isDirectory()
99
+ ? 'directory'
100
+ : 'file';
101
+ entries.push({ path: normalizedPath, type });
102
+ // Only descend into real directories (entry.isDirectory() is false for
103
+ // symlinks), so symlinked directories are listed but never traversed.
104
+ if (entry.isDirectory() && current.depth < maxDepth) {
105
+ queue.push({
106
+ dir: absolutePath,
107
+ relativePath: normalizedPath,
108
+ depth: current.depth + 1,
109
+ });
37
110
  }
38
- return matcher;
39
- })();
111
+ }
40
112
  }
41
- return ignorePromise;
113
+ return {
114
+ entries,
115
+ truncated: truncatedByTotalLimit,
116
+ truncatedByTotalLimit,
117
+ };
42
118
  };
43
119
  const loadWorkspaceEntries = async () => {
44
- const matcher = await ensureIgnoreMatcher();
45
- const results = (await fg('**/*', {
46
- cwd: workspaceRoot,
47
- dot: true,
48
- ignore: DEFAULT_IGNORES,
49
- onlyFiles: false,
50
- unique: true,
51
- objectMode: true,
52
- followSymbolicLinks: false,
53
- suppressErrors: true,
54
- deep: MAX_SCAN_DEPTH,
55
- }));
56
- const entries = results
57
- .filter((entry) => entry.path.length > 0)
58
- .map((entry) => {
59
- const normalized = normalizePath(entry.path);
60
- const isDirectory = entry.dirent?.isDirectory() ?? false;
61
- const entryType = isDirectory ? 'directory' : 'file';
62
- return {
63
- path: normalized,
64
- type: entryType,
65
- };
66
- })
67
- .filter((entry) => !matcher.ignores(entry.type === 'directory' ? `${entry.path}/` : entry.path));
68
- return sortEntries(entries);
120
+ const result = await loadDirectoryEntries(workspaceRoot);
121
+ lastLoadTruncated = result.truncated;
122
+ lastLoadTruncatedByTotalLimit = result.truncatedByTotalLimit;
123
+ return result.entries;
69
124
  };
125
+ export const scanWorkspaceEntries = async (cwd, options = {}) => loadDirectoryEntries(cwd, options);
70
126
  export const getWorkspaceEntries = async () => {
71
127
  if (!cachedEntries) {
72
128
  cachedEntries = await loadWorkspaceEntries();
@@ -82,5 +138,8 @@ export const getWorkspaceRoot = () => workspaceRoot;
82
138
  export const getWorkspaceEntriesMeta = () => ({
83
139
  lastLoadedAt,
84
140
  totalEntries: cachedEntries?.length ?? 0,
141
+ truncated: lastLoadTruncated,
142
+ truncatedByTotalLimit: lastLoadTruncatedByTotalLimit,
143
+ limit: WORKSPACE_PATH_COMPLETION_ENTRY_LIMIT,
85
144
  });
86
145
  //# sourceMappingURL=file-service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-service.js","sourceRoot":"","sources":["../../source/services/file-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-service.js","sourceRoot":"","sources":["../../source/services/file-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=file-service.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-service.test.d.ts","sourceRoot":"","sources":["../../source/services/file-service.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,60 @@
1
+ import test from 'ava';
2
+ import os from 'node:os';
3
+ import path from 'node:path';
4
+ import { promises as fs } from 'node:fs';
5
+ import { scanWorkspaceEntries } from './file-service.js';
6
+ test('scanWorkspaceEntries prioritizes breadth over depth when capped', async (t) => {
7
+ const root = await fs.mkdtemp(path.join(os.tmpdir(), 'term2-file-service-'));
8
+ try {
9
+ await fs.mkdir(path.join(root, 'a', 'nested'), { recursive: true });
10
+ await fs.writeFile(path.join(root, 'a', 'nested', 'deep.txt'), 'deep');
11
+ await fs.writeFile(path.join(root, 'b.txt'), 'flat');
12
+ const result = await scanWorkspaceEntries(root, {
13
+ maxTotalEntries: 2,
14
+ maxDepth: 10,
15
+ });
16
+ t.deepEqual(result.entries.map((entry) => entry.path), ['a', 'b.txt'], 'The scan should keep shallow entries before descending into nested directories');
17
+ t.true(result.truncated);
18
+ t.true(result.truncatedByTotalLimit);
19
+ }
20
+ finally {
21
+ await fs.rm(root, { recursive: true, force: true });
22
+ }
23
+ });
24
+ test('scanWorkspaceEntries lists every entry in a directory, with no per-directory cap', async (t) => {
25
+ const root = await fs.mkdtemp(path.join(os.tmpdir(), 'term2-file-service-'));
26
+ try {
27
+ await fs.writeFile(path.join(root, 'a.txt'), '');
28
+ await fs.writeFile(path.join(root, 'b.txt'), '');
29
+ await fs.writeFile(path.join(root, 'c.txt'), '');
30
+ const result = await scanWorkspaceEntries(root, {
31
+ maxTotalEntries: 5_000,
32
+ maxDepth: 10,
33
+ });
34
+ t.deepEqual(result.entries.map((entry) => entry.path).sort(), ['a.txt', 'b.txt', 'c.txt']);
35
+ t.false(result.truncated);
36
+ t.false(result.truncatedByTotalLimit);
37
+ }
38
+ finally {
39
+ await fs.rm(root, { recursive: true, force: true });
40
+ }
41
+ });
42
+ test('scanWorkspaceEntries lists symlinks without traversing them', async (t) => {
43
+ const root = await fs.mkdtemp(path.join(os.tmpdir(), 'term2-file-service-'));
44
+ try {
45
+ await fs.mkdir(path.join(root, 'real-dir'));
46
+ await fs.writeFile(path.join(root, 'real-dir', 'inner.txt'), '');
47
+ await fs.writeFile(path.join(root, 'target.txt'), '');
48
+ await fs.symlink(path.join(root, 'target.txt'), path.join(root, 'file-link'));
49
+ await fs.symlink(path.join(root, 'real-dir'), path.join(root, 'dir-link'));
50
+ const result = await scanWorkspaceEntries(root, { maxDepth: 10 });
51
+ const byPath = new Map(result.entries.map((entry) => [entry.path, entry.type]));
52
+ t.is(byPath.get('file-link'), 'file', 'a symlink to a file is listed as a file');
53
+ t.is(byPath.get('dir-link'), 'directory', 'a symlink to a directory is listed as a directory');
54
+ t.false(result.entries.some((entry) => entry.path === 'dir-link/inner.txt'), 'symlinked directories must not be traversed');
55
+ }
56
+ finally {
57
+ await fs.rm(root, { recursive: true, force: true });
58
+ }
59
+ });
60
+ //# sourceMappingURL=file-service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-service.test.js","sourceRoot":"","sources":["../../source/services/file-service.test.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- import { type SessionTrafficContext } from './provider-traffic.js';
2
1
  interface LoggingServiceConfig {
3
2
  logDir?: string;
4
3
  logLevel?: string;
@@ -72,8 +71,6 @@ export declare class LoggingService {
72
71
  * Get correlation ID
73
72
  */
74
73
  getCorrelationId(): string | undefined;
75
- runWithTrafficContext<T>(context: SessionTrafficContext, fn: () => T): T;
76
- getTrafficContext(): SessionTrafficContext | null;
77
74
  /**
78
75
  * Remove provider and evaluator traffic logs older than maxFiles (default 30d)
79
76
  */
@@ -1 +1 @@
1
- {"version":3,"file":"logging-service.d.ts","sourceRoot":"","sources":["../../source/services/logging-service.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAgC,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAmBjG,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;;IAEzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,qBAAqB,CAAU;IACvC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAA+B;gBAE/C,MAAM,GAAE,oBAAyB;IAmG7C;;OAEG;IACH,WAAW,IAAI,MAAM;IAQrB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI9C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAuBhC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIxD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI3D;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIxD;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC,qBAAqB,CAAC,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC;IAIxE,iBAAiB,IAAI,qBAAqB,GAAG,IAAI;IAIjD;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,GAAG;IAuEX,OAAO,CAAC,4BAA4B;IAgFpC,OAAO,CAAC,gBAAgB;CAMzB;AA8BD,eAAO,MAAM,cAAc,gBAyBzB,CAAC"}
1
+ {"version":3,"file":"logging-service.d.ts","sourceRoot":"","sources":["../../source/services/logging-service.ts"],"names":[],"mappings":"AAkCA,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;GAUG;AACH,qBAAa,cAAc;;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,YAAY,CAAU;IAC9B,OAAO,CAAC,qBAAqB,CAAU;IACvC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,mBAAmB,CAAS;IACpC,OAAO,CAAC,iBAAiB,CAA0B;IACnD,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,oBAAoB,CAA+B;gBAE/C,MAAM,GAAE,oBAAyB;IAmG7C;;OAEG;IACH,WAAW,IAAI,MAAM;IAQrB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAI9C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAuBhC;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIxD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIvD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAI3D;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIxD;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAIlC;;OAEG;IACH,kBAAkB,IAAI,IAAI;IAI1B;;OAEG;IACH,gBAAgB,IAAI,MAAM,GAAG,SAAS;IAItC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAK9B,OAAO,CAAC,iBAAiB;IA8CzB,OAAO,CAAC,GAAG;IAuEX,OAAO,CAAC,4BAA4B;IA8FpC,OAAO,CAAC,gBAAgB;CAMzB;AA8BD,eAAO,MAAM,cAAc,gBAyBzB,CAAC"}
@@ -1,7 +1,6 @@
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';
5
4
  import envPaths from 'env-paths';
6
5
  import DailyRotateFile from 'winston-daily-rotate-file';
7
6
  import { RuntimeLogSchema, buildRuntimeLogRecord, parseCategoryFilter, shouldIncludeVerbosePayload, shouldLogForCategory, shouldSampleLog, } from './logging-contract.js';
@@ -33,7 +32,6 @@ const parseBooleanEnv = (value) => {
33
32
  * - Optional console output for development
34
33
  */
35
34
  export class LoggingService {
36
- static #trafficContextStorage = new AsyncLocalStorage();
37
35
  logger;
38
36
  correlationId;
39
37
  debugLogging;
@@ -207,12 +205,6 @@ export class LoggingService {
207
205
  getCorrelationId() {
208
206
  return this.correlationId;
209
207
  }
210
- runWithTrafficContext(context, fn) {
211
- return LoggingService.#trafficContextStorage.run(context, fn);
212
- }
213
- getTrafficContext() {
214
- return LoggingService.#trafficContextStorage.getStore() ?? null;
215
- }
216
208
  /**
217
209
  * Remove provider and evaluator traffic logs older than maxFiles (default 30d)
218
210
  */
@@ -336,22 +328,30 @@ export class LoggingService {
336
328
  : new Date().toISOString();
337
329
  const provider = typeof runtimeRecord.provider === 'string' ? runtimeRecord.provider : 'unknown';
338
330
  const model = typeof runtimeRecord.model === 'string' ? runtimeRecord.model : 'unknown';
331
+ const modelClass = typeof runtimeRecord.modelClass === 'string' ? runtimeRecord.modelClass : undefined;
332
+ const modelWrapperClass = typeof runtimeRecord.modelWrapperClass === 'string' ? runtimeRecord.modelWrapperClass : undefined;
339
333
  const mode = typeof runtimeRecord.mode === 'string' ? runtimeRecord.mode : 'unknown';
340
334
  const firstUserMessagePreview = typeof runtimeRecord.firstUserMessagePreview === 'string' ? runtimeRecord.firstUserMessagePreview : undefined;
341
335
  try {
342
336
  if (eventType === 'provider.request.started' || eventType === 'evaluator.request.started') {
343
337
  const payload = runtimeRecord.payload;
338
+ const headers = runtimeRecord.headers;
344
339
  if (payload && typeof payload === 'object' && !Array.isArray(payload)) {
345
340
  this.providerTrafficStore.recordRequestStart({
346
341
  requestId,
347
342
  timestamp,
348
343
  provider,
349
344
  model,
345
+ ...(modelClass ? { modelClass } : {}),
346
+ ...(modelWrapperClass ? { modelWrapperClass } : {}),
350
347
  sessionId,
351
348
  sessionStartedAt,
352
349
  mode,
353
350
  firstUserMessagePreview,
354
351
  sentBody: payload,
352
+ headers: headers && typeof headers === 'object' && !Array.isArray(headers)
353
+ ? headers
354
+ : undefined,
355
355
  evaluator: eventType === 'evaluator.request.started',
356
356
  });
357
357
  }
@@ -364,6 +364,8 @@ export class LoggingService {
364
364
  timestamp,
365
365
  provider,
366
366
  model,
367
+ ...(modelClass ? { modelClass } : {}),
368
+ ...(modelWrapperClass ? { modelWrapperClass } : {}),
367
369
  sessionId,
368
370
  sessionStartedAt,
369
371
  mode,
@@ -378,6 +380,8 @@ export class LoggingService {
378
380
  timestamp,
379
381
  provider,
380
382
  model,
383
+ ...(modelClass ? { modelClass } : {}),
384
+ ...(modelWrapperClass ? { modelWrapperClass } : {}),
381
385
  sessionId,
382
386
  sessionStartedAt,
383
387
  mode,
@@ -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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"}
@@ -1,9 +1,8 @@
1
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.
2
+ * Canonical mode-change notices injected into the next user message when the
3
+ * user toggles plan mode at runtime. Prefixing the next real turn avoids a
4
+ * synthetic standalone history item while still making the mode change visible
5
+ * to the model and persistent in the conversation transcript.
7
6
  */
8
7
  export declare const PLAN_MODE_ENTER_NOTICE: string;
9
8
  export declare const PLAN_MODE_EXIT_NOTICE: string;
@@ -1 +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"}
1
+ {"version":3,"file":"mode-notices.d.ts","sourceRoot":"","sources":["../../source/services/mode-notices.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,QAIZ,CAAC;AAExB,eAAO,MAAM,qBAAqB,QAGrB,CAAC;AAEd,eAAO,MAAM,cAAc,GAAI,UAAU,OAAO,KAAG,MACQ,CAAC"}
@@ -1,9 +1,8 @@
1
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.
2
+ * Canonical mode-change notices injected into the next user message when the
3
+ * user toggles plan mode at runtime. Prefixing the next real turn avoids a
4
+ * synthetic standalone history item while still making the mode change visible
5
+ * to the model and persistent in the conversation transcript.
7
6
  */
8
7
  export const PLAN_MODE_ENTER_NOTICE = 'Plan Mode is now ON: the workspace is read-only. Do not create or modify files, run ' +
9
8
  'state-changing commands, or spawn write-capable subagents. Investigate with read-only ' +
@@ -1 +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
+ {"version":3,"file":"mode-notices.js","sourceRoot":"","sources":["../../source/services/mode-notices.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;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,6 +1,25 @@
1
1
  import { type TtyWriter } from '../utils/tty-osc.js';
2
+ /**
3
+ * Best-effort terminal notification support.
4
+ *
5
+ * OSC 777 format:
6
+ * ESC ] 777 ; notify ; <title> ; <message> BEL
7
+ *
8
+ * OSC 9 fallback:
9
+ * ESC ] 9 ; <message> BEL
10
+ *
11
+ * Bell fallback:
12
+ * BEL
13
+ *
14
+ * Notes:
15
+ * - kitty is intentionally excluded from OSC 777. It uses OSC 99 and legacy OSC 9.
16
+ * - Bell is not a real desktop notification protocol; it is only an attention signal.
17
+ * - Detection may fail inside tmux/screen/ssh because TERM/TERM_PROGRAM can be rewritten.
18
+ */
19
+ type NotificationMethod = 'osc777' | 'osc9' | 'bell' | undefined;
2
20
  export interface NotificationOptions {
3
21
  env?: NodeJS.ProcessEnv;
22
+ stream?: NodeJS.WriteStream;
4
23
  getTtyWriter?: () => TtyWriter | null;
5
24
  logger?: {
6
25
  info: (msg: string, meta?: any) => void;
@@ -8,15 +27,16 @@ export interface NotificationOptions {
8
27
  warn: (msg: string, meta?: any) => void;
9
28
  };
10
29
  }
11
- /**
12
- * Build the raw OSC escape sequence for a desktop notification.
13
- * Uses OSC 777 (title + message) on capable terminals, OSC 9 otherwise.
14
- * Does NOT apply multiplexer wrapping — use writeOscSequence for that.
15
- */
16
- export declare function buildNotificationSequence(title: string, message: string, env: NodeJS.ProcessEnv): string;
17
- /**
18
- * Send a desktop notification via OSC escape sequence.
19
- * Silently does nothing if no TTY writer is available.
20
- */
21
- export declare function sendNotification(title: string, message: string, opts?: NotificationOptions): void;
30
+ declare function supportsOsc777(env?: NodeJS.ProcessEnv): boolean;
31
+ declare function canUseBell(env?: NodeJS.ProcessEnv, stream?: NodeJS.WriteStream): boolean;
32
+ declare function supportsOsc9(env?: NodeJS.ProcessEnv): boolean;
33
+ declare function getNotificationMethod(env?: NodeJS.ProcessEnv, stream?: NodeJS.WriteStream): NotificationMethod;
34
+ declare function buildNotificationSequence(title: string, message: string, env?: NodeJS.ProcessEnv, stream?: NodeJS.WriteStream): string;
35
+ declare function notify(title: string, message: string, options?: {
36
+ env?: NodeJS.ProcessEnv;
37
+ stream?: NodeJS.WriteStream;
38
+ }): boolean;
39
+ declare function sendNotification(title: string, message: string, opts?: NotificationOptions): boolean;
40
+ export { notify, supportsOsc777, supportsOsc9, canUseBell, getNotificationMethod, buildNotificationSequence, sendNotification, };
41
+ export type { NotificationMethod };
22
42
  //# sourceMappingURL=notification-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification-service.d.ts","sourceRoot":"","sources":["../../source/services/notification-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErF,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QACxC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QACzC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;KACzC,CAAC;CACH;AA+BD;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CASxG;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,mBAAwB,GAAG,IAAI,CAwBrG"}
1
+ {"version":3,"file":"notification-service.d.ts","sourceRoot":"","sources":["../../source/services/notification-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyD,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAE5G;;;;;;;;;;;;;;;;GAgBG;AAEH,KAAK,kBAAkB,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;AAcjE,MAAM,WAAW,mBAAmB;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,SAAS,GAAG,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QACxC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;QACzC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;KACzC,CAAC;CACH;AAED,iBAAS,cAAc,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAerE;AAED,iBAAS,UAAU,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,EAAE,MAAM,GAAE,MAAM,CAAC,WAA4B,GAAG,OAAO,CAE9G;AAED,iBAAS,YAAY,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAenE;AAED,iBAAS,qBAAqB,CAC5B,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,MAAM,GAAE,MAAM,CAAC,WAA4B,GAC1C,kBAAkB,CAMpB;AAMD,iBAAS,yBAAyB,CAChC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,MAAM,CAAC,UAAwB,EACpC,MAAM,GAAE,MAAM,CAAC,WAA4B,GAC1C,MAAM,CAgBR;AAED,iBAAS,MAAM,CACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC;CACxB,GACL,OAAO,CAsBT;AAED,iBAAS,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CA+BjG;AAED,OAAO,EACL,MAAM,EACN,cAAc,EACd,YAAY,EACZ,UAAU,EACV,qBAAqB,EACrB,yBAAyB,EACzB,gBAAgB,GACjB,CAAC;AAEF,YAAY,EAAE,kBAAkB,EAAE,CAAC"}