@qduc/term2 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (546) hide show
  1. package/dist/agent.d.ts +9 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +139 -68
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agent.test.js +179 -16
  6. package/dist/agent.test.js.map +1 -1
  7. package/dist/app.d.ts +16 -3
  8. package/dist/app.d.ts.map +1 -1
  9. package/dist/app.js +186 -23
  10. package/dist/app.js.map +1 -1
  11. package/dist/app.large-uncached-warning.test.d.ts +2 -0
  12. package/dist/app.large-uncached-warning.test.d.ts.map +1 -0
  13. package/dist/app.large-uncached-warning.test.js +15 -0
  14. package/dist/app.large-uncached-warning.test.js.map +1 -0
  15. package/dist/app.startup-banner.test.js +3 -19
  16. package/dist/app.startup-banner.test.js.map +1 -1
  17. package/dist/cli.js +170 -71
  18. package/dist/cli.js.map +1 -1
  19. package/dist/components/Banner.d.ts.map +1 -1
  20. package/dist/components/Banner.js +35 -17
  21. package/dist/components/Banner.js.map +1 -1
  22. package/dist/components/BottomArea.d.ts +7 -1
  23. package/dist/components/BottomArea.d.ts.map +1 -1
  24. package/dist/components/BottomArea.js +8 -6
  25. package/dist/components/BottomArea.js.map +1 -1
  26. package/dist/components/BottomArea.test.js +14 -1
  27. package/dist/components/BottomArea.test.js.map +1 -1
  28. package/dist/components/CommandMessage.d.ts.map +1 -1
  29. package/dist/components/CommandMessage.js +31 -1
  30. package/dist/components/CommandMessage.js.map +1 -1
  31. package/dist/components/CommandMessage.test.js +150 -31
  32. package/dist/components/CommandMessage.test.js.map +1 -1
  33. package/dist/components/Common/MenuContainer.d.ts +20 -0
  34. package/dist/components/Common/MenuContainer.d.ts.map +1 -0
  35. package/dist/components/Common/MenuContainer.js +52 -0
  36. package/dist/components/Common/MenuContainer.js.map +1 -0
  37. package/dist/components/Common/ScrollableTabBar.d.ts +26 -0
  38. package/dist/components/Common/ScrollableTabBar.d.ts.map +1 -0
  39. package/dist/components/Common/ScrollableTabBar.js +26 -0
  40. package/dist/components/Common/ScrollableTabBar.js.map +1 -0
  41. package/dist/components/Common/compute-visible-tabs.d.ts +16 -0
  42. package/dist/components/Common/compute-visible-tabs.d.ts.map +1 -0
  43. package/dist/components/Common/compute-visible-tabs.js +53 -0
  44. package/dist/components/Common/compute-visible-tabs.js.map +1 -0
  45. package/dist/components/Common/compute-visible-tabs.test.d.ts +2 -0
  46. package/dist/components/Common/compute-visible-tabs.test.d.ts.map +1 -0
  47. package/dist/components/Common/compute-visible-tabs.test.js +97 -0
  48. package/dist/components/Common/compute-visible-tabs.test.js.map +1 -0
  49. package/dist/components/HandoffConfirmationPrompt.d.ts +9 -0
  50. package/dist/components/HandoffConfirmationPrompt.d.ts.map +1 -0
  51. package/dist/components/HandoffConfirmationPrompt.js +38 -0
  52. package/dist/components/HandoffConfirmationPrompt.js.map +1 -0
  53. package/dist/components/HandoffConfirmationPrompt.test.d.ts +2 -0
  54. package/dist/components/HandoffConfirmationPrompt.test.d.ts.map +1 -0
  55. package/dist/components/HandoffConfirmationPrompt.test.js +12 -0
  56. package/dist/components/HandoffConfirmationPrompt.test.js.map +1 -0
  57. package/dist/components/Input/PopupManager.d.ts +5 -1
  58. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  59. package/dist/components/Input/PopupManager.js +2 -2
  60. package/dist/components/Input/PopupManager.js.map +1 -1
  61. package/dist/components/Input/popup-key-navigation.js +2 -2
  62. package/dist/components/Input/popup-key-navigation.js.map +1 -1
  63. package/dist/components/Input/popup-key-navigation.test.js +5 -3
  64. package/dist/components/Input/popup-key-navigation.test.js.map +1 -1
  65. package/dist/components/Input/popup-props.d.ts.map +1 -1
  66. package/dist/components/Input/popup-props.js +4 -0
  67. package/dist/components/Input/popup-props.js.map +1 -1
  68. package/dist/components/Input/popup-props.test.d.ts +2 -0
  69. package/dist/components/Input/popup-props.test.d.ts.map +1 -0
  70. package/dist/components/Input/popup-props.test.js +70 -0
  71. package/dist/components/Input/popup-props.test.js.map +1 -0
  72. package/dist/components/InputBox.d.ts +0 -1
  73. package/dist/components/InputBox.d.ts.map +1 -1
  74. package/dist/components/InputBox.js +66 -14
  75. package/dist/components/InputBox.js.map +1 -1
  76. package/dist/components/InputBox.test.js +192 -12
  77. package/dist/components/InputBox.test.js.map +1 -1
  78. package/dist/components/MessageList.d.ts +1 -0
  79. package/dist/components/MessageList.d.ts.map +1 -1
  80. package/dist/components/MessageList.js.map +1 -1
  81. package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
  82. package/dist/components/ModelSelectionMenu.debug.test.d.ts +2 -0
  83. package/dist/components/ModelSelectionMenu.debug.test.d.ts.map +1 -0
  84. package/dist/components/ModelSelectionMenu.debug.test.js.map +1 -0
  85. package/dist/components/ModelSelectionMenu.js +29 -125
  86. package/dist/components/ModelSelectionMenu.js.map +1 -1
  87. package/dist/components/ModelSelectionMenu.test.js +9 -5
  88. package/dist/components/ModelSelectionMenu.test.js.map +1 -1
  89. package/dist/components/PathSelectionMenu.d.ts.map +1 -1
  90. package/dist/components/PathSelectionMenu.js +15 -55
  91. package/dist/components/PathSelectionMenu.js.map +1 -1
  92. package/dist/components/SettingsSelectionMenu.d.ts +4 -1
  93. package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
  94. package/dist/components/SettingsSelectionMenu.js +48 -104
  95. package/dist/components/SettingsSelectionMenu.js.map +1 -1
  96. package/dist/components/SettingsSelectionMenu.scroll.test.js +140 -0
  97. package/dist/components/SettingsSelectionMenu.scroll.test.js.map +1 -1
  98. package/dist/components/SettingsSelectionMenu.test.js +38 -5
  99. package/dist/components/SettingsSelectionMenu.test.js.map +1 -1
  100. package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
  101. package/dist/components/SettingsValueSelectionMenu.js +24 -51
  102. package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
  103. package/dist/components/SlashCommandMenu.d.ts +1 -0
  104. package/dist/components/SlashCommandMenu.d.ts.map +1 -1
  105. package/dist/components/SlashCommandMenu.js +11 -14
  106. package/dist/components/SlashCommandMenu.js.map +1 -1
  107. package/dist/components/StatusBar.d.ts +2 -0
  108. package/dist/components/StatusBar.d.ts.map +1 -1
  109. package/dist/components/StatusBar.js +35 -2
  110. package/dist/components/StatusBar.js.map +1 -1
  111. package/dist/components/StatusBar.test.js +32 -0
  112. package/dist/components/StatusBar.test.js.map +1 -1
  113. package/dist/components/UndoSelectionMenu.d.ts.map +1 -1
  114. package/dist/components/UndoSelectionMenu.js +6 -33
  115. package/dist/components/UndoSelectionMenu.js.map +1 -1
  116. package/dist/context/InputContext.stability.test.js +9 -7
  117. package/dist/context/InputContext.stability.test.js.map +1 -1
  118. package/dist/env-setup.js +1 -0
  119. package/dist/env-setup.js.map +1 -1
  120. package/dist/hooks/use-app-commands.d.ts +22 -2
  121. package/dist/hooks/use-app-commands.d.ts.map +1 -1
  122. package/dist/hooks/use-app-commands.js +43 -3
  123. package/dist/hooks/use-app-commands.js.map +1 -1
  124. package/dist/hooks/use-app-commands.test.js +135 -1
  125. package/dist/hooks/use-app-commands.test.js.map +1 -1
  126. package/dist/hooks/use-conversation.clear.test.d.ts +2 -0
  127. package/dist/hooks/use-conversation.clear.test.d.ts.map +1 -0
  128. package/dist/hooks/use-conversation.clear.test.js +54 -0
  129. package/dist/hooks/use-conversation.clear.test.js.map +1 -0
  130. package/dist/hooks/use-conversation.d.ts +25 -2
  131. package/dist/hooks/use-conversation.d.ts.map +1 -1
  132. package/dist/hooks/use-conversation.js +90 -12
  133. package/dist/hooks/use-conversation.js.map +1 -1
  134. package/dist/hooks/use-escape-key.d.ts +8 -1
  135. package/dist/hooks/use-escape-key.d.ts.map +1 -1
  136. package/dist/hooks/use-escape-key.js +15 -4
  137. package/dist/hooks/use-escape-key.js.map +1 -1
  138. package/dist/hooks/use-escape-key.test.js +135 -28
  139. package/dist/hooks/use-escape-key.test.js.map +1 -1
  140. package/dist/hooks/use-input-history.test.js +14 -8
  141. package/dist/hooks/use-input-history.test.js.map +1 -1
  142. package/dist/hooks/use-mode-handlers.d.ts +12 -1
  143. package/dist/hooks/use-mode-handlers.d.ts.map +1 -1
  144. package/dist/hooks/use-mode-handlers.js +31 -1
  145. package/dist/hooks/use-mode-handlers.js.map +1 -1
  146. package/dist/hooks/use-model-selection.d.ts +6 -1
  147. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  148. package/dist/hooks/use-model-selection.js +50 -8
  149. package/dist/hooks/use-model-selection.js.map +1 -1
  150. package/dist/hooks/use-model-selection.test.js +306 -50
  151. package/dist/hooks/use-model-selection.test.js.map +1 -1
  152. package/dist/hooks/use-path-completion.d.ts +4 -0
  153. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  154. package/dist/hooks/use-path-completion.js +23 -17
  155. package/dist/hooks/use-path-completion.js.map +1 -1
  156. package/dist/hooks/use-runtime-settings.d.ts.map +1 -1
  157. package/dist/hooks/use-runtime-settings.js +7 -2
  158. package/dist/hooks/use-runtime-settings.js.map +1 -1
  159. package/dist/hooks/use-runtime-settings.test.d.ts +2 -0
  160. package/dist/hooks/use-runtime-settings.test.d.ts.map +1 -0
  161. package/dist/hooks/use-runtime-settings.test.js +45 -0
  162. package/dist/hooks/use-runtime-settings.test.js.map +1 -0
  163. package/dist/hooks/use-selection.d.ts +6 -2
  164. package/dist/hooks/use-selection.d.ts.map +1 -1
  165. package/dist/hooks/use-selection.js +53 -16
  166. package/dist/hooks/use-selection.js.map +1 -1
  167. package/dist/hooks/use-selection.test.d.ts +2 -0
  168. package/dist/hooks/use-selection.test.d.ts.map +1 -0
  169. package/dist/hooks/use-selection.test.js +132 -0
  170. package/dist/hooks/use-selection.test.js.map +1 -0
  171. package/dist/hooks/use-settings-completion.d.ts +19 -0
  172. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  173. package/dist/hooks/use-settings-completion.js +106 -18
  174. package/dist/hooks/use-settings-completion.js.map +1 -1
  175. package/dist/hooks/use-settings-completion.scroll.test.js +68 -29
  176. package/dist/hooks/use-settings-completion.scroll.test.js.map +1 -1
  177. package/dist/hooks/use-settings-completion.test.js +36 -1
  178. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  179. package/dist/hooks/use-settings-value-completion.d.ts +7 -1
  180. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  181. package/dist/hooks/use-settings-value-completion.js +18 -7
  182. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  183. package/dist/hooks/use-slash-commands.d.ts +5 -0
  184. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  185. package/dist/hooks/use-slash-commands.js +22 -2
  186. package/dist/hooks/use-slash-commands.js.map +1 -1
  187. package/dist/hooks/use-trigger-detection.test.js +9 -6
  188. package/dist/hooks/use-trigger-detection.test.js.map +1 -1
  189. package/dist/hooks/use-undo-selection.d.ts +4 -0
  190. package/dist/hooks/use-undo-selection.d.ts.map +1 -1
  191. package/dist/hooks/use-undo-selection.js +18 -1
  192. package/dist/hooks/use-undo-selection.js.map +1 -1
  193. package/dist/inspect_zod.d.ts +2 -0
  194. package/dist/inspect_zod.d.ts.map +1 -0
  195. package/dist/inspect_zod.js +16 -0
  196. package/dist/inspect_zod.js.map +1 -0
  197. package/dist/lib/openai-agent-client.chat.test.js +40 -0
  198. package/dist/lib/openai-agent-client.chat.test.js.map +1 -1
  199. package/dist/lib/openai-agent-client.d.ts +18 -4
  200. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  201. package/dist/lib/openai-agent-client.js +228 -32
  202. package/dist/lib/openai-agent-client.js.map +1 -1
  203. package/dist/lib/openai-agent-client.public-methods.test.js +193 -0
  204. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  205. package/dist/lib/openai-agent-client.test.js +71 -1
  206. package/dist/lib/openai-agent-client.test.js.map +1 -1
  207. package/dist/lib/retry-executor.js +45 -7
  208. package/dist/lib/retry-executor.js.map +1 -1
  209. package/dist/lib/retry-executor.test.js +63 -0
  210. package/dist/lib/retry-executor.test.js.map +1 -1
  211. package/dist/lib/tool-invoke.d.ts +3 -2
  212. package/dist/lib/tool-invoke.d.ts.map +1 -1
  213. package/dist/lib/tool-invoke.js +213 -10
  214. package/dist/lib/tool-invoke.js.map +1 -1
  215. package/dist/lib/tool-invoke.test.js +103 -0
  216. package/dist/lib/tool-invoke.test.js.map +1 -1
  217. package/dist/non-interactive.d.ts +1 -0
  218. package/dist/non-interactive.d.ts.map +1 -1
  219. package/dist/non-interactive.js +3 -1
  220. package/dist/non-interactive.js.map +1 -1
  221. package/dist/non-interactive.test.js +8 -1
  222. package/dist/non-interactive.test.js.map +1 -1
  223. package/dist/prompts/codex.md +105 -97
  224. package/dist/prompts/fragments/gpt-5.3-codex.md +7 -0
  225. package/dist/prompts/fragments/gpt-5.4-small.md +6 -0
  226. package/dist/prompts/fragments/gpt-5.4.md +7 -0
  227. package/dist/prompts/fragments/gpt-5.5.md +7 -0
  228. package/dist/prompts/gpt-5-modern.md +96 -54
  229. package/dist/prompts/plan-mode-info.md +14 -3
  230. package/dist/prompts/prompt-constructor.d.ts +19 -0
  231. package/dist/prompts/prompt-constructor.d.ts.map +1 -0
  232. package/dist/prompts/prompt-constructor.js +53 -0
  233. package/dist/prompts/prompt-constructor.js.map +1 -0
  234. package/dist/prompts/prompt-constructor.test.d.ts +2 -0
  235. package/dist/prompts/prompt-constructor.test.d.ts.map +1 -0
  236. package/dist/prompts/prompt-constructor.test.js +99 -0
  237. package/dist/prompts/prompt-constructor.test.js.map +1 -0
  238. package/dist/prompts/prompt-constructor.test.ts +112 -0
  239. package/dist/prompts/prompt-constructor.ts +91 -0
  240. package/dist/prompts/prompt-profiles.d.ts +17 -0
  241. package/dist/prompts/prompt-profiles.d.ts.map +1 -0
  242. package/dist/prompts/prompt-profiles.js +61 -0
  243. package/dist/prompts/prompt-profiles.js.map +1 -0
  244. package/dist/prompts/prompt-profiles.ts +77 -0
  245. package/dist/prompts/prompt-selector.d.ts.map +1 -1
  246. package/dist/prompts/prompt-selector.js +3 -21
  247. package/dist/prompts/prompt-selector.js.map +1 -1
  248. package/dist/prompts/prompt-selector.ts +3 -25
  249. package/dist/prompts/reasoning-efficiency.d.ts.map +1 -1
  250. package/dist/prompts/reasoning-efficiency.js +2 -0
  251. package/dist/prompts/reasoning-efficiency.js.map +1 -1
  252. package/dist/prompts/reasoning-efficiency.test.d.ts +2 -0
  253. package/dist/prompts/reasoning-efficiency.test.d.ts.map +1 -0
  254. package/dist/prompts/reasoning-efficiency.test.js +11 -0
  255. package/dist/prompts/reasoning-efficiency.test.js.map +1 -0
  256. package/dist/prompts/reasoning-efficiency.test.ts +12 -0
  257. package/dist/prompts/reasoning-efficiency.ts +2 -0
  258. package/dist/prompts/search-via-shell.test.js +19 -16
  259. package/dist/prompts/search-via-shell.test.js.map +1 -1
  260. package/dist/prompts/search-via-shell.test.ts +20 -16
  261. package/dist/prompts/subagent-delegation.test.js +12 -10
  262. package/dist/prompts/subagent-delegation.test.js.map +1 -1
  263. package/dist/prompts/subagent-delegation.test.ts +13 -10
  264. package/dist/prompts/worktree-hygiene.md +9 -0
  265. package/dist/providers/ai-sdk-logging-fetch.d.ts +1 -1
  266. package/dist/providers/ai-sdk-logging-fetch.d.ts.map +1 -1
  267. package/dist/providers/ai-sdk-logging-fetch.js +145 -47
  268. package/dist/providers/ai-sdk-logging-fetch.js.map +1 -1
  269. package/dist/providers/ai-sdk-logging-fetch.test.js +202 -5
  270. package/dist/providers/ai-sdk-logging-fetch.test.js.map +1 -1
  271. package/dist/providers/codex-responses-model.d.ts +20 -0
  272. package/dist/providers/codex-responses-model.d.ts.map +1 -0
  273. package/dist/providers/codex-responses-model.js +170 -0
  274. package/dist/providers/codex-responses-model.js.map +1 -0
  275. package/dist/providers/codex-responses-model.test.d.ts +2 -0
  276. package/dist/providers/codex-responses-model.test.d.ts.map +1 -0
  277. package/dist/providers/codex-responses-model.test.js +240 -0
  278. package/dist/providers/codex-responses-model.test.js.map +1 -0
  279. package/dist/providers/codex.provider.d.ts +29 -0
  280. package/dist/providers/codex.provider.d.ts.map +1 -0
  281. package/dist/providers/codex.provider.js +486 -0
  282. package/dist/providers/codex.provider.js.map +1 -0
  283. package/dist/providers/codex.provider.test.d.ts +2 -0
  284. package/dist/providers/codex.provider.test.d.ts.map +1 -0
  285. package/dist/providers/codex.provider.test.js +634 -0
  286. package/dist/providers/codex.provider.test.js.map +1 -0
  287. package/dist/providers/custom-provider-adapter.test.js +56 -0
  288. package/dist/providers/custom-provider-adapter.test.js.map +1 -1
  289. package/dist/providers/fallback-responses-model.d.ts +20 -0
  290. package/dist/providers/fallback-responses-model.d.ts.map +1 -0
  291. package/dist/providers/fallback-responses-model.js +277 -0
  292. package/dist/providers/fallback-responses-model.js.map +1 -0
  293. package/dist/providers/fallback-responses-model.test.d.ts +2 -0
  294. package/dist/providers/fallback-responses-model.test.d.ts.map +1 -0
  295. package/dist/providers/fallback-responses-model.test.js +279 -0
  296. package/dist/providers/fallback-responses-model.test.js.map +1 -0
  297. package/dist/providers/fetch/compose.d.ts +7 -0
  298. package/dist/providers/fetch/compose.d.ts.map +1 -0
  299. package/dist/providers/fetch/compose.js +20 -0
  300. package/dist/providers/fetch/compose.js.map +1 -0
  301. package/dist/providers/fetch/composer.d.ts +13 -0
  302. package/dist/providers/fetch/composer.d.ts.map +1 -0
  303. package/dist/providers/fetch/composer.js +15 -0
  304. package/dist/providers/fetch/composer.js.map +1 -0
  305. package/dist/providers/fetch/composer.test.d.ts +2 -0
  306. package/dist/providers/fetch/composer.test.d.ts.map +1 -0
  307. package/dist/providers/fetch/composer.test.js +448 -0
  308. package/dist/providers/fetch/composer.test.js.map +1 -0
  309. package/dist/providers/fetch/logging-middleware.d.ts +16 -0
  310. package/dist/providers/fetch/logging-middleware.d.ts.map +1 -0
  311. package/dist/providers/fetch/logging-middleware.js +214 -0
  312. package/dist/providers/fetch/logging-middleware.js.map +1 -0
  313. package/dist/providers/index.d.ts +1 -0
  314. package/dist/providers/index.d.ts.map +1 -1
  315. package/dist/providers/index.js +1 -0
  316. package/dist/providers/index.js.map +1 -1
  317. package/dist/providers/llama-cpp.provider.d.ts +3 -0
  318. package/dist/providers/llama-cpp.provider.d.ts.map +1 -0
  319. package/dist/providers/llama-cpp.provider.js +34 -0
  320. package/dist/providers/llama-cpp.provider.js.map +1 -0
  321. package/dist/providers/openai-compatible-middleware.d.ts +7 -0
  322. package/dist/providers/openai-compatible-middleware.d.ts.map +1 -0
  323. package/dist/providers/openai-compatible-middleware.js +133 -0
  324. package/dist/providers/openai-compatible-middleware.js.map +1 -0
  325. package/dist/providers/openai-compatible-models.d.ts +6 -0
  326. package/dist/providers/openai-compatible-models.d.ts.map +1 -0
  327. package/dist/providers/openai-compatible-models.js +17 -0
  328. package/dist/providers/openai-compatible-models.js.map +1 -0
  329. package/dist/providers/openai-compatible-response-normalizer.d.ts +7 -0
  330. package/dist/providers/openai-compatible-response-normalizer.d.ts.map +1 -0
  331. package/dist/providers/openai-compatible-response-normalizer.js +58 -0
  332. package/dist/providers/openai-compatible-response-normalizer.js.map +1 -0
  333. package/dist/providers/openai-compatible.provider.d.ts +4 -1
  334. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  335. package/dist/providers/openai-compatible.provider.js +68 -324
  336. package/dist/providers/openai-compatible.provider.js.map +1 -1
  337. package/dist/providers/openai-compatible.provider.test.js +106 -1
  338. package/dist/providers/openai-compatible.provider.test.js.map +1 -1
  339. package/dist/providers/openai.provider.js +53 -1
  340. package/dist/providers/openai.provider.js.map +1 -1
  341. package/dist/providers/opencode.provider.d.ts +19 -0
  342. package/dist/providers/opencode.provider.d.ts.map +1 -0
  343. package/dist/providers/opencode.provider.js +45 -0
  344. package/dist/providers/opencode.provider.js.map +1 -0
  345. package/dist/providers/openrouter.provider.d.ts +2 -1
  346. package/dist/providers/openrouter.provider.d.ts.map +1 -1
  347. package/dist/providers/openrouter.provider.js +39 -22
  348. package/dist/providers/openrouter.provider.js.map +1 -1
  349. package/dist/providers/openrouter.provider.request-preprocessing.test.d.ts +2 -0
  350. package/dist/providers/openrouter.provider.request-preprocessing.test.d.ts.map +1 -0
  351. package/dist/providers/openrouter.provider.request-preprocessing.test.js +51 -0
  352. package/dist/providers/openrouter.provider.request-preprocessing.test.js.map +1 -0
  353. package/dist/providers/registry.d.ts +1 -0
  354. package/dist/providers/registry.d.ts.map +1 -1
  355. package/dist/providers/registry.js.map +1 -1
  356. package/dist/providers/registry.test.js +11 -2
  357. package/dist/providers/registry.test.js.map +1 -1
  358. package/dist/scripts/eval-auto-approval/dataset.d.ts +3 -3
  359. package/dist/services/approval-flow-coordinator.d.ts.map +1 -1
  360. package/dist/services/approval-flow-coordinator.js +17 -1
  361. package/dist/services/approval-flow-coordinator.js.map +1 -1
  362. package/dist/services/approval-flow-coordinator.test.js +22 -0
  363. package/dist/services/approval-flow-coordinator.test.js.map +1 -1
  364. package/dist/services/command-message-streaming.d.ts.map +1 -1
  365. package/dist/services/command-message-streaming.js +0 -3
  366. package/dist/services/command-message-streaming.js.map +1 -1
  367. package/dist/services/command-message-streaming.test.js +4 -2
  368. package/dist/services/command-message-streaming.test.js.map +1 -1
  369. package/dist/services/conversation-clear-save.test.d.ts +2 -0
  370. package/dist/services/conversation-clear-save.test.d.ts.map +1 -0
  371. package/dist/services/conversation-clear-save.test.js +57 -0
  372. package/dist/services/conversation-clear-save.test.js.map +1 -0
  373. package/dist/services/conversation-events.d.ts +44 -1
  374. package/dist/services/conversation-events.d.ts.map +1 -1
  375. package/dist/services/conversation-history-repair.d.ts +25 -0
  376. package/dist/services/conversation-history-repair.d.ts.map +1 -0
  377. package/dist/services/conversation-history-repair.js +227 -0
  378. package/dist/services/conversation-history-repair.js.map +1 -0
  379. package/dist/services/conversation-history-repair.test.d.ts +2 -0
  380. package/dist/services/conversation-history-repair.test.d.ts.map +1 -0
  381. package/dist/services/conversation-history-repair.test.js +76 -0
  382. package/dist/services/conversation-history-repair.test.js.map +1 -0
  383. package/dist/services/conversation-integration.test.js +3 -1
  384. package/dist/services/conversation-integration.test.js.map +1 -1
  385. package/dist/services/conversation-log-events.d.ts +107 -0
  386. package/dist/services/conversation-log-events.d.ts.map +1 -0
  387. package/dist/services/conversation-log-events.js +12 -0
  388. package/dist/services/conversation-log-events.js.map +1 -0
  389. package/dist/services/conversation-log-writer.d.ts +40 -0
  390. package/dist/services/conversation-log-writer.d.ts.map +1 -0
  391. package/dist/services/conversation-log-writer.js +264 -0
  392. package/dist/services/conversation-log-writer.js.map +1 -0
  393. package/dist/services/conversation-persistence-types.d.ts +14 -0
  394. package/dist/services/conversation-persistence-types.d.ts.map +1 -0
  395. package/dist/services/conversation-persistence-types.js +2 -0
  396. package/dist/services/conversation-persistence-types.js.map +1 -0
  397. package/dist/services/conversation-persistence.d.ts +40 -38
  398. package/dist/services/conversation-persistence.d.ts.map +1 -1
  399. package/dist/services/conversation-persistence.js +312 -71
  400. package/dist/services/conversation-persistence.js.map +1 -1
  401. package/dist/services/conversation-persistence.test.js +485 -355
  402. package/dist/services/conversation-persistence.test.js.map +1 -1
  403. package/dist/services/conversation-replay.d.ts +26 -0
  404. package/dist/services/conversation-replay.d.ts.map +1 -0
  405. package/dist/services/conversation-replay.js +252 -0
  406. package/dist/services/conversation-replay.js.map +1 -0
  407. package/dist/services/conversation-replay.test.d.ts +2 -0
  408. package/dist/services/conversation-replay.test.d.ts.map +1 -0
  409. package/dist/services/conversation-replay.test.js +153 -0
  410. package/dist/services/conversation-replay.test.js.map +1 -0
  411. package/dist/services/conversation-result-builder.d.ts.map +1 -1
  412. package/dist/services/conversation-result-builder.js +8 -2
  413. package/dist/services/conversation-result-builder.js.map +1 -1
  414. package/dist/services/conversation-result-builder.test.js +53 -0
  415. package/dist/services/conversation-result-builder.test.js.map +1 -1
  416. package/dist/services/conversation-retry-policy.d.ts +24 -0
  417. package/dist/services/conversation-retry-policy.d.ts.map +1 -1
  418. package/dist/services/conversation-retry-policy.js +68 -4
  419. package/dist/services/conversation-retry-policy.js.map +1 -1
  420. package/dist/services/conversation-retry-policy.test.js +99 -2
  421. package/dist/services/conversation-retry-policy.test.js.map +1 -1
  422. package/dist/services/conversation-service.d.ts +12 -2
  423. package/dist/services/conversation-service.d.ts.map +1 -1
  424. package/dist/services/conversation-service.js +29 -3
  425. package/dist/services/conversation-service.js.map +1 -1
  426. package/dist/services/conversation-session.auto-approval.test.js +2 -1
  427. package/dist/services/conversation-session.auto-approval.test.js.map +1 -1
  428. package/dist/services/conversation-session.d.ts +17 -1
  429. package/dist/services/conversation-session.d.ts.map +1 -1
  430. package/dist/services/conversation-session.js +580 -134
  431. package/dist/services/conversation-session.js.map +1 -1
  432. package/dist/services/conversation-store.d.ts.map +1 -1
  433. package/dist/services/conversation-store.js +6 -5
  434. package/dist/services/conversation-store.js.map +1 -1
  435. package/dist/services/conversation-store.test.js +34 -0
  436. package/dist/services/conversation-store.test.js.map +1 -1
  437. package/dist/services/input-surge-guard.d.ts +4 -0
  438. package/dist/services/input-surge-guard.d.ts.map +1 -1
  439. package/dist/services/input-surge-guard.js +2 -2
  440. package/dist/services/input-surge-guard.js.map +1 -1
  441. package/dist/services/input-surge-guard.test.js +15 -1
  442. package/dist/services/input-surge-guard.test.js.map +1 -1
  443. package/dist/services/large-uncached-input-guard.d.ts +35 -0
  444. package/dist/services/large-uncached-input-guard.d.ts.map +1 -0
  445. package/dist/services/large-uncached-input-guard.js +127 -0
  446. package/dist/services/large-uncached-input-guard.js.map +1 -0
  447. package/dist/services/large-uncached-input-guard.test.d.ts +2 -0
  448. package/dist/services/large-uncached-input-guard.test.d.ts.map +1 -0
  449. package/dist/services/large-uncached-input-guard.test.js +160 -0
  450. package/dist/services/large-uncached-input-guard.test.js.map +1 -0
  451. package/dist/services/logging-contract.d.ts +1 -1
  452. package/dist/services/logging-service.d.ts +4 -0
  453. package/dist/services/logging-service.d.ts.map +1 -1
  454. package/dist/services/logging-service.js +91 -33
  455. package/dist/services/logging-service.js.map +1 -1
  456. package/dist/services/model-service.d.ts +2 -0
  457. package/dist/services/model-service.d.ts.map +1 -1
  458. package/dist/services/model-service.js +7 -1
  459. package/dist/services/model-service.js.map +1 -1
  460. package/dist/services/provider-traffic.d.ts +87 -0
  461. package/dist/services/provider-traffic.d.ts.map +1 -0
  462. package/dist/services/provider-traffic.js +603 -0
  463. package/dist/services/provider-traffic.js.map +1 -0
  464. package/dist/services/provider-traffic.test.d.ts +2 -0
  465. package/dist/services/provider-traffic.test.d.ts.map +1 -0
  466. package/dist/services/provider-traffic.test.js +475 -0
  467. package/dist/services/provider-traffic.test.js.map +1 -0
  468. package/dist/services/rtk-service.d.ts.map +1 -1
  469. package/dist/services/rtk-service.js +1 -2
  470. package/dist/services/rtk-service.js.map +1 -1
  471. package/dist/services/service-interfaces.d.ts +16 -0
  472. package/dist/services/service-interfaces.d.ts.map +1 -1
  473. package/dist/services/settings-schema.d.ts +36 -28
  474. package/dist/services/settings-schema.d.ts.map +1 -1
  475. package/dist/services/settings-schema.js +7 -2
  476. package/dist/services/settings-schema.js.map +1 -1
  477. package/dist/services/settings-service.js +6 -6
  478. package/dist/services/settings-service.js.map +1 -1
  479. package/dist/services/settings-sources.d.ts.map +1 -1
  480. package/dist/services/settings-sources.js +1 -0
  481. package/dist/services/settings-sources.js.map +1 -1
  482. package/dist/services/shell-auto-approval-evaluator.d.ts +1 -1
  483. package/dist/services/shell-auto-approval-evaluator.d.ts.map +1 -1
  484. package/dist/services/shell-auto-approval-evaluator.js +284 -81
  485. package/dist/services/shell-auto-approval-evaluator.js.map +1 -1
  486. package/dist/services/shell-auto-approval-evaluator.test.js +215 -15
  487. package/dist/services/shell-auto-approval-evaluator.test.js.map +1 -1
  488. package/dist/services/stream-event-processor.d.ts +4 -0
  489. package/dist/services/stream-event-processor.d.ts.map +1 -1
  490. package/dist/services/stream-event-processor.js +78 -39
  491. package/dist/services/stream-event-processor.js.map +1 -1
  492. package/dist/services/stream-event-processor.test.js +71 -0
  493. package/dist/services/stream-event-processor.test.js.map +1 -1
  494. package/dist/services/subagents/subagent-manager.d.ts +2 -0
  495. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  496. package/dist/services/subagents/subagent-manager.js +124 -21
  497. package/dist/services/subagents/subagent-manager.js.map +1 -1
  498. package/dist/services/subagents/subagent-manager.test.js +453 -0
  499. package/dist/services/subagents/subagent-manager.test.js.map +1 -1
  500. package/dist/services/terminal-result-collector.d.ts.map +1 -1
  501. package/dist/services/terminal-result-collector.js +6 -1
  502. package/dist/services/terminal-result-collector.js.map +1 -1
  503. package/dist/services/tool-call-arguments.d.ts +20 -0
  504. package/dist/services/tool-call-arguments.d.ts.map +1 -0
  505. package/dist/services/tool-call-arguments.js +49 -0
  506. package/dist/services/tool-call-arguments.js.map +1 -0
  507. package/dist/services/tool-execution-ledger.d.ts +35 -0
  508. package/dist/services/tool-execution-ledger.d.ts.map +1 -0
  509. package/dist/services/tool-execution-ledger.js +204 -0
  510. package/dist/services/tool-execution-ledger.js.map +1 -0
  511. package/dist/services/tool-execution-ledger.test.d.ts +2 -0
  512. package/dist/services/tool-execution-ledger.test.d.ts.map +1 -0
  513. package/dist/services/tool-execution-ledger.test.js +96 -0
  514. package/dist/services/tool-execution-ledger.test.js.map +1 -0
  515. package/dist/tools/apply-patch.d.ts +8 -0
  516. package/dist/tools/apply-patch.d.ts.map +1 -1
  517. package/dist/tools/apply-patch.js +157 -2
  518. package/dist/tools/apply-patch.js.map +1 -1
  519. package/dist/tools/apply-patch.test.js +81 -0
  520. package/dist/tools/apply-patch.test.js.map +1 -1
  521. package/dist/tools/search-replace.d.ts.map +1 -1
  522. package/dist/tools/search-replace.js +92 -140
  523. package/dist/tools/search-replace.js.map +1 -1
  524. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  525. package/dist/utils/command-safety/path-analysis.js +143 -35
  526. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  527. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  528. package/dist/utils/conversation-event-handler.js +52 -4
  529. package/dist/utils/conversation-event-handler.js.map +1 -1
  530. package/dist/utils/conversation-event-handler.test.js +175 -0
  531. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  532. package/dist/utils/error-helpers.d.ts +1 -0
  533. package/dist/utils/error-helpers.d.ts.map +1 -1
  534. package/dist/utils/error-helpers.js +61 -0
  535. package/dist/utils/error-helpers.js.map +1 -1
  536. package/dist/utils/error-helpers.test.js +13 -1
  537. package/dist/utils/error-helpers.test.js.map +1 -1
  538. package/dist/utils/ink-render-options.d.ts +1 -1
  539. package/dist/utils/ink-render-options.d.ts.map +1 -1
  540. package/dist/utils/ink-render-options.js +1 -1
  541. package/dist/utils/ink-render-options.js.map +1 -1
  542. package/dist/utils/streaming-session-factory.d.ts +2 -0
  543. package/dist/utils/streaming-session-factory.d.ts.map +1 -1
  544. package/dist/utils/streaming-session-factory.js +4 -0
  545. package/dist/utils/streaming-session-factory.js.map +1 -1
  546. package/package.json +2 -2
@@ -10,10 +10,98 @@ const nullLoggingService = {
10
10
  getCorrelationId: () => undefined,
11
11
  clearCorrelationId: () => { },
12
12
  };
13
- const SENSITIVE_LOCAL_PATH_SEGMENTS = new Set(['.ssh', '.gnupg', '.aws', '.kube', '.git', '.config', '.env']);
13
+ // Dot-directories that almost always contain credentials, private keys, or secrets.
14
+ // Access to these should be blocked (RED) regardless of the specific file inside.
15
+ const HIGHLY_SENSITIVE_HOME_DIRS = new Set([
16
+ '.ssh',
17
+ '.gnupg',
18
+ '.gpg',
19
+ '.aws',
20
+ '.azure',
21
+ '.gcloud',
22
+ '.config/gcloud',
23
+ '.kube',
24
+ '.docker',
25
+ '.netrc',
26
+ '.pgpass',
27
+ '.password-store',
28
+ '.cert',
29
+ '.certs',
30
+ '.keys',
31
+ '.secrets',
32
+ ]);
33
+ // Sensitive dotfiles at the root of the home directory (RED).
34
+ const HIGHLY_SENSITIVE_HOME_FILES = new Set([
35
+ '.netrc',
36
+ '.pgpass',
37
+ '.npmrc', // can contain auth tokens
38
+ '.pypirc', // can contain auth tokens
39
+ '.gitconfig', // may contain credentials / signing keys
40
+ '.git-credentials',
41
+ '.bash_history',
42
+ '.zsh_history',
43
+ '.python_history',
44
+ '.node_repl_history',
45
+ '.mysql_history',
46
+ '.psql_history',
47
+ '.lesshst',
48
+ ]);
49
+ // Dot-directories that are commonly used as working/cache/data directories.
50
+ // These should NOT be RED — they're YELLOW at worst, often GREEN-ish.
51
+ // Users frequently work in these (installing tools, inspecting caches, etc.).
52
+ const COMMON_WORKING_DOT_DIRS = new Set([
53
+ '.local',
54
+ '.cache',
55
+ '.config', // root .config is broad; specific sensitive subdirs handled above
56
+ '.npm',
57
+ '.yarn',
58
+ '.pnpm',
59
+ '.nvm',
60
+ '.node_modules',
61
+ '.vscode',
62
+ '.idea',
63
+ '.cursor',
64
+ '.vim',
65
+ '.emacs.d',
66
+ '.mozilla',
67
+ '.themes',
68
+ '.icons',
69
+ '.fonts',
70
+ '.gradle',
71
+ '.m2',
72
+ '.cargo',
73
+ '.rustup',
74
+ '.pyenv',
75
+ '.rbenv',
76
+ '.virtualenvs',
77
+ '.docker-desktop',
78
+ ]);
79
+ const SENSITIVE_LOCAL_PATH_SEGMENTS = new Set(['.ssh', '.gnupg', '.aws', '.kube', '.git', '.env']);
14
80
  function getLogger(loggingService) {
15
81
  return loggingService ?? nullLoggingService;
16
82
  }
83
+ /**
84
+ * Given a sliced home-relative path (e.g. "/.ssh/id_rsa" or "/.local/bin/foo"),
85
+ * return the first dot-segment (e.g. ".ssh", ".local") or undefined.
86
+ */
87
+ function firstDotSegment(sliced) {
88
+ const segments = sliced.split('/').filter(Boolean);
89
+ const first = segments[0];
90
+ return first && first.startsWith('.') ? first : undefined;
91
+ }
92
+ /**
93
+ * Check whether a sliced home path falls within a highly sensitive directory.
94
+ * Handles nested keys like ".config/gcloud".
95
+ */
96
+ function isInHighlySensitiveDir(sliced) {
97
+ const trimmed = sliced.replace(/^\/+/, '');
98
+ for (const dir of HIGHLY_SENSITIVE_HOME_DIRS) {
99
+ if (trimmed === dir || trimmed.startsWith(dir + '/')) {
100
+ return true;
101
+ }
102
+ }
103
+ return false;
104
+ }
17
105
  export function analyzePathRisk(inputPath, loggingService) {
18
106
  const logger = getLogger(loggingService);
19
107
  const candidate = inputPath?.trim();
@@ -46,48 +134,74 @@ export function analyzePathRisk(inputPath, loggingService) {
46
134
  // Plain home directory access without any suffix is broad and privacy-sensitive,
47
135
  // but not inherently destructive. Let the model judge the task context.
48
136
  if (sliced === '' || sliced === '/') {
49
- logger.security('Path risk: home directory access', {
50
- path: candidate,
51
- });
137
+ logger.security('Path risk: home directory access', { path: candidate });
52
138
  return SafetyStatus.YELLOW;
53
139
  }
54
- // Check for sensitive dotfiles and directories
55
- if (/^\/\.\w+/.test(sliced) || SENSITIVE_PATHS.some((sensitive) => sliced.includes(sensitive))) {
56
- logger.security('Path risk: home dotfile or config', {
57
- path: candidate,
58
- });
140
+ const filename = path.basename(candidate);
141
+ const topDot = firstDotSegment(sliced);
142
+ // RED: highly sensitive credential directories (anywhere inside)
143
+ if (isInHighlySensitiveDir(sliced)) {
144
+ logger.security('Path risk: sensitive credential directory', { path: candidate });
59
145
  return SafetyStatus.RED;
60
146
  }
61
- // Check if filename in home directory is suspicious (credentials, secrets, etc.)
62
- const filename = path.basename(candidate);
147
+ // RED: highly sensitive dotfiles at home root
148
+ // (only when the file sits directly under home, not deep inside another dir)
149
+ const slicedSegments = sliced.split('/').filter(Boolean);
150
+ if (slicedSegments.length === 1 && HIGHLY_SENSITIVE_HOME_FILES.has(slicedSegments[0])) {
151
+ logger.security('Path risk: sensitive home dotfile', { path: candidate });
152
+ return SafetyStatus.RED;
153
+ }
154
+ // Legacy explicit sensitive-path substring match (kept for back-compat with constants.ts)
155
+ if (SENSITIVE_PATHS.some((sensitive) => sliced.includes(sensitive))) {
156
+ logger.security('Path risk: known sensitive path', { path: candidate });
157
+ return SafetyStatus.RED;
158
+ }
159
+ // Suspicious filename patterns (credentials.json, *_token.json, etc.) anywhere in home -> RED
63
160
  if (/\.json$/i.test(filename) && SUSPICIOUS_JSON_PATTERNS.some((pattern) => pattern.test(filename))) {
64
161
  logger.security('Path risk: suspicious JSON file in home directory', { path: candidate });
65
162
  return SafetyStatus.RED;
66
163
  }
67
- // Check for other sensitive extensions in home directory
164
+ // Sensitive extensions (private keys, pem, etc.) anywhere in home -> RED
68
165
  if (SENSITIVE_EXTENSIONS.some((ext) => filename.endsWith(ext))) {
69
- logger.security('Path risk: sensitive file in home directory', {
70
- path: candidate,
71
- });
166
+ logger.security('Path risk: sensitive file in home directory', { path: candidate });
72
167
  return SafetyStatus.RED;
73
168
  }
169
+ // YELLOW: common working dot-directories (~/.local, ~/.cache, ~/.config/..., etc.)
170
+ // Users legitimately operate here often — flag as cautious, not blocked.
171
+ if (topDot && COMMON_WORKING_DOT_DIRS.has(topDot)) {
172
+ logger.security('Path risk: home working dot-directory', { path: candidate, segment: topDot });
173
+ return SafetyStatus.YELLOW;
174
+ }
175
+ // YELLOW: any other unknown dotfile/dotdir directly under home — be cautious
176
+ // but don't block, since many tools create custom dot-directories.
177
+ if (topDot) {
178
+ logger.security('Path risk: unknown home dot-entry', { path: candidate, segment: topDot });
179
+ return SafetyStatus.YELLOW;
180
+ }
181
+ // Non-dot files/folders inside home -> YELLOW (privacy-sensitive but not destructive)
182
+ logger.security('Path risk: home directory file', { path: candidate });
183
+ return SafetyStatus.YELLOW;
74
184
  }
75
185
  // YELLOW: Absolute System Paths
76
186
  if (path.isAbsolute(candidate)) {
77
187
  if (SYSTEM_PATHS.some((sys) => candidate.startsWith(sys))) {
78
- logger.security('Path risk: absolute system path', {
79
- path: candidate,
80
- });
188
+ logger.security('Path risk: absolute system path', { path: candidate });
81
189
  return SafetyStatus.YELLOW;
82
190
  }
83
- // Home dotfiles when absolute
84
- if (/^\/(home|Users)\/[^/]+\/\.\w+/.test(candidate) ||
85
- candidate.includes('/.ssh') ||
86
- candidate.includes('/.gitconfig')) {
87
- logger.security('Path risk: absolute home dotfile', {
88
- path: candidate,
89
- });
90
- return SafetyStatus.RED;
191
+ // Absolute paths into highly sensitive home dirs are still RED
192
+ const absHomeMatch = candidate.match(/^\/(?:home|Users)\/[^/]+(\/.*)?$/) ||
193
+ (candidate.startsWith('/root') ? [candidate, candidate.slice(5)] : null);
194
+ if (absHomeMatch) {
195
+ const tail = absHomeMatch[1] ?? '';
196
+ if (isInHighlySensitiveDir(tail)) {
197
+ logger.security('Path risk: absolute sensitive home dir', { path: candidate });
198
+ return SafetyStatus.RED;
199
+ }
200
+ const tailSegments = tail.split('/').filter(Boolean);
201
+ if (tailSegments.length === 1 && HIGHLY_SENSITIVE_HOME_FILES.has(tailSegments[0])) {
202
+ logger.security('Path risk: absolute sensitive home file', { path: candidate });
203
+ return SafetyStatus.RED;
204
+ }
91
205
  }
92
206
  // Check if absolute path is within current project directory or in a safe temporary directory
93
207
  const isTempDir = normalizedCandidate === '/tmp' ||
@@ -96,9 +210,7 @@ export function analyzePathRisk(inputPath, loggingService) {
96
210
  normalizedCandidate.startsWith('/private/tmp' + path.sep);
97
211
  if (!isWithinProject && !isTempDir) {
98
212
  // Absolute paths outside project are suspicious -> audit
99
- logger.security('Path risk: absolute non-system path', {
100
- path: candidate,
101
- });
213
+ logger.security('Path risk: absolute non-system path', { path: candidate });
102
214
  return SafetyStatus.YELLOW;
103
215
  }
104
216
  // If within project, continue with normal flow (treat like relative path)
@@ -106,16 +218,12 @@ export function analyzePathRisk(inputPath, loggingService) {
106
218
  }
107
219
  // YELLOW: Directory Traversal
108
220
  if (candidate.includes('..')) {
109
- logger.security('Path risk: directory traversal detected', {
110
- path: candidate,
111
- });
221
+ logger.security('Path risk: directory traversal detected', { path: candidate });
112
222
  return SafetyStatus.YELLOW;
113
223
  }
114
224
  const pathSegments = normalizedCandidate.split(/[\\/]+/).filter(Boolean);
115
225
  if (pathSegments.some((segment) => SENSITIVE_LOCAL_PATH_SEGMENTS.has(segment))) {
116
- logger.security('Path risk: sensitive local dot-directory', {
117
- path: candidate,
118
- });
226
+ logger.security('Path risk: sensitive local dot-directory', { path: candidate });
119
227
  return SafetyStatus.YELLOW;
120
228
  }
121
229
  const filename = path.basename(candidate);
@@ -1 +1 @@
1
- {"version":3,"file":"path-analysis.js","sourceRoot":"","sources":["../../../source/utils/command-safety/path-analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"path-analysis.js","sourceRoot":"","sources":["../../../source/utils/command-safety/path-analysis.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-event-handler.d.ts","sourceRoot":"","sources":["../../source/utils/conversation-event-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAErG;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAsCvF;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,4BAA4B,CAC3C,QAAQ,SAAS,SAAS,GAAG,SAAS,EACtC,eAAe,SAAS,cAAc,GAAG,cAAc;IAEvD,kBAAkB,EAAE;QAClB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;IACF,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;IACF,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,CAAC;IACjE,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;IACnD,sBAAsB,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,eAAe,CAAC;CACnE;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,SAAS,SAAS,GAAG,SAAS,EACtC,eAAe,SAAS,cAAc,GAAG,cAAc,EAEvD,IAAI,EAAE,4BAA4B,CAAC,QAAQ,EAAE,eAAe,CAAC,EAC7D,KAAK,EAAE,cAAc,GACpB,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAkWpC"}
1
+ {"version":3,"file":"conversation-event-handler.d.ts","sourceRoot":"","sources":["../../source/utils/conversation-event-handler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAyC,KAAK,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAErG;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAsCvF;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,4BAA4B,CAC3C,QAAQ,SAAS,SAAS,GAAG,SAAS,EACtC,eAAe,SAAS,cAAc,GAAG,cAAc;IAEvD,kBAAkB,EAAE;QAClB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;IACF,gBAAgB,EAAE;QAChB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;QAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;QACnB,KAAK,EAAE,MAAM,IAAI,CAAC;KACnB,CAAC;IACF,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC/C,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,KAAK,IAAI,CAAC;IACjE,eAAe,EAAE,MAAM,MAAM,CAAC;IAC9B,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;IACnD,sBAAsB,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,eAAe,CAAC;CACnE;AAED;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,SAAS,SAAS,GAAG,SAAS,EACtC,eAAe,SAAS,cAAc,GAAG,cAAc,EAEvD,IAAI,EAAE,4BAA4B,CAAC,QAAQ,EAAE,eAAe,CAAC,EAC7D,KAAK,EAAE,cAAc,GACpB,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAkZpC"}
@@ -267,7 +267,10 @@ export function createConversationEventHandler(deps, state) {
267
267
  : prev.findIndex((msg) => msg.sender === 'command' && !msg.callId && msg.status === 'running');
268
268
  if (pendingIndex !== -1) {
269
269
  const next = [...prev];
270
- next[pendingIndex] = annotated;
270
+ next[pendingIndex] = {
271
+ ...annotated,
272
+ id: prev[pendingIndex].id,
273
+ };
271
274
  return trimMessages(next);
272
275
  }
273
276
  return trimMessages([...prev, annotated]);
@@ -328,9 +331,25 @@ export function createConversationEventHandler(deps, state) {
328
331
  return;
329
332
  }
330
333
  case 'retry': {
331
- const text = event.retryType === 'flex_service_tier'
332
- ? 'Flex service tier timed out. Falling back to standard service tier and retrying...'
333
- : `Tool hallucination detected (${event.toolName}). Retrying... (Attempt ${event.attempt}/${event.maxRetries})`;
334
+ let text;
335
+ if (event.retryType === 'flex_service_tier') {
336
+ text = 'Flex service tier timed out. Falling back to standard service tier and retrying...';
337
+ }
338
+ else if (event.retryType === 'upstream') {
339
+ text = `Upstream error or rate limit encountered. Retrying... (Attempt ${event.attempt}/${event.maxRetries})`;
340
+ }
341
+ else if (event.retryType === 'parsing_error') {
342
+ text = `Model parsing error detected. Retrying... (Attempt ${event.attempt}/${event.maxRetries})`;
343
+ }
344
+ else if (event.retryType === 'behavior') {
345
+ text = `Model behavior error detected. Retrying... (Attempt ${event.attempt}/${event.maxRetries})`;
346
+ }
347
+ else if (event.retryType === 'hallucination') {
348
+ text = `Tool hallucination detected (${event.toolName}). Retrying... (Attempt ${event.attempt}/${event.maxRetries})`;
349
+ }
350
+ else {
351
+ text = `Retrying... (Attempt ${event.attempt}/${event.maxRetries})`;
352
+ }
334
353
  const systemMessage = {
335
354
  id: createMessageId(),
336
355
  sender: 'system',
@@ -339,6 +358,31 @@ export function createConversationEventHandler(deps, state) {
339
358
  setMessages((prev) => [...prev, systemMessage]);
340
359
  return;
341
360
  }
361
+ case 'tool_recovery': {
362
+ const droppedCallIds = new Set(event.droppedCallIds);
363
+ const systemMessage = {
364
+ id: createMessageId(),
365
+ sender: 'system',
366
+ text: event.message,
367
+ };
368
+ setMessages((prev) => {
369
+ const next = prev.map((message) => {
370
+ if (message.sender !== 'command' || !message.callId || !droppedCallIds.has(message.callId)) {
371
+ return message;
372
+ }
373
+ return {
374
+ ...message,
375
+ status: 'failed',
376
+ output: typeof message.output === 'string' && message.output.trim()
377
+ ? message.output
378
+ : 'This tool call was interrupted and was not sent to model history.',
379
+ failureReason: 'Dropped during recovery',
380
+ };
381
+ });
382
+ return trimMessages([...next, systemMessage]);
383
+ });
384
+ return;
385
+ }
342
386
  case 'final':
343
387
  if (event.finalText?.trim()) {
344
388
  state.accumulatedText = event.finalText;
@@ -353,6 +397,10 @@ export function createConversationEventHandler(deps, state) {
353
397
  // Usage updates are handled separately in streaming-session-factory.ts
354
398
  // This case exists for exhaustiveness and to document the event flow
355
399
  return;
400
+ case 'codex_rate_limits':
401
+ // Codex rate limits are handled separately in streaming-session-factory.ts
402
+ // This case exists for exhaustiveness and to document the event flow
403
+ return;
356
404
  default:
357
405
  // Ignore unknown events (approval_required, error handled elsewhere)
358
406
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-event-handler.js","sourceRoot":"","sources":["../../source/utils/conversation-event-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-event-handler.js","sourceRoot":"","sources":["../../source/utils/conversation-event-handler.ts"],"names":[],"mappings":"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"}
@@ -584,6 +584,42 @@ test('command_message: flushes accumulated text before adding', (t) => {
584
584
  t.is(deps.calls.appendedMessages[0][0].status, 'finalized');
585
585
  t.is(deps.calls.appendedMessages[0][0].text, 'Partial response');
586
586
  });
587
+ test('tool_recovery: marks dropped running commands failed and appends recovery note', (t) => {
588
+ const deps = createMockDeps();
589
+ const state = createStreamingState();
590
+ const handler = createConversationEventHandler(deps, state);
591
+ handler({
592
+ type: 'tool_recovery',
593
+ recoveredCallIds: ['call-read'],
594
+ droppedCallIds: ['call-write'],
595
+ message: 'Recovered 1 completed tool call/result pair(s) from a previously interrupted turn. Dropped 1 incomplete tool call(s); do not assume dropped calls completed.',
596
+ });
597
+ t.is(deps.calls.setMessagesCalls.length, 1);
598
+ const next = deps.calls.setMessagesCalls[0]([
599
+ {
600
+ id: 'read',
601
+ sender: 'command',
602
+ status: 'completed',
603
+ command: 'read_file source/a.ts',
604
+ output: 'contents',
605
+ callId: 'call-read',
606
+ },
607
+ {
608
+ id: 'write',
609
+ sender: 'command',
610
+ status: 'running',
611
+ command: 'apply_patch',
612
+ output: '',
613
+ callId: 'call-write',
614
+ },
615
+ ]);
616
+ t.is(next[0].status, 'completed');
617
+ t.is(next[1].status, 'failed');
618
+ t.is(next[1].failureReason, 'Dropped during recovery');
619
+ t.true(next[1].output.includes('not sent to model history'));
620
+ t.is(next[2].sender, 'system');
621
+ t.true(next[2].text.startsWith('Recovered 1 completed'));
622
+ });
587
623
  // =============================================================================
588
624
  // subagent activity tests
589
625
  // =============================================================================
@@ -705,6 +741,7 @@ test('retry: adds system message about hallucination retry', (t) => {
705
741
  attempt: 1,
706
742
  maxRetries: 2,
707
743
  errorMessage: 'Tool hallucination detected',
744
+ retryType: 'hallucination',
708
745
  });
709
746
  t.is(deps.calls.setMessagesCalls.length, 1);
710
747
  const updater = deps.calls.setMessagesCalls[0];
@@ -714,6 +751,23 @@ test('retry: adds system message about hallucination retry', (t) => {
714
751
  t.true(result[0].text.includes('shell'));
715
752
  t.true(result[0].text.includes('1/2'));
716
753
  });
754
+ test('retry: adds generic system message when retryType is undefined', (t) => {
755
+ const deps = createMockDeps();
756
+ const state = createStreamingState();
757
+ const handler = createConversationEventHandler(deps, state);
758
+ handler({
759
+ type: 'retry',
760
+ toolName: 'shell',
761
+ attempt: 1,
762
+ maxRetries: 2,
763
+ errorMessage: 'Generic retry error',
764
+ });
765
+ const updater = deps.calls.setMessagesCalls[0];
766
+ const result = updater([]);
767
+ t.is(result.length, 1);
768
+ t.is(result[0].sender, 'system');
769
+ t.is(result[0].text, 'Retrying... (Attempt 1/2)');
770
+ });
717
771
  test('retry: adds system message about flex service tier fallback', (t) => {
718
772
  const deps = createMockDeps();
719
773
  const state = createStreamingState();
@@ -733,6 +787,60 @@ test('retry: adds system message about flex service tier fallback', (t) => {
733
787
  t.true(result[0].text.includes('Flex service tier timed out'));
734
788
  t.true(result[0].text.includes('standard service tier'));
735
789
  });
790
+ test('retry: adds system message about upstream retry', (t) => {
791
+ const deps = createMockDeps();
792
+ const state = createStreamingState();
793
+ const handler = createConversationEventHandler(deps, state);
794
+ handler({
795
+ type: 'retry',
796
+ toolName: 'continuation',
797
+ attempt: 1,
798
+ maxRetries: 3,
799
+ errorMessage: 'Connection error',
800
+ retryType: 'upstream',
801
+ });
802
+ const updater = deps.calls.setMessagesCalls[0];
803
+ const result = updater([]);
804
+ t.is(result.length, 1);
805
+ t.is(result[0].sender, 'system');
806
+ t.is(result[0].text, 'Upstream error or rate limit encountered. Retrying... (Attempt 1/3)');
807
+ });
808
+ test('retry: adds system message about parsing error retry', (t) => {
809
+ const deps = createMockDeps();
810
+ const state = createStreamingState();
811
+ const handler = createConversationEventHandler(deps, state);
812
+ handler({
813
+ type: 'retry',
814
+ toolName: 'model',
815
+ attempt: 1,
816
+ maxRetries: 2,
817
+ errorMessage: 'JSON parse error',
818
+ retryType: 'parsing_error',
819
+ });
820
+ const updater = deps.calls.setMessagesCalls[0];
821
+ const result = updater([]);
822
+ t.is(result.length, 1);
823
+ t.is(result[0].sender, 'system');
824
+ t.is(result[0].text, 'Model parsing error detected. Retrying... (Attempt 1/2)');
825
+ });
826
+ test('retry: adds system message about behavior error retry', (t) => {
827
+ const deps = createMockDeps();
828
+ const state = createStreamingState();
829
+ const handler = createConversationEventHandler(deps, state);
830
+ handler({
831
+ type: 'retry',
832
+ toolName: 'model',
833
+ attempt: 2,
834
+ maxRetries: 2,
835
+ errorMessage: 'Did not produce final response',
836
+ retryType: 'behavior',
837
+ });
838
+ const updater = deps.calls.setMessagesCalls[0];
839
+ const result = updater([]);
840
+ t.is(result.length, 1);
841
+ t.is(result[0].sender, 'system');
842
+ t.is(result[0].text, 'Model behavior error detected. Retrying... (Attempt 2/2)');
843
+ });
736
844
  // =============================================================================
737
845
  // final event tests
738
846
  // =============================================================================
@@ -884,4 +992,71 @@ test('command_message: leaves stale running message when no callId is present on
884
992
  t.is(result.length, 1);
885
993
  t.is(result[0].status, 'completed');
886
994
  });
995
+ test('command_message: preserves the id of the running message when replacing it', (t) => {
996
+ const deps = createMockDeps();
997
+ const state = createStreamingState();
998
+ const handler = createConversationEventHandler(deps, state);
999
+ handler({
1000
+ type: 'command_message',
1001
+ message: {
1002
+ id: 'call-1-0', // different id from the running command
1003
+ sender: 'command',
1004
+ status: 'completed',
1005
+ command: 'ls',
1006
+ output: 'file.txt',
1007
+ callId: 'call-1',
1008
+ toolName: 'shell',
1009
+ },
1010
+ });
1011
+ const updater = deps.calls.setMessagesCalls[0];
1012
+ const existingMessages = [{ id: 'call-1', sender: 'command', status: 'running', callId: 'call-1' }];
1013
+ const result = updater(existingMessages);
1014
+ t.is(result.length, 1);
1015
+ t.is(result[0].id, 'call-1'); // preserves running message id
1016
+ t.is(result[0].status, 'completed');
1017
+ });
1018
+ test('command_message: preserves running ids for batch completions matched by callId', (t) => {
1019
+ const deps = createMockDeps();
1020
+ const state = createStreamingState();
1021
+ const handler = createConversationEventHandler(deps, state);
1022
+ handler({
1023
+ type: 'command_message',
1024
+ message: {
1025
+ id: 'call-1-0',
1026
+ sender: 'command',
1027
+ status: 'completed',
1028
+ command: 'read_file file1.ts',
1029
+ output: 'content1',
1030
+ callId: 'call-1',
1031
+ toolName: 'read_file',
1032
+ },
1033
+ });
1034
+ handler({
1035
+ type: 'command_message',
1036
+ message: {
1037
+ id: 'call-2-0',
1038
+ sender: 'command',
1039
+ status: 'completed',
1040
+ command: 'read_file file2.ts',
1041
+ output: 'content2',
1042
+ callId: 'call-2',
1043
+ toolName: 'read_file',
1044
+ },
1045
+ });
1046
+ const firstUpdater = deps.calls.setMessagesCalls[0];
1047
+ const secondUpdater = deps.calls.setMessagesCalls[1];
1048
+ const afterFirst = firstUpdater([
1049
+ { id: 'call-1', sender: 'command', status: 'running', callId: 'call-1' },
1050
+ { id: 'call-2', sender: 'command', status: 'running', callId: 'call-2' },
1051
+ ]);
1052
+ const afterSecond = secondUpdater(afterFirst);
1053
+ t.deepEqual(afterSecond.map((message) => ({
1054
+ id: message.id,
1055
+ callId: message.callId,
1056
+ status: message.status,
1057
+ })), [
1058
+ { id: 'call-1', callId: 'call-1', status: 'completed' },
1059
+ { id: 'call-2', callId: 'call-2', status: 'completed' },
1060
+ ]);
1061
+ });
887
1062
  //# sourceMappingURL=conversation-event-handler.test.js.map