@aria-cli/tools 1.0.18 → 1.0.31

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 (466) hide show
  1. package/dist/.aria-build-stamp.json +1 -1
  2. package/dist/ask-user-interaction.js +23 -0
  3. package/dist/cache/web-cache.js +67 -0
  4. package/dist/definitions/arion.js +105 -0
  5. package/dist/definitions/browser/browser.js +419 -0
  6. package/dist/definitions/browser/index.js +5 -0
  7. package/dist/definitions/browser/pw-downloads.js +115 -0
  8. package/dist/definitions/browser/pw-interactions.js +200 -0
  9. package/dist/definitions/browser/pw-responses.js +77 -0
  10. package/dist/definitions/browser/pw-session.js +311 -0
  11. package/dist/definitions/browser/pw-shared.js +67 -0
  12. package/dist/definitions/browser/pw-snapshot.js +302 -0
  13. package/dist/definitions/browser/pw-state.js +63 -0
  14. package/dist/definitions/browser/types.js +5 -0
  15. package/dist/definitions/code-intelligence.js +471 -0
  16. package/dist/definitions/core.js +110 -0
  17. package/dist/definitions/delegation.js +513 -0
  18. package/dist/definitions/deploy.js +66 -0
  19. package/dist/definitions/filesystem.js +197 -0
  20. package/dist/definitions/frg.js +64 -0
  21. package/{dist-cjs/definitions/index.d.ts → dist/definitions/index.js} +2 -0
  22. package/dist/definitions/memory.js +124 -0
  23. package/dist/definitions/messaging.js +626 -0
  24. package/dist/definitions/meta.js +350 -0
  25. package/dist/definitions/network.js +160 -0
  26. package/dist/definitions/outlook.js +278 -0
  27. package/dist/definitions/patch/apply-patch.js +185 -0
  28. package/dist/definitions/patch/fuzzy-match.js +167 -0
  29. package/{dist-cjs/definitions/patch/index.d.ts → dist/definitions/patch/index.js} +1 -0
  30. package/dist/definitions/patch/patch-parser.js +208 -0
  31. package/dist/definitions/patch/sandbox-paths.js +106 -0
  32. package/dist/definitions/process/index.js +5 -0
  33. package/dist/definitions/process/process-registry.js +214 -0
  34. package/dist/definitions/process/process.js +387 -0
  35. package/dist/definitions/process/pty-keys.js +255 -0
  36. package/dist/definitions/process/session-slug.js +143 -0
  37. package/dist/definitions/quip.js +196 -0
  38. package/dist/definitions/search.js +61 -0
  39. package/dist/definitions/session-history.js +70 -0
  40. package/dist/definitions/shell.js +182 -0
  41. package/dist/definitions/slack.js +181 -0
  42. package/dist/definitions/web.js +110 -0
  43. package/dist/{dns-pinning-vc0r0vpx.js → dns-pinning-7szqhtmq.js} +1 -1
  44. package/dist/executors/apply-patch.js +902 -0
  45. package/dist/executors/arion.js +120 -0
  46. package/dist/executors/code-intelligence.js +883 -0
  47. package/dist/executors/deploy.js +849 -0
  48. package/dist/executors/filesystem.js +1119 -0
  49. package/dist/executors/frg-freshness.js +577 -0
  50. package/dist/executors/frg.js +299 -0
  51. package/{dist-cjs/executors/index.d.ts → dist/executors/index.js} +22 -19
  52. package/dist/executors/learning-meta.js +1147 -0
  53. package/dist/executors/lsp-client.js +297 -0
  54. package/dist/executors/memory.js +751 -0
  55. package/dist/executors/meta.js +221 -0
  56. package/dist/executors/process-registry.js +466 -0
  57. package/dist/executors/pty-session-store.js +31 -0
  58. package/dist/executors/pty.js +281 -0
  59. package/dist/executors/restart.js +120 -0
  60. package/dist/executors/search-freshness.js +196 -0
  61. package/dist/executors/search-types.js +53 -0
  62. package/dist/executors/search.js +67 -0
  63. package/dist/executors/self-diagnose.js +399 -0
  64. package/dist/executors/session-history.js +284 -0
  65. package/dist/executors/shell-safety.js +474 -0
  66. package/dist/executors/shell.js +955 -0
  67. package/dist/executors/utils.js +34 -0
  68. package/dist/executors/web.js +543 -0
  69. package/dist/extraction/content-extraction.js +248 -0
  70. package/dist/extraction/index.js +5 -0
  71. package/dist/headless-control-contract.js +968 -0
  72. package/dist/{index-x52t2mbj.js → index-45qvfjbf.js} +2 -2
  73. package/dist/{index-8xap0se3.js → index-b3sdwzh5.js} +1 -1
  74. package/dist/index-tvryzx00.js +2 -0
  75. package/dist/index.js +71 -372
  76. package/dist/local-control-http-auth.js +3 -0
  77. package/dist/{lsp-client-msnj763y.js → lsp-client-3qxptwyw.js} +1 -1
  78. package/dist/mcp/client.js +182 -0
  79. package/dist/mcp/connection.js +484 -0
  80. package/dist/mcp/index.js +11 -0
  81. package/dist/mcp/jsonrpc.js +145 -0
  82. package/dist/mcp/types.js +8 -0
  83. package/dist/network-control-adapter.js +73 -0
  84. package/dist/network-runtime/address-types.js +166 -0
  85. package/dist/network-runtime/db-owner-fencing.js +70 -0
  86. package/dist/network-runtime/delivery-receipts.js +270 -0
  87. package/dist/network-runtime/direct-endpoint-authority.js +26 -0
  88. package/dist/network-runtime/index.js +13 -1
  89. package/dist/network-runtime/local-control-contract.js +628 -0
  90. package/dist/network-runtime/node-store-contract.js +35 -0
  91. package/dist/network-runtime/pair-route-contract.js +78 -0
  92. package/dist/network-runtime/peer-capabilities.js +29 -0
  93. package/dist/network-runtime/peer-principal-ref.js +13 -0
  94. package/dist/network-runtime/peer-state-machine.js +122 -0
  95. package/dist/network-runtime/protocol-schemas.js +206 -0
  96. package/dist/network-runtime/runtime-bootstrap-contract.js +61 -0
  97. package/dist/outlook/desktop-session.js +280 -0
  98. package/dist/policy.js +150 -0
  99. package/dist/providers/brave.js +63 -0
  100. package/dist/providers/duckduckgo.js +177 -0
  101. package/dist/providers/exa.js +64 -0
  102. package/dist/providers/firecrawl.js +56 -0
  103. package/{dist-cjs/providers/index.d.ts → dist/providers/index.js} +1 -1
  104. package/dist/providers/jina.js +50 -0
  105. package/dist/providers/router.js +97 -0
  106. package/dist/providers/search-provider.js +33 -0
  107. package/dist/providers/tavily.js +55 -0
  108. package/dist/pty-w5c9dv33.js +1 -0
  109. package/dist/quip/desktop-session.js +318 -0
  110. package/{dist-cjs/registry/index.d.ts → dist/registry/index.js} +1 -0
  111. package/dist/registry/registry.js +757 -0
  112. package/dist/runtime-socket-local-control-client.js +331 -0
  113. package/dist/security/dns-normalization.js +20 -0
  114. package/dist/security/dns-pinning.js +124 -0
  115. package/dist/security/external-content.js +92 -0
  116. package/dist/security/ssrf.js +182 -0
  117. package/dist/session-history-gk75e3ta.js +1 -0
  118. package/dist/slack/desktop-session.js +325 -0
  119. package/dist/tool-factory.js +48 -0
  120. package/dist/types.js +8 -0
  121. package/dist/utils/retry.js +133 -0
  122. package/dist/utils/safe-parse-json.js +161 -0
  123. package/dist/utils/url.js +20 -0
  124. package/dist-cjs/ask-user-interaction.js +28 -0
  125. package/dist-cjs/cache/web-cache.js +71 -0
  126. package/dist-cjs/definitions/arion.js +108 -0
  127. package/dist-cjs/definitions/browser/browser.js +422 -0
  128. package/dist-cjs/definitions/browser/index.js +9 -0
  129. package/dist-cjs/definitions/browser/pw-downloads.js +118 -0
  130. package/dist-cjs/definitions/browser/pw-interactions.js +214 -0
  131. package/dist-cjs/definitions/browser/pw-responses.js +85 -0
  132. package/dist-cjs/definitions/browser/pw-session.js +327 -0
  133. package/dist-cjs/definitions/browser/pw-shared.js +73 -0
  134. package/dist-cjs/definitions/browser/pw-snapshot.js +308 -0
  135. package/dist-cjs/definitions/browser/pw-state.js +71 -0
  136. package/dist-cjs/definitions/browser/types.js +6 -0
  137. package/dist-cjs/definitions/code-intelligence.js +474 -0
  138. package/dist-cjs/definitions/core.js +134 -0
  139. package/dist-cjs/definitions/delegation.js +516 -0
  140. package/dist-cjs/definitions/deploy.js +69 -0
  141. package/dist-cjs/definitions/filesystem.js +200 -0
  142. package/dist-cjs/definitions/frg.js +67 -0
  143. package/dist-cjs/definitions/index.js +44 -0
  144. package/dist-cjs/definitions/memory.js +127 -0
  145. package/dist-cjs/definitions/messaging.js +632 -0
  146. package/dist-cjs/definitions/meta.js +353 -0
  147. package/dist-cjs/definitions/network.js +163 -0
  148. package/dist-cjs/definitions/outlook.js +281 -0
  149. package/dist-cjs/definitions/patch/apply-patch.js +192 -0
  150. package/dist-cjs/definitions/patch/fuzzy-match.js +173 -0
  151. package/dist-cjs/definitions/patch/index.js +6 -0
  152. package/dist-cjs/definitions/patch/patch-parser.js +216 -0
  153. package/dist-cjs/definitions/patch/sandbox-paths.js +114 -0
  154. package/dist-cjs/definitions/process/index.js +9 -0
  155. package/dist-cjs/definitions/process/process-registry.js +232 -0
  156. package/dist-cjs/definitions/process/process.js +390 -0
  157. package/dist-cjs/definitions/process/pty-keys.js +260 -0
  158. package/dist-cjs/definitions/process/session-slug.js +146 -0
  159. package/dist-cjs/definitions/quip.js +199 -0
  160. package/dist-cjs/definitions/search.js +64 -0
  161. package/dist-cjs/definitions/session-history.js +73 -0
  162. package/dist-cjs/definitions/shell.js +185 -0
  163. package/dist-cjs/definitions/slack.js +184 -0
  164. package/dist-cjs/definitions/web.js +113 -0
  165. package/dist-cjs/executors/apply-patch.js +939 -0
  166. package/dist-cjs/executors/arion.js +126 -0
  167. package/dist-cjs/executors/code-intelligence.js +926 -0
  168. package/dist-cjs/executors/deploy.js +870 -0
  169. package/dist-cjs/executors/filesystem.js +1164 -0
  170. package/dist-cjs/executors/frg-freshness.js +628 -0
  171. package/dist-cjs/executors/frg.js +335 -0
  172. package/dist-cjs/executors/index.js +144 -0
  173. package/dist-cjs/executors/learning-meta.js +1166 -0
  174. package/dist-cjs/executors/memory.js +797 -0
  175. package/dist-cjs/executors/meta.js +227 -0
  176. package/dist-cjs/executors/process-registry.js +470 -0
  177. package/dist-cjs/executors/pty-session-store.js +35 -0
  178. package/dist-cjs/executors/pty.js +289 -0
  179. package/dist-cjs/executors/restart.js +156 -0
  180. package/dist-cjs/executors/search-freshness.js +235 -0
  181. package/dist-cjs/executors/search-types.js +57 -0
  182. package/dist-cjs/executors/search.js +103 -0
  183. package/dist-cjs/executors/self-diagnose.js +435 -0
  184. package/dist-cjs/executors/session-history.js +321 -0
  185. package/dist-cjs/executors/shell-safety.js +479 -0
  186. package/dist-cjs/executors/shell.js +1002 -0
  187. package/dist-cjs/executors/utils.js +74 -0
  188. package/dist-cjs/executors/web.js +548 -0
  189. package/dist-cjs/extraction/content-extraction.js +289 -0
  190. package/dist-cjs/extraction/index.js +9 -0
  191. package/dist-cjs/headless-control-contract.js +973 -0
  192. package/dist-cjs/index.js +436 -385
  193. package/dist-cjs/local-control-http-auth.js +6 -0
  194. package/dist-cjs/mcp/client.js +186 -0
  195. package/dist-cjs/mcp/connection.js +488 -0
  196. package/dist-cjs/mcp/index.js +31 -0
  197. package/dist-cjs/mcp/jsonrpc.js +149 -0
  198. package/dist-cjs/mcp/types.js +9 -0
  199. package/dist-cjs/network-control-adapter.js +78 -0
  200. package/dist-cjs/network-runtime/address-types.js +169 -0
  201. package/dist-cjs/network-runtime/db-owner-fencing.js +77 -0
  202. package/dist-cjs/network-runtime/delivery-receipts.js +279 -0
  203. package/dist-cjs/network-runtime/direct-endpoint-authority.js +30 -0
  204. package/dist-cjs/network-runtime/index.js +173 -8
  205. package/dist-cjs/network-runtime/local-control-contract.js +634 -0
  206. package/dist-cjs/network-runtime/node-store-contract.js +39 -0
  207. package/dist-cjs/network-runtime/pair-route-contract.js +81 -0
  208. package/dist-cjs/network-runtime/peer-capabilities.js +38 -0
  209. package/dist-cjs/network-runtime/peer-principal-ref.js +16 -0
  210. package/dist-cjs/network-runtime/peer-state-machine.js +130 -0
  211. package/dist-cjs/network-runtime/protocol-schemas.js +213 -0
  212. package/dist-cjs/network-runtime/runtime-bootstrap-contract.js +64 -0
  213. package/dist-cjs/outlook/desktop-session.js +319 -0
  214. package/dist-cjs/policy.js +156 -0
  215. package/dist-cjs/providers/brave.js +67 -0
  216. package/dist-cjs/providers/duckduckgo.js +181 -0
  217. package/dist-cjs/providers/exa.js +68 -0
  218. package/dist-cjs/providers/firecrawl.js +60 -0
  219. package/dist-cjs/providers/index.js +18 -0
  220. package/dist-cjs/providers/jina.js +54 -0
  221. package/dist-cjs/providers/router.js +101 -0
  222. package/dist-cjs/providers/search-provider.js +37 -0
  223. package/dist-cjs/providers/tavily.js +59 -0
  224. package/dist-cjs/quip/desktop-session.js +354 -0
  225. package/dist-cjs/registry/index.js +7 -0
  226. package/dist-cjs/registry/registry.js +762 -0
  227. package/dist-cjs/runtime-socket-local-control-client.js +368 -0
  228. package/dist-cjs/security/dns-normalization.js +23 -0
  229. package/dist-cjs/security/dns-pinning.js +161 -0
  230. package/dist-cjs/security/external-content.js +96 -0
  231. package/dist-cjs/security/ssrf.js +222 -0
  232. package/dist-cjs/slack/desktop-session.js +367 -0
  233. package/dist-cjs/tool-factory.js +51 -0
  234. package/dist-cjs/types.js +9 -0
  235. package/dist-cjs/utils/retry.js +170 -0
  236. package/dist-cjs/utils/safe-parse-json.js +165 -0
  237. package/dist-cjs/utils/url.js +24 -0
  238. package/package.json +11 -10
  239. package/dist/ask-user-interaction.d.ts +0 -10
  240. package/dist/cache/web-cache.d.ts +0 -52
  241. package/dist/definitions/arion.d.ts +0 -8
  242. package/dist/definitions/browser/browser.d.ts +0 -2
  243. package/dist/definitions/browser/index.d.ts +0 -1
  244. package/dist/definitions/browser/pw-downloads.d.ts +0 -13
  245. package/dist/definitions/browser/pw-interactions.d.ts +0 -78
  246. package/dist/definitions/browser/pw-responses.d.ts +0 -28
  247. package/dist/definitions/browser/pw-session.d.ts +0 -65
  248. package/dist/definitions/browser/pw-shared.d.ts +0 -22
  249. package/dist/definitions/browser/pw-snapshot.d.ts +0 -34
  250. package/dist/definitions/browser/pw-state.d.ts +0 -22
  251. package/dist/definitions/browser/types.d.ts +0 -277
  252. package/dist/definitions/code-intelligence.d.ts +0 -8
  253. package/dist/definitions/core.d.ts +0 -47
  254. package/dist/definitions/delegation.d.ts +0 -11
  255. package/dist/definitions/deploy.d.ts +0 -15
  256. package/dist/definitions/filesystem.d.ts +0 -9
  257. package/dist/definitions/frg.d.ts +0 -3
  258. package/dist/definitions/index.d.ts +0 -19
  259. package/dist/definitions/memory.d.ts +0 -8
  260. package/dist/definitions/messaging.d.ts +0 -11
  261. package/dist/definitions/meta.d.ts +0 -11
  262. package/dist/definitions/network.d.ts +0 -11
  263. package/dist/definitions/outlook.d.ts +0 -2
  264. package/dist/definitions/patch/apply-patch.d.ts +0 -11
  265. package/dist/definitions/patch/fuzzy-match.d.ts +0 -10
  266. package/dist/definitions/patch/index.d.ts +0 -1
  267. package/dist/definitions/patch/patch-parser.d.ts +0 -50
  268. package/dist/definitions/patch/sandbox-paths.d.ts +0 -18
  269. package/dist/definitions/process/index.d.ts +0 -1
  270. package/dist/definitions/process/process-registry.d.ts +0 -67
  271. package/dist/definitions/process/process.d.ts +0 -9
  272. package/dist/definitions/process/pty-keys.d.ts +0 -13
  273. package/dist/definitions/process/session-slug.d.ts +0 -1
  274. package/dist/definitions/quip.d.ts +0 -2
  275. package/dist/definitions/search.d.ts +0 -9
  276. package/dist/definitions/session-history.d.ts +0 -11
  277. package/dist/definitions/shell.d.ts +0 -8
  278. package/dist/definitions/slack.d.ts +0 -2
  279. package/dist/definitions/web.d.ts +0 -8
  280. package/dist/executors/apply-patch.d.ts +0 -51
  281. package/dist/executors/arion.d.ts +0 -50
  282. package/dist/executors/code-intelligence.d.ts +0 -138
  283. package/dist/executors/deploy.d.ts +0 -169
  284. package/dist/executors/filesystem.d.ts +0 -150
  285. package/dist/executors/frg-freshness.d.ts +0 -93
  286. package/dist/executors/frg.d.ts +0 -27
  287. package/dist/executors/index.d.ts +0 -44
  288. package/dist/executors/learning-meta.d.ts +0 -87
  289. package/dist/executors/lsp-client.d.ts +0 -38
  290. package/dist/executors/memory.d.ts +0 -203
  291. package/dist/executors/meta.d.ts +0 -73
  292. package/dist/executors/process-registry.d.ts +0 -98
  293. package/dist/executors/pty-session-store.d.ts +0 -14
  294. package/dist/executors/pty.d.ts +0 -133
  295. package/dist/executors/restart.d.ts +0 -13
  296. package/dist/executors/search-freshness.d.ts +0 -50
  297. package/dist/executors/search-types.d.ts +0 -52
  298. package/dist/executors/search.d.ts +0 -11
  299. package/dist/executors/self-diagnose.d.ts +0 -89
  300. package/dist/executors/session-history.d.ts +0 -75
  301. package/dist/executors/shell-safety.d.ts +0 -27
  302. package/dist/executors/shell.d.ts +0 -168
  303. package/dist/executors/utils.d.ts +0 -20
  304. package/dist/executors/web.d.ts +0 -89
  305. package/dist/extraction/content-extraction.d.ts +0 -48
  306. package/dist/extraction/index.d.ts +0 -4
  307. package/dist/headless-control-contract.d.ts +0 -3182
  308. package/dist/index-a2fr1b3x.js +0 -2
  309. package/dist/index.d.ts +0 -62
  310. package/dist/local-control-http-auth.d.ts +0 -2
  311. package/dist/mcp/client.d.ts +0 -68
  312. package/dist/mcp/connection.d.ts +0 -54
  313. package/dist/mcp/index.d.ts +0 -10
  314. package/dist/mcp/jsonrpc.d.ts +0 -36
  315. package/dist/mcp/types.d.ts +0 -178
  316. package/dist/network-control-adapter.d.ts +0 -4
  317. package/dist/network-runtime/address-types.d.ts +0 -201
  318. package/dist/network-runtime/db-owner-fencing.d.ts +0 -43
  319. package/dist/network-runtime/delivery-receipts.d.ts +0 -117
  320. package/dist/network-runtime/direct-endpoint-authority.d.ts +0 -8
  321. package/dist/network-runtime/index.d.ts +0 -24
  322. package/dist/network-runtime/local-control-contract.d.ts +0 -758
  323. package/dist/network-runtime/node-store-contract.d.ts +0 -49
  324. package/dist/network-runtime/pair-route-contract.d.ts +0 -100
  325. package/dist/network-runtime/peer-capabilities.d.ts +0 -10
  326. package/dist/network-runtime/peer-principal-ref.d.ts +0 -9
  327. package/dist/network-runtime/peer-state-machine.d.ts +0 -70
  328. package/dist/network-runtime/protocol-schemas.d.ts +0 -328
  329. package/dist/network-runtime/runtime-bootstrap-contract.d.ts +0 -81
  330. package/dist/outlook/desktop-session.d.ts +0 -68
  331. package/dist/policy.d.ts +0 -43
  332. package/dist/providers/brave.d.ts +0 -10
  333. package/dist/providers/duckduckgo.d.ts +0 -18
  334. package/dist/providers/exa.d.ts +0 -10
  335. package/dist/providers/firecrawl.d.ts +0 -10
  336. package/dist/providers/index.d.ts +0 -8
  337. package/dist/providers/jina.d.ts +0 -10
  338. package/dist/providers/router.d.ts +0 -21
  339. package/dist/providers/search-provider.d.ts +0 -35
  340. package/dist/providers/tavily.d.ts +0 -10
  341. package/dist/pty-ff59hy75.js +0 -1
  342. package/dist/quip/desktop-session.d.ts +0 -69
  343. package/dist/registry/index.d.ts +0 -1
  344. package/dist/registry/registry.d.ts +0 -156
  345. package/dist/runtime-socket-local-control-client.d.ts +0 -10
  346. package/dist/security/dns-normalization.d.ts +0 -6
  347. package/dist/security/dns-pinning.d.ts +0 -27
  348. package/dist/security/external-content.d.ts +0 -40
  349. package/dist/security/ssrf.d.ts +0 -40
  350. package/dist/session-history-6gn52xhp.js +0 -1
  351. package/dist/slack/desktop-session.d.ts +0 -69
  352. package/dist/tool-factory.d.ts +0 -46
  353. package/dist/types.d.ts +0 -1192
  354. package/dist/utils/retry.d.ts +0 -11
  355. package/dist/utils/safe-parse-json.d.ts +0 -26
  356. package/dist/utils/url.d.ts +0 -10
  357. package/dist-cjs/ask-user-interaction.d.ts +0 -10
  358. package/dist-cjs/cache/web-cache.d.ts +0 -52
  359. package/dist-cjs/definitions/arion.d.ts +0 -8
  360. package/dist-cjs/definitions/browser/browser.d.ts +0 -2
  361. package/dist-cjs/definitions/browser/index.d.ts +0 -1
  362. package/dist-cjs/definitions/browser/pw-downloads.d.ts +0 -13
  363. package/dist-cjs/definitions/browser/pw-interactions.d.ts +0 -78
  364. package/dist-cjs/definitions/browser/pw-responses.d.ts +0 -28
  365. package/dist-cjs/definitions/browser/pw-session.d.ts +0 -65
  366. package/dist-cjs/definitions/browser/pw-shared.d.ts +0 -22
  367. package/dist-cjs/definitions/browser/pw-snapshot.d.ts +0 -34
  368. package/dist-cjs/definitions/browser/pw-state.d.ts +0 -22
  369. package/dist-cjs/definitions/browser/types.d.ts +0 -277
  370. package/dist-cjs/definitions/code-intelligence.d.ts +0 -8
  371. package/dist-cjs/definitions/core.d.ts +0 -47
  372. package/dist-cjs/definitions/delegation.d.ts +0 -11
  373. package/dist-cjs/definitions/deploy.d.ts +0 -15
  374. package/dist-cjs/definitions/filesystem.d.ts +0 -9
  375. package/dist-cjs/definitions/frg.d.ts +0 -3
  376. package/dist-cjs/definitions/memory.d.ts +0 -8
  377. package/dist-cjs/definitions/messaging.d.ts +0 -11
  378. package/dist-cjs/definitions/meta.d.ts +0 -11
  379. package/dist-cjs/definitions/network.d.ts +0 -11
  380. package/dist-cjs/definitions/outlook.d.ts +0 -2
  381. package/dist-cjs/definitions/patch/apply-patch.d.ts +0 -11
  382. package/dist-cjs/definitions/patch/fuzzy-match.d.ts +0 -10
  383. package/dist-cjs/definitions/patch/patch-parser.d.ts +0 -50
  384. package/dist-cjs/definitions/patch/sandbox-paths.d.ts +0 -18
  385. package/dist-cjs/definitions/process/index.d.ts +0 -1
  386. package/dist-cjs/definitions/process/process-registry.d.ts +0 -67
  387. package/dist-cjs/definitions/process/process.d.ts +0 -9
  388. package/dist-cjs/definitions/process/pty-keys.d.ts +0 -13
  389. package/dist-cjs/definitions/process/session-slug.d.ts +0 -1
  390. package/dist-cjs/definitions/quip.d.ts +0 -2
  391. package/dist-cjs/definitions/search.d.ts +0 -9
  392. package/dist-cjs/definitions/session-history.d.ts +0 -11
  393. package/dist-cjs/definitions/shell.d.ts +0 -8
  394. package/dist-cjs/definitions/slack.d.ts +0 -2
  395. package/dist-cjs/definitions/web.d.ts +0 -8
  396. package/dist-cjs/executors/apply-patch.d.ts +0 -51
  397. package/dist-cjs/executors/arion.d.ts +0 -50
  398. package/dist-cjs/executors/code-intelligence.d.ts +0 -138
  399. package/dist-cjs/executors/deploy.d.ts +0 -169
  400. package/dist-cjs/executors/filesystem.d.ts +0 -150
  401. package/dist-cjs/executors/frg-freshness.d.ts +0 -93
  402. package/dist-cjs/executors/frg.d.ts +0 -27
  403. package/dist-cjs/executors/learning-meta.d.ts +0 -87
  404. package/dist-cjs/executors/lsp-client.d.ts +0 -38
  405. package/dist-cjs/executors/memory.d.ts +0 -203
  406. package/dist-cjs/executors/meta.d.ts +0 -73
  407. package/dist-cjs/executors/process-registry.d.ts +0 -98
  408. package/dist-cjs/executors/pty-session-store.d.ts +0 -14
  409. package/dist-cjs/executors/pty.d.ts +0 -133
  410. package/dist-cjs/executors/restart.d.ts +0 -13
  411. package/dist-cjs/executors/search-freshness.d.ts +0 -50
  412. package/dist-cjs/executors/search-types.d.ts +0 -52
  413. package/dist-cjs/executors/search.d.ts +0 -11
  414. package/dist-cjs/executors/self-diagnose.d.ts +0 -89
  415. package/dist-cjs/executors/session-history.d.ts +0 -75
  416. package/dist-cjs/executors/shell-safety.d.ts +0 -27
  417. package/dist-cjs/executors/shell.d.ts +0 -168
  418. package/dist-cjs/executors/utils.d.ts +0 -20
  419. package/dist-cjs/executors/web.d.ts +0 -89
  420. package/dist-cjs/extraction/content-extraction.d.ts +0 -48
  421. package/dist-cjs/extraction/index.d.ts +0 -4
  422. package/dist-cjs/headless-control-contract.d.ts +0 -3182
  423. package/dist-cjs/index.d.ts +0 -62
  424. package/dist-cjs/local-control-http-auth.d.ts +0 -2
  425. package/dist-cjs/mcp/client.d.ts +0 -68
  426. package/dist-cjs/mcp/connection.d.ts +0 -54
  427. package/dist-cjs/mcp/index.d.ts +0 -10
  428. package/dist-cjs/mcp/jsonrpc.d.ts +0 -36
  429. package/dist-cjs/mcp/types.d.ts +0 -178
  430. package/dist-cjs/network-control-adapter.d.ts +0 -4
  431. package/dist-cjs/network-runtime/address-types.d.ts +0 -201
  432. package/dist-cjs/network-runtime/db-owner-fencing.d.ts +0 -43
  433. package/dist-cjs/network-runtime/delivery-receipts.d.ts +0 -117
  434. package/dist-cjs/network-runtime/direct-endpoint-authority.d.ts +0 -8
  435. package/dist-cjs/network-runtime/index.d.ts +0 -24
  436. package/dist-cjs/network-runtime/local-control-contract.d.ts +0 -758
  437. package/dist-cjs/network-runtime/node-store-contract.d.ts +0 -49
  438. package/dist-cjs/network-runtime/pair-route-contract.d.ts +0 -100
  439. package/dist-cjs/network-runtime/peer-capabilities.d.ts +0 -10
  440. package/dist-cjs/network-runtime/peer-principal-ref.d.ts +0 -9
  441. package/dist-cjs/network-runtime/peer-state-machine.d.ts +0 -70
  442. package/dist-cjs/network-runtime/protocol-schemas.d.ts +0 -328
  443. package/dist-cjs/network-runtime/runtime-bootstrap-contract.d.ts +0 -81
  444. package/dist-cjs/outlook/desktop-session.d.ts +0 -68
  445. package/dist-cjs/policy.d.ts +0 -43
  446. package/dist-cjs/providers/brave.d.ts +0 -10
  447. package/dist-cjs/providers/duckduckgo.d.ts +0 -18
  448. package/dist-cjs/providers/exa.d.ts +0 -10
  449. package/dist-cjs/providers/firecrawl.d.ts +0 -10
  450. package/dist-cjs/providers/jina.d.ts +0 -10
  451. package/dist-cjs/providers/router.d.ts +0 -21
  452. package/dist-cjs/providers/search-provider.d.ts +0 -35
  453. package/dist-cjs/providers/tavily.d.ts +0 -10
  454. package/dist-cjs/quip/desktop-session.d.ts +0 -69
  455. package/dist-cjs/registry/registry.d.ts +0 -156
  456. package/dist-cjs/runtime-socket-local-control-client.d.ts +0 -10
  457. package/dist-cjs/security/dns-normalization.d.ts +0 -6
  458. package/dist-cjs/security/dns-pinning.d.ts +0 -27
  459. package/dist-cjs/security/external-content.d.ts +0 -40
  460. package/dist-cjs/security/ssrf.d.ts +0 -40
  461. package/dist-cjs/slack/desktop-session.d.ts +0 -69
  462. package/dist-cjs/tool-factory.d.ts +0 -46
  463. package/dist-cjs/types.d.ts +0 -1192
  464. package/dist-cjs/utils/retry.d.ts +0 -11
  465. package/dist-cjs/utils/safe-parse-json.d.ts +0 -26
  466. package/dist-cjs/utils/url.d.ts +0 -10
@@ -0,0 +1,474 @@
1
+ /**
2
+ * @aria/tools - Shell command risk classifier
3
+ *
4
+ * Statically classifies shell commands into risk tiers to gate execution:
5
+ * - "safe" : read-only, execute immediately without approval
6
+ * - "moderate" : requires runtime policy handling (approval, allowlist, or autorun)
7
+ * - "blocked" : catastrophic, hard-denied — never execute
8
+ */
9
+ /** Read-only single-word commands that never modify state. */
10
+ const SAFE_SINGLE = new Set([
11
+ "ls",
12
+ "cat",
13
+ "head",
14
+ "tail",
15
+ "wc",
16
+ "file",
17
+ "stat",
18
+ "grep",
19
+ "rg",
20
+ "find",
21
+ "which",
22
+ "whereis",
23
+ "echo",
24
+ "date",
25
+ "whoami",
26
+ "pwd",
27
+ "printenv",
28
+ "uname",
29
+ "hostname",
30
+ ]);
31
+ /** Read-only multi-word command prefixes (order: longest match first). */
32
+ const SAFE_MULTI = [
33
+ "git stash list",
34
+ "git status",
35
+ "git log",
36
+ "git diff",
37
+ "git show",
38
+ "git blame",
39
+ "git branch",
40
+ "git remote",
41
+ "git tag",
42
+ "node --version",
43
+ "npm --version",
44
+ "bun --version",
45
+ "python --version",
46
+ "bun pm ls",
47
+ "npm list",
48
+ ];
49
+ /** Patterns that are unconditionally blocked — catastrophic risk. */
50
+ export const BLOCKED_PATTERNS = [
51
+ /rm\s+(?:--?[A-Za-z0-9-]+\s+)*\/(?:\s|$)/, // rm targeting filesystem root (/)
52
+ /rm\s+(?:--?[A-Za-z0-9-]+\s+)*\/\*(?:\s|$)/, // rm targeting root wildcard (/*)
53
+ /rm\s+(?:--?[A-Za-z0-9-]+\s+)*\.(?:\s|$)/, // rm . (current dir wipe, not ./subdir)
54
+ /rm\s+(?:--?[A-Za-z0-9-]+\s+)*~(?:[a-zA-Z]\w*)?(?:\/\*)?(?:\s|$)/, // rm ~ (bare home), ~/* (home wildcard), ~user (other user home)
55
+ /rm\s+(?:--?[A-Za-z0-9-]+\s+)*\$HOME\b/, // rm with $HOME variable
56
+ /rm\s+(?:--?[A-Za-z0-9-]+\s+)*\*(?:\s|$)/, // rm with bare wildcard (rm -rf *)
57
+ />\s*\/dev\/(?:sd[a-z]|nvme\d+|vd[a-z])\b/, // write to block devices
58
+ /mkfs/, // format filesystems
59
+ /dd\s+.*(?:if=|of=)/, // raw disk reads/writes
60
+ /chmod\s+(?:-R\s+)?777\b/, // world-writable permissions
61
+ /curl[\s\S]*\|\s*(ba)?sh/, // pipe-to-shell (including newline-obfuscated variants)
62
+ /wget[\s\S]*\|\s*(ba)?sh/, // pipe-to-shell (including newline-obfuscated variants)
63
+ /(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*eval\b/, // shell eval injection
64
+ // Inline execution (sh -c, python -c, node -e, etc.) downgraded to moderate.
65
+ // These are legitimate developer operations — dangerous payloads are still
66
+ // caught by other blocked patterns (rm /, curl|sh, fork bombs, etc.).
67
+ /(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*shutdown\b/, // system shutdown
68
+ /(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*reboot\b/, // system reboot
69
+ /(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*halt\b/, // system halt
70
+ /(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*init\s+0\b/, // init runlevel poweroff
71
+ /(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*systemctl\s+(?:poweroff|halt|reboot)\b/, // systemctl power controls
72
+ // kill downgraded to moderate — legitimate process management (kill PID, kill -0)
73
+ // is a normal developer operation. Catastrophic kill (kill -9 1) is still caught
74
+ // by the PID-1 pattern below. See shell-safety.test.ts for coverage.
75
+ /(?:^|[;&|]\s*|\$\(|`|\()\s*(?:(?:env|command)\s+)*kill\s+(?:-\d+\s+|-[A-Z]+\s+)*\b1\b/, // kill PID 1 (init) — catastrophic
76
+ // ${...} parameter expansion downgraded to moderate — standard bash operations
77
+ // like ${VAR}, ${#VAR} (length), ${VAR:-default} are common developer patterns.
78
+ // Truly dangerous expansions (${VAR:=$(cmd)}) are caught by other patterns
79
+ // (eval, curl|sh, etc.) or by the subshell/backtick check in classifyCommand.
80
+ /:\(\)\{\s*:\|:&\s*\};:/, // fork bomb
81
+ /\bsudo\b/, // privilege escalation
82
+ /git\s+push\s+.*--force(?!-with-lease)\b/, // force push (allow --force-with-lease)
83
+ /git\s+push(?:\s+-[A-Za-z]*f[A-Za-z]*\b|\s+.*\s-[A-Za-z]*f[A-Za-z]*\b)/, // short force flags (-f, -uf, etc.)
84
+ /git\s+reset\s+--hard/, // hard reset
85
+ ];
86
+ /**
87
+ * Returns true if the raw command text matches any blocked pattern.
88
+ */
89
+ function isBlocked(raw) {
90
+ const withoutHeredocs = stripHeredocBodies(raw);
91
+ const withoutQuotedLiterals = stripSingleAndDoubleQuotedLiterals(withoutHeredocs);
92
+ return BLOCKED_PATTERNS.some((re) => re.test(withoutQuotedLiterals));
93
+ }
94
+ /**
95
+ * Strip heredoc bodies so that blocked-pattern checks don't fire on
96
+ * data content inside heredocs. Supports both quoted and unquoted
97
+ * delimiters: `<< 'EOF'`, `<< "EOF"`, `<< EOF`, `<<-EOF`.
98
+ *
99
+ * Only the body between the delimiter lines is replaced with spaces;
100
+ * the shell command on the `<<` line and the closing delimiter are
101
+ * preserved so other pattern checks still apply to the command itself.
102
+ */
103
+ function stripHeredocBodies(raw) {
104
+ // Match << (optional dash) then optional quotes around the delimiter word
105
+ const heredocRe = /<<-?\s*(?:'([^']+)'|"([^"]+)"|(\w+))/g;
106
+ let result = raw;
107
+ let match;
108
+ // Collect all heredoc markers first, then strip from the end backwards
109
+ // so index positions remain valid.
110
+ const markers = [];
111
+ while ((match = heredocRe.exec(raw)) !== null) {
112
+ const delimiter = match[1] ?? match[2] ?? match[3] ?? "";
113
+ if (!delimiter)
114
+ continue;
115
+ // Body starts after the next newline following the << marker
116
+ const afterMarker = raw.indexOf("\n", match.index);
117
+ if (afterMarker === -1)
118
+ continue;
119
+ const bodyStart = afterMarker + 1;
120
+ // Find the closing delimiter: must be on its own line (with optional
121
+ // leading whitespace for <<- heredocs).
122
+ const closingRe = new RegExp(`^\\s*${delimiter.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\s*$`, "m");
123
+ const bodySlice = raw.slice(bodyStart);
124
+ const closingMatch = closingRe.exec(bodySlice);
125
+ if (!closingMatch)
126
+ continue;
127
+ const bodyEnd = bodyStart + closingMatch.index;
128
+ markers.push({ delimiter, bodyStart, bodyEnd });
129
+ }
130
+ // Strip bodies from last to first to preserve indices
131
+ for (let i = markers.length - 1; i >= 0; i--) {
132
+ const { bodyStart, bodyEnd } = markers[i];
133
+ const body = result.slice(bodyStart, bodyEnd);
134
+ result = result.slice(0, bodyStart) + body.replace(/[^\n]/g, " ") + result.slice(bodyEnd);
135
+ }
136
+ return result;
137
+ }
138
+ /**
139
+ * Remove single-quoted and double-quoted literal text from a command so
140
+ * blocked-pattern checks don't fire on plain quoted prose like:
141
+ * echo "please do not run rm -rf /"
142
+ */
143
+ function stripSingleAndDoubleQuotedLiterals(raw) {
144
+ let result = "";
145
+ let inSingle = false;
146
+ let inDouble = false;
147
+ let escaped = false;
148
+ for (let i = 0; i < raw.length; i++) {
149
+ const ch = raw[i];
150
+ if (inSingle) {
151
+ if (ch === "'") {
152
+ inSingle = false;
153
+ result += " ";
154
+ }
155
+ else {
156
+ result += " ";
157
+ }
158
+ continue;
159
+ }
160
+ if (inDouble) {
161
+ if (escaped) {
162
+ escaped = false;
163
+ result += " ";
164
+ continue;
165
+ }
166
+ if (ch === "\\") {
167
+ escaped = true;
168
+ result += " ";
169
+ continue;
170
+ }
171
+ if (ch === '"') {
172
+ inDouble = false;
173
+ result += " ";
174
+ }
175
+ else {
176
+ result += " ";
177
+ }
178
+ continue;
179
+ }
180
+ if (ch === "'") {
181
+ inSingle = true;
182
+ result += " ";
183
+ continue;
184
+ }
185
+ if (ch === '"') {
186
+ inDouble = true;
187
+ result += " ";
188
+ continue;
189
+ }
190
+ result += ch;
191
+ }
192
+ return result;
193
+ }
194
+ /**
195
+ * Strip an optional absolute-path prefix from a token
196
+ * so `/usr/bin/rm` is treated the same as `rm`.
197
+ */
198
+ function stripPathPrefix(token) {
199
+ const i = token.lastIndexOf("/");
200
+ return i === -1 ? token : token.slice(i + 1);
201
+ }
202
+ function hasUnquotedSubshellOrBacktick(command) {
203
+ let inSingle = false;
204
+ let inDouble = false;
205
+ let escaped = false;
206
+ for (let i = 0; i < command.length; i++) {
207
+ const ch = command[i];
208
+ const next = command[i + 1];
209
+ if (inSingle) {
210
+ if (ch === "'")
211
+ inSingle = false;
212
+ continue;
213
+ }
214
+ if (inDouble) {
215
+ if (escaped) {
216
+ escaped = false;
217
+ continue;
218
+ }
219
+ if (ch === "\\") {
220
+ escaped = true;
221
+ continue;
222
+ }
223
+ if (ch === '"') {
224
+ inDouble = false;
225
+ continue;
226
+ }
227
+ if (ch === "`" || (ch === "$" && next === "(")) {
228
+ return true;
229
+ }
230
+ continue;
231
+ }
232
+ if (escaped) {
233
+ escaped = false;
234
+ continue;
235
+ }
236
+ if (ch === "\\") {
237
+ escaped = true;
238
+ continue;
239
+ }
240
+ if (ch === "'") {
241
+ inSingle = true;
242
+ continue;
243
+ }
244
+ if (ch === '"') {
245
+ inDouble = true;
246
+ continue;
247
+ }
248
+ if (ch === "`" || (ch === "$" && next === "(")) {
249
+ return true;
250
+ }
251
+ }
252
+ return false;
253
+ }
254
+ function splitTopLevelChain(command) {
255
+ const parts = [];
256
+ let current = "";
257
+ let inSingle = false;
258
+ let inDouble = false;
259
+ let escaped = false;
260
+ for (let i = 0; i < command.length; i++) {
261
+ const ch = command[i];
262
+ const next = command[i + 1];
263
+ if (inSingle) {
264
+ current += ch;
265
+ if (ch === "'")
266
+ inSingle = false;
267
+ continue;
268
+ }
269
+ if (inDouble) {
270
+ current += ch;
271
+ if (escaped) {
272
+ escaped = false;
273
+ continue;
274
+ }
275
+ if (ch === "\\") {
276
+ escaped = true;
277
+ continue;
278
+ }
279
+ if (ch === '"')
280
+ inDouble = false;
281
+ continue;
282
+ }
283
+ if (escaped) {
284
+ current += ch;
285
+ escaped = false;
286
+ continue;
287
+ }
288
+ if (ch === "\\") {
289
+ current += ch;
290
+ escaped = true;
291
+ continue;
292
+ }
293
+ if (ch === "'") {
294
+ current += ch;
295
+ inSingle = true;
296
+ continue;
297
+ }
298
+ if (ch === '"') {
299
+ current += ch;
300
+ inDouble = true;
301
+ continue;
302
+ }
303
+ const isSeparator = ch === ";" ||
304
+ ch === "\n" ||
305
+ ch === "\r" ||
306
+ (ch === "&" && next === "&") ||
307
+ (ch === "|" && next === "|");
308
+ if (isSeparator) {
309
+ parts.push(current.trim());
310
+ current = "";
311
+ if ((ch === "&" || ch === "|") && next === ch) {
312
+ i += 1;
313
+ }
314
+ continue;
315
+ }
316
+ current += ch;
317
+ }
318
+ parts.push(current.trim());
319
+ return parts;
320
+ }
321
+ function splitTopLevelPipes(command) {
322
+ const parts = [];
323
+ let current = "";
324
+ let inSingle = false;
325
+ let inDouble = false;
326
+ let escaped = false;
327
+ for (let i = 0; i < command.length; i++) {
328
+ const ch = command[i];
329
+ const next = command[i + 1];
330
+ const prev = i > 0 ? command[i - 1] : "";
331
+ if (inSingle) {
332
+ current += ch;
333
+ if (ch === "'")
334
+ inSingle = false;
335
+ continue;
336
+ }
337
+ if (inDouble) {
338
+ current += ch;
339
+ if (escaped) {
340
+ escaped = false;
341
+ continue;
342
+ }
343
+ if (ch === "\\") {
344
+ escaped = true;
345
+ continue;
346
+ }
347
+ if (ch === '"')
348
+ inDouble = false;
349
+ continue;
350
+ }
351
+ if (escaped) {
352
+ current += ch;
353
+ escaped = false;
354
+ continue;
355
+ }
356
+ if (ch === "\\") {
357
+ current += ch;
358
+ escaped = true;
359
+ continue;
360
+ }
361
+ if (ch === "'") {
362
+ current += ch;
363
+ inSingle = true;
364
+ continue;
365
+ }
366
+ if (ch === '"') {
367
+ current += ch;
368
+ inDouble = true;
369
+ continue;
370
+ }
371
+ if (ch === "|" && next !== "|" && prev !== "|") {
372
+ parts.push(current.trim());
373
+ current = "";
374
+ continue;
375
+ }
376
+ current += ch;
377
+ }
378
+ parts.push(current.trim());
379
+ return parts;
380
+ }
381
+ /**
382
+ * Matches shell output redirection operators that WRITE to the filesystem.
383
+ * Excludes 2>&1 (stderr-to-stdout merge) which is read-only.
384
+ *
385
+ * Matches: >, >>, 2> (not followed by &), &>
386
+ * Does NOT match: 2>&1, <, <<
387
+ */
388
+ const REDIRECTION_RE = /(?:>>|(?:^|[^2])>(?!&)|2>(?!&)|&>)/;
389
+ /**
390
+ * Determine whether a single simple command (no pipes/chains) is safe.
391
+ * Returns true only when the command prefix is in the safe lists
392
+ * AND the segment contains no output redirection.
393
+ */
394
+ function isSegmentSafe(segment) {
395
+ const trimmed = segment.trim();
396
+ if (trimmed === "")
397
+ return false;
398
+ // Output redirection makes any command non-safe
399
+ if (REDIRECTION_RE.test(trimmed))
400
+ return false;
401
+ // Multi-word safe match first (e.g. "git status")
402
+ for (const prefix of SAFE_MULTI) {
403
+ if (trimmed === prefix || trimmed.startsWith(prefix + " "))
404
+ return true;
405
+ }
406
+ // Single-word: first token, path-stripped
407
+ const firstToken = trimmed.split(/\s+/)[0] ?? "";
408
+ return SAFE_SINGLE.has(stripPathPrefix(firstToken));
409
+ }
410
+ /**
411
+ * Classify a shell command's risk level.
412
+ *
413
+ * - "safe" — skip approval, execute immediately
414
+ * - "moderate" — handle via runtime policy (approval, allowlist, or autorun)
415
+ * - "blocked" — never execute, return error immediately
416
+ */
417
+ export function classifyCommand(command) {
418
+ const trimmed = command.trim();
419
+ // Empty / whitespace-only — can't determine intent
420
+ if (trimmed === "")
421
+ return "moderate";
422
+ // 0. Strip heredoc bodies once, upfront, so every downstream check
423
+ // (whole-command, per-segment, per-pipe) operates on the sanitised text.
424
+ // This prevents heredoc *data* from triggering blocked patterns.
425
+ const stripped = stripHeredocBodies(trimmed);
426
+ // 1. Check blocked patterns on the entire raw command
427
+ if (isBlocked(stripped))
428
+ return "blocked";
429
+ // 2. Subshells / backticks — can't statically analyze safely.
430
+ // Check before splitting to avoid quote-unaware false positives.
431
+ if (hasUnquotedSubshellOrBacktick(stripped))
432
+ return "moderate";
433
+ // 3. Split on chain operators (&&, ||, ;, newline) outside quoted strings.
434
+ const chainSegments = splitTopLevelChain(stripped);
435
+ for (const seg of chainSegments) {
436
+ if (isBlocked(seg))
437
+ return "blocked";
438
+ }
439
+ // 4. Split each chain segment on top-level pipes and check.
440
+ const allSegments = [];
441
+ for (const seg of chainSegments) {
442
+ const piped = splitTopLevelPipes(seg);
443
+ for (const p of piped) {
444
+ if (isBlocked(p))
445
+ return "blocked";
446
+ allSegments.push(p);
447
+ }
448
+ }
449
+ // 5. Env-var assignment prefix (VAR=val command)
450
+ if (/^[A-Za-z_]\w*=/.test(trimmed))
451
+ return "moderate";
452
+ // 6. Check if ALL segments are safe (filter empty segments from chain splitting)
453
+ const nonEmpty = allSegments.filter((s) => s.trim() !== "");
454
+ if (nonEmpty.length > 0 && nonEmpty.every(isSegmentSafe))
455
+ return "safe";
456
+ // 7. Default — needs approval
457
+ return "moderate";
458
+ }
459
+ const EXPLICIT_SHELLS = new Set(["sh", "bash", "zsh", "ksh", "dash", "ash", "fish"]);
460
+ /**
461
+ * Classify argv-based process execution (spawn/exec) with shell-aware behavior.
462
+ *
463
+ * When callers explicitly invoke a shell interpreter with `-c`, classify the
464
+ * payload command text itself. This preserves catastrophic-command blocking
465
+ * while avoiding false positives that would block every `bash -c ...` call.
466
+ */
467
+ export function classifyExecInvocation(program, args = []) {
468
+ const shellName = stripPathPrefix(program).toLowerCase();
469
+ if (EXPLICIT_SHELLS.has(shellName) && args[0] === "-c" && typeof args[1] === "string") {
470
+ return classifyCommand(args[1]);
471
+ }
472
+ return classifyCommand([program, ...args].join(" "));
473
+ }
474
+ //# sourceMappingURL=shell-safety.js.map