@agenticmail/enterprise 0.5.325 → 0.5.327

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 (457) hide show
  1. package/dist/{agent-heartbeat-77N4OOQL.js → agent-heartbeat-ZFKA6GMI.js} +2 -2
  2. package/dist/{agent-tools-BNSTIK4P.js → agent-tools-R6RSBDJQ.js} +25 -25
  3. package/dist/{agenticmail-EDO5XOTP.js → agenticmail-QMWQNUY2.js} +1 -1
  4. package/dist/{browser-tool-JF3LNRGX.js → browser-tool-4KWE37RL.js} +4 -4
  5. package/dist/{chunk-JEGYVXYC.js → chunk-CQV7GGHT.js} +1 -1
  6. package/dist/{chunk-VBTHTPZ6.js → chunk-DWHJYAV6.js} +27 -27
  7. package/dist/{chunk-HKCKMCPY.js → chunk-G4YSECQ4.js} +2 -2
  8. package/dist/{chunk-7HBGXW7Z.js → chunk-GNABVGDZ.js} +31 -32
  9. package/dist/{chunk-DMD24UFZ.js → chunk-HTT6LUPP.js} +19 -19
  10. package/dist/{chunk-3FMK32KQ.js → chunk-LHQP7QRX.js} +9 -9
  11. package/dist/{chunk-6C5PKREN.js → chunk-NOAQG5CY.js} +1 -1
  12. package/dist/{chunk-4EKXYIJF.js → chunk-PAHT4ABL.js} +4 -4
  13. package/dist/{chunk-JNMDD7JY.js → chunk-RHO7WRVJ.js} +5 -5
  14. package/dist/{chunk-BQM7MBPS.js → chunk-WYDVMFGJ.js} +5 -5
  15. package/dist/{chunk-TPLVQFXM.js → chunk-X2YL6KSY.js} +13 -13
  16. package/dist/{cli-agent-ZIIFI77N.js → cli-agent-2NBPF3GN.js} +11 -11
  17. package/dist/{cli-recover-XEZ2SKPU.js → cli-recover-TTOR7CJR.js} +2 -2
  18. package/dist/{cli-serve-BDGOOOKQ.js → cli-serve-5VFU4GR4.js} +3 -3
  19. package/dist/{cli-verify-CZIITRED.js → cli-verify-WICBVLAM.js} +2 -2
  20. package/dist/cli.js +5 -5
  21. package/dist/{connection-manager-KAWEUWUR.js → connection-manager-Y7CCQK4X.js} +1 -1
  22. package/dist/dashboard/pages/cluster.js +1 -1
  23. package/dist/{deployer-3YK4RPUL.js → deployer-7NG7LCJW.js} +1 -1
  24. package/dist/{factory-JFWXTAWK.js → factory-4V2W4BSV.js} +1 -1
  25. package/dist/index.js +9 -9
  26. package/dist/{integrations-TF4EBCJ7.js → integrations-V2WXFDIV.js} +13 -13
  27. package/dist/{local-6MLIZDKO.js → local-OXFH4V7E.js} +2 -2
  28. package/dist/{meeting-voice-intelligence-CJLR52YV.js → meeting-voice-intelligence-RZZCAD6G.js} +2 -2
  29. package/dist/{meetings-FJ453ENF.js → meetings-SQNTB6GD.js} +1 -1
  30. package/dist/{microsoft-2IIHDLJB.js → microsoft-2PDVV6HX.js} +3 -3
  31. package/dist/{postgres-WGUVC2S7.js → postgres-USXBPTHX.js} +2 -2
  32. package/dist/{pw-ai-IBEF6HBF.js → pw-ai-NK5GKBDG.js} +1 -1
  33. package/dist/{routes-XYR2RNEC.js → routes-T3CDAQTD.js} +4 -4
  34. package/dist/{runtime-6BULDBR3.js → runtime-X4BTVICL.js} +1 -1
  35. package/dist/{server-7NT4LMSQ.js → server-WQ6LLYGB.js} +5 -5
  36. package/dist/{setup-2JBXMUDS.js → setup-6DRKSOMH.js} +2 -2
  37. package/dist/{skills-FR7I5V7H.js → skills-EL4RTJKK.js} +1 -1
  38. package/logs/cloudflared-error.log +12 -0
  39. package/logs/enterprise-out.log +2 -0
  40. package/package.json +1 -1
  41. package/src/admin/routes.ts +1 -1
  42. package/src/agent-tools/tool-resolver.ts +1 -1
  43. package/src/agent-tools/tools/agenticmail.ts +2 -2
  44. package/src/agent-tools/tools/browser.ts +1 -1
  45. package/src/agent-tools/tools/enterprise-code-sandbox.ts +1 -1
  46. package/src/agent-tools/tools/enterprise-diff.ts +1 -1
  47. package/src/agent-tools/tools/enterprise-http.ts +1 -3
  48. package/src/agent-tools/tools/enterprise-security-scan.ts +1 -1
  49. package/src/agent-tools/tools/google/forms.ts +2 -2
  50. package/src/agent-tools/tools/google/gmail.ts +1 -1
  51. package/src/agent-tools/tools/google/maps.ts +2 -2
  52. package/src/agent-tools/tools/google/meeting-voice.ts +1 -1
  53. package/src/agent-tools/tools/google/meetings.ts +1 -1
  54. package/src/agent-tools/tools/google/slides.ts +2 -2
  55. package/src/agent-tools/tools/grep.ts +1 -1
  56. package/src/agent-tools/tools/knowledge-search.ts +1 -1
  57. package/src/agent-tools/tools/local/coding.ts +5 -5
  58. package/src/agent-tools/tools/microsoft/excel-vba.ts +1 -1
  59. package/src/agent-tools/tools/microsoft/excel.ts +1 -1
  60. package/src/agent-tools/tools/microsoft/powerpoint.ts +1 -1
  61. package/src/agent-tools/tools/visual-memory/index.ts +11 -11
  62. package/src/agent-tools/tools/visual-memory/similarity.ts +2 -2
  63. package/src/agent-tools/tools/visual-memory/storage.ts +1 -1
  64. package/src/agenticmail/providers/imap.ts +2 -2
  65. package/src/browser/enterprise-compat.ts +1 -1
  66. package/src/cli-agent.ts +3 -3
  67. package/src/cli-serve.ts +1 -1
  68. package/src/dashboard/pages/cluster.js +1 -1
  69. package/src/database-access/connection-manager.ts +6 -6
  70. package/src/database-access/routes.ts +0 -1
  71. package/src/db/dynamodb.ts +1 -1
  72. package/src/db/postgres.ts +2 -2
  73. package/src/deploy/fly.ts +4 -4
  74. package/src/deploy/managed.ts +0 -1
  75. package/src/engine/agent-config.ts +1 -1
  76. package/src/engine/agent-heartbeat.ts +1 -1
  77. package/src/engine/agent-hierarchy.ts +1 -1
  78. package/src/engine/agent-memory.ts +1 -1
  79. package/src/engine/agent-routes.ts +2 -2
  80. package/src/engine/chat-poller.ts +1 -1
  81. package/src/engine/community-registry.ts +2 -2
  82. package/src/engine/db-adapter.ts +0 -1
  83. package/src/engine/deployer.ts +8 -8
  84. package/src/engine/email-poller.ts +1 -1
  85. package/src/engine/knowledge-contribution.ts +1 -1
  86. package/src/engine/knowledge-import/import-manager.ts +2 -3
  87. package/src/engine/knowledge-import/processors/extract-github.ts +1 -1
  88. package/src/engine/knowledge-import/processors/extract-sharepoint.ts +1 -1
  89. package/src/engine/knowledge-import/processors/validate.ts +1 -1
  90. package/src/engine/lifecycle.ts +1 -1
  91. package/src/engine/meeting-monitor.ts +2 -2
  92. package/src/engine/meeting-voice-intelligence.ts +3 -3
  93. package/src/engine/messaging-poller.ts +2 -2
  94. package/src/engine/org-integration-routes.ts +2 -2
  95. package/src/engine/org-integrations.ts +1 -1
  96. package/src/engine/routes.ts +2 -2
  97. package/src/engine/skills.ts +1 -1
  98. package/src/engine/tool-catalog.ts +1 -1
  99. package/src/engine/vault-routes.ts +1 -1
  100. package/src/engine/vault.ts +1 -1
  101. package/src/mcp/adapters/adp.adapter.ts +1 -1
  102. package/src/mcp/adapters/auth0.adapter.ts +1 -1
  103. package/src/mcp/adapters/clickup.adapter.ts +1 -1
  104. package/src/mcp/adapters/close.adapter.ts +1 -1
  105. package/src/mcp/adapters/firebase.adapter.ts +1 -1
  106. package/src/mcp/adapters/google-ads.adapter.ts +1 -1
  107. package/src/mcp/adapters/kubernetes.adapter.ts +1 -1
  108. package/src/mcp/adapters/mixpanel.adapter.ts +1 -1
  109. package/src/mcp/adapters/recurly.adapter.ts +1 -1
  110. package/src/mcp/adapters/sap.adapter.ts +2 -2
  111. package/src/mcp/adapters/shortcut.adapter.ts +1 -1
  112. package/src/mcp/adapters/snowflake.adapter.ts +1 -1
  113. package/src/mcp/adapters/stripe.adapter.ts +1 -1
  114. package/src/mcp/adapters/supabase.adapter.ts +1 -1
  115. package/src/mcp/adapters/zuora.adapter.ts +1 -1
  116. package/src/middleware/request-limits.ts +1 -1
  117. package/src/runtime/agent-loop.ts +3 -3
  118. package/src/runtime/compaction.ts +2 -2
  119. package/src/runtime/followup.ts +1 -1
  120. package/src/runtime/hooks.ts +3 -3
  121. package/src/runtime/index.ts +5 -6
  122. package/src/runtime/llm-client.ts +1 -1
  123. package/src/runtime/subagent.ts +0 -1
  124. package/src/runtime/types.ts +2 -0
  125. package/src/security/brute-force.ts +1 -1
  126. package/src/security/csp.ts +1 -1
  127. package/src/security/index.ts +3 -3
  128. package/src/security/input-sanitizer.ts +1 -1
  129. package/src/security/threat-logger.ts +2 -2
  130. package/src/server.ts +2 -2
  131. package/src/setup/database.ts +1 -1
  132. package/src/setup/index.ts +1 -2
  133. package/src/setup/provision.ts +1 -1
  134. package/dist/_seed-data-FQR5PY2W.js +0 -4554
  135. package/dist/agent-heartbeat-3FWNHZFX.js +0 -510
  136. package/dist/agent-heartbeat-4RWHZR7H.js +0 -510
  137. package/dist/agent-heartbeat-6ZGB5ILY.js +0 -510
  138. package/dist/agent-heartbeat-BBINFNL4.js +0 -510
  139. package/dist/agent-heartbeat-BIVHLKFM.js +0 -510
  140. package/dist/agent-heartbeat-HGVIAHS5.js +0 -510
  141. package/dist/agent-heartbeat-HRKVFK2T.js +0 -510
  142. package/dist/agent-heartbeat-JC5GWVXD.js +0 -510
  143. package/dist/agent-heartbeat-K6A4HMHB.js +0 -510
  144. package/dist/agent-heartbeat-LCDXWFVB.js +0 -510
  145. package/dist/agent-heartbeat-P7HZCZAQ.js +0 -510
  146. package/dist/agent-heartbeat-PUIRSNIO.js +0 -510
  147. package/dist/agent-heartbeat-SN5ILQ6Y.js +0 -510
  148. package/dist/agent-heartbeat-TW5YTDYC.js +0 -510
  149. package/dist/agent-heartbeat-UF2RKKS2.js +0 -510
  150. package/dist/agent-heartbeat-YCSWP54H.js +0 -510
  151. package/dist/agent-heartbeat-Z2QQXROL.js +0 -510
  152. package/dist/agent-tools-3W7XLUYA.js +0 -13949
  153. package/dist/agent-tools-54VZGT6L.js +0 -9
  154. package/dist/agent-tools-AYYDPO27.js +0 -13949
  155. package/dist/agent-tools-F2X47FKF.js +0 -13949
  156. package/dist/agent-tools-O6W3QAZL.js +0 -13949
  157. package/dist/agent-tools-OAWVZBMW.js +0 -9
  158. package/dist/agent-tools-QCCU74PN.js +0 -13949
  159. package/dist/agent-tools-QGE26U6R.js +0 -9
  160. package/dist/chunk-2LHUARN6.js +0 -4929
  161. package/dist/chunk-2WVCNCYC.js +0 -5087
  162. package/dist/chunk-3FM6YQUK.js +0 -5087
  163. package/dist/chunk-46GOWZT4.js +0 -5087
  164. package/dist/chunk-4DBWU3P5.js +0 -4929
  165. package/dist/chunk-5KYJAUZV.js +0 -1519
  166. package/dist/chunk-6ZMLNEHB.js +0 -1519
  167. package/dist/chunk-7UCKD25B.js +0 -551
  168. package/dist/chunk-BDCFOP7O.js +0 -537
  169. package/dist/chunk-BPZQT5N5.js +0 -25652
  170. package/dist/chunk-C52OQNNY.js +0 -5087
  171. package/dist/chunk-C7HGQF4Y.js +0 -25652
  172. package/dist/chunk-CAHNZGGK.js +0 -25656
  173. package/dist/chunk-CK7R6UHE.js +0 -4945
  174. package/dist/chunk-CQYLRIQ3.js +0 -25938
  175. package/dist/chunk-D36RPWB7.js +0 -25652
  176. package/dist/chunk-DJK2UPFH.js +0 -4891
  177. package/dist/chunk-DM7FTF7W.js +0 -4929
  178. package/dist/chunk-DXZGPUAF.js +0 -5087
  179. package/dist/chunk-F46WB5IL.js +0 -5087
  180. package/dist/chunk-F5QG5SQH.js +0 -5087
  181. package/dist/chunk-GYB2WHMN.js +0 -5101
  182. package/dist/chunk-H7GP733U.js +0 -5087
  183. package/dist/chunk-HHBXWB5U.js +0 -25640
  184. package/dist/chunk-HS5YWSGM.js +0 -3206
  185. package/dist/chunk-IMXS4N6W.js +0 -1519
  186. package/dist/chunk-JTV5LA47.js +0 -1519
  187. package/dist/chunk-KN3T3CTD.js +0 -4929
  188. package/dist/chunk-KV6G7NZX.js +0 -1519
  189. package/dist/chunk-M6ZIC5H3.js +0 -1370
  190. package/dist/chunk-MU5MEBIK.js +0 -1519
  191. package/dist/chunk-NLT5MC7X.js +0 -465
  192. package/dist/chunk-NVLYIM4J.js +0 -4945
  193. package/dist/chunk-NZY2BIZH.js +0 -4891
  194. package/dist/chunk-O42L6G67.js +0 -1519
  195. package/dist/chunk-OCNERGGM.js +0 -4891
  196. package/dist/chunk-OJSNHONE.js +0 -1519
  197. package/dist/chunk-OWTLNV4Q.js +0 -25623
  198. package/dist/chunk-PCNYEP6T.js +0 -4891
  199. package/dist/chunk-PI4AQ4Z6.js +0 -25652
  200. package/dist/chunk-PN3EGTCA.js +0 -194
  201. package/dist/chunk-PWWV2U5P.js +0 -195
  202. package/dist/chunk-Q37UKNRC.js +0 -1519
  203. package/dist/chunk-QXTC6J7H.js +0 -5087
  204. package/dist/chunk-RF2LGX3E.js +0 -1519
  205. package/dist/chunk-RH7KPWRQ.js +0 -465
  206. package/dist/chunk-RKERL5LZ.js +0 -4925
  207. package/dist/chunk-RVBK2IOX.js +0 -25652
  208. package/dist/chunk-SAKODCZ5.js +0 -4891
  209. package/dist/chunk-SALGFC5L.js +0 -4945
  210. package/dist/chunk-STGWZ2MS.js +0 -1519
  211. package/dist/chunk-SVSLIQYN.js +0 -1519
  212. package/dist/chunk-UY3ZVQDP.js +0 -25652
  213. package/dist/chunk-V6OSD62M.js +0 -5087
  214. package/dist/chunk-VP6YAHX4.js +0 -1519
  215. package/dist/chunk-WD72IOF2.js +0 -5101
  216. package/dist/chunk-WDYJOEAI.js +0 -5087
  217. package/dist/chunk-WEAFQNOS.js +0 -195
  218. package/dist/chunk-XKUSAZGP.js +0 -5087
  219. package/dist/chunk-YCWOCIPH.js +0 -5101
  220. package/dist/chunk-ZGE3XAXY.js +0 -1519
  221. package/dist/chunk-ZGFDTW4H.js +0 -1519
  222. package/dist/cli-agent-33GWIF2D.js +0 -2300
  223. package/dist/cli-agent-4XK6LVQQ.js +0 -2357
  224. package/dist/cli-agent-64EOV3ST.js +0 -2300
  225. package/dist/cli-agent-67WP6KKO.js +0 -2300
  226. package/dist/cli-agent-7RW5Y7C4.js +0 -2294
  227. package/dist/cli-agent-7TB2BWS6.js +0 -2370
  228. package/dist/cli-agent-AKXFFST2.js +0 -2370
  229. package/dist/cli-agent-C3YSECO4.js +0 -2344
  230. package/dist/cli-agent-DZTKLITB.js +0 -2357
  231. package/dist/cli-agent-FNMDJN7T.js +0 -2357
  232. package/dist/cli-agent-FOF7PFEP.js +0 -2357
  233. package/dist/cli-agent-FXZ6DJKP.js +0 -2357
  234. package/dist/cli-agent-H74M2ZYN.js +0 -2357
  235. package/dist/cli-agent-HG4Y657I.js +0 -2300
  236. package/dist/cli-agent-HORWVPHB.js +0 -2370
  237. package/dist/cli-agent-HSZT6SKF.js +0 -2423
  238. package/dist/cli-agent-ION2W5JF.js +0 -2441
  239. package/dist/cli-agent-JLUQ4ZU6.js +0 -2424
  240. package/dist/cli-agent-KBPWY3CB.js +0 -2302
  241. package/dist/cli-agent-MVCDH4HV.js +0 -2370
  242. package/dist/cli-agent-NZXOEPJ2.js +0 -2357
  243. package/dist/cli-agent-OO6H57UQ.js +0 -2300
  244. package/dist/cli-agent-PADN3QRC.js +0 -2357
  245. package/dist/cli-agent-QAYEX3BE.js +0 -2441
  246. package/dist/cli-agent-QT64DT5J.js +0 -2370
  247. package/dist/cli-agent-TCTRKCHN.js +0 -2300
  248. package/dist/cli-agent-TFL2M6UK.js +0 -2424
  249. package/dist/cli-agent-TSOJG7EX.js +0 -2357
  250. package/dist/cli-agent-UIKXATTD.js +0 -2357
  251. package/dist/cli-agent-UJN6FYTO.js +0 -2370
  252. package/dist/cli-agent-USMKX7WN.js +0 -2473
  253. package/dist/cli-agent-VIQAYVY4.js +0 -2357
  254. package/dist/cli-agent-WNWFVOFM.js +0 -2370
  255. package/dist/cli-agent-XBQX67VJ.js +0 -2423
  256. package/dist/cli-agent-ZLSC6FF4.js +0 -2357
  257. package/dist/cli-agent-ZSHUPBBN.js +0 -2357
  258. package/dist/cli-recover-T32NABFA.js +0 -487
  259. package/dist/cli-serve-2IL5DTEY.js +0 -153
  260. package/dist/cli-serve-3NGBX5ER.js +0 -140
  261. package/dist/cli-serve-47N5UKKW.js +0 -153
  262. package/dist/cli-serve-4RS4UDHC.js +0 -140
  263. package/dist/cli-serve-4XGZFUV2.js +0 -140
  264. package/dist/cli-serve-53FVANQK.js +0 -260
  265. package/dist/cli-serve-57225XWV.js +0 -140
  266. package/dist/cli-serve-63BDPSOP.js +0 -140
  267. package/dist/cli-serve-657NRUOX.js +0 -140
  268. package/dist/cli-serve-6ER7QMLR.js +0 -140
  269. package/dist/cli-serve-6OT3UEAN.js +0 -140
  270. package/dist/cli-serve-7JQ4FVUQ.js +0 -260
  271. package/dist/cli-serve-7L6EY5UH.js +0 -153
  272. package/dist/cli-serve-BFNIW2LF.js +0 -153
  273. package/dist/cli-serve-C7MN6U5Q.js +0 -153
  274. package/dist/cli-serve-CQFI3LMK.js +0 -140
  275. package/dist/cli-serve-CR3OY3IM.js +0 -153
  276. package/dist/cli-serve-DAJFRWQ7.js +0 -153
  277. package/dist/cli-serve-DTQLN5UI.js +0 -140
  278. package/dist/cli-serve-EQS2SGT3.js +0 -140
  279. package/dist/cli-serve-FW6FHFW4.js +0 -153
  280. package/dist/cli-serve-GEEOQS77.js +0 -153
  281. package/dist/cli-serve-H562I3ZK.js +0 -153
  282. package/dist/cli-serve-HDQZF4C4.js +0 -153
  283. package/dist/cli-serve-KBJNXWYJ.js +0 -140
  284. package/dist/cli-serve-LICAOMEB.js +0 -140
  285. package/dist/cli-serve-LLGYLWFS.js +0 -153
  286. package/dist/cli-serve-LMZKQ5GX.js +0 -140
  287. package/dist/cli-serve-LNTT73P2.js +0 -140
  288. package/dist/cli-serve-MLR4KAE2.js +0 -260
  289. package/dist/cli-serve-MQKBUZ7X.js +0 -140
  290. package/dist/cli-serve-N3OISDNB.js +0 -153
  291. package/dist/cli-serve-NBFT7B42.js +0 -140
  292. package/dist/cli-serve-RTWO3AWY.js +0 -140
  293. package/dist/cli-serve-SIHTSW5P.js +0 -140
  294. package/dist/cli-serve-SP6TEURE.js +0 -140
  295. package/dist/cli-serve-TDKZA6I5.js +0 -140
  296. package/dist/cli-serve-TF5ZVVXF.js +0 -140
  297. package/dist/cli-serve-TIZ27EVR.js +0 -153
  298. package/dist/cli-serve-TUNI2RCN.js +0 -153
  299. package/dist/cli-serve-WCU66CHX.js +0 -140
  300. package/dist/cli-serve-WNOZMAWD.js +0 -153
  301. package/dist/cli-serve-YCCKRRUY.js +0 -140
  302. package/dist/cli-serve-ZD5V7I6G.js +0 -140
  303. package/dist/cli-validate-6XDDLVVQ.js +0 -150
  304. package/dist/cli-verify-I4WGRQNT.js +0 -149
  305. package/dist/connection-manager-4ZA4XAFA.js +0 -9
  306. package/dist/db-adapter-IK2EDK2N.js +0 -7
  307. package/dist/db-adapter-IRHOUMVC.js +0 -7
  308. package/dist/dependency-manager-G6D2XXNY.js +0 -11
  309. package/dist/dependency-manager-OCUKF72T.js +0 -543
  310. package/dist/dependency-manager-YULUXN34.js +0 -511
  311. package/dist/factory-MQASIPEB.js +0 -11
  312. package/dist/google-W5AYGNUJ.js +0 -33
  313. package/dist/integrations-VWANOHQ4.js +0 -43830
  314. package/dist/local-O2FN57UN.js +0 -1128
  315. package/dist/local-S7SDOQHN.js +0 -1128
  316. package/dist/microsoft-HPLA5ZL5.js +0 -2414
  317. package/dist/microsoft-UFLZBEAC.js +0 -1619
  318. package/dist/microsoft-VREAZ7M2.js +0 -3955
  319. package/dist/microsoft-YUT6EIGP.js +0 -3400
  320. package/dist/postgres-BOTHOPDW.js +0 -875
  321. package/dist/routes-3MMLQTB6.js +0 -90
  322. package/dist/routes-4ZUIJ4HE.js +0 -90
  323. package/dist/routes-5MXHKKH4.js +0 -90
  324. package/dist/routes-64NJFK3B.js +0 -90
  325. package/dist/routes-6AKQ2LBV.js +0 -90
  326. package/dist/routes-CRRBUDO4.js +0 -90
  327. package/dist/routes-D7SMYOLT.js +0 -90
  328. package/dist/routes-DIAF3MC3.js +0 -90
  329. package/dist/routes-IGR6PZCA.js +0 -92
  330. package/dist/routes-KMUNU6CY.js +0 -90
  331. package/dist/routes-LRRLXIZR.js +0 -90
  332. package/dist/routes-N647AJYG.js +0 -90
  333. package/dist/routes-SSSELAAR.js +0 -90
  334. package/dist/routes-STERVGKJ.js +0 -90
  335. package/dist/routes-TZMPYLHJ.js +0 -90
  336. package/dist/routes-XNK2MAVO.js +0 -90
  337. package/dist/routes-ZEZZACZP.js +0 -90
  338. package/dist/runtime-4UVCTFNQ.js +0 -45
  339. package/dist/runtime-5EQN4GFM.js +0 -45
  340. package/dist/runtime-5LP7PUD4.js +0 -45
  341. package/dist/runtime-6YEENDN3.js +0 -45
  342. package/dist/runtime-7LQFRG3B.js +0 -45
  343. package/dist/runtime-AMXJU2MB.js +0 -45
  344. package/dist/runtime-D6WSE7FG.js +0 -45
  345. package/dist/runtime-EAWOE6JZ.js +0 -45
  346. package/dist/runtime-EYVN7NFJ.js +0 -45
  347. package/dist/runtime-F6RPWQVW.js +0 -45
  348. package/dist/runtime-FYMJURFC.js +0 -45
  349. package/dist/runtime-GGF4P55M.js +0 -45
  350. package/dist/runtime-H3SAMWWF.js +0 -45
  351. package/dist/runtime-H7T4I7I7.js +0 -45
  352. package/dist/runtime-HTIM7GZR.js +0 -45
  353. package/dist/runtime-JRNBL4O4.js +0 -45
  354. package/dist/runtime-K4C7NQLW.js +0 -45
  355. package/dist/runtime-MWWZCPC2.js +0 -45
  356. package/dist/runtime-N7CM2DYA.js +0 -45
  357. package/dist/runtime-OM2NIBMI.js +0 -45
  358. package/dist/runtime-OVGSOTAH.js +0 -45
  359. package/dist/runtime-QQ6LAY4U.js +0 -45
  360. package/dist/runtime-QWPVD7CY.js +0 -45
  361. package/dist/runtime-SX3B5MG3.js +0 -45
  362. package/dist/runtime-YLIIPTE4.js +0 -45
  363. package/dist/runtime-YU6P22CG.js +0 -45
  364. package/dist/runtime-ZOC337DD.js +0 -45
  365. package/dist/server-3AVWBRIF.js +0 -28
  366. package/dist/server-5BKJI5OW.js +0 -28
  367. package/dist/server-6NDO2S52.js +0 -28
  368. package/dist/server-7TD3M2BW.js +0 -28
  369. package/dist/server-AMCSXINC.js +0 -28
  370. package/dist/server-B3VJ6MSA.js +0 -28
  371. package/dist/server-BEJ6RAGL.js +0 -28
  372. package/dist/server-BFPYDHBG.js +0 -28
  373. package/dist/server-BKEWXGVX.js +0 -28
  374. package/dist/server-BMEJZGFG.js +0 -28
  375. package/dist/server-CU6LVQS4.js +0 -28
  376. package/dist/server-DFR7FI3Q.js +0 -28
  377. package/dist/server-DFYGH2CV.js +0 -28
  378. package/dist/server-DURRN3GJ.js +0 -28
  379. package/dist/server-EELWOC3X.js +0 -28
  380. package/dist/server-EN5E2OWQ.js +0 -28
  381. package/dist/server-EXZC3OJO.js +0 -28
  382. package/dist/server-GW2HYJYI.js +0 -28
  383. package/dist/server-J25NCRWJ.js +0 -28
  384. package/dist/server-JDGNOTFV.js +0 -28
  385. package/dist/server-KA6U3YNP.js +0 -28
  386. package/dist/server-L52A2ME4.js +0 -28
  387. package/dist/server-NE5HD5DJ.js +0 -28
  388. package/dist/server-NLQAXPOG.js +0 -28
  389. package/dist/server-NQOT7W77.js +0 -28
  390. package/dist/server-OHHAA34U.js +0 -28
  391. package/dist/server-PWE5PQTR.js +0 -28
  392. package/dist/server-Q2Q32H2B.js +0 -28
  393. package/dist/server-Q77ME7TL.js +0 -28
  394. package/dist/server-QDKO6OVO.js +0 -28
  395. package/dist/server-RR6QJIXM.js +0 -28
  396. package/dist/server-T3R6BO6A.js +0 -28
  397. package/dist/server-TRIBAHDV.js +0 -28
  398. package/dist/server-TXV3ZVVR.js +0 -28
  399. package/dist/server-VHSFJP3I.js +0 -28
  400. package/dist/server-VOJF2XGU.js +0 -28
  401. package/dist/server-W76YHPEC.js +0 -28
  402. package/dist/server-WLLH4WST.js +0 -28
  403. package/dist/server-WTUJ2O3F.js +0 -28
  404. package/dist/server-X4CJTHHF.js +0 -28
  405. package/dist/server-XK3ILCJC.js +0 -28
  406. package/dist/server-ZRD3NDJE.js +0 -28
  407. package/dist/setup-2JYXGTW6.js +0 -20
  408. package/dist/setup-3XOSZEW5.js +0 -20
  409. package/dist/setup-44VBAO4J.js +0 -20
  410. package/dist/setup-4OA7QNJW.js +0 -20
  411. package/dist/setup-4ONNQBWB.js +0 -20
  412. package/dist/setup-4OSBXSCL.js +0 -20
  413. package/dist/setup-4QFGRBLZ.js +0 -20
  414. package/dist/setup-52US54Z4.js +0 -20
  415. package/dist/setup-5CY3CKKT.js +0 -20
  416. package/dist/setup-5YRQUOW2.js +0 -20
  417. package/dist/setup-6766SGAR.js +0 -20
  418. package/dist/setup-6NUSB4XO.js +0 -20
  419. package/dist/setup-7FZJEOD4.js +0 -20
  420. package/dist/setup-7LYYXBUL.js +0 -20
  421. package/dist/setup-ADSKKBGV.js +0 -20
  422. package/dist/setup-AMV2WKVH.js +0 -20
  423. package/dist/setup-AYY24DKM.js +0 -20
  424. package/dist/setup-B34N4HPU.js +0 -20
  425. package/dist/setup-CEF4QY4L.js +0 -20
  426. package/dist/setup-E2YLC2EY.js +0 -20
  427. package/dist/setup-ER6NXTY5.js +0 -20
  428. package/dist/setup-FIOAQJ6C.js +0 -20
  429. package/dist/setup-G76S7X44.js +0 -20
  430. package/dist/setup-H2AGCBW5.js +0 -20
  431. package/dist/setup-H4JZUHH5.js +0 -20
  432. package/dist/setup-ICOZRKCX.js +0 -20
  433. package/dist/setup-JFTJH7UF.js +0 -20
  434. package/dist/setup-JJHOT2ZU.js +0 -20
  435. package/dist/setup-KEAM2BCL.js +0 -20
  436. package/dist/setup-LW4MLU2N.js +0 -20
  437. package/dist/setup-NHAZABW4.js +0 -20
  438. package/dist/setup-PRFNI6YW.js +0 -20
  439. package/dist/setup-RAHBMYHE.js +0 -20
  440. package/dist/setup-T6KYFR7O.js +0 -20
  441. package/dist/setup-TGM6L362.js +0 -20
  442. package/dist/setup-TNANAH7C.js +0 -20
  443. package/dist/setup-TXPR5UQX.js +0 -20
  444. package/dist/setup-UJSNSCLM.js +0 -20
  445. package/dist/setup-XCJMELVU.js +0 -20
  446. package/dist/setup-XIYEIFVK.js +0 -20
  447. package/dist/setup-XP2VGBEU.js +0 -20
  448. package/dist/setup-Z4PZSHBI.js +0 -20
  449. package/dist/skills-HCVBA6PK.js +0 -16
  450. package/dist/skills-HFSW74KZ.js +0 -16
  451. package/dist/system-prompts-6OUTAMH6.js +0 -41
  452. package/dist/task-queue-YP2I54IA.js +0 -9
  453. package/dist/transport-encryption-F2NQYACT.js +0 -25
  454. package/god_is_great.html +0 -35
  455. package/seed-data.mjs +0 -455
  456. package/src/agent-tools/tools/integrations/_seed-data.json +0 -4548
  457. package/src/agent-tools/tools/integrations/_seed-data.ts +0 -4563
@@ -1,543 +0,0 @@
1
- import "./chunk-KFQGP6VL.js";
2
-
3
- // src/agent-tools/tools/local/dependency-manager.ts
4
- import { exec as cpExec } from "child_process";
5
- import { promisify } from "util";
6
- import { platform, tmpdir } from "os";
7
- import { join } from "path";
8
- import { mkdirSync, existsSync } from "fs";
9
- var execAsync = promisify(cpExec);
10
- var DEFAULT_POLICY = {
11
- mode: "auto",
12
- allowGlobalInstalls: false,
13
- allowElevated: false,
14
- allowedManagers: ["npm", "pip"],
15
- blockedPackages: [],
16
- autoCleanup: true
17
- };
18
- var sessionInstalls = /* @__PURE__ */ new Map();
19
- var SESSION_LOCAL_DIR = join(tmpdir(), `agenticmail-deps-${process.pid}`);
20
- var _activePolicy = { ...DEFAULT_POLICY };
21
- function setDependencyPolicy(policy) {
22
- _activePolicy = { ...DEFAULT_POLICY, ...policy };
23
- }
24
- function getDependencyPolicy() {
25
- return { ..._activePolicy };
26
- }
27
- var IS_WINDOWS = platform() === "win32";
28
- var IS_MAC = platform() === "darwin";
29
- var IS_LINUX = platform() === "linux";
30
- async function detectPackageManagers() {
31
- var managers = [];
32
- var checks = IS_WINDOWS ? [["choco", "choco"], ["winget", "winget"], ["scoop", "scoop"], ["npm", "npm"], ["pip", "pip"]] : IS_MAC ? [["brew", "brew"], ["npm", "npm"], ["pip3", "pip"], ["pip", "pip"]] : [["apt-get", "apt"], ["dnf", "dnf"], ["pacman", "pacman"], ["snap", "snap"], ["brew", "brew"], ["npm", "npm"], ["pip3", "pip"], ["pip", "pip"]];
33
- await Promise.all(checks.map(async ([cmd, mgr]) => {
34
- try {
35
- var which = IS_WINDOWS ? "where" : "which";
36
- await execAsync(`${which} ${cmd}`, { timeout: 3e3 });
37
- if (!managers.includes(mgr)) managers.push(mgr);
38
- } catch {
39
- }
40
- }));
41
- return managers;
42
- }
43
- var KNOWN_PACKAGES = {
44
- ffmpeg: { brew: "ffmpeg", apt: "ffmpeg", dnf: "ffmpeg", pacman: "ffmpeg", choco: "ffmpeg", winget: "Gyan.FFmpeg", scoop: "ffmpeg", description: "Audio/video processing", systemOnly: true },
45
- ffprobe: { brew: "ffmpeg", apt: "ffmpeg", dnf: "ffmpeg", pacman: "ffmpeg", choco: "ffmpeg", winget: "Gyan.FFmpeg", scoop: "ffmpeg", description: "Audio/video analysis (part of ffmpeg)", systemOnly: true },
46
- convert: { brew: "imagemagick", apt: "imagemagick", dnf: "ImageMagick", pacman: "imagemagick", choco: "imagemagick", winget: "ImageMagick.ImageMagick", scoop: "imagemagick", description: "Image manipulation (ImageMagick)", systemOnly: true },
47
- magick: { brew: "imagemagick", apt: "imagemagick", dnf: "ImageMagick", pacman: "imagemagick", choco: "imagemagick", winget: "ImageMagick.ImageMagick", scoop: "imagemagick", description: "Image manipulation (ImageMagick)", systemOnly: true },
48
- sox: { brew: "sox", apt: "sox", dnf: "sox", pacman: "sox", choco: "sox", description: "Sound processing", systemOnly: true },
49
- jq: { brew: "jq", apt: "jq", dnf: "jq", pacman: "jq", choco: "jq", scoop: "jq", description: "JSON processor", systemOnly: true },
50
- curl: { brew: "curl", apt: "curl", dnf: "curl", pacman: "curl", choco: "curl", scoop: "curl", description: "HTTP client", systemOnly: true },
51
- wget: { brew: "wget", apt: "wget", dnf: "wget", pacman: "wget", choco: "wget", scoop: "wget", description: "File downloader", systemOnly: true },
52
- "yt-dlp": { brew: "yt-dlp", pip: "yt-dlp", choco: "yt-dlp", scoop: "yt-dlp", description: "Video downloader" },
53
- yt_dlp: { brew: "yt-dlp", pip: "yt-dlp", choco: "yt-dlp", scoop: "yt-dlp", description: "Video downloader" },
54
- tesseract: { brew: "tesseract", apt: "tesseract-ocr", dnf: "tesseract", pacman: "tesseract", choco: "tesseract", description: "OCR text recognition", systemOnly: true },
55
- pdftk: { brew: "pdftk-java", apt: "pdftk", description: "PDF toolkit", systemOnly: true },
56
- ghostscript: { brew: "ghostscript", apt: "ghostscript", dnf: "ghostscript", pacman: "ghostscript", choco: "ghostscript", description: "PDF/PostScript processor", systemOnly: true },
57
- gs: { brew: "ghostscript", apt: "ghostscript", dnf: "ghostscript", pacman: "ghostscript", choco: "ghostscript", description: "PDF/PostScript processor", systemOnly: true },
58
- pandoc: { brew: "pandoc", apt: "pandoc", dnf: "pandoc", pacman: "pandoc", choco: "pandoc", scoop: "pandoc", description: "Document format converter", systemOnly: true },
59
- graphviz: { brew: "graphviz", apt: "graphviz", dnf: "graphviz", pacman: "graphviz", choco: "graphviz", description: "Graph visualization", systemOnly: true },
60
- dot: { brew: "graphviz", apt: "graphviz", dnf: "graphviz", pacman: "graphviz", choco: "graphviz", description: "Graph visualization (part of graphviz)", systemOnly: true },
61
- gifsicle: { brew: "gifsicle", apt: "gifsicle", npm: "gifsicle", description: "GIF optimizer" },
62
- optipng: { brew: "optipng", apt: "optipng", dnf: "optipng", choco: "optipng", description: "PNG optimizer", systemOnly: true },
63
- qrencode: { brew: "qrencode", apt: "qrencode", description: "QR code generator", systemOnly: true },
64
- tree: { brew: "tree", apt: "tree", dnf: "tree", pacman: "tree", choco: "tree", description: "Directory tree viewer", systemOnly: true },
65
- ripgrep: { brew: "ripgrep", apt: "ripgrep", dnf: "ripgrep", pacman: "ripgrep", choco: "ripgrep", scoop: "ripgrep", description: "Fast text search (rg)", systemOnly: true },
66
- rg: { brew: "ripgrep", apt: "ripgrep", dnf: "ripgrep", pacman: "ripgrep", choco: "ripgrep", scoop: "ripgrep", description: "Fast text search", systemOnly: true },
67
- fd: { brew: "fd", apt: "fd-find", dnf: "fd-find", pacman: "fd", choco: "fd", scoop: "fd", description: "Fast file finder", systemOnly: true },
68
- bat: { brew: "bat", apt: "bat", dnf: "bat", pacman: "bat", choco: "bat", scoop: "bat", description: "Better cat with syntax highlighting", systemOnly: true },
69
- htop: { brew: "htop", apt: "htop", dnf: "htop", pacman: "htop", description: "Process monitor", systemOnly: true },
70
- // npm tools — can be installed locally
71
- prettier: { npm: "prettier", description: "Code formatter" },
72
- eslint: { npm: "eslint", description: "JavaScript linter" },
73
- typescript: { npm: "typescript", description: "TypeScript compiler" },
74
- tsc: { npm: "typescript", description: "TypeScript compiler" },
75
- esbuild: { npm: "esbuild", description: "Fast JS bundler" },
76
- sharp: { npm: "sharp", description: "Image processing library" },
77
- puppeteer: { npm: "puppeteer", description: "Headless Chrome automation" },
78
- // pip tools
79
- whisper: { pip: "openai-whisper", description: "Speech-to-text", systemOnly: true }
80
- };
81
- function ensureLocalDir() {
82
- var npmBin = IS_WINDOWS ? join(SESSION_LOCAL_DIR, "node_modules", ".bin") : join(SESSION_LOCAL_DIR, "node_modules", ".bin");
83
- var pipBin = join(SESSION_LOCAL_DIR, "pip-bin");
84
- if (!existsSync(SESSION_LOCAL_DIR)) {
85
- mkdirSync(SESSION_LOCAL_DIR, { recursive: true });
86
- mkdirSync(join(SESSION_LOCAL_DIR, "node_modules"), { recursive: true });
87
- mkdirSync(pipBin, { recursive: true });
88
- }
89
- return { root: SESSION_LOCAL_DIR, npmBin, pipBin };
90
- }
91
- function localPath() {
92
- var dirs = ensureLocalDir();
93
- var sep = IS_WINDOWS ? ";" : ":";
94
- return `${dirs.npmBin}${sep}${dirs.pipBin}${sep}${process.env.PATH || ""}`;
95
- }
96
- var _elevationTool = null;
97
- async function detectElevationTool() {
98
- if (_elevationTool !== null) return _elevationTool || null;
99
- if (IS_WINDOWS) {
100
- _elevationTool = "runas";
101
- return _elevationTool;
102
- }
103
- for (var tool of ["sudo", "doas"]) {
104
- try {
105
- await execAsync(`which ${tool}`, { timeout: 2e3 });
106
- _elevationTool = tool;
107
- return tool;
108
- } catch {
109
- }
110
- }
111
- _elevationTool = "";
112
- return null;
113
- }
114
- async function runCommand(cmd, opts) {
115
- var timeout = opts?.timeout || 3e5;
116
- var env = {
117
- ...process.env,
118
- PATH: localPath(),
119
- TERM: "dumb",
120
- HOMEBREW_NO_AUTO_UPDATE: "1",
121
- HOMEBREW_NO_INSTALL_UPGRADE: "1",
122
- HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1"
123
- };
124
- if (IS_LINUX || IS_MAC) env.DEBIAN_FRONTEND = "noninteractive";
125
- if (opts?.sudo) {
126
- if (IS_WINDOWS) {
127
- return execAsync(cmd, { timeout, maxBuffer: 4 * 1024 * 1024, env });
128
- }
129
- var elevTool = await detectElevationTool();
130
- if (!elevTool) {
131
- throw new Error("No elevation tool found (sudo/doas not installed). Cannot run elevated commands.");
132
- }
133
- var sudoPwd = _activePolicy.sudoPassword;
134
- if (sudoPwd) {
135
- if (elevTool === "sudo") {
136
- var escaped = sudoPwd.replace(/'/g, "'\\''");
137
- var fullCmd = `echo '${escaped}' | sudo -S ${cmd}`;
138
- return execAsync(fullCmd, { timeout, maxBuffer: 4 * 1024 * 1024, env });
139
- } else if (elevTool === "doas") {
140
- return execAsync(`doas ${cmd}`, { timeout, maxBuffer: 4 * 1024 * 1024, env });
141
- }
142
- }
143
- if (elevTool === "sudo") {
144
- return execAsync(`sudo -n ${cmd}`, { timeout, maxBuffer: 4 * 1024 * 1024, env });
145
- } else {
146
- return execAsync(`doas ${cmd}`, { timeout, maxBuffer: 4 * 1024 * 1024, env });
147
- }
148
- }
149
- return execAsync(cmd, { timeout, maxBuffer: 4 * 1024 * 1024, env });
150
- }
151
- async function commandExists(cmd) {
152
- try {
153
- var which = IS_WINDOWS ? "where" : "which";
154
- var { stdout: whichOut } = await execAsync(`${which} ${cmd}`, {
155
- timeout: 3e3,
156
- env: { ...process.env, PATH: localPath(), TERM: "dumb" }
157
- });
158
- var cmdPath = whichOut.trim().split("\n")[0].split("\r")[0];
159
- var version = "";
160
- try {
161
- var { stdout: verOut } = await execAsync(`${cmd} --version 2>&1`, {
162
- timeout: 5e3,
163
- env: { ...process.env, PATH: localPath(), TERM: "dumb" }
164
- });
165
- version = verOut.trim().split("\n")[0].slice(0, 200);
166
- } catch {
167
- try {
168
- var { stdout: verOut2 } = await execAsync(`${cmd} -version 2>&1`, { timeout: 3e3, env: { ...process.env, PATH: localPath(), TERM: "dumb" } });
169
- version = verOut2.trim().split("\n")[0].slice(0, 200);
170
- } catch {
171
- }
172
- }
173
- return { exists: true, path: cmdPath, version };
174
- } catch {
175
- return { exists: false };
176
- }
177
- }
178
- function buildInstallCommand(mgr, pkg) {
179
- var dirs = ensureLocalDir();
180
- switch (mgr) {
181
- case "brew":
182
- return { cmd: `brew install ${pkg}`, needsElevation: false, isLocal: false };
183
- case "apt":
184
- return { cmd: `apt-get install -y ${pkg}`, needsElevation: true, isLocal: false };
185
- case "dnf":
186
- return { cmd: `dnf install -y ${pkg}`, needsElevation: true, isLocal: false };
187
- case "pacman":
188
- return { cmd: `pacman -S --noconfirm ${pkg}`, needsElevation: true, isLocal: false };
189
- case "snap":
190
- return { cmd: `snap install ${pkg}`, needsElevation: true, isLocal: false };
191
- case "choco":
192
- return { cmd: `choco install ${pkg} -y`, needsElevation: false, isLocal: false };
193
- case "winget":
194
- return { cmd: `winget install --accept-source-agreements --accept-package-agreements ${pkg}`, needsElevation: false, isLocal: false };
195
- case "scoop":
196
- return { cmd: `scoop install ${pkg}`, needsElevation: false, isLocal: false };
197
- case "npm":
198
- return { cmd: `npm install --prefix "${dirs.root}" ${pkg}`, needsElevation: false, isLocal: true };
199
- case "pip":
200
- return { cmd: `pip install --target "${dirs.pipBin}" ${pkg}`, needsElevation: false, isLocal: true };
201
- }
202
- }
203
- async function pickManager(cmd, forceMethod) {
204
- var known = KNOWN_PACKAGES[cmd];
205
- if (forceMethod && forceMethod !== "auto") {
206
- var mgr = forceMethod;
207
- var pkg = known?.[mgr] || cmd;
208
- return { mgr, pkg, isLocal: mgr === "npm" || mgr === "pip" };
209
- }
210
- if (known?.npm && !known?.systemOnly) return { mgr: "npm", pkg: known.npm, isLocal: true };
211
- if (known?.pip && !known?.systemOnly) return { mgr: "pip", pkg: known.pip, isLocal: true };
212
- var available = await detectPackageManagers();
213
- if (IS_MAC && known?.brew && available.includes("brew")) return { mgr: "brew", pkg: known.brew, isLocal: false };
214
- if (IS_WINDOWS) {
215
- if (known?.scoop && available.includes("scoop")) return { mgr: "scoop", pkg: known.scoop, isLocal: false };
216
- if (known?.choco && available.includes("choco")) return { mgr: "choco", pkg: known.choco, isLocal: false };
217
- if (known?.winget && available.includes("winget")) return { mgr: "winget", pkg: known.winget, isLocal: false };
218
- }
219
- if (IS_LINUX) {
220
- if (known?.apt && available.includes("apt")) return { mgr: "apt", pkg: known.apt, isLocal: false };
221
- if (known?.dnf && available.includes("dnf")) return { mgr: "dnf", pkg: known.dnf, isLocal: false };
222
- if (known?.pacman && available.includes("pacman")) return { mgr: "pacman", pkg: known.pacman, isLocal: false };
223
- if (known?.snap && available.includes("snap")) return { mgr: "snap", pkg: known.snap, isLocal: false };
224
- }
225
- if (known?.pip && available.includes("pip")) return { mgr: "pip", pkg: known.pip, isLocal: false };
226
- for (var m of available) {
227
- if (m !== "npm" && m !== "pip") return { mgr: m, pkg: cmd, isLocal: false };
228
- }
229
- return null;
230
- }
231
- function createDependencyManagerTools() {
232
- return [
233
- {
234
- name: "check_dependency",
235
- description: `Check if command-line tools are available. Returns availability, version, path, and install instructions if missing. Safe \u2014 changes nothing. Use before running commands that need specific tools.`,
236
- input_schema: {
237
- type: "object",
238
- properties: {
239
- command: { type: "string", description: 'Command to check (e.g. "ffmpeg")' },
240
- commands: { type: "array", items: { type: "string" }, description: "Check multiple commands at once" }
241
- },
242
- required: []
243
- },
244
- execute: async (input) => {
245
- var cmds = input.commands || (input.command ? [input.command.trim()] : []);
246
- if (!cmds.length) return { error: 'Provide "command" or "commands".' };
247
- var results = {};
248
- for (var cmd of cmds) {
249
- var check = await commandExists(cmd);
250
- if (check.exists) {
251
- results[cmd] = { available: true, path: check.path, version: check.version };
252
- } else {
253
- var mgr = await pickManager(cmd);
254
- var policy = _activePolicy;
255
- results[cmd] = {
256
- available: false,
257
- description: KNOWN_PACKAGES[cmd]?.description || "Unknown tool",
258
- installable: !!mgr,
259
- method: mgr?.mgr,
260
- local: mgr?.isLocal ?? false,
261
- policyAllows: policy.mode !== "deny" && (mgr?.isLocal || policy.allowGlobalInstalls) && (!mgr || policy.allowedManagers.includes(mgr.mgr)) && !policy.blockedPackages.includes(mgr?.pkg || cmd),
262
- suggestion: mgr ? mgr.isLocal ? `install_dependency will install locally (no global changes)` : `install_dependency will use ${mgr.mgr} (global install)` : "Unknown package \u2014 specify package name and method manually"
263
- };
264
- }
265
- }
266
- return cmds.length === 1 ? results[cmds[0]] : results;
267
- }
268
- },
269
- {
270
- name: "install_dependency",
271
- description: `Install a missing tool. Respects the agent's dependency policy (set in Permissions dashboard).
272
- - npm/pip: installed to a SESSION-LOCAL directory \u2014 no global changes
273
- - brew/apt/choco/winget/scoop: global installs \u2014 only if policy allows
274
- - sudo: only if policy allows elevated, password piped via stdin (never in args)
275
- - NEVER modifies/upgrades existing tools
276
- - Cross-platform: macOS, Linux (all distros), Windows, Raspberry Pi`,
277
- input_schema: {
278
- type: "object",
279
- properties: {
280
- command: { type: "string", description: 'Tool name to install (e.g. "ffmpeg", "prettier")' },
281
- package: { type: "string", description: "Override package name if different from command" },
282
- method: { type: "string", enum: ["brew", "apt", "dnf", "pacman", "snap", "choco", "winget", "scoop", "npm", "pip", "auto"], description: "Package manager (default: auto-detect)" }
283
- },
284
- required: ["command"]
285
- },
286
- execute: async (input) => {
287
- var cmd = input.command.trim();
288
- var policy = _activePolicy;
289
- if (policy.mode === "deny") {
290
- return {
291
- ok: false,
292
- command: cmd,
293
- error: "Dependency installation is disabled for this agent. Change the dependency policy in the Permissions dashboard to allow installations.",
294
- policyMode: "deny"
295
- };
296
- }
297
- var existing = await commandExists(cmd);
298
- if (existing.exists) {
299
- var records = sessionInstalls.get("global") || [];
300
- if (!records.find((r2) => r2.command === cmd)) {
301
- records.push({ package: cmd, command: cmd, method: "existing", wasAlreadyInstalled: true, timestamp: Date.now() });
302
- sessionInstalls.set("global", records);
303
- }
304
- return { ok: true, alreadyInstalled: true, command: cmd, path: existing.path, version: existing.version, note: `"${cmd}" is already installed at ${existing.path}. No changes made.` };
305
- }
306
- var resolved = await pickManager(cmd, input.method !== "auto" ? input.method : void 0);
307
- if (input.package) {
308
- if (resolved) resolved.pkg = input.package;
309
- else {
310
- var mgrs = await detectPackageManagers();
311
- var fallback = IS_WINDOWS ? mgrs.includes("choco") ? "choco" : mgrs.includes("winget") ? "winget" : "npm" : IS_MAC ? "brew" : mgrs.includes("apt") ? "apt" : "npm";
312
- resolved = { mgr: fallback, pkg: input.package, isLocal: fallback === "npm" || fallback === "pip" };
313
- }
314
- }
315
- if (!resolved) {
316
- return { ok: false, command: cmd, error: `No package manager found for "${cmd}". Specify method and package name manually.` };
317
- }
318
- if (policy.blockedPackages.includes(resolved.pkg)) {
319
- return { ok: false, command: cmd, error: `Package "${resolved.pkg}" is blocked by policy.` };
320
- }
321
- if (!resolved.isLocal && !policy.allowGlobalInstalls) {
322
- return { ok: false, command: cmd, error: `Global installs (${resolved.mgr}) not allowed by policy. Only local npm/pip installs are permitted. Change "Allow Global Installs" in the Permissions dashboard.`, method: resolved.mgr };
323
- }
324
- if (policy.allowedManagers.length > 0 && !policy.allowedManagers.includes(resolved.mgr)) {
325
- return { ok: false, command: cmd, error: `Package manager "${resolved.mgr}" not in allowed list: [${policy.allowedManagers.join(", ")}]. Update allowed managers in the Permissions dashboard.` };
326
- }
327
- var installInfo = buildInstallCommand(resolved.mgr, resolved.pkg);
328
- if (installInfo.needsElevation && !policy.allowElevated) {
329
- return { ok: false, command: cmd, error: `"${resolved.mgr}" requires elevated/sudo privileges, which are disabled by policy. Enable "Allow Elevated" in the Permissions dashboard, or provide a sudo password.`, method: resolved.mgr };
330
- }
331
- if (policy.mode === "ask_manager") {
332
- return {
333
- ok: false,
334
- needsApproval: true,
335
- command: cmd,
336
- package: resolved.pkg,
337
- method: resolved.mgr,
338
- installCommand: installInfo.cmd,
339
- global: !resolved.isLocal,
340
- needsElevation: installInfo.needsElevation,
341
- message: `Agent needs approval to install "${resolved.pkg}" via ${resolved.mgr}. ${!resolved.isLocal ? "(global install)" : "(local install)"} ${installInfo.needsElevation ? "(requires elevated privileges)" : ""}`
342
- };
343
- }
344
- console.log(`[dep-manager] Installing: ${installInfo.cmd} (local=${installInfo.isLocal}, elevated=${installInfo.needsElevation})`);
345
- try {
346
- var r = await runCommand(installInfo.cmd, { sudo: installInfo.needsElevation, timeout: 3e5 });
347
- var records2 = sessionInstalls.get("global") || [];
348
- records2.push({ package: resolved.pkg, command: cmd, method: resolved.mgr, localPath: installInfo.isLocal ? SESSION_LOCAL_DIR : void 0, wasAlreadyInstalled: false, timestamp: Date.now() });
349
- sessionInstalls.set("global", records2);
350
- var verify = await commandExists(cmd);
351
- if (verify.exists) {
352
- return {
353
- ok: true,
354
- command: cmd,
355
- package: resolved.pkg,
356
- method: resolved.mgr,
357
- local: installInfo.isLocal,
358
- path: verify.path,
359
- note: installInfo.isLocal ? `Installed "${resolved.pkg}" locally. Available as "${cmd}" for this session.${policy.autoCleanup ? " Will be cleaned up automatically." : ""}` : `Installed "${resolved.pkg}" globally via ${resolved.mgr}. "${cmd}" is now available at ${verify.path}.`
360
- };
361
- } else {
362
- return {
363
- ok: true,
364
- command: cmd,
365
- package: resolved.pkg,
366
- method: resolved.mgr,
367
- warning: `Package installed but "${cmd}" not found in PATH. The binary might have a different name.`,
368
- stdout: (r.stdout || "").slice(-1e3)
369
- };
370
- }
371
- } catch (err) {
372
- var errMsg = (err.stderr || err.message || "").slice(0, 3e3);
373
- var hint = "";
374
- if (errMsg.includes("Permission denied") || errMsg.includes("EACCES") || errMsg.includes("not permitted")) {
375
- hint = 'Permission denied. Enable "Allow Elevated" in agent permissions and optionally provide a sudo password.';
376
- } else if (errMsg.includes("No such formula") || errMsg.includes("Unable to locate package") || errMsg.includes("not found")) {
377
- hint = `Package "${resolved.pkg}" not found in ${resolved.mgr}. Try a different package name.`;
378
- } else if (errMsg.includes("already installed")) {
379
- hint = "Already installed \u2014 try running the command directly.";
380
- } else if (errMsg.includes("password") || errMsg.includes("sudo")) {
381
- hint = "Sudo password required. Set it in the agent's Permissions dashboard \u2192 Dependency Policy \u2192 Sudo Password.";
382
- }
383
- return { ok: false, command: cmd, package: resolved.pkg, method: resolved.mgr, error: errMsg, hint: hint || "Installation failed." };
384
- }
385
- }
386
- },
387
- {
388
- name: "check_environment",
389
- description: "Survey the system: OS, architecture, package managers, common tool availability, disk space, and current dependency policy. Use at the start of complex tasks.",
390
- input_schema: { type: "object", properties: {}, required: [] },
391
- execute: async () => {
392
- var commonTools = ["ffmpeg", "convert", "jq", "curl", "wget", "pandoc", "tesseract", "yt-dlp", "rg", "node", "python3", "git", "docker"];
393
- if (IS_WINDOWS) commonTools.push("powershell", "wsl");
394
- var checks = {};
395
- await Promise.all(commonTools.map(async (tool) => {
396
- checks[tool] = (await commandExists(tool)).exists;
397
- }));
398
- var managers = await detectPackageManagers();
399
- var diskSpace = "";
400
- try {
401
- var dfCmd = IS_WINDOWS ? "wmic logicaldisk get size,freespace,caption" : "df -h / | tail -1";
402
- diskSpace = (await execAsync(dfCmd, { timeout: 3e3 })).stdout.trim();
403
- } catch {
404
- }
405
- var nodeVer = "";
406
- try {
407
- nodeVer = (await execAsync("node --version", { timeout: 2e3 })).stdout.trim();
408
- } catch {
409
- }
410
- var installed = sessionInstalls.get("global") || [];
411
- return {
412
- os: platform(),
413
- arch: process.arch,
414
- isWindows: IS_WINDOWS,
415
- isMac: IS_MAC,
416
- isLinux: IS_LINUX,
417
- packageManagers: managers,
418
- nodeVersion: nodeVer,
419
- diskSpace,
420
- tools: checks,
421
- missingTools: Object.entries(checks).filter(([, v]) => !v).map(([k]) => k),
422
- availableTools: Object.entries(checks).filter(([, v]) => v).map(([k]) => k),
423
- dependencyPolicy: {
424
- mode: _activePolicy.mode,
425
- allowGlobalInstalls: _activePolicy.allowGlobalInstalls,
426
- allowElevated: _activePolicy.allowElevated,
427
- hasSudoPassword: !!_activePolicy.sudoPassword,
428
- allowedManagers: _activePolicy.allowedManagers,
429
- autoCleanup: _activePolicy.autoCleanup
430
- },
431
- sessionInstalls: {
432
- count: installed.filter((r) => !r.wasAlreadyInstalled).length,
433
- packages: installed.filter((r) => !r.wasAlreadyInstalled).map((r) => ({ package: r.package, method: r.method, local: !!r.localPath }))
434
- }
435
- };
436
- }
437
- },
438
- {
439
- name: "cleanup_installed",
440
- description: `List or remove packages installed this session. Only removes what the agent installed \u2014 never touches pre-existing packages. Use "list" to see, "cleanup" to remove, "keep" to clear tracking.`,
441
- input_schema: {
442
- type: "object",
443
- properties: {
444
- action: { type: "string", enum: ["list", "cleanup", "keep"], description: "Action to take" },
445
- packages: { type: "array", items: { type: "string" }, description: "Specific packages to remove (default: all)" }
446
- },
447
- required: ["action"]
448
- },
449
- execute: async (input) => {
450
- var records = sessionInstalls.get("global") || [];
451
- var agentInstalled = records.filter((r) => !r.wasAlreadyInstalled);
452
- var preExisting = records.filter((r) => r.wasAlreadyInstalled);
453
- if (input.action === "list") {
454
- return {
455
- agentInstalled: agentInstalled.map((r) => ({
456
- package: r.package,
457
- command: r.command,
458
- method: r.method,
459
- local: !!r.localPath,
460
- installedAt: new Date(r.timestamp).toISOString()
461
- })),
462
- preExisting: preExisting.map((r) => ({ command: r.command, note: "Pre-existing \u2014 will NOT be removed" })),
463
- localDir: existsSync(SESSION_LOCAL_DIR) ? SESSION_LOCAL_DIR : null
464
- };
465
- }
466
- if (input.action === "keep") {
467
- sessionInstalls.delete("global");
468
- return { ok: true, message: "Tracking cleared. All packages remain installed.", kept: agentInstalled.map((r) => r.package) };
469
- }
470
- if (input.action === "cleanup") {
471
- var toRemove = input.packages ? agentInstalled.filter((r) => input.packages.includes(r.package) || input.packages.includes(r.command)) : agentInstalled;
472
- var results = [];
473
- var localPkgs = toRemove.filter((r) => !!r.localPath);
474
- if (localPkgs.length > 0 && existsSync(SESSION_LOCAL_DIR)) {
475
- try {
476
- var rmCmd = IS_WINDOWS ? `rmdir /s /q "${SESSION_LOCAL_DIR}"` : `rm -rf "${SESSION_LOCAL_DIR}"`;
477
- await execAsync(rmCmd, { timeout: 1e4 });
478
- for (var lp of localPkgs) results.push({ package: lp.package, removed: true, method: "local-dir-deleted" });
479
- } catch (err) {
480
- for (var lp2 of localPkgs) results.push({ package: lp2.package, removed: false, error: err.message?.slice(0, 200) });
481
- }
482
- }
483
- var globalPkgs = toRemove.filter((r) => !r.localPath);
484
- for (var gp of globalPkgs) {
485
- try {
486
- var uninstallCmd = "";
487
- var needsElev = false;
488
- switch (gp.method) {
489
- case "brew":
490
- uninstallCmd = `brew uninstall --ignore-dependencies ${gp.package}`;
491
- break;
492
- case "apt":
493
- uninstallCmd = `apt-get remove -y ${gp.package}`;
494
- needsElev = true;
495
- break;
496
- case "dnf":
497
- uninstallCmd = `dnf remove -y ${gp.package}`;
498
- needsElev = true;
499
- break;
500
- case "pacman":
501
- uninstallCmd = `pacman -R --noconfirm ${gp.package}`;
502
- needsElev = true;
503
- break;
504
- case "snap":
505
- uninstallCmd = `snap remove ${gp.package}`;
506
- needsElev = true;
507
- break;
508
- case "choco":
509
- uninstallCmd = `choco uninstall ${gp.package} -y`;
510
- break;
511
- case "winget":
512
- uninstallCmd = `winget uninstall ${gp.package}`;
513
- break;
514
- case "scoop":
515
- uninstallCmd = `scoop uninstall ${gp.package}`;
516
- break;
517
- case "pip":
518
- uninstallCmd = `pip uninstall -y ${gp.package}`;
519
- break;
520
- }
521
- if (uninstallCmd) {
522
- await runCommand(uninstallCmd, { sudo: needsElev, timeout: 6e4 });
523
- results.push({ package: gp.package, removed: true, method: gp.method });
524
- }
525
- } catch (err) {
526
- results.push({ package: gp.package, removed: false, error: (err.message || "").slice(0, 200) });
527
- }
528
- }
529
- var removedPkgs = new Set(results.filter((r) => r.removed).map((r) => r.package));
530
- var remaining = records.filter((r) => !removedPkgs.has(r.package));
531
- sessionInstalls.set("global", remaining);
532
- return { results, remaining: remaining.filter((r) => !r.wasAlreadyInstalled).map((r) => r.package), preExistingUntouched: preExisting.map((r) => r.command) };
533
- }
534
- return { error: 'Unknown action. Use "list", "cleanup", or "keep".' };
535
- }
536
- }
537
- ];
538
- }
539
- export {
540
- createDependencyManagerTools,
541
- getDependencyPolicy,
542
- setDependencyPolicy
543
- };