@qduc/term2 0.1.4 → 0.1.6

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 (575) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +4 -24
  3. package/dist/agent.js.map +1 -1
  4. package/dist/app.d.ts.map +1 -1
  5. package/dist/app.js +12 -33
  6. package/dist/app.js.map +1 -1
  7. package/dist/app.parseInput.test.js +4 -4
  8. package/dist/app.parseInput.test.js.map +1 -1
  9. package/dist/cli.js +44 -29
  10. package/dist/cli.js.map +1 -1
  11. package/dist/components/ApprovalPrompt.d.ts.map +1 -1
  12. package/dist/components/ApprovalPrompt.js +14 -11
  13. package/dist/components/ApprovalPrompt.js.map +1 -1
  14. package/dist/components/Banner.d.ts.map +1 -1
  15. package/dist/components/Banner.js +4 -12
  16. package/dist/components/Banner.js.map +1 -1
  17. package/dist/components/BottomArea.d.ts +2 -0
  18. package/dist/components/BottomArea.d.ts.map +1 -1
  19. package/dist/components/BottomArea.js +6 -9
  20. package/dist/components/BottomArea.js.map +1 -1
  21. package/dist/components/BottomArea.test.js +4 -6
  22. package/dist/components/BottomArea.test.js.map +1 -1
  23. package/dist/components/ChatMessage.d.ts.map +1 -1
  24. package/dist/components/ChatMessage.js.map +1 -1
  25. package/dist/components/CommandMessage.d.ts.map +1 -1
  26. package/dist/components/CommandMessage.js +19 -30
  27. package/dist/components/CommandMessage.js.map +1 -1
  28. package/dist/components/CommandMessage.test.js +2 -2
  29. package/dist/components/CommandMessage.test.js.map +1 -1
  30. package/dist/components/ErrorBoundary.d.ts.map +1 -1
  31. package/dist/components/ErrorBoundary.js +3 -9
  32. package/dist/components/ErrorBoundary.js.map +1 -1
  33. package/dist/components/ErrorBoundary.test.js +2 -2
  34. package/dist/components/ErrorBoundary.test.js.map +1 -1
  35. package/dist/components/Input/PopupManager.d.ts.map +1 -1
  36. package/dist/components/Input/PopupManager.js.map +1 -1
  37. package/dist/components/InputBox.d.ts.map +1 -1
  38. package/dist/components/InputBox.js +15 -33
  39. package/dist/components/InputBox.js.map +1 -1
  40. package/dist/components/InputBox.menu-logic.test.js +6 -7
  41. package/dist/components/InputBox.menu-logic.test.js.map +1 -1
  42. package/dist/components/InputBox.test.js +7 -9
  43. package/dist/components/InputBox.test.js.map +1 -1
  44. package/dist/components/LiveResponse.d.ts.map +1 -1
  45. package/dist/components/LiveResponse.js.map +1 -1
  46. package/dist/components/MarkdownRenderer.d.ts.map +1 -1
  47. package/dist/components/MarkdownRenderer.js +12 -12
  48. package/dist/components/MarkdownRenderer.js.map +1 -1
  49. package/dist/components/MessageList.d.ts.map +1 -1
  50. package/dist/components/MessageList.js.map +1 -1
  51. package/dist/components/MessageList.test.js +1 -1
  52. package/dist/components/MessageList.test.js.map +1 -1
  53. package/dist/components/ModelSelectionMenu.d.ts.map +1 -1
  54. package/dist/components/ModelSelectionMenu.js +35 -31
  55. package/dist/components/ModelSelectionMenu.js.map +1 -1
  56. package/dist/components/ModelSelectionMenu.test.js +9 -9
  57. package/dist/components/ModelSelectionMenu.test.js.map +1 -1
  58. package/dist/components/PathSelectionMenu.d.ts.map +1 -1
  59. package/dist/components/PathSelectionMenu.js +1 -1
  60. package/dist/components/PathSelectionMenu.js.map +1 -1
  61. package/dist/components/SettingsSelectionMenu.d.ts.map +1 -1
  62. package/dist/components/SettingsSelectionMenu.js +1 -1
  63. package/dist/components/SettingsSelectionMenu.js.map +1 -1
  64. package/dist/components/SettingsSelectionMenu.test.js +4 -4
  65. package/dist/components/SettingsSelectionMenu.test.js.map +1 -1
  66. package/dist/components/SettingsValueSelectionMenu.d.ts.map +1 -1
  67. package/dist/components/SettingsValueSelectionMenu.js +5 -6
  68. package/dist/components/SettingsValueSelectionMenu.js.map +1 -1
  69. package/dist/components/SettingsValueSelectionMenu.test.js +5 -5
  70. package/dist/components/SettingsValueSelectionMenu.test.js.map +1 -1
  71. package/dist/components/SlashCommandMenu.d.ts.map +1 -1
  72. package/dist/components/SlashCommandMenu.js +1 -1
  73. package/dist/components/SlashCommandMenu.js.map +1 -1
  74. package/dist/components/StatusBar.d.ts +2 -0
  75. package/dist/components/StatusBar.d.ts.map +1 -1
  76. package/dist/components/StatusBar.js +45 -41
  77. package/dist/components/StatusBar.js.map +1 -1
  78. package/dist/components/StatusBar.test.d.ts +2 -0
  79. package/dist/components/StatusBar.test.d.ts.map +1 -0
  80. package/dist/components/StatusBar.test.js +19 -0
  81. package/dist/components/StatusBar.test.js.map +1 -0
  82. package/dist/context/InputContext.d.ts.map +1 -1
  83. package/dist/context/InputContext.js.map +1 -1
  84. package/dist/context/InputContext.stability.test.js +1 -1
  85. package/dist/context/InputContext.stability.test.js.map +1 -1
  86. package/dist/context/InputContext.test.js +15 -15
  87. package/dist/context/InputContext.test.js.map +1 -1
  88. package/dist/hooks/use-conversation.d.ts +5 -13
  89. package/dist/hooks/use-conversation.d.ts.map +1 -1
  90. package/dist/hooks/use-conversation.js +40 -148
  91. package/dist/hooks/use-conversation.js.map +1 -1
  92. package/dist/hooks/use-input-history.d.ts.map +1 -1
  93. package/dist/hooks/use-input-history.js +1 -3
  94. package/dist/hooks/use-input-history.js.map +1 -1
  95. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  96. package/dist/hooks/use-model-selection.js +9 -35
  97. package/dist/hooks/use-model-selection.js.map +1 -1
  98. package/dist/hooks/use-path-completion.d.ts.map +1 -1
  99. package/dist/hooks/use-path-completion.js +6 -6
  100. package/dist/hooks/use-path-completion.js.map +1 -1
  101. package/dist/hooks/use-setting.d.ts.map +1 -1
  102. package/dist/hooks/use-setting.js +3 -6
  103. package/dist/hooks/use-setting.js.map +1 -1
  104. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  105. package/dist/hooks/use-settings-completion.js +10 -12
  106. package/dist/hooks/use-settings-completion.js.map +1 -1
  107. package/dist/hooks/use-settings-completion.test.js +46 -46
  108. package/dist/hooks/use-settings-completion.test.js.map +1 -1
  109. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  110. package/dist/hooks/use-settings-value-completion.js +13 -43
  111. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  112. package/dist/hooks/use-settings-value-completion.test.js +12 -18
  113. package/dist/hooks/use-settings-value-completion.test.js.map +1 -1
  114. package/dist/hooks/use-slash-commands.d.ts +1 -1
  115. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  116. package/dist/hooks/use-slash-commands.js +6 -11
  117. package/dist/hooks/use-slash-commands.js.map +1 -1
  118. package/dist/hooks/use-slash-commands.test.js +24 -24
  119. package/dist/hooks/use-slash-commands.test.js.map +1 -1
  120. package/dist/lib/editor-impl.d.ts.map +1 -1
  121. package/dist/lib/editor-impl.js +6 -16
  122. package/dist/lib/editor-impl.js.map +1 -1
  123. package/dist/lib/editor-impl.test.js.map +1 -1
  124. package/dist/lib/mentor-client.d.ts +41 -0
  125. package/dist/lib/mentor-client.d.ts.map +1 -0
  126. package/dist/lib/mentor-client.js +146 -0
  127. package/dist/lib/mentor-client.js.map +1 -0
  128. package/dist/lib/mentor-client.test.d.ts +2 -0
  129. package/dist/lib/mentor-client.test.d.ts.map +1 -0
  130. package/dist/lib/mentor-client.test.js +440 -0
  131. package/dist/lib/mentor-client.test.js.map +1 -0
  132. package/dist/lib/openai-agent-client.chat.test.js +33 -8
  133. package/dist/lib/openai-agent-client.chat.test.js.map +1 -1
  134. package/dist/lib/openai-agent-client.d.ts.map +1 -1
  135. package/dist/lib/openai-agent-client.flex-tier.test.js +5 -5
  136. package/dist/lib/openai-agent-client.flex-tier.test.js.map +1 -1
  137. package/dist/lib/openai-agent-client.js +99 -88
  138. package/dist/lib/openai-agent-client.js.map +1 -1
  139. package/dist/lib/openai-agent-client.public-methods.test.js +186 -12
  140. package/dist/lib/openai-agent-client.public-methods.test.js.map +1 -1
  141. package/dist/lib/openai-agent-client.test.js +17 -17
  142. package/dist/lib/openai-agent-client.test.js.map +1 -1
  143. package/dist/lib/retry-strategy.d.ts +43 -0
  144. package/dist/lib/retry-strategy.d.ts.map +1 -0
  145. package/dist/lib/retry-strategy.js +93 -0
  146. package/dist/lib/retry-strategy.js.map +1 -0
  147. package/dist/lib/retry-strategy.test.d.ts +2 -0
  148. package/dist/lib/retry-strategy.test.d.ts.map +1 -0
  149. package/dist/lib/retry-strategy.test.js +200 -0
  150. package/dist/lib/retry-strategy.test.js.map +1 -0
  151. package/dist/lib/tool-invoke.d.ts.map +1 -1
  152. package/dist/lib/tool-invoke.js.map +1 -1
  153. package/dist/lib/tool-invoke.test.js.map +1 -1
  154. package/dist/no-singleton-imports.test.js +1 -1
  155. package/dist/no-singleton-imports.test.js.map +1 -1
  156. package/dist/non-interactive.d.ts +20 -0
  157. package/dist/non-interactive.d.ts.map +1 -0
  158. package/dist/non-interactive.js +86 -0
  159. package/dist/non-interactive.js.map +1 -0
  160. package/dist/non-interactive.test.d.ts +2 -0
  161. package/dist/non-interactive.test.d.ts.map +1 -0
  162. package/dist/non-interactive.test.js +213 -0
  163. package/dist/non-interactive.test.js.map +1 -0
  164. package/dist/prompts/anthropic.md +11 -11
  165. package/dist/prompts/codex.md +63 -63
  166. package/dist/prompts/gpt-5.md +95 -95
  167. package/dist/prompts/mentor-addon.md +6 -5
  168. package/dist/prompts/prompt-selector.d.ts +8 -0
  169. package/dist/prompts/prompt-selector.d.ts.map +1 -0
  170. package/dist/prompts/prompt-selector.js +21 -0
  171. package/dist/prompts/prompt-selector.js.map +1 -0
  172. package/dist/prompts/prompt-selector.test.d.ts +2 -0
  173. package/dist/prompts/prompt-selector.test.d.ts.map +1 -0
  174. package/dist/prompts/prompt-selector.test.js +21 -0
  175. package/dist/prompts/prompt-selector.test.js.map +1 -0
  176. package/dist/prompts/prompt-selector.test.ts +32 -0
  177. package/dist/prompts/prompt-selector.ts +30 -0
  178. package/dist/prompts/simple.md +58 -58
  179. package/dist/providers/index.d.ts.map +1 -1
  180. package/dist/providers/index.js.map +1 -1
  181. package/dist/providers/openai-compatible/api.d.ts.map +1 -1
  182. package/dist/providers/openai-compatible/api.js.map +1 -1
  183. package/dist/providers/openai-compatible/model.d.ts.map +1 -1
  184. package/dist/providers/openai-compatible/model.js +19 -53
  185. package/dist/providers/openai-compatible/model.js.map +1 -1
  186. package/dist/providers/openai-compatible/provider.d.ts.map +1 -1
  187. package/dist/providers/openai-compatible/provider.js.map +1 -1
  188. package/dist/providers/openai-compatible/reasoning-content.test.js +2 -2
  189. package/dist/providers/openai-compatible/reasoning-content.test.js.map +1 -1
  190. package/dist/providers/openai-compatible/utils.d.ts.map +1 -1
  191. package/dist/providers/openai-compatible/utils.js.map +1 -1
  192. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  193. package/dist/providers/openai-compatible.provider.js +5 -1
  194. package/dist/providers/openai-compatible.provider.js.map +1 -1
  195. package/dist/providers/openai.provider.js +4 -0
  196. package/dist/providers/openai.provider.js.map +1 -1
  197. package/dist/providers/openrouter/api.d.ts.map +1 -1
  198. package/dist/providers/openrouter/api.js +5 -13
  199. package/dist/providers/openrouter/api.js.map +1 -1
  200. package/dist/providers/openrouter/converters.d.ts.map +1 -1
  201. package/dist/providers/openrouter/converters.js +9 -28
  202. package/dist/providers/openrouter/converters.js.map +1 -1
  203. package/dist/providers/openrouter/converters.test.js +7 -11
  204. package/dist/providers/openrouter/converters.test.js.map +1 -1
  205. package/dist/providers/openrouter/index.d.ts.map +1 -1
  206. package/dist/providers/openrouter/index.js.map +1 -1
  207. package/dist/providers/openrouter/model.d.ts.map +1 -1
  208. package/dist/providers/openrouter/model.js +19 -55
  209. package/dist/providers/openrouter/model.js.map +1 -1
  210. package/dist/providers/openrouter/provider.d.ts.map +1 -1
  211. package/dist/providers/openrouter/provider.js.map +1 -1
  212. package/dist/providers/openrouter/reasoning-content.test.js +1 -1
  213. package/dist/providers/openrouter/reasoning-content.test.js.map +1 -1
  214. package/dist/providers/openrouter/utils.d.ts.map +1 -1
  215. package/dist/providers/openrouter/utils.js +2 -3
  216. package/dist/providers/openrouter/utils.js.map +1 -1
  217. package/dist/providers/openrouter.api.retry.test.js.map +1 -1
  218. package/dist/providers/openrouter.provider.createRunner.test.js +1 -1
  219. package/dist/providers/openrouter.provider.createRunner.test.js.map +1 -1
  220. package/dist/providers/openrouter.provider.js +6 -4
  221. package/dist/providers/openrouter.provider.js.map +1 -1
  222. package/dist/providers/openrouter.test.js +13 -17
  223. package/dist/providers/openrouter.test.js.map +1 -1
  224. package/dist/providers/registry.d.ts +5 -0
  225. package/dist/providers/registry.d.ts.map +1 -1
  226. package/dist/providers/registry.js.map +1 -1
  227. package/dist/providers/registry.test.js +11 -11
  228. package/dist/providers/registry.test.js.map +1 -1
  229. package/dist/providers/web-search/index.d.ts +1 -1
  230. package/dist/providers/web-search/index.d.ts.map +1 -1
  231. package/dist/providers/web-search/index.js.map +1 -1
  232. package/dist/providers/web-search/registry.d.ts.map +1 -1
  233. package/dist/providers/web-search/registry.js.map +1 -1
  234. package/dist/providers/web-search/registry.test.js +14 -14
  235. package/dist/providers/web-search/registry.test.js.map +1 -1
  236. package/dist/providers/web-search/tavily.provider.d.ts.map +1 -1
  237. package/dist/providers/web-search/tavily.provider.js +4 -4
  238. package/dist/providers/web-search/tavily.provider.js.map +1 -1
  239. package/dist/providers/web-search/tavily.provider.test.js +7 -7
  240. package/dist/providers/web-search/tavily.provider.test.js.map +1 -1
  241. package/dist/providers/web-search/types.d.ts.map +1 -1
  242. package/dist/scripts/extract-provider-traffic.d.ts +3 -0
  243. package/dist/scripts/extract-provider-traffic.d.ts.map +1 -0
  244. package/dist/scripts/extract-provider-traffic.js +32 -0
  245. package/dist/scripts/extract-provider-traffic.js.map +1 -0
  246. package/dist/services/approval-state.d.ts +24 -0
  247. package/dist/services/approval-state.d.ts.map +1 -0
  248. package/dist/services/approval-state.js +41 -0
  249. package/dist/services/approval-state.js.map +1 -0
  250. package/dist/services/approval-state.test.d.ts +2 -0
  251. package/dist/services/approval-state.test.d.ts.map +1 -0
  252. package/dist/services/approval-state.test.js +59 -0
  253. package/dist/services/approval-state.test.js.map +1 -0
  254. package/dist/services/command-message-streaming.d.ts +12 -0
  255. package/dist/services/command-message-streaming.d.ts.map +1 -0
  256. package/dist/services/command-message-streaming.js +68 -0
  257. package/dist/services/command-message-streaming.js.map +1 -0
  258. package/dist/services/command-message-streaming.test.d.ts +2 -0
  259. package/dist/services/command-message-streaming.test.d.ts.map +1 -0
  260. package/dist/services/command-message-streaming.test.js +78 -0
  261. package/dist/services/command-message-streaming.test.js.map +1 -0
  262. package/dist/services/conversation-events.d.ts +5 -13
  263. package/dist/services/conversation-events.d.ts.map +1 -1
  264. package/dist/services/conversation-integration.test.d.ts +2 -0
  265. package/dist/services/conversation-integration.test.d.ts.map +1 -0
  266. package/dist/services/conversation-integration.test.js +155 -0
  267. package/dist/services/conversation-integration.test.js.map +1 -0
  268. package/dist/services/conversation-result-builder.d.ts +41 -0
  269. package/dist/services/conversation-result-builder.d.ts.map +1 -0
  270. package/dist/services/conversation-result-builder.js +110 -0
  271. package/dist/services/conversation-result-builder.js.map +1 -0
  272. package/dist/services/conversation-result-builder.test.d.ts +2 -0
  273. package/dist/services/conversation-result-builder.test.d.ts.map +1 -0
  274. package/dist/services/conversation-result-builder.test.js +76 -0
  275. package/dist/services/conversation-result-builder.test.js.map +1 -0
  276. package/dist/services/conversation-service.d.ts +1 -1
  277. package/dist/services/conversation-service.d.ts.map +1 -1
  278. package/dist/services/conversation-service.js.map +1 -1
  279. package/dist/services/conversation-session-reasoning.test.js +3 -3
  280. package/dist/services/conversation-session-reasoning.test.js.map +1 -1
  281. package/dist/services/conversation-session.d.ts +7 -17
  282. package/dist/services/conversation-session.d.ts.map +1 -1
  283. package/dist/services/conversation-session.js +290 -278
  284. package/dist/services/conversation-session.js.map +1 -1
  285. package/dist/services/conversation-session.usage.test.d.ts +2 -0
  286. package/dist/services/conversation-session.usage.test.d.ts.map +1 -0
  287. package/dist/services/conversation-session.usage.test.js +59 -0
  288. package/dist/services/conversation-session.usage.test.js.map +1 -0
  289. package/dist/services/conversation-store.d.ts.map +1 -1
  290. package/dist/services/conversation-store.js +3 -9
  291. package/dist/services/conversation-store.js.map +1 -1
  292. package/dist/services/conversation-store.test.js +17 -14
  293. package/dist/services/conversation-store.test.js.map +1 -1
  294. package/dist/services/execution-context.d.ts.map +1 -1
  295. package/dist/services/execution-context.js.map +1 -1
  296. package/dist/services/execution-context.test.js +7 -7
  297. package/dist/services/execution-context.test.js.map +1 -1
  298. package/dist/services/file-service.d.ts.map +1 -1
  299. package/dist/services/file-service.js +5 -9
  300. package/dist/services/file-service.js.map +1 -1
  301. package/dist/services/history-service.d.ts.map +1 -1
  302. package/dist/services/history-service.js +3 -7
  303. package/dist/services/history-service.js.map +1 -1
  304. package/dist/services/logging-contract.d.ts +74 -0
  305. package/dist/services/logging-contract.d.ts.map +1 -0
  306. package/dist/services/logging-contract.js +157 -0
  307. package/dist/services/logging-contract.js.map +1 -0
  308. package/dist/services/logging-contract.test.d.ts +2 -0
  309. package/dist/services/logging-contract.test.d.ts.map +1 -0
  310. package/dist/services/logging-contract.test.js +66 -0
  311. package/dist/services/logging-contract.test.js.map +1 -0
  312. package/dist/services/logging-service.d.ts +5 -0
  313. package/dist/services/logging-service.d.ts.map +1 -1
  314. package/dist/services/logging-service.js +93 -21
  315. package/dist/services/logging-service.js.map +1 -1
  316. package/dist/services/model-service.d.ts.map +1 -1
  317. package/dist/services/model-service.js +2 -2
  318. package/dist/services/model-service.js.map +1 -1
  319. package/dist/services/model-service.test.js +6 -6
  320. package/dist/services/model-service.test.js.map +1 -1
  321. package/dist/services/service-interfaces.d.ts.map +1 -1
  322. package/dist/services/settings-env.d.ts +9 -0
  323. package/dist/services/settings-env.d.ts.map +1 -0
  324. package/dist/services/settings-env.js +75 -0
  325. package/dist/services/settings-env.js.map +1 -0
  326. package/dist/services/settings-env.test.d.ts +2 -0
  327. package/dist/services/settings-env.test.d.ts.map +1 -0
  328. package/dist/services/settings-env.test.js +32 -0
  329. package/dist/services/settings-env.test.js.map +1 -0
  330. package/dist/services/settings-merger.d.ts +26 -0
  331. package/dist/services/settings-merger.d.ts.map +1 -0
  332. package/dist/services/settings-merger.js +122 -0
  333. package/dist/services/settings-merger.js.map +1 -0
  334. package/dist/services/settings-merger.test.d.ts +2 -0
  335. package/dist/services/settings-merger.test.d.ts.map +1 -0
  336. package/dist/services/settings-merger.test.js +26 -0
  337. package/dist/services/settings-merger.test.js.map +1 -0
  338. package/dist/services/settings-persistence.d.ts +32 -0
  339. package/dist/services/settings-persistence.d.ts.map +1 -0
  340. package/dist/services/settings-persistence.js +134 -0
  341. package/dist/services/settings-persistence.js.map +1 -0
  342. package/dist/services/settings-persistence.test.d.ts +2 -0
  343. package/dist/services/settings-persistence.test.d.ts.map +1 -0
  344. package/dist/services/settings-persistence.test.js +51 -0
  345. package/dist/services/settings-persistence.test.js.map +1 -0
  346. package/dist/services/settings-schema.d.ts +320 -0
  347. package/dist/services/settings-schema.d.ts.map +1 -0
  348. package/dist/services/settings-schema.js +272 -0
  349. package/dist/services/settings-schema.js.map +1 -0
  350. package/dist/services/settings-service.d.ts +4 -248
  351. package/dist/services/settings-service.d.ts.map +1 -1
  352. package/dist/services/settings-service.js +45 -641
  353. package/dist/services/settings-service.js.map +1 -1
  354. package/dist/services/settings-service.mock.d.ts.map +1 -1
  355. package/dist/services/settings-service.mock.js.map +1 -1
  356. package/dist/services/singleton-deprecation.test.js +2 -2
  357. package/dist/services/singleton-deprecation.test.js.map +1 -1
  358. package/dist/services/ssh-service.d.ts.map +1 -1
  359. package/dist/services/ssh-service.js +8 -7
  360. package/dist/services/ssh-service.js.map +1 -1
  361. package/dist/services/ssh-service.test.js +15 -13
  362. package/dist/services/ssh-service.test.js.map +1 -1
  363. package/dist/services/stream-event-parsing.d.ts +4 -0
  364. package/dist/services/stream-event-parsing.d.ts.map +1 -0
  365. package/dist/services/stream-event-parsing.js +76 -0
  366. package/dist/services/stream-event-parsing.js.map +1 -0
  367. package/dist/services/stream-event-parsing.test.d.ts +2 -0
  368. package/dist/services/stream-event-parsing.test.d.ts.map +1 -0
  369. package/dist/services/stream-event-parsing.test.js +59 -0
  370. package/dist/services/stream-event-parsing.test.js.map +1 -0
  371. package/dist/services/stream-event-processor.d.ts +32 -0
  372. package/dist/services/stream-event-processor.d.ts.map +1 -0
  373. package/dist/services/stream-event-processor.js +344 -0
  374. package/dist/services/stream-event-processor.js.map +1 -0
  375. package/dist/services/stream-event-processor.test.d.ts +2 -0
  376. package/dist/services/stream-event-processor.test.d.ts.map +1 -0
  377. package/dist/services/stream-event-processor.test.js +117 -0
  378. package/dist/services/stream-event-processor.test.js.map +1 -0
  379. package/dist/tools/apply-patch.d.ts.map +1 -1
  380. package/dist/tools/apply-patch.js +45 -35
  381. package/dist/tools/apply-patch.js.map +1 -1
  382. package/dist/tools/apply-patch.test.js +23 -0
  383. package/dist/tools/apply-patch.test.js.map +1 -1
  384. package/dist/tools/ask-mentor.d.ts.map +1 -1
  385. package/dist/tools/ask-mentor.js +5 -15
  386. package/dist/tools/ask-mentor.js.map +1 -1
  387. package/dist/tools/ask-mentor.test.js +1 -1
  388. package/dist/tools/ask-mentor.test.js.map +1 -1
  389. package/dist/tools/create-file.d.ts.map +1 -1
  390. package/dist/tools/create-file.js +2 -2
  391. package/dist/tools/create-file.js.map +1 -1
  392. package/dist/tools/create-file.test.js.map +1 -1
  393. package/dist/tools/edit-healing.d.ts.map +1 -1
  394. package/dist/tools/edit-healing.js +5 -4
  395. package/dist/tools/edit-healing.js.map +1 -1
  396. package/dist/tools/edit-healing.test.js.map +1 -1
  397. package/dist/tools/find-files.d.ts +1 -0
  398. package/dist/tools/find-files.d.ts.map +1 -1
  399. package/dist/tools/find-files.js +93 -24
  400. package/dist/tools/find-files.js.map +1 -1
  401. package/dist/tools/find-files.test.js +46 -2
  402. package/dist/tools/find-files.test.js.map +1 -1
  403. package/dist/tools/format-helpers.d.ts.map +1 -1
  404. package/dist/tools/format-helpers.js +2 -6
  405. package/dist/tools/format-helpers.js.map +1 -1
  406. package/dist/tools/grep.d.ts +1 -1
  407. package/dist/tools/grep.d.ts.map +1 -1
  408. package/dist/tools/grep.js +6 -21
  409. package/dist/tools/grep.js.map +1 -1
  410. package/dist/tools/read-file.d.ts.map +1 -1
  411. package/dist/tools/read-file.js +3 -7
  412. package/dist/tools/read-file.js.map +1 -1
  413. package/dist/tools/read-file.test.js.map +1 -1
  414. package/dist/tools/search-replace.d.ts.map +1 -1
  415. package/dist/tools/search-replace.js +14 -31
  416. package/dist/tools/search-replace.js.map +1 -1
  417. package/dist/tools/search-replace.test.js.map +1 -1
  418. package/dist/tools/search.d.ts +1 -1
  419. package/dist/tools/search.d.ts.map +1 -1
  420. package/dist/tools/search.js +6 -16
  421. package/dist/tools/search.js.map +1 -1
  422. package/dist/tools/shell.d.ts +1 -1
  423. package/dist/tools/shell.d.ts.map +1 -1
  424. package/dist/tools/shell.js +25 -51
  425. package/dist/tools/shell.js.map +1 -1
  426. package/dist/tools/shell.test.d.ts +2 -0
  427. package/dist/tools/shell.test.d.ts.map +1 -0
  428. package/dist/tools/shell.test.js +70 -0
  429. package/dist/tools/shell.test.js.map +1 -0
  430. package/dist/tools/tool-names.d.ts +3 -0
  431. package/dist/tools/tool-names.d.ts.map +1 -0
  432. package/dist/tools/tool-names.js +3 -0
  433. package/dist/tools/tool-names.js.map +1 -0
  434. package/dist/tools/tool-names.test.d.ts +2 -0
  435. package/dist/tools/tool-names.test.d.ts.map +1 -0
  436. package/dist/tools/tool-names.test.js +7 -0
  437. package/dist/tools/tool-names.test.js.map +1 -0
  438. package/dist/tools/types.d.ts.map +1 -1
  439. package/dist/tools/utils.d.ts.map +1 -1
  440. package/dist/tools/utils.js +3 -8
  441. package/dist/tools/utils.js.map +1 -1
  442. package/dist/tools/web-fetch.d.ts +4 -4
  443. package/dist/tools/web-fetch.d.ts.map +1 -1
  444. package/dist/tools/web-fetch.js +32 -249
  445. package/dist/tools/web-fetch.js.map +1 -1
  446. package/dist/tools/web-fetch.test.js +3 -3
  447. package/dist/tools/web-fetch.test.js.map +1 -1
  448. package/dist/tools/web-search.d.ts.map +1 -1
  449. package/dist/tools/web-search.js +6 -10
  450. package/dist/tools/web-search.js.map +1 -1
  451. package/dist/tools/web-search.test.js +12 -14
  452. package/dist/tools/web-search.test.js.map +1 -1
  453. package/dist/types/messages.d.ts +29 -0
  454. package/dist/types/messages.d.ts.map +1 -0
  455. package/dist/types/messages.js +2 -0
  456. package/dist/types/messages.js.map +1 -0
  457. package/dist/utils/command-logger.d.ts.map +1 -1
  458. package/dist/utils/command-logger.js.map +1 -1
  459. package/dist/utils/command-safety/constants.d.ts.map +1 -1
  460. package/dist/utils/command-safety/constants.js +1 -9
  461. package/dist/utils/command-safety/constants.js.map +1 -1
  462. package/dist/utils/command-safety/find-helpers.d.ts.map +1 -1
  463. package/dist/utils/command-safety/find-helpers.js +4 -9
  464. package/dist/utils/command-safety/find-helpers.js.map +1 -1
  465. package/dist/utils/command-safety/handlers/find-handler.d.ts.map +1 -1
  466. package/dist/utils/command-safety/handlers/find-handler.js +3 -10
  467. package/dist/utils/command-safety/handlers/find-handler.js.map +1 -1
  468. package/dist/utils/command-safety/handlers/git-handler.d.ts.map +1 -1
  469. package/dist/utils/command-safety/handlers/git-handler.js +2 -4
  470. package/dist/utils/command-safety/handlers/git-handler.js.map +1 -1
  471. package/dist/utils/command-safety/handlers/index.d.ts +1 -1
  472. package/dist/utils/command-safety/handlers/index.d.ts.map +1 -1
  473. package/dist/utils/command-safety/handlers/index.js.map +1 -1
  474. package/dist/utils/command-safety/handlers/sed-handler.d.ts.map +1 -1
  475. package/dist/utils/command-safety/handlers/sed-handler.js.map +1 -1
  476. package/dist/utils/command-safety/handlers/types.d.ts.map +1 -1
  477. package/dist/utils/command-safety/index.d.ts.map +1 -1
  478. package/dist/utils/command-safety/index.js +4 -10
  479. package/dist/utils/command-safety/index.js.map +1 -1
  480. package/dist/utils/command-safety/path-analysis.d.ts.map +1 -1
  481. package/dist/utils/command-safety/path-analysis.js +9 -20
  482. package/dist/utils/command-safety/path-analysis.js.map +1 -1
  483. package/dist/utils/command-safety/utils.d.ts.map +1 -1
  484. package/dist/utils/command-safety/utils.js +1 -3
  485. package/dist/utils/command-safety/utils.js.map +1 -1
  486. package/dist/utils/command-safety.find.test.js +44 -87
  487. package/dist/utils/command-safety.find.test.js.map +1 -1
  488. package/dist/utils/command-safety.path.test.js +32 -67
  489. package/dist/utils/command-safety.path.test.js.map +1 -1
  490. package/dist/utils/conversation-event-handler.d.ts +4 -16
  491. package/dist/utils/conversation-event-handler.d.ts.map +1 -1
  492. package/dist/utils/conversation-event-handler.js +4 -8
  493. package/dist/utils/conversation-event-handler.js.map +1 -1
  494. package/dist/utils/conversation-event-handler.test.js +16 -18
  495. package/dist/utils/conversation-event-handler.test.js.map +1 -1
  496. package/dist/utils/conversation-utils.d.ts.map +1 -1
  497. package/dist/utils/conversation-utils.js +5 -8
  498. package/dist/utils/conversation-utils.js.map +1 -1
  499. package/dist/utils/conversation-utils.test.js +45 -44
  500. package/dist/utils/conversation-utils.test.js.map +1 -1
  501. package/dist/utils/diff.d.ts.map +1 -1
  502. package/dist/utils/diff.js +2 -4
  503. package/dist/utils/diff.js.map +1 -1
  504. package/dist/utils/diff.test.js +12 -12
  505. package/dist/utils/diff.test.js.map +1 -1
  506. package/dist/utils/error-helpers.d.ts.map +1 -1
  507. package/dist/utils/error-helpers.js +2 -6
  508. package/dist/utils/error-helpers.js.map +1 -1
  509. package/dist/utils/error-helpers.test.js +32 -32
  510. package/dist/utils/error-helpers.test.js.map +1 -1
  511. package/dist/utils/execute-shell.d.ts.map +1 -1
  512. package/dist/utils/execute-shell.js.map +1 -1
  513. package/dist/utils/execute-shell.test.js.map +1 -1
  514. package/dist/utils/extract-command-messages.d.ts.map +1 -1
  515. package/dist/utils/extract-command-messages.js +16 -21
  516. package/dist/utils/extract-command-messages.js.map +1 -1
  517. package/dist/utils/ink-render-options.d.ts.map +1 -1
  518. package/dist/utils/ink-render-options.js.map +1 -1
  519. package/dist/utils/log-viewer-filters.d.ts +29 -0
  520. package/dist/utils/log-viewer-filters.d.ts.map +1 -0
  521. package/dist/utils/log-viewer-filters.js +49 -0
  522. package/dist/utils/log-viewer-filters.js.map +1 -0
  523. package/dist/utils/log-viewer-filters.test.d.ts +2 -0
  524. package/dist/utils/log-viewer-filters.test.d.ts.map +1 -0
  525. package/dist/utils/log-viewer-filters.test.js +48 -0
  526. package/dist/utils/log-viewer-filters.test.js.map +1 -0
  527. package/dist/utils/message-buffer.d.ts.map +1 -1
  528. package/dist/utils/message-buffer.js.map +1 -1
  529. package/dist/utils/message-buffer.test.js +4 -4
  530. package/dist/utils/message-buffer.test.js.map +1 -1
  531. package/dist/utils/output-trim.d.ts.map +1 -1
  532. package/dist/utils/output-trim.js.map +1 -1
  533. package/dist/utils/provider-credentials.d.ts.map +1 -1
  534. package/dist/utils/provider-credentials.js +1 -1
  535. package/dist/utils/provider-credentials.js.map +1 -1
  536. package/dist/utils/provider-traffic-extractor.d.ts +18 -0
  537. package/dist/utils/provider-traffic-extractor.d.ts.map +1 -0
  538. package/dist/utils/provider-traffic-extractor.js +121 -0
  539. package/dist/utils/provider-traffic-extractor.js.map +1 -0
  540. package/dist/utils/provider-traffic-extractor.test.d.ts +2 -0
  541. package/dist/utils/provider-traffic-extractor.test.d.ts.map +1 -0
  542. package/dist/utils/provider-traffic-extractor.test.js +84 -0
  543. package/dist/utils/provider-traffic-extractor.test.js.map +1 -0
  544. package/dist/utils/settings-command.d.ts.map +1 -1
  545. package/dist/utils/settings-command.js +5 -12
  546. package/dist/utils/settings-command.js.map +1 -1
  547. package/dist/utils/ssh-config-parser.d.ts.map +1 -1
  548. package/dist/utils/ssh-config-parser.js.map +1 -1
  549. package/dist/utils/ssh-config-parser.test.js.map +1 -1
  550. package/dist/utils/streaming-session-factory.d.ts +33 -0
  551. package/dist/utils/streaming-session-factory.d.ts.map +1 -0
  552. package/dist/utils/streaming-session-factory.js +75 -0
  553. package/dist/utils/streaming-session-factory.js.map +1 -0
  554. package/dist/utils/streaming-session-factory.test.d.ts +2 -0
  555. package/dist/utils/streaming-session-factory.test.d.ts.map +1 -0
  556. package/dist/utils/streaming-session-factory.test.js +74 -0
  557. package/dist/utils/streaming-session-factory.test.js.map +1 -0
  558. package/dist/utils/streaming-updater.d.ts.map +1 -1
  559. package/dist/utils/streaming-updater.js.map +1 -1
  560. package/dist/utils/throttle.d.ts.map +1 -1
  561. package/dist/utils/throttle.js.map +1 -1
  562. package/dist/utils/token-usage.d.ts +16 -0
  563. package/dist/utils/token-usage.d.ts.map +1 -0
  564. package/dist/utils/token-usage.js +109 -0
  565. package/dist/utils/token-usage.js.map +1 -0
  566. package/dist/utils/token-usage.test.d.ts +2 -0
  567. package/dist/utils/token-usage.test.d.ts.map +1 -0
  568. package/dist/utils/token-usage.test.js +38 -0
  569. package/dist/utils/token-usage.test.js.map +1 -0
  570. package/dist/utils/trim-tool-output.d.ts +2 -0
  571. package/dist/utils/trim-tool-output.d.ts.map +1 -0
  572. package/dist/utils/trim-tool-output.js +52 -0
  573. package/dist/utils/trim-tool-output.js.map +1 -0
  574. package/package.json +117 -110
  575. package/{README.md → readme.md} +208 -136
@@ -19,14 +19,7 @@ export function analyzePathRisk(inputPath, loggingService) {
19
19
  if (!candidate)
20
20
  return SafetyStatus.GREEN;
21
21
  // GREEN: Safe pseudo-devices
22
- const safeDevices = new Set([
23
- '/dev/null',
24
- '/dev/stdout',
25
- '/dev/stderr',
26
- '/dev/zero',
27
- '/dev/random',
28
- '/dev/urandom',
29
- ]);
22
+ const safeDevices = new Set(['/dev/null', '/dev/stdout', '/dev/stderr', '/dev/zero', '/dev/random', '/dev/urandom']);
30
23
  if (safeDevices.has(candidate)) {
31
24
  return SafetyStatus.GREEN;
32
25
  }
@@ -35,12 +28,10 @@ export function analyzePathRisk(inputPath, loggingService) {
35
28
  const isAbsolute = path.isAbsolute(candidate);
36
29
  const normalizedCandidate = path.normalize(candidate);
37
30
  const normalizedCwd = path.normalize(cwd);
38
- const isWithinProject = isAbsolute &&
39
- (normalizedCandidate.startsWith(normalizedCwd + path.sep) ||
40
- normalizedCandidate === normalizedCwd);
31
+ const isWithinProject = isAbsolute && (normalizedCandidate.startsWith(normalizedCwd + path.sep) || normalizedCandidate === normalizedCwd);
41
32
  // RED: Home directory and sensitive paths
42
33
  // Check for various home directory representations
43
- const isHomeRelated = HOME_PATTERNS.some(pattern => pattern.test(candidate));
34
+ const isHomeRelated = HOME_PATTERNS.some((pattern) => pattern.test(candidate));
44
35
  if (isHomeRelated && !isWithinProject) {
45
36
  // Extract the path after home prefix for further analysis
46
37
  const sliced = candidate
@@ -59,8 +50,7 @@ export function analyzePathRisk(inputPath, loggingService) {
59
50
  return SafetyStatus.RED;
60
51
  }
61
52
  // Check for sensitive dotfiles and directories
62
- if (/^\/\.\w+/.test(sliced) ||
63
- SENSITIVE_PATHS.some(sensitive => sliced.includes(sensitive))) {
53
+ if (/^\/\.\w+/.test(sliced) || SENSITIVE_PATHS.some((sensitive) => sliced.includes(sensitive))) {
64
54
  logger.security('Path risk: home dotfile or config', {
65
55
  path: candidate,
66
56
  });
@@ -68,13 +58,12 @@ export function analyzePathRisk(inputPath, loggingService) {
68
58
  }
69
59
  // Check if filename in home directory is suspicious (credentials, secrets, etc.)
70
60
  const filename = path.basename(candidate);
71
- if (/\.json$/i.test(filename) &&
72
- SUSPICIOUS_JSON_PATTERNS.some(pattern => pattern.test(filename))) {
61
+ if (/\.json$/i.test(filename) && SUSPICIOUS_JSON_PATTERNS.some((pattern) => pattern.test(filename))) {
73
62
  logger.security('Path risk: suspicious JSON file in home directory', { path: candidate });
74
63
  return SafetyStatus.RED;
75
64
  }
76
65
  // Check for other sensitive extensions in home directory
77
- if (SENSITIVE_EXTENSIONS.some(ext => filename.endsWith(ext))) {
66
+ if (SENSITIVE_EXTENSIONS.some((ext) => filename.endsWith(ext))) {
78
67
  logger.security('Path risk: sensitive file in home directory', {
79
68
  path: candidate,
80
69
  });
@@ -83,7 +72,7 @@ export function analyzePathRisk(inputPath, loggingService) {
83
72
  }
84
73
  // RED: Absolute System Paths
85
74
  if (path.isAbsolute(candidate)) {
86
- if (SYSTEM_PATHS.some(sys => candidate.startsWith(sys))) {
75
+ if (SYSTEM_PATHS.some((sys) => candidate.startsWith(sys))) {
87
76
  logger.security('Path risk: absolute system path', {
88
77
  path: candidate,
89
78
  });
@@ -127,7 +116,7 @@ export function analyzePathRisk(inputPath, loggingService) {
127
116
  return SafetyStatus.GREEN;
128
117
  }
129
118
  // Check for suspicious credential/token patterns
130
- if (SUSPICIOUS_JSON_PATTERNS.some(pattern => pattern.test(filename))) {
119
+ if (SUSPICIOUS_JSON_PATTERNS.some((pattern) => pattern.test(filename))) {
131
120
  logger.security('Path risk: suspicious JSON filename', {
132
121
  path: candidate,
133
122
  });
@@ -142,7 +131,7 @@ export function analyzePathRisk(inputPath, loggingService) {
142
131
  return SafetyStatus.YELLOW;
143
132
  }
144
133
  // Sensitive extensions
145
- if (SENSITIVE_EXTENSIONS.some(ext => filename.endsWith(ext))) {
134
+ if (SENSITIVE_EXTENSIONS.some((ext) => filename.endsWith(ext))) {
146
135
  logger.security('Path risk: sensitive extension', {
147
136
  path: candidate,
148
137
  });
@@ -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":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,eAAe,EACf,eAAe,EACf,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAExB,MAAM,kBAAkB,GAAoB;IAC1C,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,IAAI,EAAE,GAAG,EAAE,GAAE,CAAC;IACd,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;IACf,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;IAClB,gBAAgB,EAAE,GAAG,EAAE,GAAE,CAAC;IAC1B,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS;IACjC,kBAAkB,EAAE,GAAG,EAAE,GAAE,CAAC;CAC7B,CAAC;AAEF,SAAS,SAAS,CAAC,cAAgC;IACjD,OAAO,cAAc,IAAI,kBAAkB,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,SAA6B,EAAE,cAAgC;IAC7F,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,SAAS;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC;IAE1C,6BAA6B;IAC7B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IACrH,IAAI,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,OAAO,YAAY,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,sDAAsD;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC9C,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1C,MAAM,eAAe,GACnB,UAAU,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,mBAAmB,KAAK,aAAa,CAAC,CAAC;IAEpH,0CAA0C;IAC1C,mDAAmD;IACnD,MAAM,aAAa,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAE/E,IAAI,aAAa,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,0DAA0D;QAC1D,MAAM,MAAM,GAAG,SAAS;aACrB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aACjB,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;aAC5B,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;aAC/B,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;aAC7B,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;aAC9B,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAE1B,wDAAwD;QACxD,IAAI,MAAM,KAAK,EAAE,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACpC,MAAM,CAAC,QAAQ,CAAC,kCAAkC,EAAE;gBAClD,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,YAAY,CAAC,GAAG,CAAC;QAC1B,CAAC;QAED,+CAA+C;QAC/C,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC/F,MAAM,CAAC,QAAQ,CAAC,mCAAmC,EAAE;gBACnD,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,YAAY,CAAC,GAAG,CAAC;QAC1B,CAAC;QAED,iFAAiF;QACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACpG,MAAM,CAAC,QAAQ,CAAC,mDAAmD,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;YAC1F,OAAO,YAAY,CAAC,GAAG,CAAC;QAC1B,CAAC;QAED,yDAAyD;QACzD,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/D,MAAM,CAAC,QAAQ,CAAC,6CAA6C,EAAE;gBAC7D,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,YAAY,CAAC,GAAG,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC1D,MAAM,CAAC,QAAQ,CAAC,iCAAiC,EAAE;gBACjD,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,YAAY,CAAC,GAAG,CAAC;QAC1B,CAAC;QACD,8BAA8B;QAC9B,IACE,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC;YAC/C,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3B,SAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,EACjC,CAAC;YACD,MAAM,CAAC,QAAQ,CAAC,kCAAkC,EAAE;gBAClD,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,YAAY,CAAC,GAAG,CAAC;QAC1B,CAAC;QAED,6DAA6D;QAC7D,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,yDAAyD;YACzD,MAAM,CAAC,QAAQ,CAAC,qCAAqC,EAAE;gBACrD,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,YAAY,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,0EAA0E;QAC1E,4EAA4E;IAC9E,CAAC;IAED,2BAA2B;IAC3B,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,yCAAyC,EAAE;YACzD,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,OAAO,YAAY,CAAC,GAAG,CAAC;IAC1B,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE1C,+EAA+E;IAC/E,6DAA6D;IAC7D,iDAAiD;IACjD,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,6CAA6C;QAC7C,sDAAsD;QACtD,IAAI,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAChD,OAAO,YAAY,CAAC,KAAK,CAAC;QAC5B,CAAC;QAED,iDAAiD;QACjD,IAAI,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACvE,MAAM,CAAC,QAAQ,CAAC,qCAAqC,EAAE;gBACrD,IAAI,EAAE,SAAS;aAChB,CAAC,CAAC;YACH,OAAO,YAAY,CAAC,MAAM,CAAC;QAC7B,CAAC;QAED,qDAAqD;QACrD,OAAO,YAAY,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,yBAAyB;IACzB,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,CAAC,QAAQ,CAAC,wBAAwB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC/D,OAAO,YAAY,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,uBAAuB;IACvB,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,CAAC,QAAQ,CAAC,gCAAgC,EAAE;YAChD,IAAI,EAAE,SAAS;SAChB,CAAC,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,OAAO,YAAY,CAAC,KAAK,CAAC;AAC5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../source/utils/command-safety/utils.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAa7D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../source/utils/command-safety/utils.ts"],"names":[],"mappings":"AACA,wBAAgB,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAW7D"}
@@ -13,9 +13,7 @@ export function extractWordText(word) {
13
13
  if (word.parameter)
14
14
  return `$${word.parameter}`;
15
15
  if (Array.isArray(word.parts)) {
16
- return word.parts
17
- .map((part) => extractWordText(part) ?? '')
18
- .join('');
16
+ return word.parts.map((part) => extractWordText(part) ?? '').join('');
19
17
  }
20
18
  return undefined;
21
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../source/utils/command-safety/utils.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,IAAS;IACrC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IACtD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IAC1D,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,KAAK;aACZ,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;aAC/C,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../source/utils/command-safety/utils.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,IAAS;IACvC,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC;IACtD,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC;IAC1D,IAAI,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import test from 'ava';
2
- import { classifyCommand, SafetyStatus, validateCommandSafety, } from './command-safety/index.js';
2
+ import { classifyCommand, SafetyStatus, validateCommandSafety } from './command-safety/index.js';
3
3
  // ============================================================================
4
4
  // GREEN: Safe read-only find commands
5
5
  // ============================================================================
6
- test('find - basic name search (GREEN)', t => {
6
+ test('find - basic name search (GREEN)', (t) => {
7
7
  const commands = [
8
8
  'find . -name "*.txt"',
9
9
  'find . -iname "*.TXT"',
@@ -15,19 +15,14 @@ test('find - basic name search (GREEN)', t => {
15
15
  t.is(result, SafetyStatus.GREEN, `"${cmd}" should be GREEN`);
16
16
  }
17
17
  });
18
- test('find - type filters (GREEN)', t => {
19
- const commands = [
20
- 'find . -type f',
21
- 'find . -type d',
22
- 'find . -type l',
23
- 'find ./src -type f -name "*.js"',
24
- ];
18
+ test('find - type filters (GREEN)', (t) => {
19
+ const commands = ['find . -type f', 'find . -type d', 'find . -type l', 'find ./src -type f -name "*.js"'];
25
20
  for (const cmd of commands) {
26
21
  const result = classifyCommand(cmd);
27
22
  t.is(result, SafetyStatus.GREEN, `"${cmd}" should be GREEN`);
28
23
  }
29
24
  });
30
- test('find - size and depth filters (GREEN)', t => {
25
+ test('find - size and depth filters (GREEN)', (t) => {
31
26
  const commands = [
32
27
  'find . -size +1M',
33
28
  'find . -maxdepth 3',
@@ -40,19 +35,14 @@ test('find - size and depth filters (GREEN)', t => {
40
35
  t.is(result, SafetyStatus.GREEN, `"${cmd}" should be GREEN`);
41
36
  }
42
37
  });
43
- test('find - safe print operations (GREEN)', t => {
44
- const commands = [
45
- 'find . -print',
46
- 'find . -print0',
47
- 'find . -printf "%f\\n"',
48
- 'find . -ls',
49
- ];
38
+ test('find - safe print operations (GREEN)', (t) => {
39
+ const commands = ['find . -print', 'find . -print0', 'find . -printf "%f\\n"', 'find . -ls'];
50
40
  for (const cmd of commands) {
51
41
  const result = classifyCommand(cmd);
52
42
  t.is(result, SafetyStatus.GREEN, `"${cmd}" should be GREEN`);
53
43
  }
54
44
  });
55
- test('find - path patterns (GREEN)', t => {
45
+ test('find - path patterns (GREEN)', (t) => {
56
46
  const commands = [
57
47
  'find . -path "*/test/*"',
58
48
  "find . -regex '.*\\.py$'", // Use single quotes to avoid $ expansion issues
@@ -66,18 +56,14 @@ test('find - path patterns (GREEN)', t => {
66
56
  // ============================================================================
67
57
  // YELLOW: Suspicious but not forbidden
68
58
  // ============================================================================
69
- test('find - symlink following flags (YELLOW)', t => {
70
- const commands = [
71
- 'find -L . -name "*.txt"',
72
- 'find -follow . -name "*.txt"',
73
- 'find -H . -name "*.txt"',
74
- ];
59
+ test('find - symlink following flags (YELLOW)', (t) => {
60
+ const commands = ['find -L . -name "*.txt"', 'find -follow . -name "*.txt"', 'find -H . -name "*.txt"'];
75
61
  for (const cmd of commands) {
76
62
  const result = classifyCommand(cmd);
77
63
  t.is(result, SafetyStatus.YELLOW, `"${cmd}" should be YELLOW`);
78
64
  }
79
65
  });
80
- test('find - file output flags (YELLOW)', t => {
66
+ test('find - file output flags (YELLOW)', (t) => {
81
67
  const commands = [
82
68
  'find . -fprint /tmp/output.txt',
83
69
  'find . -fprint0 /tmp/output.txt',
@@ -89,30 +75,21 @@ test('find - file output flags (YELLOW)', t => {
89
75
  t.is(result, SafetyStatus.YELLOW, `"${cmd}" should be YELLOW`);
90
76
  }
91
77
  });
92
- test('find - SUID/SGID permission searches (YELLOW)', t => {
93
- const commands = [
94
- 'find / -perm -4000',
95
- 'find / -perm -2000',
96
- 'find / -perm /6000',
97
- 'find . -perm -u+s',
98
- ];
78
+ test('find - SUID/SGID permission searches (YELLOW)', (t) => {
79
+ const commands = ['find / -perm -4000', 'find / -perm -2000', 'find / -perm /6000', 'find . -perm -u+s'];
99
80
  for (const cmd of commands) {
100
81
  const result = classifyCommand(cmd);
101
82
  t.is(result, SafetyStatus.YELLOW, `"${cmd}" should be YELLOW`);
102
83
  }
103
84
  });
104
- test('find - absolute system paths (YELLOW)', t => {
105
- const commands = [
106
- 'find /etc -name "*.conf"',
107
- 'find /var/log -name "*.log"',
108
- 'find /home -name "*.txt"',
109
- ];
85
+ test('find - absolute system paths (YELLOW)', (t) => {
86
+ const commands = ['find /etc -name "*.conf"', 'find /var/log -name "*.log"', 'find /home -name "*.txt"'];
110
87
  for (const cmd of commands) {
111
88
  const result = classifyCommand(cmd);
112
89
  t.is(result, SafetyStatus.YELLOW, `"${cmd}" should be YELLOW`);
113
90
  }
114
91
  });
115
- test('find - read-only exec commands (YELLOW)', t => {
92
+ test('find - read-only exec commands (YELLOW)', (t) => {
116
93
  const commands = [
117
94
  'find . -exec cat {} \\;',
118
95
  'find . -exec head {} \\;',
@@ -127,17 +104,13 @@ test('find - read-only exec commands (YELLOW)', t => {
127
104
  // ============================================================================
128
105
  // RED: Dangerous operations
129
106
  // ============================================================================
130
- test('find - delete flag (RED)', t => {
131
- const commands = [
132
- 'find . -name "*.tmp" -delete',
133
- 'find . -type f -delete',
134
- 'find ./temp -delete',
135
- ];
107
+ test('find - delete flag (RED)', (t) => {
108
+ const commands = ['find . -name "*.tmp" -delete', 'find . -type f -delete', 'find ./temp -delete'];
136
109
  for (const cmd of commands) {
137
110
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
138
111
  }
139
112
  });
140
- test('find - exec with destructive commands (RED)', t => {
113
+ test('find - exec with destructive commands (RED)', (t) => {
141
114
  const commands = [
142
115
  'find . -exec rm {} \\;',
143
116
  'find . -exec rm -rf {} \\;',
@@ -150,7 +123,7 @@ test('find - exec with destructive commands (RED)', t => {
150
123
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
151
124
  }
152
125
  });
153
- test('find - exec with shell commands (RED)', t => {
126
+ test('find - exec with shell commands (RED)', (t) => {
154
127
  const commands = [
155
128
  'find . -exec sh -c "rm $0" {} \\;',
156
129
  'find . -exec bash -c "echo test" {} \\;',
@@ -161,7 +134,7 @@ test('find - exec with shell commands (RED)', t => {
161
134
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
162
135
  }
163
136
  });
164
- test('find - exec with shell metacharacters (RED)', t => {
137
+ test('find - exec with shell metacharacters (RED)', (t) => {
165
138
  const commands = [
166
139
  'find . -exec echo {} | cat \\;',
167
140
  'find . -exec cat {} > /tmp/out \\;',
@@ -172,13 +145,13 @@ test('find - exec with shell metacharacters (RED)', t => {
172
145
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
173
146
  }
174
147
  });
175
- test('find - malformed exec (no terminator) (RED)', t => {
148
+ test('find - malformed exec (no terminator) (RED)', (t) => {
176
149
  const commands = ['find . -exec rm {}', 'find . -exec cat'];
177
150
  for (const cmd of commands) {
178
151
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED error for malformed exec`);
179
152
  }
180
153
  });
181
- test('find - execdir variants (RED)', t => {
154
+ test('find - execdir variants (RED)', (t) => {
182
155
  const commands = [
183
156
  'find . -execdir rm {} \\;',
184
157
  'find . -execdir bash -c "test" {} \\;',
@@ -192,24 +165,24 @@ test('find - execdir variants (RED)', t => {
192
165
  // ============================================================================
193
166
  // Edge Cases
194
167
  // ============================================================================
195
- test('find - multiple exec flags (RED if any dangerous)', t => {
168
+ test('find - multiple exec flags (RED if any dangerous)', (t) => {
196
169
  // First safe, second dangerous
197
170
  t.true(validateCommandSafety('find . -exec echo {} \\; -exec rm {} \\;'), 'Should return true if any exec is dangerous');
198
171
  });
199
- test('find - exec with plus terminator (RED if dangerous)', t => {
172
+ test('find - exec with plus terminator (RED if dangerous)', (t) => {
200
173
  const commands = ['find . -exec rm {} +', 'find . -exec rm {} \\+'];
201
174
  for (const cmd of commands) {
202
175
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
203
176
  }
204
177
  });
205
- test('find - exec with plus terminator (YELLOW if safe)', t => {
178
+ test('find - exec with plus terminator (YELLOW if safe)', (t) => {
206
179
  const commands = ['find . -exec cat {} +', 'find . -exec wc -l {} +'];
207
180
  for (const cmd of commands) {
208
181
  const result = classifyCommand(cmd);
209
182
  t.is(result, SafetyStatus.YELLOW, `"${cmd}" should be YELLOW`);
210
183
  }
211
184
  });
212
- test('find - false positives to avoid', t => {
185
+ test('find - false positives to avoid', (t) => {
213
186
  // These contain "exec" or "delete" but are not the dangerous flags
214
187
  const commands = [
215
188
  'find . -name "*exec*"',
@@ -222,39 +195,28 @@ test('find - false positives to avoid', t => {
222
195
  t.is(result, SafetyStatus.GREEN, `"${cmd}" should be GREEN (false positive avoidance)`);
223
196
  }
224
197
  });
225
- test('find - escaped semicolons (RED if dangerous)', t => {
226
- const commands = [
227
- 'find . -exec rm {} ";"',
228
- "find . -exec rm {} ';'",
229
- 'find . -exec rm {} \\;',
230
- ];
198
+ test('find - escaped semicolons (RED if dangerous)', (t) => {
199
+ const commands = ['find . -exec rm {} ";"', "find . -exec rm {} ';'", 'find . -exec rm {} \\;'];
231
200
  for (const cmd of commands) {
232
201
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
233
202
  }
234
203
  });
235
- test('find - directory traversal in paths (RED)', t => {
236
- const commands = [
237
- 'find ../../../etc -name "*.conf"',
238
- 'find ../../.ssh -type f',
239
- ];
204
+ test('find - directory traversal in paths (RED)', (t) => {
205
+ const commands = ['find ../../../etc -name "*.conf"', 'find ../../.ssh -type f'];
240
206
  for (const cmd of commands) {
241
207
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
242
208
  }
243
209
  });
244
- test('find - home directory searches (RED)', t => {
245
- const commands = [
246
- 'find ~ -name "*.txt"',
247
- 'find ~/.ssh -type f',
248
- 'find $HOME/.env',
249
- ];
210
+ test('find - home directory searches (RED)', (t) => {
211
+ const commands = ['find ~ -name "*.txt"', 'find ~/.ssh -type f', 'find $HOME/.env'];
250
212
  for (const cmd of commands) {
251
213
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
252
214
  }
253
215
  });
254
- test('find - empty exec command (RED)', t => {
216
+ test('find - empty exec command (RED)', (t) => {
255
217
  t.true(validateCommandSafety('find . -exec \\;'), 'Empty exec command should return true');
256
218
  });
257
- test('find - boolean operators maintain safety classification', t => {
219
+ test('find - boolean operators maintain safety classification', (t) => {
258
220
  // Safe OR safe = GREEN
259
221
  const safe = classifyCommand('find . -name "*.txt" -o -name "*.md"');
260
222
  t.is(safe, SafetyStatus.GREEN);
@@ -267,7 +229,7 @@ test('find - boolean operators maintain safety classification', t => {
267
229
  // ============================================================================
268
230
  // Security Review Findings - Critical Bypasses
269
231
  // ============================================================================
270
- test('find - interpreter bypasses (RED)', t => {
232
+ test('find - interpreter bypasses (RED)', (t) => {
271
233
  const commands = [
272
234
  'find . -exec perl -e "unlink" {} \\;',
273
235
  'find . -exec python -c "import os; os.system(\\"rm *\\")" {} \\;',
@@ -278,7 +240,7 @@ test('find - interpreter bypasses (RED)', t => {
278
240
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
279
241
  }
280
242
  });
281
- test('find - meta-executor bypasses (RED)', t => {
243
+ test('find - meta-executor bypasses (RED)', (t) => {
282
244
  const commands = [
283
245
  'find . -exec env rm {} \\;',
284
246
  'find . -exec xargs rm \\;',
@@ -289,7 +251,7 @@ test('find - meta-executor bypasses (RED)', t => {
289
251
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
290
252
  }
291
253
  });
292
- test('find - more destructive commands (RED)', t => {
254
+ test('find - more destructive commands (RED)', (t) => {
293
255
  const commands = [
294
256
  'find . -exec truncate -s 0 {} \\;',
295
257
  'find . -exec tee /dev/null {} \\;',
@@ -301,21 +263,21 @@ test('find - more destructive commands (RED)', t => {
301
263
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
302
264
  }
303
265
  });
304
- test('find - executing found files directly (RED)', t => {
266
+ test('find - executing found files directly (RED)', (t) => {
305
267
  t.true(validateCommandSafety('find / -perm -4000 -exec {} \\;'), 'Executing found SUID binaries should return true for RED command');
306
268
  });
307
- test('find - inode-based bypass (YELLOW)', t => {
269
+ test('find - inode-based bypass (YELLOW)', (t) => {
308
270
  const result = classifyCommand('find / -inum 12345');
309
271
  t.is(result, SafetyStatus.YELLOW, '-inum flag should be YELLOW');
310
272
  });
311
- test('find - root traversal for DoS (YELLOW)', t => {
273
+ test('find - root traversal for DoS (YELLOW)', (t) => {
312
274
  const commands = ['find / -name "*"', 'find // -type f'];
313
275
  for (const cmd of commands) {
314
276
  const result = classifyCommand(cmd);
315
277
  t.is(result, SafetyStatus.YELLOW, `"${cmd}" should be YELLOW (DoS risk)`);
316
278
  }
317
279
  });
318
- test('find - expanded home directory patterns (RED)', t => {
280
+ test('find - expanded home directory patterns (RED)', (t) => {
319
281
  const commands = [
320
282
  'find /home/user -name "*"',
321
283
  'find /Users/alice -name "*"',
@@ -326,13 +288,8 @@ test('find - expanded home directory patterns (RED)', t => {
326
288
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
327
289
  }
328
290
  });
329
- test('find - sensitive dotfiles expanded list (RED)', t => {
330
- const commands = [
331
- 'find ~/.aws -type f',
332
- 'find ~/.kube/config',
333
- 'find ~/.gnupg -name "*"',
334
- 'find ~/.bash_history',
335
- ];
291
+ test('find - sensitive dotfiles expanded list (RED)', (t) => {
292
+ const commands = ['find ~/.aws -type f', 'find ~/.kube/config', 'find ~/.gnupg -name "*"', 'find ~/.bash_history'];
336
293
  for (const cmd of commands) {
337
294
  t.true(validateCommandSafety(cmd), `"${cmd}" should return true for RED command`);
338
295
  }
@@ -1 +1 @@
1
- {"version":3,"file":"command-safety.find.test.js","sourceRoot":"","sources":["../../source/utils/command-safety.find.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command-safety.find.test.js","sourceRoot":"","sources":["../../source/utils/command-safety.find.test.ts"],"names":[],"mappings":"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"}