@aria-cli/tools 1.0.12 → 1.0.13

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