@agenticmail/enterprise 0.5.319 → 0.5.321

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 (330) hide show
  1. package/CHANGELOG.md +68 -0
  2. package/CODE_OF_CONDUCT.md +31 -0
  3. package/README.md +118 -38
  4. package/SECURITY.md +42 -0
  5. package/dist/agent-heartbeat-3FWNHZFX.js +510 -0
  6. package/dist/agent-heartbeat-4RWHZR7H.js +510 -0
  7. package/dist/agent-heartbeat-6ZGB5ILY.js +510 -0
  8. package/dist/agent-heartbeat-BIVHLKFM.js +510 -0
  9. package/dist/agent-heartbeat-HRKVFK2T.js +510 -0
  10. package/dist/agent-heartbeat-JC5GWVXD.js +510 -0
  11. package/dist/agent-heartbeat-K6A4HMHB.js +510 -0
  12. package/dist/agent-heartbeat-LCDXWFVB.js +510 -0
  13. package/dist/agent-heartbeat-P7HZCZAQ.js +510 -0
  14. package/dist/agent-heartbeat-PUIRSNIO.js +510 -0
  15. package/dist/agent-heartbeat-SN5ILQ6Y.js +510 -0
  16. package/dist/agent-heartbeat-TW5YTDYC.js +510 -0
  17. package/dist/agent-heartbeat-Z2QQXROL.js +510 -0
  18. package/dist/agent-notify-OEQBCZLN.js +43 -0
  19. package/dist/{agent-tools-263HM5QU.js → agent-tools-3W7XLUYA.js} +1 -1
  20. package/dist/agent-tools-4QK7LLNP.js +9 -0
  21. package/dist/agent-tools-54VZGT6L.js +9 -0
  22. package/dist/{agent-tools-AT4D276V.js → agent-tools-AYYDPO27.js} +7 -7
  23. package/dist/{agent-tools-MSTAPX2I.js → agent-tools-F2X47FKF.js} +7 -7
  24. package/dist/{agent-tools-FA26SY5O.js → agent-tools-O6W3QAZL.js} +11 -6
  25. package/dist/agent-tools-OAWVZBMW.js +9 -0
  26. package/dist/agent-tools-QCCU74PN.js +13949 -0
  27. package/dist/chunk-2LHUARN6.js +4929 -0
  28. package/dist/chunk-2WVCNCYC.js +5087 -0
  29. package/dist/{chunk-6PWDS7KY.js → chunk-3FM6YQUK.js} +20 -20
  30. package/dist/chunk-3UAFHUEC.js +212 -0
  31. package/dist/{chunk-WJO57PMO.js → chunk-46GOWZT4.js} +20 -20
  32. package/dist/{chunk-BNRE7TSX.js → chunk-5KYJAUZV.js} +3 -3
  33. package/dist/chunk-6C5PKREN.js +467 -0
  34. package/dist/{chunk-447MTPZF.js → chunk-6ZMLNEHB.js} +3 -3
  35. package/dist/chunk-BPZQT5N5.js +25652 -0
  36. package/dist/chunk-BQM7MBPS.js +1380 -0
  37. package/dist/{chunk-ZRFKGPIU.js → chunk-C52OQNNY.js} +20 -20
  38. package/dist/chunk-C7HGQF4Y.js +25652 -0
  39. package/dist/chunk-CAHNZGGK.js +25656 -0
  40. package/dist/{chunk-FL3CH3ET.js → chunk-CK7R6UHE.js} +51 -27
  41. package/dist/chunk-D36RPWB7.js +25652 -0
  42. package/dist/{chunk-36NM2B4C.js → chunk-DJK2UPFH.js} +63 -93
  43. package/dist/chunk-DM7FTF7W.js +4929 -0
  44. package/dist/chunk-DMD24UFZ.js +5101 -0
  45. package/dist/{chunk-36XNMIHA.js → chunk-DXZGPUAF.js} +20 -20
  46. package/dist/chunk-F46WB5IL.js +5087 -0
  47. package/dist/chunk-F5QG5SQH.js +5087 -0
  48. package/dist/{chunk-JGEVQZDR.js → chunk-FLQ5FLHW.js} +13 -16
  49. package/dist/chunk-H7GP733U.js +5087 -0
  50. package/dist/{chunk-OZSQLOV6.js → chunk-HHBXWB5U.js} +415 -19
  51. package/dist/{chunk-D24JY75H.js → chunk-IMXS4N6W.js} +3 -3
  52. package/dist/{chunk-6PVBV6ZP.js → chunk-JNMDD7JY.js} +3 -3
  53. package/dist/chunk-JTV5LA47.js +1519 -0
  54. package/dist/chunk-KV6G7NZX.js +1519 -0
  55. package/dist/chunk-MU5MEBIK.js +1519 -0
  56. package/dist/chunk-NLT5MC7X.js +465 -0
  57. package/dist/{chunk-GTFZZUXX.js → chunk-NVLYIM4J.js} +51 -27
  58. package/dist/{chunk-6G5SXLXC.js → chunk-NZY2BIZH.js} +63 -93
  59. package/dist/chunk-O42L6G67.js +1519 -0
  60. package/dist/chunk-OCNERGGM.js +4891 -0
  61. package/dist/chunk-OJSNHONE.js +1519 -0
  62. package/dist/{chunk-2TAZJWJN.js → chunk-OWL3QVH7.js} +18 -0
  63. package/dist/{chunk-P3HVY2HS.js → chunk-OWTLNV4Q.js} +382 -7
  64. package/dist/chunk-PCNYEP6T.js +4891 -0
  65. package/dist/{chunk-YL3Z5KPR.js → chunk-PI4AQ4Z6.js} +438 -15
  66. package/dist/chunk-PN3EGTCA.js +194 -0
  67. package/dist/chunk-Q37UKNRC.js +1519 -0
  68. package/dist/chunk-QXTC6J7H.js +5087 -0
  69. package/dist/{chunk-SPBQVNDI.js → chunk-RKERL5LZ.js} +25 -21
  70. package/dist/chunk-RVBK2IOX.js +25652 -0
  71. package/dist/chunk-SAKODCZ5.js +4891 -0
  72. package/dist/{chunk-XV4TU65E.js → chunk-SALGFC5L.js} +51 -27
  73. package/dist/chunk-STGWZ2MS.js +1519 -0
  74. package/dist/chunk-UY3ZVQDP.js +25652 -0
  75. package/dist/chunk-V6OSD62M.js +5087 -0
  76. package/dist/chunk-VP6YAHX4.js +1519 -0
  77. package/dist/chunk-WDYJOEAI.js +5087 -0
  78. package/dist/chunk-WEAFQNOS.js +195 -0
  79. package/dist/chunk-XKUSAZGP.js +5087 -0
  80. package/dist/chunk-Z6K5FKAB.js +548 -0
  81. package/dist/chunk-ZGE3XAXY.js +1519 -0
  82. package/dist/chunk-ZGYVXYQQ.js +3296 -0
  83. package/dist/cli-agent-7TB2BWS6.js +2370 -0
  84. package/dist/cli-agent-AKXFFST2.js +2370 -0
  85. package/dist/cli-agent-DZTKLITB.js +2357 -0
  86. package/dist/cli-agent-FOF7PFEP.js +2357 -0
  87. package/dist/cli-agent-H74M2ZYN.js +2357 -0
  88. package/dist/cli-agent-HORWVPHB.js +2370 -0
  89. package/dist/cli-agent-HSZT6SKF.js +2423 -0
  90. package/dist/cli-agent-JLUQ4ZU6.js +2424 -0
  91. package/dist/cli-agent-MVCDH4HV.js +2370 -0
  92. package/dist/cli-agent-NZXOEPJ2.js +2357 -0
  93. package/dist/cli-agent-PADN3QRC.js +2357 -0
  94. package/dist/cli-agent-QAYEX3BE.js +2441 -0
  95. package/dist/cli-agent-QT64DT5J.js +2370 -0
  96. package/dist/cli-agent-TFL2M6UK.js +2424 -0
  97. package/dist/cli-agent-UIKXATTD.js +2357 -0
  98. package/dist/cli-agent-UJN6FYTO.js +2370 -0
  99. package/dist/cli-agent-VIQAYVY4.js +2357 -0
  100. package/dist/cli-agent-WNWFVOFM.js +2370 -0
  101. package/dist/cli-agent-XBQX67VJ.js +2423 -0
  102. package/dist/cli-agent-ZLSC6FF4.js +2357 -0
  103. package/dist/cli-serve-2IL5DTEY.js +153 -0
  104. package/dist/cli-serve-47N5UKKW.js +153 -0
  105. package/dist/cli-serve-4XGZFUV2.js +140 -0
  106. package/dist/cli-serve-6OT3UEAN.js +140 -0
  107. package/dist/cli-serve-7L6EY5UH.js +153 -0
  108. package/dist/cli-serve-BDGOOOKQ.js +260 -0
  109. package/dist/cli-serve-BFNIW2LF.js +153 -0
  110. package/dist/cli-serve-C7MN6U5Q.js +153 -0
  111. package/dist/cli-serve-CR3OY3IM.js +153 -0
  112. package/dist/cli-serve-DAJFRWQ7.js +153 -0
  113. package/dist/cli-serve-FW6FHFW4.js +153 -0
  114. package/dist/cli-serve-GEEOQS77.js +153 -0
  115. package/dist/cli-serve-H562I3ZK.js +153 -0
  116. package/dist/cli-serve-HDQZF4C4.js +153 -0
  117. package/dist/cli-serve-LICAOMEB.js +140 -0
  118. package/dist/cli-serve-LLGYLWFS.js +153 -0
  119. package/dist/cli-serve-N3OISDNB.js +153 -0
  120. package/dist/cli-serve-TIZ27EVR.js +153 -0
  121. package/dist/cli-serve-TUNI2RCN.js +153 -0
  122. package/dist/cli-serve-WNOZMAWD.js +153 -0
  123. package/dist/cli-validate-Z726VJCN.js +150 -0
  124. package/dist/cli.js +4 -4
  125. package/dist/connection-manager-KAWEUWUR.js +9 -0
  126. package/dist/dashboard/app.js +9 -3
  127. package/dist/dashboard/components/knowledge-link.js +15 -0
  128. package/dist/dashboard/components/settings-help.js +4 -2
  129. package/dist/dashboard/docs/agent-deployment.html +33 -1
  130. package/dist/dashboard/docs/settings-network.html +321 -0
  131. package/dist/dashboard/docs/settings-security.html +347 -0
  132. package/dist/dashboard/docs/settings-tool-security.html +176 -0
  133. package/dist/dashboard/docs/settings.html +36 -16
  134. package/dist/dashboard/pages/agent-detail/deployment.js +39 -6
  135. package/dist/dashboard/pages/agent-detail/tools.js +10 -0
  136. package/dist/dashboard/pages/database-access.js +4 -3
  137. package/dist/dashboard/pages/settings.js +174 -37
  138. package/dist/dashboard/pages/task-pipeline.js +400 -843
  139. package/dist/db-adapter-2T56ORSD.js +7 -0
  140. package/dist/db-adapter-IRHOUMVC.js +7 -0
  141. package/dist/index.js +41 -41
  142. package/dist/microsoft-VREAZ7M2.js +3955 -0
  143. package/dist/routes-3MMLQTB6.js +90 -0
  144. package/dist/routes-4ZUIJ4HE.js +90 -0
  145. package/dist/routes-5MXHKKH4.js +90 -0
  146. package/dist/routes-64NJFK3B.js +90 -0
  147. package/dist/routes-6AKQ2LBV.js +90 -0
  148. package/dist/routes-CRRBUDO4.js +90 -0
  149. package/dist/routes-DIAF3MC3.js +90 -0
  150. package/dist/routes-KMUNU6CY.js +90 -0
  151. package/dist/routes-LRRLXIZR.js +90 -0
  152. package/dist/routes-N647AJYG.js +90 -0
  153. package/dist/routes-SSSELAAR.js +90 -0
  154. package/dist/routes-STERVGKJ.js +90 -0
  155. package/dist/routes-ZEZZACZP.js +90 -0
  156. package/dist/runtime-5EQN4GFM.js +45 -0
  157. package/dist/runtime-5LP7PUD4.js +45 -0
  158. package/dist/runtime-6BULDBR3.js +45 -0
  159. package/dist/runtime-6YEENDN3.js +45 -0
  160. package/dist/runtime-7LQFRG3B.js +45 -0
  161. package/dist/runtime-AMXJU2MB.js +45 -0
  162. package/dist/runtime-D6WSE7FG.js +45 -0
  163. package/dist/runtime-EYVN7NFJ.js +45 -0
  164. package/dist/runtime-F6RPWQVW.js +45 -0
  165. package/dist/runtime-FYMJURFC.js +45 -0
  166. package/dist/runtime-JRNBL4O4.js +45 -0
  167. package/dist/runtime-OM2NIBMI.js +45 -0
  168. package/dist/runtime-QWPVD7CY.js +45 -0
  169. package/dist/runtime-YLIIPTE4.js +45 -0
  170. package/dist/runtime-YU6P22CG.js +45 -0
  171. package/dist/screen-unlock-4RPZBHOI.js +118 -0
  172. package/dist/server-AMCSXINC.js +28 -0
  173. package/dist/server-CU6LVQS4.js +28 -0
  174. package/dist/server-DFYGH2CV.js +28 -0
  175. package/dist/server-EELWOC3X.js +28 -0
  176. package/dist/server-EN5E2OWQ.js +28 -0
  177. package/dist/server-GW2HYJYI.js +28 -0
  178. package/dist/server-J25NCRWJ.js +28 -0
  179. package/dist/server-JDGNOTFV.js +28 -0
  180. package/dist/server-NE5HD5DJ.js +28 -0
  181. package/dist/server-NQOT7W77.js +28 -0
  182. package/dist/server-PWE5PQTR.js +28 -0
  183. package/dist/server-Q2Q32H2B.js +28 -0
  184. package/dist/server-Q77ME7TL.js +28 -0
  185. package/dist/server-WLLH4WST.js +28 -0
  186. package/dist/server-WTUJ2O3F.js +28 -0
  187. package/dist/server-X4CJTHHF.js +28 -0
  188. package/dist/server-XK3ILCJC.js +28 -0
  189. package/dist/server-ZRD3NDJE.js +28 -0
  190. package/dist/setup-44VBAO4J.js +20 -0
  191. package/dist/setup-4ONNQBWB.js +20 -0
  192. package/dist/setup-4OSBXSCL.js +20 -0
  193. package/dist/setup-4QFGRBLZ.js +20 -0
  194. package/dist/setup-6766SGAR.js +20 -0
  195. package/dist/setup-AYY24DKM.js +20 -0
  196. package/dist/setup-B34N4HPU.js +20 -0
  197. package/dist/setup-E2YLC2EY.js +20 -0
  198. package/dist/setup-ER6NXTY5.js +20 -0
  199. package/dist/setup-H2AGCBW5.js +20 -0
  200. package/dist/setup-ICOZRKCX.js +20 -0
  201. package/dist/setup-JFTJH7UF.js +20 -0
  202. package/dist/setup-PRFNI6YW.js +20 -0
  203. package/dist/setup-RAHBMYHE.js +20 -0
  204. package/dist/setup-TXPR5UQX.js +20 -0
  205. package/dist/setup-XCJMELVU.js +20 -0
  206. package/dist/setup-XIYEIFVK.js +20 -0
  207. package/dist/setup-Z4PZSHBI.js +20 -0
  208. package/dist/skills-FR7I5V7H.js +16 -0
  209. package/dist/skills-HCVBA6PK.js +16 -0
  210. package/dist/system-prompts-TM7OA32C.js +913 -0
  211. package/dist/task-queue-O7IVZYUO.js +9 -0
  212. package/dist/transport-encryption-2T7PIXKG.js +25 -0
  213. package/logs/cloudflared-error.log +61 -0
  214. package/logs/cloudflared-out.log +0 -0
  215. package/logs/enterprise-error.log +0 -0
  216. package/logs/enterprise-out.log +3 -0
  217. package/logs/fola-error.log +0 -0
  218. package/logs/fola-out.log +0 -0
  219. package/logs/john-error.log +8 -0
  220. package/logs/john-out.log +0 -0
  221. package/package.json +31 -3
  222. package/src/agent-tools/tool-resolver.ts +50 -61
  223. package/src/agent-tools/tools/enterprise-database.ts +5 -5
  224. package/src/agent-tools/tools/local/dependency-manager.ts +2 -2
  225. package/src/agent-tools/tools/microsoft/graph-api.ts +137 -26
  226. package/src/agent-tools/tools/microsoft/outlook-mail.ts +392 -100
  227. package/src/agent-tools/tools/microsoft/teams.ts +267 -48
  228. package/src/auth/routes.ts +4 -4
  229. package/src/cli-agent.ts +108 -8
  230. package/src/cli-serve.ts +140 -0
  231. package/src/dashboard/app.js +9 -3
  232. package/src/dashboard/components/knowledge-link.js +15 -0
  233. package/src/dashboard/components/settings-help.js +4 -2
  234. package/src/dashboard/docs/agent-deployment.html +33 -1
  235. package/src/dashboard/docs/settings-network.html +321 -0
  236. package/src/dashboard/docs/settings-security.html +347 -0
  237. package/src/dashboard/docs/settings-tool-security.html +176 -0
  238. package/src/dashboard/docs/settings.html +36 -16
  239. package/src/dashboard/pages/agent-detail/deployment.js +39 -6
  240. package/src/dashboard/pages/agent-detail/tools.js +10 -0
  241. package/src/dashboard/pages/database-access.js +4 -3
  242. package/src/dashboard/pages/settings.js +174 -37
  243. package/src/dashboard/pages/task-pipeline.js +400 -843
  244. package/src/database-access/agent-tools.ts +78 -63
  245. package/src/database-access/connection-manager.ts +13 -2
  246. package/src/database-access/routes.ts +13 -1
  247. package/src/db/adapter.ts +1 -0
  248. package/src/engine/agent-memory.ts +2 -1
  249. package/src/engine/agent-notify.ts +50 -0
  250. package/src/engine/agent-routes.ts +257 -4
  251. package/src/engine/db-adapter.ts +16 -0
  252. package/src/engine/lifecycle.ts +4 -0
  253. package/src/engine/routes.ts +4 -3
  254. package/src/engine/screen-unlock.ts +136 -0
  255. package/src/engine/skills/database-access.ts +78 -0
  256. package/src/engine/skills/index.ts +3 -2
  257. package/src/engine/skills.ts +2 -0
  258. package/src/engine/task-queue-routes.ts +18 -0
  259. package/src/engine/task-queue.ts +15 -2
  260. package/src/middleware/transport-encryption.ts +1 -4
  261. package/src/runtime/agent-loop.ts +4 -0
  262. package/src/runtime/index.ts +15 -6
  263. package/src/server.ts +14 -1
  264. package/src/system-prompts/google/index.ts +1 -2
  265. package/src/system-prompts/index.ts +1 -1
  266. package/src/system-prompts/microsoft/contacts.ts +34 -0
  267. package/src/system-prompts/microsoft/excel.ts +52 -0
  268. package/src/system-prompts/microsoft/index.ts +31 -0
  269. package/src/system-prompts/microsoft/onedrive.ts +41 -0
  270. package/src/system-prompts/microsoft/onenote.ts +36 -0
  271. package/src/system-prompts/microsoft/outlook-calendar.ts +37 -0
  272. package/src/system-prompts/microsoft/outlook-mail.ts +46 -0
  273. package/src/system-prompts/microsoft/planner.ts +37 -0
  274. package/src/system-prompts/microsoft/powerbi.ts +38 -0
  275. package/src/system-prompts/microsoft/powerpoint.ts +35 -0
  276. package/src/system-prompts/microsoft/sharepoint.ts +44 -0
  277. package/src/system-prompts/microsoft/teams.ts +49 -0
  278. package/src/system-prompts/microsoft/todo.ts +37 -0
  279. package/src/types/hono-env.ts +4 -0
  280. package/.github/CODEOWNERS +0 -23
  281. package/.github/workflows/publish-community-skills.yml +0 -121
  282. package/.github/workflows/validate-community-skills.yml +0 -172
  283. package/agriculture_southwest_nigeria_research.txt +0 -10
  284. package/boa_credit_cards_research.txt +0 -10
  285. package/customer_support_research_feb2026.txt +0 -10
  286. package/dist/agent-tools-LRA7PPXG.js +0 -13922
  287. package/dist/agent-tools-VAU5DOQB.js +0 -13910
  288. package/dist/agent-tools-VWV7OWXU.js +0 -13922
  289. package/dist/chunk-2Z7MWTCX.js +0 -4977
  290. package/dist/chunk-3T4XU3VV.js +0 -5010
  291. package/dist/chunk-445QM4NX.js +0 -5061
  292. package/dist/chunk-5TW3Y7DJ.js +0 -1519
  293. package/dist/chunk-6I7VY3LT.js +0 -5060
  294. package/dist/chunk-6W5EK3UP.js +0 -4977
  295. package/dist/chunk-AQMSHJQT.js +0 -5069
  296. package/dist/chunk-ASSQW7HX.js +0 -5051
  297. package/dist/chunk-CIN27FGC.js +0 -5037
  298. package/dist/chunk-CMXY3NUB.js +0 -4977
  299. package/dist/chunk-DRLMRUDP.js +0 -5052
  300. package/dist/chunk-EHI7Z446.js +0 -1519
  301. package/dist/chunk-FEAILFAQ.js +0 -1519
  302. package/dist/chunk-GA3PYBZL.js +0 -1519
  303. package/dist/chunk-GWX63G5J.js +0 -1519
  304. package/dist/chunk-HHMZ4UY6.js +0 -1519
  305. package/dist/chunk-HVQMNF7E.js +0 -4921
  306. package/dist/chunk-HXM7F3YN.js +0 -1519
  307. package/dist/chunk-K6NGOUXG.js +0 -5060
  308. package/dist/chunk-KPG5WINJ.js +0 -4977
  309. package/dist/chunk-LBCUBYDL.js +0 -1519
  310. package/dist/chunk-LIRQSWLR.js +0 -5014
  311. package/dist/chunk-LRCKO5KE.js +0 -1519
  312. package/dist/chunk-M7XL3DJD.js +0 -5069
  313. package/dist/chunk-MHJULEIQ.js +0 -1519
  314. package/dist/chunk-MJGGW6MC.js +0 -106
  315. package/dist/chunk-MMYBDHDB.js +0 -4921
  316. package/dist/chunk-MQT5FXKD.js +0 -1519
  317. package/dist/chunk-OIMPEQF5.js +0 -4977
  318. package/dist/chunk-OOU7JUYE.js +0 -542
  319. package/dist/chunk-OW4GLBHP.js +0 -1519
  320. package/dist/chunk-Q4K4MMLU.js +0 -4977
  321. package/dist/chunk-RUK4CRPF.js +0 -1519
  322. package/dist/chunk-T7H65XQY.js +0 -1519
  323. package/dist/chunk-TQVFWG57.js +0 -5064
  324. package/dist/chunk-UEPK3IMC.js +0 -1519
  325. package/dist/chunk-VUWTXJH6.js +0 -1519
  326. package/dist/chunk-WCPGGSAD.js +0 -1519
  327. package/dist/chunk-WO63NZOJ.js +0 -1519
  328. package/dist/chunk-YPJDRVUM.js +0 -5064
  329. package/dist/chunk-ZROMH5DL.js +0 -4921
  330. package/src/dashboard/docs/_template.txt +0 -92
@@ -0,0 +1,3296 @@
1
+ import {
2
+ __esm,
3
+ __export
4
+ } from "./chunk-KFQGP6VL.js";
5
+
6
+ // src/engine/emoji.ts
7
+ var Emoji;
8
+ var init_emoji = __esm({
9
+ "src/engine/emoji.ts"() {
10
+ "use strict";
11
+ Emoji = {
12
+ // Status
13
+ check: "\u2705",
14
+ // ✅
15
+ cross: "\u274C",
16
+ // ❌
17
+ warning: "\u26A0\uFE0F",
18
+ // ⚠️
19
+ blocked: "\u{1F6AB}",
20
+ // 🚫
21
+ bolt: "\u26A1",
22
+ // ⚡
23
+ hourglass: "\u23F3",
24
+ // ⏳
25
+ search: "\u{1F50D}",
26
+ // 🔍
27
+ clock: "\u23F0",
28
+ // ⏰
29
+ // Communication
30
+ email: "\u2709\uFE0F",
31
+ // ✉️
32
+ envelope: "\u{1F4E7}",
33
+ // 📧
34
+ chat: "\u{1F4AC}",
35
+ // 💬
36
+ whatsapp: "\u{1F4F2}",
37
+ // 📲 (WhatsApp — green circle in dashboard SVG)
38
+ telegram: "\u2708\uFE0F",
39
+ // ✈️ (Telegram — blue paper plane in dashboard SVG)
40
+ mailbox: "\u{1F4EC}",
41
+ // 📬
42
+ // Documents
43
+ clipboard: "\u{1F4CB}",
44
+ // 📋
45
+ note: "\u{1F4DD}",
46
+ // 📝
47
+ document: "\u{1F4C4}",
48
+ // 📄
49
+ scroll: "\u{1F4C4}",
50
+ // 📄
51
+ notebook: "\u{1F4D3}",
52
+ // 📓
53
+ books: "\u{1F4DA}",
54
+ // 📚
55
+ pin: "\u{1F4CC}",
56
+ // 📌
57
+ // Data & Charts
58
+ barChart: "\u{1F4CA}",
59
+ // 📊
60
+ chartUp: "\u{1F4C8}",
61
+ // 📈
62
+ calendar: "\u{1F4C5}",
63
+ // 📅
64
+ // Files & Storage
65
+ folder: "\u{1F4C1}",
66
+ // 📁
67
+ database: "\u{1F5C4}\uFE0F",
68
+ // 🗄️
69
+ package: "\u{1F4E6}",
70
+ // 📦
71
+ // Tools & Settings
72
+ gear: "\u2699\uFE0F",
73
+ // ⚙️
74
+ wrench: "\u{1F527}",
75
+ // 🔧
76
+ key: "\u{1F511}",
77
+ // 🔑
78
+ lock: "\u{1F512}",
79
+ // 🔒
80
+ shield: "\u{1F6E1}",
81
+ // 🛡
82
+ pen: "\u{1F58A}",
83
+ // 🖊
84
+ // Media & Visuals
85
+ video: "\u{1F3A5}",
86
+ // 🎥
87
+ art: "\u{1F3A8}",
88
+ // 🎨
89
+ projector: "\u{1F4FD}",
90
+ // 📽
91
+ sparkle: "\u2728",
92
+ // ✨
93
+ // Navigation & Networking
94
+ globe: "\u{1F310}",
95
+ // 🌐
96
+ map: "\u{1F5FA}\uFE0F",
97
+ // 🗺️
98
+ link: "\u{1F517}",
99
+ // 🔗
100
+ shuffle: "\u{1F500}",
101
+ // 🔀
102
+ biDirectional: "\u2194\uFE0F",
103
+ // ↔️
104
+ // People & AI
105
+ people: "\u{1F465}",
106
+ // 👥
107
+ robot: "\u{1F916}",
108
+ // 🤖
109
+ brain: "\u{1F9E0}",
110
+ // 🧠
111
+ thumbsUp: "\u{1F44D}",
112
+ // 👍
113
+ // Nature & Weather
114
+ sunrise: "\u{1F305}",
115
+ // 🌅
116
+ cloud: "\u2601\uFE0F",
117
+ // ☁️
118
+ partlyCloudy: "\u26C5",
119
+ // ⛅
120
+ sunCloud: "\u{1F324}\uFE0F",
121
+ // 🌤️
122
+ // Misc
123
+ rocket: "\u{1F680}",
124
+ // 🚀
125
+ building: "\u{1F3E2}",
126
+ // 🏢
127
+ vault: "\u{1F3DB}",
128
+ // 🏛
129
+ construction: "\u{1F3D7}",
130
+ // 🏗
131
+ computer: "\u{1F4BB}",
132
+ // 💻
133
+ terminal: "\u{1F5A5}\uFE0F",
134
+ // 🖥️ (terminal/shell — maps to terminal SVG in dashboard)
135
+ lobster: "\u{1F99E}",
136
+ // 🦞
137
+ heart: "\u{1F49C}",
138
+ // 💜
139
+ redHeart: "\u2764\uFE0F",
140
+ // ❤️
141
+ // Colors
142
+ blueCircle: "\u{1F535}",
143
+ // 🔵
144
+ blueDiamond: "\u{1F537}",
145
+ // 🔷
146
+ orangeCircle: "\u{1F7E0}",
147
+ // 🟠
148
+ // Vision
149
+ eye: "\u{1F441}",
150
+ // 👁
151
+ // Arrows
152
+ triangleUp: "\u25B2",
153
+ // ▲
154
+ triangleDown: "\u25BC"
155
+ // ▼
156
+ };
157
+ }
158
+ });
159
+
160
+ // src/engine/skills/m365-outlook.ts
161
+ var m365_outlook_exports = {};
162
+ __export(m365_outlook_exports, {
163
+ SKILL_DEF: () => SKILL_DEF,
164
+ TOOLS: () => TOOLS
165
+ });
166
+ var SKILL_DEF, TOOLS;
167
+ var init_m365_outlook = __esm({
168
+ "src/engine/skills/m365-outlook.ts"() {
169
+ "use strict";
170
+ init_emoji();
171
+ SKILL_DEF = {
172
+ id: "m365-outlook",
173
+ name: "Outlook",
174
+ description: "Email, calendar, contacts, and scheduling via Microsoft Outlook. Send/receive mail, manage events, book rooms.",
175
+ category: "communication",
176
+ risk: "medium",
177
+ icon: Emoji.mailbox,
178
+ source: "builtin"
179
+ };
180
+ TOOLS = [
181
+ { id: "m365_mail_send", name: "Send Mail", description: "Send email via Outlook", category: "communicate", risk: "high", skillId: "m365-outlook", sideEffects: ["sends-email"] },
182
+ { id: "m365_mail_read", name: "Read Mail", description: "Read emails from mailbox", category: "read", risk: "low", skillId: "m365-outlook", sideEffects: [] },
183
+ { id: "m365_mail_search", name: "Search Mail", description: "Search mailbox with filters", category: "read", risk: "low", skillId: "m365-outlook", sideEffects: [] },
184
+ { id: "m365_mail_delete", name: "Delete Mail", description: "Delete email from mailbox", category: "destroy", risk: "medium", skillId: "m365-outlook", sideEffects: ["deletes-data"] },
185
+ { id: "m365_mail_move", name: "Move Mail", description: "Move email to folder", category: "write", risk: "low", skillId: "m365-outlook", sideEffects: [] },
186
+ { id: "m365_mail_reply", name: "Reply to Mail", description: "Reply to an email", category: "communicate", risk: "high", skillId: "m365-outlook", sideEffects: ["sends-email"] },
187
+ { id: "m365_calendar_list", name: "List Events", description: "List calendar events", category: "read", risk: "low", skillId: "m365-outlook", sideEffects: [] },
188
+ { id: "m365_calendar_create", name: "Create Event", description: "Create calendar event", category: "write", risk: "medium", skillId: "m365-outlook", sideEffects: ["sends-email"] },
189
+ { id: "m365_calendar_update", name: "Update Event", description: "Update calendar event", category: "write", risk: "medium", skillId: "m365-outlook", sideEffects: [] },
190
+ { id: "m365_calendar_delete", name: "Delete Event", description: "Delete calendar event", category: "destroy", risk: "medium", skillId: "m365-outlook", sideEffects: ["deletes-data"] },
191
+ { id: "m365_contacts_list", name: "List Contacts", description: "List Outlook contacts", category: "read", risk: "low", skillId: "m365-outlook", sideEffects: [] },
192
+ { id: "m365_contacts_create", name: "Create Contact", description: "Create Outlook contact", category: "write", risk: "low", skillId: "m365-outlook", sideEffects: [] }
193
+ ];
194
+ }
195
+ });
196
+
197
+ // src/engine/skills/m365-teams.ts
198
+ var m365_teams_exports = {};
199
+ __export(m365_teams_exports, {
200
+ SKILL_DEF: () => SKILL_DEF2,
201
+ TOOLS: () => TOOLS2
202
+ });
203
+ var SKILL_DEF2, TOOLS2;
204
+ var init_m365_teams = __esm({
205
+ "src/engine/skills/m365-teams.ts"() {
206
+ "use strict";
207
+ init_emoji();
208
+ SKILL_DEF2 = {
209
+ id: "m365-teams",
210
+ name: "Microsoft Teams",
211
+ description: "Chat, channels, meetings, calls, and screen sharing. Manage teams and channels programmatically.",
212
+ category: "collaboration",
213
+ risk: "medium",
214
+ icon: Emoji.heart,
215
+ source: "builtin"
216
+ };
217
+ TOOLS2 = [
218
+ { id: "m365_teams_send", name: "Send Message", description: "Send message in Teams channel or chat", category: "communicate", risk: "medium", skillId: "m365-teams", sideEffects: ["sends-message"] },
219
+ { id: "m365_teams_read", name: "Read Messages", description: "Read Teams messages", category: "read", risk: "low", skillId: "m365-teams", sideEffects: [] },
220
+ { id: "m365_teams_channels", name: "List Channels", description: "List Teams channels", category: "read", risk: "low", skillId: "m365-teams", sideEffects: [] },
221
+ { id: "m365_teams_create_channel", name: "Create Channel", description: "Create Teams channel", category: "write", risk: "medium", skillId: "m365-teams", sideEffects: [] },
222
+ { id: "m365_teams_meeting", name: "Schedule Meeting", description: "Schedule Teams meeting", category: "write", risk: "medium", skillId: "m365-teams", sideEffects: ["sends-email"] },
223
+ { id: "m365_teams_members", name: "Manage Members", description: "Add/remove team members", category: "write", risk: "medium", skillId: "m365-teams", sideEffects: [] }
224
+ ];
225
+ }
226
+ });
227
+
228
+ // src/engine/skills/m365-sharepoint.ts
229
+ var m365_sharepoint_exports = {};
230
+ __export(m365_sharepoint_exports, {
231
+ SKILL_DEF: () => SKILL_DEF3,
232
+ TOOLS: () => TOOLS3
233
+ });
234
+ var SKILL_DEF3, TOOLS3;
235
+ var init_m365_sharepoint = __esm({
236
+ "src/engine/skills/m365-sharepoint.ts"() {
237
+ "use strict";
238
+ init_emoji();
239
+ SKILL_DEF3 = {
240
+ id: "m365-sharepoint",
241
+ name: "SharePoint",
242
+ description: "Document libraries, sites, lists, pages, and content management. Full SharePoint Online API access.",
243
+ category: "storage",
244
+ risk: "medium",
245
+ icon: Emoji.books,
246
+ source: "builtin"
247
+ };
248
+ TOOLS3 = [
249
+ { id: "m365_sp_sites", name: "List Sites", description: "List SharePoint sites", category: "read", risk: "low", skillId: "m365-sharepoint", sideEffects: [] },
250
+ { id: "m365_sp_pages", name: "Manage Pages", description: "Create and edit SharePoint pages", category: "write", risk: "medium", skillId: "m365-sharepoint", sideEffects: [] },
251
+ { id: "m365_sp_lists", name: "Manage Lists", description: "CRUD operations on SharePoint lists", category: "write", risk: "medium", skillId: "m365-sharepoint", sideEffects: [] },
252
+ { id: "m365_sp_files", name: "Manage Files", description: "Upload, download, manage SharePoint documents", category: "write", risk: "medium", skillId: "m365-sharepoint", sideEffects: ["modifies-files"] },
253
+ { id: "m365_sp_search", name: "Search SharePoint", description: "Search across SharePoint content", category: "read", risk: "low", skillId: "m365-sharepoint", sideEffects: [] }
254
+ ];
255
+ }
256
+ });
257
+
258
+ // src/engine/skills/m365-onedrive.ts
259
+ var m365_onedrive_exports = {};
260
+ __export(m365_onedrive_exports, {
261
+ SKILL_DEF: () => SKILL_DEF4,
262
+ TOOLS: () => TOOLS4
263
+ });
264
+ var SKILL_DEF4, TOOLS4;
265
+ var init_m365_onedrive = __esm({
266
+ "src/engine/skills/m365-onedrive.ts"() {
267
+ "use strict";
268
+ init_emoji();
269
+ SKILL_DEF4 = {
270
+ id: "m365-onedrive",
271
+ name: "OneDrive",
272
+ description: "Cloud file storage, sharing, syncing, and collaboration. Manage files and folders in OneDrive for Business.",
273
+ category: "storage",
274
+ risk: "medium",
275
+ icon: Emoji.cloud,
276
+ source: "builtin"
277
+ };
278
+ TOOLS4 = [
279
+ {
280
+ id: "m365_od_list",
281
+ name: "List Files",
282
+ description: "List OneDrive files and folders",
283
+ category: "read",
284
+ risk: "low",
285
+ skillId: "m365-onedrive",
286
+ sideEffects: []
287
+ },
288
+ {
289
+ id: "m365_od_upload",
290
+ name: "Upload File",
291
+ description: "Upload file to OneDrive",
292
+ category: "write",
293
+ risk: "medium",
294
+ skillId: "m365-onedrive",
295
+ sideEffects: ["modifies-files"]
296
+ },
297
+ {
298
+ id: "m365_od_download",
299
+ name: "Download File",
300
+ description: "Download file from OneDrive",
301
+ category: "read",
302
+ risk: "low",
303
+ skillId: "m365-onedrive",
304
+ sideEffects: []
305
+ },
306
+ {
307
+ id: "m365_od_share",
308
+ name: "Share File",
309
+ description: "Create sharing link",
310
+ category: "write",
311
+ risk: "medium",
312
+ skillId: "m365-onedrive",
313
+ sideEffects: []
314
+ },
315
+ {
316
+ id: "m365_od_delete",
317
+ name: "Delete File",
318
+ description: "Delete OneDrive file",
319
+ category: "destroy",
320
+ risk: "medium",
321
+ skillId: "m365-onedrive",
322
+ sideEffects: ["deletes-data"]
323
+ }
324
+ ];
325
+ }
326
+ });
327
+
328
+ // src/engine/skills/m365-word.ts
329
+ var m365_word_exports = {};
330
+ __export(m365_word_exports, {
331
+ SKILL_DEF: () => SKILL_DEF5,
332
+ TOOLS: () => TOOLS5
333
+ });
334
+ var SKILL_DEF5, TOOLS5;
335
+ var init_m365_word = __esm({
336
+ "src/engine/skills/m365-word.ts"() {
337
+ "use strict";
338
+ init_emoji();
339
+ SKILL_DEF5 = {
340
+ id: "m365-word",
341
+ name: "Word",
342
+ description: "Create, edit, and format documents. Mail merge, templates, and document generation.",
343
+ category: "productivity",
344
+ risk: "low",
345
+ icon: Emoji.note,
346
+ source: "builtin"
347
+ };
348
+ TOOLS5 = [
349
+ {
350
+ id: "m365_word_create",
351
+ name: "Create Document",
352
+ description: "Create Word document",
353
+ category: "write",
354
+ risk: "low",
355
+ skillId: "m365-word",
356
+ sideEffects: ["modifies-files"]
357
+ },
358
+ {
359
+ id: "m365_word_edit",
360
+ name: "Edit Document",
361
+ description: "Edit Word document content",
362
+ category: "write",
363
+ risk: "low",
364
+ skillId: "m365-word",
365
+ sideEffects: ["modifies-files"]
366
+ },
367
+ {
368
+ id: "m365_word_export",
369
+ name: "Export Document",
370
+ description: "Export Word document to PDF",
371
+ category: "read",
372
+ risk: "low",
373
+ skillId: "m365-word",
374
+ sideEffects: []
375
+ }
376
+ ];
377
+ }
378
+ });
379
+
380
+ // src/engine/skills/m365-excel.ts
381
+ var m365_excel_exports = {};
382
+ __export(m365_excel_exports, {
383
+ SKILL_DEF: () => SKILL_DEF6,
384
+ TOOLS: () => TOOLS6
385
+ });
386
+ var SKILL_DEF6, TOOLS6;
387
+ var init_m365_excel = __esm({
388
+ "src/engine/skills/m365-excel.ts"() {
389
+ "use strict";
390
+ init_emoji();
391
+ SKILL_DEF6 = {
392
+ id: "m365-excel",
393
+ name: "Excel",
394
+ description: "Spreadsheets, formulas, data analysis, charts, pivot tables, and workbook automation.",
395
+ category: "analytics",
396
+ risk: "low",
397
+ icon: Emoji.barChart,
398
+ source: "builtin"
399
+ };
400
+ TOOLS6 = [
401
+ {
402
+ id: "m365_excel_read",
403
+ name: "Read Workbook",
404
+ description: "Read Excel workbook data",
405
+ category: "read",
406
+ risk: "low",
407
+ skillId: "m365-excel",
408
+ sideEffects: []
409
+ },
410
+ {
411
+ id: "m365_excel_write",
412
+ name: "Write Workbook",
413
+ description: "Write data to Excel",
414
+ category: "write",
415
+ risk: "low",
416
+ skillId: "m365-excel",
417
+ sideEffects: ["modifies-files"]
418
+ },
419
+ {
420
+ id: "m365_excel_chart",
421
+ name: "Create Chart",
422
+ description: "Create Excel chart",
423
+ category: "write",
424
+ risk: "low",
425
+ skillId: "m365-excel",
426
+ sideEffects: []
427
+ },
428
+ {
429
+ id: "m365_excel_formula",
430
+ name: "Run Formula",
431
+ description: "Execute Excel formula",
432
+ category: "read",
433
+ risk: "low",
434
+ skillId: "m365-excel",
435
+ sideEffects: []
436
+ },
437
+ {
438
+ id: "m365_excel_pivot",
439
+ name: "Pivot Table",
440
+ description: "Create or refresh pivot table",
441
+ category: "write",
442
+ risk: "low",
443
+ skillId: "m365-excel",
444
+ sideEffects: []
445
+ }
446
+ ];
447
+ }
448
+ });
449
+
450
+ // src/engine/skills/m365-powerpoint.ts
451
+ var m365_powerpoint_exports = {};
452
+ __export(m365_powerpoint_exports, {
453
+ SKILL_DEF: () => SKILL_DEF7,
454
+ TOOLS: () => TOOLS7
455
+ });
456
+ var SKILL_DEF7, TOOLS7;
457
+ var init_m365_powerpoint = __esm({
458
+ "src/engine/skills/m365-powerpoint.ts"() {
459
+ "use strict";
460
+ init_emoji();
461
+ SKILL_DEF7 = {
462
+ id: "m365-powerpoint",
463
+ name: "PowerPoint",
464
+ description: "Create and edit presentations, slides, animations, and speaker notes.",
465
+ category: "productivity",
466
+ risk: "low",
467
+ icon: Emoji.projector,
468
+ source: "builtin"
469
+ };
470
+ TOOLS7 = [
471
+ {
472
+ id: "m365_ppt_create",
473
+ name: "Create Presentation",
474
+ description: "Create PowerPoint file",
475
+ category: "write",
476
+ risk: "low",
477
+ skillId: "m365-powerpoint",
478
+ sideEffects: ["modifies-files"]
479
+ },
480
+ {
481
+ id: "m365_ppt_edit",
482
+ name: "Edit Slides",
483
+ description: "Edit PowerPoint slides",
484
+ category: "write",
485
+ risk: "low",
486
+ skillId: "m365-powerpoint",
487
+ sideEffects: ["modifies-files"]
488
+ }
489
+ ];
490
+ }
491
+ });
492
+
493
+ // src/engine/skills/m365-onenote.ts
494
+ var m365_onenote_exports = {};
495
+ __export(m365_onenote_exports, {
496
+ SKILL_DEF: () => SKILL_DEF8,
497
+ TOOLS: () => TOOLS8
498
+ });
499
+ var SKILL_DEF8, TOOLS8;
500
+ var init_m365_onenote = __esm({
501
+ "src/engine/skills/m365-onenote.ts"() {
502
+ "use strict";
503
+ init_emoji();
504
+ SKILL_DEF8 = {
505
+ id: "m365-onenote",
506
+ name: "OneNote",
507
+ description: "Digital notebooks, sections, pages, and handwriting recognition.",
508
+ category: "productivity",
509
+ risk: "low",
510
+ icon: Emoji.notebook,
511
+ source: "builtin"
512
+ };
513
+ TOOLS8 = [
514
+ { id: "m365_onenote_read", name: "Read Notebook", description: "Read OneNote pages", category: "read", risk: "low", skillId: "m365-onenote", sideEffects: [] },
515
+ { id: "m365_onenote_write", name: "Write Notebook", description: "Create/edit OneNote pages", category: "write", risk: "low", skillId: "m365-onenote", sideEffects: [] }
516
+ ];
517
+ }
518
+ });
519
+
520
+ // src/engine/skills/m365-planner.ts
521
+ var m365_planner_exports = {};
522
+ __export(m365_planner_exports, {
523
+ SKILL_DEF: () => SKILL_DEF9,
524
+ TOOLS: () => TOOLS9
525
+ });
526
+ var SKILL_DEF9, TOOLS9;
527
+ var init_m365_planner = __esm({
528
+ "src/engine/skills/m365-planner.ts"() {
529
+ "use strict";
530
+ init_emoji();
531
+ SKILL_DEF9 = {
532
+ id: "m365-planner",
533
+ name: "Planner",
534
+ description: "Task management with boards, buckets, assignments, and progress tracking.",
535
+ category: "project-management",
536
+ risk: "low",
537
+ icon: Emoji.clipboard,
538
+ source: "builtin"
539
+ };
540
+ TOOLS9 = [
541
+ { id: "m365_planner_tasks", name: "List Tasks", description: "List Planner tasks", category: "read", risk: "low", skillId: "m365-planner", sideEffects: [] },
542
+ { id: "m365_planner_create", name: "Create Task", description: "Create Planner task", category: "write", risk: "low", skillId: "m365-planner", sideEffects: [] },
543
+ { id: "m365_planner_update", name: "Update Task", description: "Update Planner task", category: "write", risk: "low", skillId: "m365-planner", sideEffects: [] }
544
+ ];
545
+ }
546
+ });
547
+
548
+ // src/engine/skills/m365-power-bi.ts
549
+ var m365_power_bi_exports = {};
550
+ __export(m365_power_bi_exports, {
551
+ SKILL_DEF: () => SKILL_DEF10,
552
+ TOOLS: () => TOOLS10
553
+ });
554
+ var SKILL_DEF10, TOOLS10;
555
+ var init_m365_power_bi = __esm({
556
+ "src/engine/skills/m365-power-bi.ts"() {
557
+ "use strict";
558
+ init_emoji();
559
+ SKILL_DEF10 = {
560
+ id: "m365-power-bi",
561
+ name: "Power BI",
562
+ description: "Business intelligence dashboards, reports, datasets, and data refresh.",
563
+ category: "analytics",
564
+ risk: "medium",
565
+ icon: Emoji.chartUp,
566
+ source: "builtin"
567
+ };
568
+ TOOLS10 = [
569
+ { id: "m365_pbi_dashboards", name: "List Dashboards", description: "List Power BI dashboards", category: "read", risk: "low", skillId: "m365-power-bi", sideEffects: [] },
570
+ { id: "m365_pbi_reports", name: "List Reports", description: "List Power BI reports", category: "read", risk: "low", skillId: "m365-power-bi", sideEffects: [] },
571
+ { id: "m365_pbi_refresh", name: "Refresh Dataset", description: "Trigger dataset refresh", category: "execute", risk: "medium", skillId: "m365-power-bi", sideEffects: [] },
572
+ { id: "m365_pbi_export", name: "Export Report", description: "Export report to PDF/PPTX", category: "read", risk: "low", skillId: "m365-power-bi", sideEffects: [] }
573
+ ];
574
+ }
575
+ });
576
+
577
+ // src/engine/skills/m365-power-automate.ts
578
+ var m365_power_automate_exports = {};
579
+ __export(m365_power_automate_exports, {
580
+ SKILL_DEF: () => SKILL_DEF11,
581
+ TOOLS: () => TOOLS11
582
+ });
583
+ var SKILL_DEF11, TOOLS11;
584
+ var init_m365_power_automate = __esm({
585
+ "src/engine/skills/m365-power-automate.ts"() {
586
+ "use strict";
587
+ init_emoji();
588
+ SKILL_DEF11 = {
589
+ id: "m365-power-automate",
590
+ name: "Power Automate",
591
+ description: "Workflow automation, triggers, connectors, and flow management.",
592
+ category: "automation",
593
+ risk: "high",
594
+ icon: Emoji.bolt,
595
+ source: "builtin"
596
+ };
597
+ TOOLS11 = [
598
+ { id: "m365_pa_flows", name: "List Flows", description: "List Power Automate flows", category: "read", risk: "low", skillId: "m365-power-automate", sideEffects: [] },
599
+ { id: "m365_pa_trigger", name: "Trigger Flow", description: "Trigger a Power Automate flow", category: "execute", risk: "high", skillId: "m365-power-automate", sideEffects: ["runs-code"] },
600
+ { id: "m365_pa_create", name: "Create Flow", description: "Create Power Automate flow", category: "write", risk: "high", skillId: "m365-power-automate", sideEffects: [] }
601
+ ];
602
+ }
603
+ });
604
+
605
+ // src/engine/skills/m365-forms.ts
606
+ var m365_forms_exports = {};
607
+ __export(m365_forms_exports, {
608
+ SKILL_DEF: () => SKILL_DEF12,
609
+ TOOLS: () => TOOLS12
610
+ });
611
+ var SKILL_DEF12, TOOLS12;
612
+ var init_m365_forms = __esm({
613
+ "src/engine/skills/m365-forms.ts"() {
614
+ "use strict";
615
+ init_emoji();
616
+ SKILL_DEF12 = {
617
+ id: "m365-forms",
618
+ name: "Microsoft Forms",
619
+ description: "Create surveys, quizzes, polls, and collect responses.",
620
+ category: "productivity",
621
+ risk: "low",
622
+ icon: Emoji.clipboard,
623
+ source: "builtin"
624
+ };
625
+ TOOLS12 = [
626
+ { id: "m365_forms_create", name: "Create Form", description: "Create Microsoft Form", category: "write", risk: "low", skillId: "m365-forms", sideEffects: [] },
627
+ { id: "m365_forms_responses", name: "Get Responses", description: "Get form responses", category: "read", risk: "low", skillId: "m365-forms", sideEffects: [] }
628
+ ];
629
+ }
630
+ });
631
+
632
+ // src/engine/skills/m365-todo.ts
633
+ var m365_todo_exports = {};
634
+ __export(m365_todo_exports, {
635
+ SKILL_DEF: () => SKILL_DEF13,
636
+ TOOLS: () => TOOLS13
637
+ });
638
+ var SKILL_DEF13, TOOLS13;
639
+ var init_m365_todo = __esm({
640
+ "src/engine/skills/m365-todo.ts"() {
641
+ "use strict";
642
+ init_emoji();
643
+ SKILL_DEF13 = {
644
+ id: "m365-todo",
645
+ name: "Microsoft To Do",
646
+ description: "Personal task management with lists, due dates, reminders, and My Day.",
647
+ category: "productivity",
648
+ risk: "low",
649
+ icon: Emoji.check,
650
+ source: "builtin"
651
+ };
652
+ TOOLS13 = [
653
+ { id: "m365_todo_list", name: "List To Do", description: "List To Do tasks", category: "read", risk: "low", skillId: "m365-todo", sideEffects: [] },
654
+ { id: "m365_todo_create", name: "Create To Do", description: "Create To Do task", category: "write", risk: "low", skillId: "m365-todo", sideEffects: [] }
655
+ ];
656
+ }
657
+ });
658
+
659
+ // src/engine/skills/m365-bookings.ts
660
+ var m365_bookings_exports = {};
661
+ __export(m365_bookings_exports, {
662
+ SKILL_DEF: () => SKILL_DEF14,
663
+ TOOLS: () => TOOLS14
664
+ });
665
+ var SKILL_DEF14, TOOLS14;
666
+ var init_m365_bookings = __esm({
667
+ "src/engine/skills/m365-bookings.ts"() {
668
+ "use strict";
669
+ init_emoji();
670
+ SKILL_DEF14 = {
671
+ id: "m365-bookings",
672
+ name: "Bookings",
673
+ description: "Appointment scheduling, calendar management, and booking pages.",
674
+ category: "productivity",
675
+ risk: "low",
676
+ icon: Emoji.calendar,
677
+ source: "builtin"
678
+ };
679
+ TOOLS14 = [
680
+ { id: "m365_bookings_list", name: "List Bookings", description: "List appointments", category: "read", risk: "low", skillId: "m365-bookings", sideEffects: [] },
681
+ { id: "m365_bookings_create", name: "Create Booking", description: "Create appointment", category: "write", risk: "low", skillId: "m365-bookings", sideEffects: ["sends-email"] }
682
+ ];
683
+ }
684
+ });
685
+
686
+ // src/engine/skills/m365-whiteboard.ts
687
+ var m365_whiteboard_exports = {};
688
+ __export(m365_whiteboard_exports, {
689
+ SKILL_DEF: () => SKILL_DEF15,
690
+ TOOLS: () => TOOLS15
691
+ });
692
+ var SKILL_DEF15, TOOLS15;
693
+ var init_m365_whiteboard = __esm({
694
+ "src/engine/skills/m365-whiteboard.ts"() {
695
+ "use strict";
696
+ init_emoji();
697
+ SKILL_DEF15 = {
698
+ id: "m365-whiteboard",
699
+ name: "Whiteboard",
700
+ description: "Collaborative digital whiteboard for brainstorming and visual collaboration.",
701
+ category: "collaboration",
702
+ risk: "low",
703
+ icon: Emoji.pen,
704
+ source: "builtin"
705
+ };
706
+ TOOLS15 = [
707
+ { id: "m365_wb_create", name: "Create Whiteboard", description: "Create whiteboard", category: "write", risk: "low", skillId: "m365-whiteboard", sideEffects: [] }
708
+ ];
709
+ }
710
+ });
711
+
712
+ // src/engine/skills/m365-admin.ts
713
+ var m365_admin_exports = {};
714
+ __export(m365_admin_exports, {
715
+ SKILL_DEF: () => SKILL_DEF16,
716
+ TOOLS: () => TOOLS16
717
+ });
718
+ var SKILL_DEF16, TOOLS16;
719
+ var init_m365_admin = __esm({
720
+ "src/engine/skills/m365-admin.ts"() {
721
+ "use strict";
722
+ init_emoji();
723
+ SKILL_DEF16 = {
724
+ id: "m365-admin",
725
+ name: "Microsoft 365 Admin",
726
+ description: "User management, licensing, security settings, and compliance controls.",
727
+ category: "platform",
728
+ risk: "critical",
729
+ icon: Emoji.gear,
730
+ source: "builtin"
731
+ };
732
+ TOOLS16 = [
733
+ { id: "m365_admin_users", name: "Manage Users", description: "List/create/update M365 users", category: "write", risk: "critical", skillId: "m365-admin", sideEffects: [] },
734
+ { id: "m365_admin_licenses", name: "Manage Licenses", description: "Assign/remove M365 licenses", category: "write", risk: "critical", skillId: "m365-admin", sideEffects: ["financial"] },
735
+ { id: "m365_admin_groups", name: "Manage Groups", description: "Create/manage M365 groups", category: "write", risk: "high", skillId: "m365-admin", sideEffects: [] }
736
+ ];
737
+ }
738
+ });
739
+
740
+ // src/engine/skills/m365-copilot.ts
741
+ var m365_copilot_exports = {};
742
+ __export(m365_copilot_exports, {
743
+ SKILL_DEF: () => SKILL_DEF17,
744
+ TOOLS: () => TOOLS17
745
+ });
746
+ var SKILL_DEF17, TOOLS17;
747
+ var init_m365_copilot = __esm({
748
+ "src/engine/skills/m365-copilot.ts"() {
749
+ "use strict";
750
+ init_emoji();
751
+ SKILL_DEF17 = {
752
+ id: "m365-copilot",
753
+ name: "Microsoft Copilot",
754
+ description: "AI-powered assistant integration for M365 apps \u2014 summaries, drafting, analysis.",
755
+ category: "productivity",
756
+ risk: "medium",
757
+ icon: Emoji.robot,
758
+ source: "builtin"
759
+ };
760
+ TOOLS17 = [
761
+ { id: "m365_copilot_summarize", name: "Copilot Summarize", description: "AI summarization across M365", category: "read", risk: "low", skillId: "m365-copilot", sideEffects: [] },
762
+ { id: "m365_copilot_draft", name: "Copilot Draft", description: "AI-assisted content drafting", category: "write", risk: "medium", skillId: "m365-copilot", sideEffects: [] }
763
+ ];
764
+ }
765
+ });
766
+
767
+ // src/engine/skills/gws-gmail.ts
768
+ var gws_gmail_exports = {};
769
+ __export(gws_gmail_exports, {
770
+ SKILL_DEF: () => SKILL_DEF18,
771
+ TOOLS: () => TOOLS18
772
+ });
773
+ var SKILL_DEF18, TOOLS18;
774
+ var init_gws_gmail = __esm({
775
+ "src/engine/skills/gws-gmail.ts"() {
776
+ "use strict";
777
+ init_emoji();
778
+ SKILL_DEF18 = {
779
+ id: "gws-gmail",
780
+ name: "Gmail",
781
+ description: "Send, read, search, label, draft, and manage emails via Gmail API.",
782
+ category: "communication",
783
+ risk: "high",
784
+ icon: Emoji.email,
785
+ source: "builtin"
786
+ };
787
+ TOOLS18 = [
788
+ { id: "gmail_search", name: "Search Gmail", description: "Search Gmail with queries", category: "read", risk: "low", skillId: "gws-gmail", sideEffects: [] },
789
+ { id: "gmail_read", name: "Read Email", description: "Read a Gmail message", category: "read", risk: "low", skillId: "gws-gmail", sideEffects: [] },
790
+ { id: "gmail_thread", name: "Read Thread", description: "Read a Gmail thread", category: "read", risk: "low", skillId: "gws-gmail", sideEffects: [] },
791
+ { id: "gmail_send", name: "Send Email", description: "Send email via Gmail", category: "communicate", risk: "high", skillId: "gws-gmail", sideEffects: ["sends-email"] },
792
+ { id: "gmail_reply", name: "Reply", description: "Reply to a Gmail message", category: "communicate", risk: "high", skillId: "gws-gmail", sideEffects: ["sends-email"] },
793
+ { id: "gmail_forward", name: "Forward", description: "Forward a Gmail message", category: "communicate", risk: "high", skillId: "gws-gmail", sideEffects: ["sends-email"] },
794
+ { id: "gmail_modify", name: "Modify Labels", description: "Add/remove labels on messages", category: "write", risk: "low", skillId: "gws-gmail", sideEffects: [] },
795
+ { id: "gmail_trash", name: "Trash", description: "Move message to trash", category: "destroy", risk: "medium", skillId: "gws-gmail", sideEffects: ["deletes-data"] },
796
+ { id: "gmail_labels", name: "Manage Labels", description: "List/create/delete Gmail labels", category: "write", risk: "low", skillId: "gws-gmail", sideEffects: [] },
797
+ { id: "gmail_drafts", name: "Drafts", description: "List/create/send drafts", category: "write", risk: "medium", skillId: "gws-gmail", sideEffects: [] },
798
+ { id: "gmail_attachment", name: "Attachment", description: "Download email attachment", category: "read", risk: "low", skillId: "gws-gmail", sideEffects: [] },
799
+ { id: "gmail_profile", name: "Profile", description: "Get Gmail profile info", category: "read", risk: "low", skillId: "gws-gmail", sideEffects: [] },
800
+ { id: "gmail_vacation", name: "Vacation Responder", description: "Get/set vacation auto-reply", category: "write", risk: "medium", skillId: "gws-gmail", sideEffects: [] },
801
+ { id: "gmail_get_signature", name: "Get Signature", description: "Get Gmail signature", category: "read", risk: "low", skillId: "gws-gmail", sideEffects: [] },
802
+ { id: "gmail_set_signature", name: "Set Signature", description: "Set Gmail signature", category: "write", risk: "medium", skillId: "gws-gmail", sideEffects: [] }
803
+ ];
804
+ }
805
+ });
806
+
807
+ // src/engine/skills/gws-calendar.ts
808
+ var gws_calendar_exports = {};
809
+ __export(gws_calendar_exports, {
810
+ SKILL_DEF: () => SKILL_DEF19,
811
+ TOOLS: () => TOOLS19
812
+ });
813
+ var SKILL_DEF19, TOOLS19;
814
+ var init_gws_calendar = __esm({
815
+ "src/engine/skills/gws-calendar.ts"() {
816
+ "use strict";
817
+ init_emoji();
818
+ SKILL_DEF19 = {
819
+ id: "gws-calendar",
820
+ name: "Google Calendar",
821
+ description: "Event management, scheduling, and free/busy lookup.",
822
+ category: "productivity",
823
+ risk: "medium",
824
+ icon: Emoji.calendar,
825
+ source: "builtin"
826
+ };
827
+ TOOLS19 = [
828
+ { id: "google_calendar_list", name: "List Calendars", description: "List available calendars", category: "read", risk: "low", skillId: "gws-calendar", sideEffects: [] },
829
+ { id: "google_calendar_events", name: "List Events", description: "List calendar events", category: "read", risk: "low", skillId: "gws-calendar", sideEffects: [] },
830
+ { id: "google_calendar_create_event", name: "Create Event", description: "Create calendar event", category: "write", risk: "medium", skillId: "gws-calendar", sideEffects: ["sends-email"] },
831
+ { id: "google_calendar_update_event", name: "Update Event", description: "Update calendar event", category: "write", risk: "medium", skillId: "gws-calendar", sideEffects: [] },
832
+ { id: "google_calendar_delete_event", name: "Delete Event", description: "Delete calendar event", category: "destroy", risk: "medium", skillId: "gws-calendar", sideEffects: ["deletes-data"] },
833
+ { id: "google_calendar_freebusy", name: "Free/Busy", description: "Check free/busy availability", category: "read", risk: "low", skillId: "gws-calendar", sideEffects: [] }
834
+ ];
835
+ }
836
+ });
837
+
838
+ // src/engine/skills/gws-drive.ts
839
+ var gws_drive_exports = {};
840
+ __export(gws_drive_exports, {
841
+ SKILL_DEF: () => SKILL_DEF20,
842
+ TOOLS: () => TOOLS20
843
+ });
844
+ var SKILL_DEF20, TOOLS20;
845
+ var init_gws_drive = __esm({
846
+ "src/engine/skills/gws-drive.ts"() {
847
+ "use strict";
848
+ init_emoji();
849
+ SKILL_DEF20 = {
850
+ id: "gws-drive",
851
+ name: "Google Drive",
852
+ description: "File management, search, sharing, and access requests.",
853
+ category: "productivity",
854
+ risk: "medium",
855
+ icon: Emoji.folder,
856
+ source: "builtin"
857
+ };
858
+ TOOLS20 = [
859
+ { id: "google_drive_list", name: "List Files", description: "List Google Drive files", category: "read", risk: "low", skillId: "gws-drive", sideEffects: [] },
860
+ { id: "google_drive_get", name: "Get File", description: "Get file metadata/content", category: "read", risk: "low", skillId: "gws-drive", sideEffects: [] },
861
+ { id: "google_drive_request_access", name: "Request Access", description: "Request access to a file", category: "write", risk: "low", skillId: "gws-drive", sideEffects: [] },
862
+ { id: "google_drive_create", name: "Create File", description: "Create file/folder in Drive", category: "write", risk: "medium", skillId: "gws-drive", sideEffects: ["modifies-files"] },
863
+ { id: "google_drive_download", name: "Download File", description: "Download Drive file to local disk for sending via messaging", category: "read", risk: "low", skillId: "gws-drive", sideEffects: ["modifies-files"] },
864
+ { id: "google_drive_delete", name: "Delete File", description: "Delete Drive file", category: "destroy", risk: "medium", skillId: "gws-drive", sideEffects: ["deletes-data"] },
865
+ { id: "google_drive_share", name: "Share File", description: "Share Drive file/folder", category: "write", risk: "medium", skillId: "gws-drive", sideEffects: [] },
866
+ { id: "google_drive_move", name: "Move File", description: "Move file between folders", category: "write", risk: "low", skillId: "gws-drive", sideEffects: ["modifies-files"] }
867
+ ];
868
+ }
869
+ });
870
+
871
+ // src/engine/skills/gws-docs.ts
872
+ var gws_docs_exports = {};
873
+ __export(gws_docs_exports, {
874
+ SKILL_DEF: () => SKILL_DEF21,
875
+ TOOLS: () => TOOLS21
876
+ });
877
+ var SKILL_DEF21, TOOLS21;
878
+ var init_gws_docs = __esm({
879
+ "src/engine/skills/gws-docs.ts"() {
880
+ "use strict";
881
+ init_emoji();
882
+ SKILL_DEF21 = {
883
+ id: "gws-docs",
884
+ name: "Google Docs",
885
+ description: "Read, create, and edit Google Docs.",
886
+ category: "productivity",
887
+ risk: "low",
888
+ icon: Emoji.note,
889
+ source: "builtin"
890
+ };
891
+ TOOLS21 = [
892
+ { id: "google_docs_read", name: "Read Doc", description: "Read Google Doc content", category: "read", risk: "low", skillId: "gws-docs", sideEffects: [] },
893
+ { id: "google_docs_create", name: "Create Doc", description: "Create Google Doc", category: "write", risk: "low", skillId: "gws-docs", sideEffects: ["modifies-files"] },
894
+ { id: "google_docs_write", name: "Write Doc", description: "Insert/replace text in a Doc", category: "write", risk: "low", skillId: "gws-docs", sideEffects: ["modifies-files"] }
895
+ ];
896
+ }
897
+ });
898
+
899
+ // src/engine/skills/gws-sheets.ts
900
+ var gws_sheets_exports = {};
901
+ __export(gws_sheets_exports, {
902
+ SKILL_DEF: () => SKILL_DEF22,
903
+ TOOLS: () => TOOLS22
904
+ });
905
+ var SKILL_DEF22, TOOLS22;
906
+ var init_gws_sheets = __esm({
907
+ "src/engine/skills/gws-sheets.ts"() {
908
+ "use strict";
909
+ init_emoji();
910
+ SKILL_DEF22 = {
911
+ id: "gws-sheets",
912
+ name: "Google Sheets",
913
+ description: "Spreadsheet read/write, cell operations, and sheet management.",
914
+ category: "productivity",
915
+ risk: "low",
916
+ icon: Emoji.barChart,
917
+ source: "builtin"
918
+ };
919
+ TOOLS22 = [
920
+ { id: "google_sheets_get", name: "Get Spreadsheet", description: "Get spreadsheet metadata", category: "read", risk: "low", skillId: "gws-sheets", sideEffects: [] },
921
+ { id: "google_sheets_read", name: "Read Sheet", description: "Read data from a sheet range", category: "read", risk: "low", skillId: "gws-sheets", sideEffects: [] },
922
+ { id: "google_sheets_write", name: "Write Sheet", description: "Write data to a sheet range", category: "write", risk: "low", skillId: "gws-sheets", sideEffects: ["modifies-files"] },
923
+ { id: "google_sheets_append", name: "Append Rows", description: "Append rows to a sheet", category: "write", risk: "low", skillId: "gws-sheets", sideEffects: ["modifies-files"] },
924
+ { id: "google_sheets_clear", name: "Clear Range", description: "Clear a sheet range", category: "write", risk: "low", skillId: "gws-sheets", sideEffects: ["modifies-files"] },
925
+ { id: "google_sheets_create", name: "Create Spreadsheet", description: "Create new spreadsheet", category: "write", risk: "low", skillId: "gws-sheets", sideEffects: [] },
926
+ { id: "google_sheets_add_sheet", name: "Add Sheet", description: "Add a new sheet/tab", category: "write", risk: "low", skillId: "gws-sheets", sideEffects: ["modifies-files"] }
927
+ ];
928
+ }
929
+ });
930
+
931
+ // src/engine/skills/gws-slides.ts
932
+ var gws_slides_exports = {};
933
+ __export(gws_slides_exports, {
934
+ SKILL_DEF: () => SKILL_DEF23,
935
+ TOOLS: () => TOOLS23
936
+ });
937
+ var SKILL_DEF23, TOOLS23;
938
+ var init_gws_slides = __esm({
939
+ "src/engine/skills/gws-slides.ts"() {
940
+ "use strict";
941
+ init_emoji();
942
+ SKILL_DEF23 = {
943
+ id: "gws-slides",
944
+ name: "Google Slides",
945
+ description: "Create and edit presentations.",
946
+ category: "productivity",
947
+ risk: "low",
948
+ icon: Emoji.art,
949
+ source: "builtin"
950
+ };
951
+ TOOLS23 = [
952
+ { id: "google_slides_create", name: "Create Presentation", description: "Create Google Slides presentation", category: "write", risk: "low", skillId: "gws-slides", sideEffects: ["modifies-files"] },
953
+ { id: "google_slides_get", name: "Get Presentation", description: "Get presentation metadata", category: "read", risk: "low", skillId: "gws-slides", sideEffects: [] },
954
+ { id: "google_slides_get_page", name: "Get Page", description: "Get slide page details", category: "read", risk: "low", skillId: "gws-slides", sideEffects: [] },
955
+ { id: "google_slides_thumbnail", name: "Thumbnail", description: "Get slide thumbnail image", category: "read", risk: "low", skillId: "gws-slides", sideEffects: [] },
956
+ { id: "google_slides_add_slide", name: "Add Slide", description: "Add a new slide", category: "write", risk: "low", skillId: "gws-slides", sideEffects: ["modifies-files"] },
957
+ { id: "google_slides_insert_text", name: "Insert Text", description: "Insert text into a shape", category: "write", risk: "low", skillId: "gws-slides", sideEffects: ["modifies-files"] },
958
+ { id: "google_slides_replace_text", name: "Replace Text", description: "Find and replace text", category: "write", risk: "low", skillId: "gws-slides", sideEffects: ["modifies-files"] },
959
+ { id: "google_slides_create_textbox", name: "Create Textbox", description: "Create a text box on a slide", category: "write", risk: "low", skillId: "gws-slides", sideEffects: ["modifies-files"] },
960
+ { id: "google_slides_add_image", name: "Add Image", description: "Add image to a slide", category: "write", risk: "low", skillId: "gws-slides", sideEffects: ["modifies-files"] },
961
+ { id: "google_slides_delete_slide", name: "Delete Slide", description: "Delete a slide", category: "destroy", risk: "low", skillId: "gws-slides", sideEffects: ["modifies-files"] },
962
+ { id: "google_slides_duplicate_slide", name: "Duplicate Slide", description: "Duplicate a slide", category: "write", risk: "low", skillId: "gws-slides", sideEffects: ["modifies-files"] },
963
+ { id: "google_slides_batch_update", name: "Batch Update", description: "Apply multiple updates at once", category: "write", risk: "low", skillId: "gws-slides", sideEffects: ["modifies-files"] }
964
+ ];
965
+ }
966
+ });
967
+
968
+ // src/engine/skills/gws-meet.ts
969
+ var gws_meet_exports = {};
970
+ __export(gws_meet_exports, {
971
+ SKILL_DEF: () => SKILL_DEF24,
972
+ TOOLS: () => TOOLS24
973
+ });
974
+ var SKILL_DEF24, TOOLS24;
975
+ var init_gws_meet = __esm({
976
+ "src/engine/skills/gws-meet.ts"() {
977
+ "use strict";
978
+ init_emoji();
979
+ SKILL_DEF24 = {
980
+ id: "gws-meet",
981
+ name: "Google Meet",
982
+ description: "Join meetings, take notes, chat, share screen, send summaries.",
983
+ category: "collaboration",
984
+ risk: "medium",
985
+ icon: Emoji.video,
986
+ source: "builtin"
987
+ };
988
+ TOOLS24 = [
989
+ { id: "meetings_upcoming", name: "Upcoming Meetings", description: "List upcoming meetings from calendar", category: "read", risk: "low", skillId: "gws-meet", sideEffects: [] },
990
+ { id: "meeting_join", name: "Join Meeting", description: "Join a Google Meet call", category: "write", risk: "medium", skillId: "gws-meet", sideEffects: [] },
991
+ { id: "meeting_action", name: "Meeting Action", description: "Chat, share screen, take notes in a meeting", category: "write", risk: "medium", skillId: "gws-meet", sideEffects: ["sends-message"] },
992
+ { id: "meetings_scan_inbox", name: "Scan Inbox", description: "Scan inbox for meeting invites", category: "read", risk: "low", skillId: "gws-meet", sideEffects: [] },
993
+ { id: "meeting_rsvp", name: "RSVP", description: "Accept or decline a meeting invite", category: "write", risk: "medium", skillId: "gws-meet", sideEffects: ["sends-email"] },
994
+ { id: "meeting_speak", name: "Speak in Meeting", description: "Speak via TTS in a meeting", category: "write", risk: "medium", skillId: "gws-meet", sideEffects: [] },
995
+ { id: "meeting_audio_setup", name: "Audio Setup", description: "Configure meeting audio", category: "write", risk: "low", skillId: "gws-meet", sideEffects: [] },
996
+ { id: "meeting_voices", name: "List Voices", description: "List available TTS voices", category: "read", risk: "low", skillId: "gws-meet", sideEffects: [] }
997
+ ];
998
+ }
999
+ });
1000
+
1001
+ // src/engine/skills/gws-chat.ts
1002
+ var gws_chat_exports = {};
1003
+ __export(gws_chat_exports, {
1004
+ SKILL_DEF: () => SKILL_DEF25,
1005
+ TOOLS: () => TOOLS25
1006
+ });
1007
+ var SKILL_DEF25, TOOLS25;
1008
+ var init_gws_chat = __esm({
1009
+ "src/engine/skills/gws-chat.ts"() {
1010
+ "use strict";
1011
+ init_emoji();
1012
+ SKILL_DEF25 = {
1013
+ id: "gws-chat",
1014
+ name: "Google Chat",
1015
+ description: "Messaging, spaces, threads, members, and reactions.",
1016
+ category: "collaboration",
1017
+ risk: "medium",
1018
+ icon: Emoji.chat,
1019
+ source: "builtin"
1020
+ };
1021
+ TOOLS25 = [
1022
+ { id: "google_chat_setup_space", name: "Setup Space", description: "Create a Chat space or DM", category: "write", risk: "medium", skillId: "gws-chat", sideEffects: [] },
1023
+ { id: "google_chat_find_dm", name: "Find DM", description: "Find existing DM with a user", category: "read", risk: "low", skillId: "gws-chat", sideEffects: [] },
1024
+ { id: "google_chat_list_spaces", name: "List Spaces", description: "List Chat spaces", category: "read", risk: "low", skillId: "gws-chat", sideEffects: [] },
1025
+ { id: "google_chat_get_space", name: "Get Space", description: "Get space details", category: "read", risk: "low", skillId: "gws-chat", sideEffects: [] },
1026
+ { id: "google_chat_list_messages", name: "List Messages", description: "List messages in a space", category: "read", risk: "low", skillId: "gws-chat", sideEffects: [] },
1027
+ { id: "google_chat_send_message", name: "Send Message", description: "Send a Chat message", category: "communicate", risk: "medium", skillId: "gws-chat", sideEffects: ["sends-message"] },
1028
+ { id: "google_chat_update_message", name: "Update Message", description: "Edit a Chat message", category: "write", risk: "low", skillId: "gws-chat", sideEffects: [] },
1029
+ { id: "google_chat_delete_message", name: "Delete Message", description: "Delete a Chat message", category: "destroy", risk: "medium", skillId: "gws-chat", sideEffects: ["deletes-data"] },
1030
+ { id: "google_chat_list_members", name: "List Members", description: "List space members", category: "read", risk: "low", skillId: "gws-chat", sideEffects: [] },
1031
+ { id: "google_chat_add_member", name: "Add Member", description: "Add member to space", category: "write", risk: "medium", skillId: "gws-chat", sideEffects: [] },
1032
+ { id: "google_chat_upload_attachment", name: "Upload Attachment", description: "Upload file/image and send as message attachment (up to 200MB)", category: "communicate", risk: "medium", skillId: "gws-chat", sideEffects: ["sends-message", "uploads-file"] },
1033
+ { id: "google_chat_send_image", name: "Send Image", description: "Send inline image from URL using Card widget (no upload needed)", category: "communicate", risk: "medium", skillId: "gws-chat", sideEffects: ["sends-message"] },
1034
+ { id: "google_chat_download_attachment", name: "Download Attachment", description: "Download file attachment from a Chat message", category: "read", risk: "low", skillId: "gws-chat", sideEffects: ["writes-file"] },
1035
+ { id: "google_chat_react", name: "React", description: "Add reaction to a message", category: "write", risk: "low", skillId: "gws-chat", sideEffects: [] }
1036
+ ];
1037
+ }
1038
+ });
1039
+
1040
+ // src/engine/skills/gws-forms.ts
1041
+ var gws_forms_exports = {};
1042
+ __export(gws_forms_exports, {
1043
+ SKILL_DEF: () => SKILL_DEF26,
1044
+ TOOLS: () => TOOLS26
1045
+ });
1046
+ var SKILL_DEF26, TOOLS26;
1047
+ var init_gws_forms = __esm({
1048
+ "src/engine/skills/gws-forms.ts"() {
1049
+ "use strict";
1050
+ init_emoji();
1051
+ SKILL_DEF26 = {
1052
+ id: "gws-forms",
1053
+ name: "Google Forms",
1054
+ description: "Create forms, add questions, and read responses.",
1055
+ category: "productivity",
1056
+ risk: "low",
1057
+ icon: Emoji.clipboard,
1058
+ source: "builtin"
1059
+ };
1060
+ TOOLS26 = [
1061
+ { id: "google_forms_create", name: "Create Form", description: "Create Google Form", category: "write", risk: "low", skillId: "gws-forms", sideEffects: [] },
1062
+ { id: "google_forms_get", name: "Get Form", description: "Get form details", category: "read", risk: "low", skillId: "gws-forms", sideEffects: [] },
1063
+ { id: "google_forms_add_question", name: "Add Question", description: "Add question to a form", category: "write", risk: "low", skillId: "gws-forms", sideEffects: [] },
1064
+ { id: "google_forms_update_info", name: "Update Info", description: "Update form title/description", category: "write", risk: "low", skillId: "gws-forms", sideEffects: [] },
1065
+ { id: "google_forms_delete_item", name: "Delete Item", description: "Delete a form item", category: "destroy", risk: "low", skillId: "gws-forms", sideEffects: [] },
1066
+ { id: "google_forms_list_responses", name: "List Responses", description: "List form responses", category: "read", risk: "low", skillId: "gws-forms", sideEffects: [] },
1067
+ { id: "google_forms_get_response", name: "Get Response", description: "Get a single response", category: "read", risk: "low", skillId: "gws-forms", sideEffects: [] },
1068
+ { id: "google_forms_publish_settings", name: "Publish Settings", description: "Update form publish settings", category: "write", risk: "low", skillId: "gws-forms", sideEffects: [] }
1069
+ ];
1070
+ }
1071
+ });
1072
+
1073
+ // src/engine/skills/gws-sites.ts
1074
+ var gws_sites_exports = {};
1075
+ __export(gws_sites_exports, {
1076
+ SKILL_DEF: () => SKILL_DEF27,
1077
+ TOOLS: () => TOOLS27
1078
+ });
1079
+ var SKILL_DEF27, TOOLS27;
1080
+ var init_gws_sites = __esm({
1081
+ "src/engine/skills/gws-sites.ts"() {
1082
+ "use strict";
1083
+ init_emoji();
1084
+ SKILL_DEF27 = {
1085
+ id: "gws-sites",
1086
+ name: "Google Sites",
1087
+ description: "Simple website creation and publishing.",
1088
+ category: "productivity",
1089
+ risk: "low",
1090
+ icon: Emoji.globe,
1091
+ source: "builtin"
1092
+ };
1093
+ TOOLS27 = [
1094
+ { id: "gws_sites_create", name: "Create Site", description: "Create Google Site", category: "write", risk: "low", skillId: "gws-sites", sideEffects: [] }
1095
+ ];
1096
+ }
1097
+ });
1098
+
1099
+ // src/engine/skills/gws-keep.ts
1100
+ var gws_keep_exports = {};
1101
+ __export(gws_keep_exports, {
1102
+ SKILL_DEF: () => SKILL_DEF28,
1103
+ TOOLS: () => TOOLS28
1104
+ });
1105
+ var SKILL_DEF28, TOOLS28;
1106
+ var init_gws_keep = __esm({
1107
+ "src/engine/skills/gws-keep.ts"() {
1108
+ "use strict";
1109
+ init_emoji();
1110
+ SKILL_DEF28 = {
1111
+ id: "gws-keep",
1112
+ name: "Google Keep",
1113
+ description: "Notes, lists, reminders, and labels.",
1114
+ category: "productivity",
1115
+ risk: "low",
1116
+ icon: Emoji.pin,
1117
+ source: "builtin"
1118
+ };
1119
+ TOOLS28 = [
1120
+ { id: "gws_keep_create", name: "Create Note", description: "Create Google Keep note", category: "write", risk: "low", skillId: "gws-keep", sideEffects: [] },
1121
+ { id: "gws_keep_list", name: "List Notes", description: "List Google Keep notes", category: "read", risk: "low", skillId: "gws-keep", sideEffects: [] }
1122
+ ];
1123
+ }
1124
+ });
1125
+
1126
+ // src/engine/skills/gws-admin.ts
1127
+ var gws_admin_exports = {};
1128
+ __export(gws_admin_exports, {
1129
+ SKILL_DEF: () => SKILL_DEF29,
1130
+ TOOLS: () => TOOLS29
1131
+ });
1132
+ var SKILL_DEF29, TOOLS29;
1133
+ var init_gws_admin = __esm({
1134
+ "src/engine/skills/gws-admin.ts"() {
1135
+ "use strict";
1136
+ init_emoji();
1137
+ SKILL_DEF29 = {
1138
+ id: "gws-admin",
1139
+ name: "Google Admin",
1140
+ description: "User management, security, device management, and organization settings.",
1141
+ category: "platform",
1142
+ risk: "critical",
1143
+ icon: Emoji.gear,
1144
+ source: "builtin"
1145
+ };
1146
+ TOOLS29 = [
1147
+ { id: "gws_admin_users", name: "Manage Users", description: "List/create/update Workspace users", category: "write", risk: "critical", skillId: "gws-admin", sideEffects: [] },
1148
+ { id: "gws_admin_groups", name: "Manage Groups", description: "Create/manage Google groups", category: "write", risk: "high", skillId: "gws-admin", sideEffects: [] },
1149
+ { id: "gws_admin_orgunits", name: "Manage Org Units", description: "Manage organizational units", category: "write", risk: "high", skillId: "gws-admin", sideEffects: [] }
1150
+ ];
1151
+ }
1152
+ });
1153
+
1154
+ // src/engine/skills/gws-vault.ts
1155
+ var gws_vault_exports = {};
1156
+ __export(gws_vault_exports, {
1157
+ SKILL_DEF: () => SKILL_DEF30,
1158
+ TOOLS: () => TOOLS30
1159
+ });
1160
+ var SKILL_DEF30, TOOLS30;
1161
+ var init_gws_vault = __esm({
1162
+ "src/engine/skills/gws-vault.ts"() {
1163
+ "use strict";
1164
+ init_emoji();
1165
+ SKILL_DEF30 = {
1166
+ id: "gws-vault",
1167
+ name: "Google Vault",
1168
+ description: "eDiscovery, litigation holds, compliance, and data retention.",
1169
+ category: "legal",
1170
+ risk: "high",
1171
+ icon: Emoji.vault,
1172
+ source: "builtin"
1173
+ };
1174
+ TOOLS30 = [
1175
+ { id: "gws_vault_holds", name: "Manage Holds", description: "Create/manage litigation holds", category: "write", risk: "high", skillId: "gws-vault", sideEffects: [] },
1176
+ { id: "gws_vault_export", name: "Export Data", description: "Export data for eDiscovery", category: "read", risk: "high", skillId: "gws-vault", sideEffects: [] }
1177
+ ];
1178
+ }
1179
+ });
1180
+
1181
+ // src/engine/skills/gws-groups.ts
1182
+ var gws_groups_exports = {};
1183
+ __export(gws_groups_exports, {
1184
+ SKILL_DEF: () => SKILL_DEF31,
1185
+ TOOLS: () => TOOLS31
1186
+ });
1187
+ var SKILL_DEF31, TOOLS31;
1188
+ var init_gws_groups = __esm({
1189
+ "src/engine/skills/gws-groups.ts"() {
1190
+ "use strict";
1191
+ init_emoji();
1192
+ SKILL_DEF31 = {
1193
+ id: "gws-groups",
1194
+ name: "Google Groups",
1195
+ description: "Mailing lists, access groups, and group management.",
1196
+ category: "communication",
1197
+ risk: "low",
1198
+ icon: Emoji.people,
1199
+ source: "builtin"
1200
+ };
1201
+ TOOLS31 = [
1202
+ { id: "gws_groups_create", name: "Create Group", description: "Create Google Group", category: "write", risk: "medium", skillId: "gws-groups", sideEffects: [] },
1203
+ { id: "gws_groups_members", name: "Manage Members", description: "Add/remove group members", category: "write", risk: "medium", skillId: "gws-groups", sideEffects: [] }
1204
+ ];
1205
+ }
1206
+ });
1207
+
1208
+ // src/engine/skills/gws-maps.ts
1209
+ var gws_maps_exports = {};
1210
+ __export(gws_maps_exports, {
1211
+ SKILL_DEF: () => SKILL_DEF32,
1212
+ TOOLS: () => TOOLS32
1213
+ });
1214
+ var SKILL_DEF32, TOOLS32;
1215
+ var init_gws_maps = __esm({
1216
+ "src/engine/skills/gws-maps.ts"() {
1217
+ "use strict";
1218
+ init_emoji();
1219
+ SKILL_DEF32 = {
1220
+ id: "gws-maps",
1221
+ name: "Google Maps",
1222
+ description: "Places search, directions, distances, geocoding, timezone, elevation, and static maps.",
1223
+ category: "utility",
1224
+ risk: "low",
1225
+ icon: Emoji.map,
1226
+ source: "builtin"
1227
+ };
1228
+ TOOLS32 = [
1229
+ { id: "google_maps_search", name: "Search Places", description: "Search for places by text query", category: "read", risk: "low", skillId: "gws-maps", sideEffects: [] },
1230
+ { id: "google_maps_nearby", name: "Nearby Places", description: "Find places near a location", category: "read", risk: "low", skillId: "gws-maps", sideEffects: [] },
1231
+ { id: "google_maps_place_details", name: "Place Details", description: "Get detailed info about a place", category: "read", risk: "low", skillId: "gws-maps", sideEffects: [] },
1232
+ { id: "google_maps_directions", name: "Directions", description: "Get driving/walking/transit directions", category: "read", risk: "low", skillId: "gws-maps", sideEffects: [] },
1233
+ { id: "google_maps_distance", name: "Distance Matrix", description: "Calculate distances and travel times", category: "read", risk: "low", skillId: "gws-maps", sideEffects: [] },
1234
+ { id: "google_maps_geocode", name: "Geocode", description: "Convert address to coordinates or vice versa", category: "read", risk: "low", skillId: "gws-maps", sideEffects: [] },
1235
+ { id: "google_maps_autocomplete", name: "Autocomplete", description: "Place name autocomplete suggestions", category: "read", risk: "low", skillId: "gws-maps", sideEffects: [] },
1236
+ { id: "google_maps_static", name: "Static Map", description: "Generate a static map image URL", category: "read", risk: "low", skillId: "gws-maps", sideEffects: [] },
1237
+ { id: "google_maps_timezone", name: "Timezone", description: "Get timezone for a location", category: "read", risk: "low", skillId: "gws-maps", sideEffects: [] },
1238
+ { id: "google_maps_elevation", name: "Elevation", description: "Get elevation for coordinates", category: "read", risk: "low", skillId: "gws-maps", sideEffects: [] }
1239
+ ];
1240
+ }
1241
+ });
1242
+
1243
+ // src/engine/skills/gws-contacts.ts
1244
+ var gws_contacts_exports = {};
1245
+ __export(gws_contacts_exports, {
1246
+ SKILL_DEF: () => SKILL_DEF33,
1247
+ TOOLS: () => TOOLS33
1248
+ });
1249
+ var SKILL_DEF33, TOOLS33;
1250
+ var init_gws_contacts = __esm({
1251
+ "src/engine/skills/gws-contacts.ts"() {
1252
+ "use strict";
1253
+ init_emoji();
1254
+ SKILL_DEF33 = {
1255
+ id: "gws-contacts",
1256
+ name: "Google Contacts",
1257
+ description: "Contact search, directory lookup, create and update contacts.",
1258
+ category: "productivity",
1259
+ risk: "medium",
1260
+ icon: Emoji.people,
1261
+ source: "builtin"
1262
+ };
1263
+ TOOLS33 = [
1264
+ { id: "google_contacts_list", name: "List Contacts", description: "List contacts", category: "read", risk: "low", skillId: "gws-contacts", sideEffects: [] },
1265
+ { id: "google_contacts_search", name: "Search Contacts", description: "Search contacts by name/email", category: "read", risk: "low", skillId: "gws-contacts", sideEffects: [] },
1266
+ { id: "google_contacts_search_directory", name: "Search Directory", description: "Search organization directory", category: "read", risk: "low", skillId: "gws-contacts", sideEffects: [] },
1267
+ { id: "google_contacts_create", name: "Create Contact", description: "Create a new contact", category: "write", risk: "medium", skillId: "gws-contacts", sideEffects: [] },
1268
+ { id: "google_contacts_update", name: "Update Contact", description: "Update an existing contact", category: "write", risk: "medium", skillId: "gws-contacts", sideEffects: [] }
1269
+ ];
1270
+ }
1271
+ });
1272
+
1273
+ // src/engine/skills/gws-tasks.ts
1274
+ var gws_tasks_exports = {};
1275
+ __export(gws_tasks_exports, {
1276
+ SKILL_DEF: () => SKILL_DEF34,
1277
+ TOOLS: () => TOOLS34
1278
+ });
1279
+ var SKILL_DEF34, TOOLS34;
1280
+ var init_gws_tasks = __esm({
1281
+ "src/engine/skills/gws-tasks.ts"() {
1282
+ "use strict";
1283
+ init_emoji();
1284
+ SKILL_DEF34 = {
1285
+ id: "gws-tasks",
1286
+ name: "Google Tasks",
1287
+ description: "Task lists, create/complete/update tasks, due dates.",
1288
+ category: "productivity",
1289
+ risk: "medium",
1290
+ icon: Emoji.check,
1291
+ source: "builtin"
1292
+ };
1293
+ TOOLS34 = [
1294
+ { id: "google_tasks_list_tasklists", name: "List Task Lists", description: "List all task lists", category: "read", risk: "low", skillId: "gws-tasks", sideEffects: [] },
1295
+ { id: "google_tasks_list", name: "List Tasks", description: "List tasks in a list", category: "read", risk: "low", skillId: "gws-tasks", sideEffects: [] },
1296
+ { id: "google_tasks_create", name: "Create Task", description: "Create a new task", category: "write", risk: "low", skillId: "gws-tasks", sideEffects: [] },
1297
+ { id: "google_tasks_complete", name: "Complete Task", description: "Mark task as complete", category: "write", risk: "low", skillId: "gws-tasks", sideEffects: [] },
1298
+ { id: "google_tasks_update", name: "Update Task", description: "Update task details", category: "write", risk: "low", skillId: "gws-tasks", sideEffects: [] },
1299
+ { id: "google_tasks_delete", name: "Delete Task", description: "Delete a task", category: "destroy", risk: "medium", skillId: "gws-tasks", sideEffects: ["deletes-data"] },
1300
+ { id: "google_tasks_create_list", name: "Create Task List", description: "Create a new task list", category: "write", risk: "low", skillId: "gws-tasks", sideEffects: [] }
1301
+ ];
1302
+ }
1303
+ });
1304
+
1305
+ // src/engine/skills/core-tools.ts
1306
+ var core_tools_exports = {};
1307
+ __export(core_tools_exports, {
1308
+ SKILL_DEF: () => SKILL_DEF35,
1309
+ TOOLS: () => TOOLS35
1310
+ });
1311
+ var SKILL_DEF35, TOOLS35;
1312
+ var init_core_tools = __esm({
1313
+ "src/engine/skills/core-tools.ts"() {
1314
+ "use strict";
1315
+ init_emoji();
1316
+ SKILL_DEF35 = {
1317
+ id: "core-tools",
1318
+ name: "Core Tools",
1319
+ description: "File operations, shell, search, and browser automation.",
1320
+ category: "development",
1321
+ risk: "high",
1322
+ icon: Emoji.wrench,
1323
+ source: "builtin"
1324
+ };
1325
+ TOOLS35 = [
1326
+ { id: "read", name: "Read File", description: "Read file contents", category: "read", risk: "low", skillId: "core-tools", sideEffects: [] },
1327
+ { id: "write", name: "Write File", description: "Write content to a file", category: "write", risk: "medium", skillId: "core-tools", sideEffects: ["modifies-files"] },
1328
+ { id: "edit", name: "Edit File", description: "Edit a file with find/replace", category: "write", risk: "medium", skillId: "core-tools", sideEffects: ["modifies-files"] },
1329
+ { id: "bash", name: "Shell Command", description: "Execute shell commands", category: "write", risk: "high", skillId: "core-tools", sideEffects: ["executes-code"] },
1330
+ { id: "glob", name: "Glob", description: "Find files matching a pattern", category: "read", risk: "low", skillId: "core-tools", sideEffects: [] },
1331
+ { id: "grep", name: "Grep", description: "Search file contents with regex", category: "read", risk: "low", skillId: "core-tools", sideEffects: [] },
1332
+ { id: "browser", name: "Browser", description: "Control a web browser for automation", category: "write", risk: "high", skillId: "core-tools", sideEffects: ["network-request"] },
1333
+ { id: "web_search", name: "Web Search", description: "Search the web", category: "read", risk: "low", skillId: "core-tools", sideEffects: ["network-request"] },
1334
+ { id: "web_fetch", name: "Web Fetch", description: "Fetch and extract content from a URL", category: "read", risk: "low", skillId: "core-tools", sideEffects: ["network-request"] },
1335
+ { id: "request_tools", name: "Request Tools", description: "Dynamically load additional tool sets", category: "read", risk: "low", skillId: "core-tools", sideEffects: [] }
1336
+ ];
1337
+ }
1338
+ });
1339
+
1340
+ // src/engine/skills/meeting-lifecycle.ts
1341
+ var meeting_lifecycle_exports = {};
1342
+ __export(meeting_lifecycle_exports, {
1343
+ SKILL_DEF: () => SKILL_DEF36,
1344
+ TOOLS: () => TOOLS36
1345
+ });
1346
+ var SKILL_DEF36, TOOLS36;
1347
+ var init_meeting_lifecycle = __esm({
1348
+ "src/engine/skills/meeting-lifecycle.ts"() {
1349
+ "use strict";
1350
+ init_emoji();
1351
+ SKILL_DEF36 = {
1352
+ id: "meeting-lifecycle",
1353
+ name: "Meeting Lifecycle",
1354
+ description: "Meeting preparation, recording, saving notes, and capability checks.",
1355
+ category: "collaboration",
1356
+ risk: "medium",
1357
+ icon: Emoji.clipboard,
1358
+ source: "builtin"
1359
+ };
1360
+ TOOLS36 = [
1361
+ { id: "system_capabilities", name: "System Capabilities", description: "Check system capabilities and available features", category: "read", risk: "low", skillId: "meeting-lifecycle", sideEffects: [] },
1362
+ { id: "meeting_prepare", name: "Prepare Meeting", description: "Prepare briefing materials for an upcoming meeting", category: "read", risk: "low", skillId: "meeting-lifecycle", sideEffects: [] },
1363
+ { id: "meeting_save", name: "Save Meeting Notes", description: "Save meeting notes and summary", category: "write", risk: "low", skillId: "meeting-lifecycle", sideEffects: ["sends-email"] },
1364
+ { id: "meeting_record", name: "Record Meeting", description: "Start/stop meeting recording", category: "write", risk: "medium", skillId: "meeting-lifecycle", sideEffects: [] },
1365
+ { id: "meeting_can_join", name: "Can Join Meeting", description: "Check if agent can join a specific meeting", category: "read", risk: "low", skillId: "meeting-lifecycle", sideEffects: [] }
1366
+ ];
1367
+ }
1368
+ });
1369
+
1370
+ // src/engine/skills/agent-memory.ts
1371
+ var agent_memory_exports = {};
1372
+ __export(agent_memory_exports, {
1373
+ SKILL_DEF: () => SKILL_DEF37,
1374
+ TOOLS: () => TOOLS37
1375
+ });
1376
+ var SKILL_DEF37, TOOLS37;
1377
+ var init_agent_memory = __esm({
1378
+ "src/engine/skills/agent-memory.ts"() {
1379
+ "use strict";
1380
+ init_emoji();
1381
+ SKILL_DEF37 = {
1382
+ id: "agent-memory",
1383
+ name: "Agent Memory",
1384
+ description: "Persistent memory for storing and recalling information across sessions.",
1385
+ category: "utility",
1386
+ risk: "low",
1387
+ icon: Emoji.brain,
1388
+ source: "builtin"
1389
+ };
1390
+ TOOLS37 = [
1391
+ { id: "memory", name: "Memory", description: "Store or recall a memory", category: "write", risk: "low", skillId: "agent-memory", sideEffects: [] },
1392
+ { id: "memory_reflect", name: "Memory Reflect", description: "Reflect on and consolidate memories", category: "write", risk: "low", skillId: "agent-memory", sideEffects: [] },
1393
+ { id: "memory_context", name: "Memory Context", description: "Get relevant memory context for a topic", category: "read", risk: "low", skillId: "agent-memory", sideEffects: [] },
1394
+ { id: "memory_stats", name: "Memory Stats", description: "Get memory usage statistics", category: "read", risk: "low", skillId: "agent-memory", sideEffects: [] }
1395
+ ];
1396
+ }
1397
+ });
1398
+
1399
+ // src/engine/skills/visual-memory.ts
1400
+ var visual_memory_exports = {};
1401
+ __export(visual_memory_exports, {
1402
+ SKILL_DEF: () => SKILL_DEF38,
1403
+ TOOLS: () => TOOLS38
1404
+ });
1405
+ var SKILL_DEF38, TOOLS38;
1406
+ var init_visual_memory = __esm({
1407
+ "src/engine/skills/visual-memory.ts"() {
1408
+ "use strict";
1409
+ init_emoji();
1410
+ SKILL_DEF38 = {
1411
+ id: "visual-memory",
1412
+ name: "Visual Memory",
1413
+ description: "Enterprise visual memory system \u2014 persistent, DB-backed visual recall with BM25F search integration. Emulates human visual memory: selective capture, semantic consolidation, confidence decay, fast pattern recognition.",
1414
+ category: "memory",
1415
+ risk: "low",
1416
+ icon: Emoji.eye,
1417
+ source: "builtin"
1418
+ };
1419
+ TOOLS38 = [
1420
+ { id: "vision_capture", name: "Capture", description: "Screenshot browser page and store in visual memory with BM25F-searchable semantic link", category: "memory", risk: "low", skillId: "visual-memory", sideEffects: ["storage"] },
1421
+ { id: "vision_query", name: "Query", description: "Search visual memory by time, session, or description", category: "read", risk: "low", skillId: "visual-memory", sideEffects: [] },
1422
+ { id: "vision_compare", name: "Compare", description: "Side-by-side comparison of two observations with similarity metrics", category: "read", risk: "low", skillId: "visual-memory", sideEffects: [] },
1423
+ { id: "vision_diff", name: "Visual Diff", description: "Pixel-level diff between two captures showing changed regions", category: "read", risk: "low", skillId: "visual-memory", sideEffects: [] },
1424
+ { id: "vision_similar", name: "Find Similar", description: "Find visually similar observations using perceptual hashing", category: "read", risk: "low", skillId: "visual-memory", sideEffects: [] },
1425
+ { id: "vision_track", name: "Track Changes", description: "Track visual changes to a page over time against a baseline", category: "read", risk: "low", skillId: "visual-memory", sideEffects: ["storage"] },
1426
+ { id: "vision_ocr", name: "OCR", description: "Extract text from a visual observation via accessibility tree", category: "read", risk: "low", skillId: "visual-memory", sideEffects: [] },
1427
+ { id: "vision_health", name: "Health", description: "Visual memory statistics, health metrics, and recommendations", category: "read", risk: "low", skillId: "visual-memory", sideEffects: [] },
1428
+ { id: "vision_session_start", name: "Start Session", description: "Begin a named observation session for grouping related captures", category: "memory", risk: "low", skillId: "visual-memory", sideEffects: ["storage"] },
1429
+ { id: "vision_session_end", name: "End Session", description: "End observation session with summary", category: "memory", risk: "low", skillId: "visual-memory", sideEffects: [] }
1430
+ ];
1431
+ }
1432
+ });
1433
+
1434
+ // src/engine/skills/knowledge-search.ts
1435
+ var knowledge_search_exports = {};
1436
+ __export(knowledge_search_exports, {
1437
+ SKILL_DEF: () => SKILL_DEF39,
1438
+ TOOLS: () => TOOLS39
1439
+ });
1440
+ var SKILL_DEF39, TOOLS39;
1441
+ var init_knowledge_search = __esm({
1442
+ "src/engine/skills/knowledge-search.ts"() {
1443
+ "use strict";
1444
+ init_emoji();
1445
+ SKILL_DEF39 = {
1446
+ id: "knowledge-search",
1447
+ name: "Knowledge Search",
1448
+ description: "Search organization knowledge bases and shared knowledge hub across all agents.",
1449
+ category: "utility",
1450
+ risk: "low",
1451
+ icon: Emoji.search,
1452
+ source: "builtin"
1453
+ };
1454
+ TOOLS39 = [
1455
+ { id: "knowledge_base_search", name: "Knowledge Base Search", description: "Search org knowledge bases for docs, FAQs, processes", category: "read", risk: "low", skillId: "knowledge-search", sideEffects: [] },
1456
+ { id: "knowledge_hub_search", name: "Knowledge Hub Search", description: "Search shared hub for learnings from all agents", category: "read", risk: "low", skillId: "knowledge-search", sideEffects: [] },
1457
+ { id: "knowledge_search_stats", name: "Knowledge Search Stats", description: "View search history and efficiency metrics", category: "read", risk: "low", skillId: "knowledge-search", sideEffects: [] }
1458
+ ];
1459
+ }
1460
+ });
1461
+
1462
+ // src/engine/skills/messaging.ts
1463
+ var WHATSAPP_SKILL_DEF, WHATSAPP_TOOLS, TELEGRAM_SKILL_DEF, TELEGRAM_TOOLS, MESSAGING_SKILLS;
1464
+ var init_messaging = __esm({
1465
+ "src/engine/skills/messaging.ts"() {
1466
+ "use strict";
1467
+ WHATSAPP_SKILL_DEF = {
1468
+ id: "msg-whatsapp",
1469
+ name: "WhatsApp",
1470
+ description: "WhatsApp messaging via linked device.",
1471
+ category: "messaging",
1472
+ risk: "medium",
1473
+ tools: []
1474
+ };
1475
+ WHATSAPP_TOOLS = [
1476
+ { id: "whatsapp_connect", name: "Connect WhatsApp", description: "Start connection, get QR code", category: "write", risk: "medium", skillId: "msg-whatsapp", sideEffects: [] },
1477
+ { id: "whatsapp_status", name: "WhatsApp Status", description: "Check connection status", category: "read", risk: "low", skillId: "msg-whatsapp", sideEffects: [] },
1478
+ { id: "whatsapp_send", name: "Send WhatsApp", description: "Send a text message", category: "write", risk: "medium", skillId: "msg-whatsapp", sideEffects: ["sends-message"] },
1479
+ { id: "whatsapp_send_media", name: "Send WhatsApp Media", description: "Send image/video/document", category: "write", risk: "medium", skillId: "msg-whatsapp", sideEffects: ["sends-message"] },
1480
+ { id: "whatsapp_get_groups", name: "List WhatsApp Groups", description: "List joined groups", category: "read", risk: "low", skillId: "msg-whatsapp", sideEffects: [] },
1481
+ { id: "whatsapp_send_voice", name: "Send Voice Note", description: "Send audio voice note", category: "write", risk: "medium", skillId: "msg-whatsapp", sideEffects: ["sends-message"] },
1482
+ { id: "whatsapp_send_location", name: "Send Location", description: "Send a location pin", category: "write", risk: "medium", skillId: "msg-whatsapp", sideEffects: ["sends-message"] },
1483
+ { id: "whatsapp_send_contact", name: "Send Contact", description: "Share a contact card", category: "write", risk: "medium", skillId: "msg-whatsapp", sideEffects: ["sends-message"] },
1484
+ { id: "whatsapp_react", name: "React to Message", description: "Add emoji reaction", category: "write", risk: "low", skillId: "msg-whatsapp", sideEffects: ["sends-message"] },
1485
+ { id: "whatsapp_typing", name: "Typing Indicator", description: "Show typing status", category: "write", risk: "low", skillId: "msg-whatsapp", sideEffects: [] },
1486
+ { id: "whatsapp_read_receipts", name: "Read Receipts", description: "Mark messages as read", category: "write", risk: "low", skillId: "msg-whatsapp", sideEffects: [] },
1487
+ { id: "whatsapp_profile", name: "WhatsApp Profile", description: "Get profile info", category: "read", risk: "low", skillId: "msg-whatsapp", sideEffects: [] },
1488
+ { id: "whatsapp_group_manage", name: "Manage Group", description: "Create/update/leave groups", category: "write", risk: "high", skillId: "msg-whatsapp", sideEffects: ["sends-message"] },
1489
+ { id: "whatsapp_delete_message", name: "Delete Message", description: "Delete a sent message", category: "write", risk: "medium", skillId: "msg-whatsapp", sideEffects: ["sends-message"] },
1490
+ { id: "whatsapp_forward", name: "Forward Message", description: "Forward a message", category: "write", risk: "medium", skillId: "msg-whatsapp", sideEffects: ["sends-message"] },
1491
+ { id: "whatsapp_disconnect", name: "Disconnect WhatsApp", description: "Disconnect session", category: "write", risk: "low", skillId: "msg-whatsapp", sideEffects: [] }
1492
+ ];
1493
+ TELEGRAM_SKILL_DEF = {
1494
+ id: "msg-telegram",
1495
+ name: "Telegram",
1496
+ description: "Telegram Bot API messaging.",
1497
+ category: "messaging",
1498
+ risk: "medium",
1499
+ tools: []
1500
+ };
1501
+ TELEGRAM_TOOLS = [
1502
+ { id: "telegram_send", name: "Send Telegram", description: "Send a text message", category: "write", risk: "medium", skillId: "msg-telegram", sideEffects: ["sends-message"] },
1503
+ { id: "telegram_send_media", name: "Send Telegram Media", description: "Send photo/video/document", category: "write", risk: "medium", skillId: "msg-telegram", sideEffects: ["sends-message"] },
1504
+ { id: "telegram_get_me", name: "Telegram Bot Info", description: "Get bot info", category: "read", risk: "low", skillId: "msg-telegram", sideEffects: [] },
1505
+ { id: "telegram_get_chat", name: "Telegram Chat Info", description: "Get chat details", category: "read", risk: "low", skillId: "msg-telegram", sideEffects: [] }
1506
+ ];
1507
+ MESSAGING_SKILLS = [
1508
+ { ...WHATSAPP_SKILL_DEF, tools: WHATSAPP_TOOLS },
1509
+ { ...TELEGRAM_SKILL_DEF, tools: TELEGRAM_TOOLS }
1510
+ ];
1511
+ }
1512
+ });
1513
+
1514
+ // src/engine/skills/local-system.ts
1515
+ var FS_SKILL_DEF, FS_TOOLS, SHELL_SKILL_DEF, SHELL_TOOLS, CODING_SKILL_DEF, CODING_TOOLS, LOCAL_SYSTEM_SKILLS;
1516
+ var init_local_system = __esm({
1517
+ "src/engine/skills/local-system.ts"() {
1518
+ "use strict";
1519
+ FS_SKILL_DEF = {
1520
+ id: "local-filesystem",
1521
+ name: "Filesystem",
1522
+ description: "Read, write, edit, move, delete, search, and list files on the host.",
1523
+ category: "local",
1524
+ risk: "medium",
1525
+ tools: []
1526
+ };
1527
+ FS_TOOLS = [
1528
+ { id: "file_read", name: "Read File", description: "Read file contents", category: "read", risk: "low", skillId: "local-filesystem", sideEffects: [] },
1529
+ { id: "file_write", name: "Write File", description: "Write content to a file", category: "write", risk: "medium", skillId: "local-filesystem", sideEffects: ["modifies-files"] },
1530
+ { id: "file_edit", name: "Edit File", description: "Edit a file with find/replace", category: "write", risk: "medium", skillId: "local-filesystem", sideEffects: ["modifies-files"] },
1531
+ { id: "file_list", name: "List Files", description: "List directory contents", category: "read", risk: "low", skillId: "local-filesystem", sideEffects: [] },
1532
+ { id: "file_search", name: "Search Files", description: "Search files by name or content", category: "read", risk: "low", skillId: "local-filesystem", sideEffects: [] },
1533
+ { id: "file_move", name: "Move File", description: "Move or rename a file", category: "write", risk: "medium", skillId: "local-filesystem", sideEffects: ["modifies-files"] },
1534
+ { id: "file_delete", name: "Delete File", description: "Delete a file", category: "write", risk: "high", skillId: "local-filesystem", sideEffects: ["modifies-files"] }
1535
+ ];
1536
+ SHELL_SKILL_DEF = {
1537
+ id: "local-shell",
1538
+ name: "Shell & System",
1539
+ description: "Execute commands, interactive PTY, sudo, package install, system info.",
1540
+ category: "local",
1541
+ risk: "medium",
1542
+ tools: []
1543
+ };
1544
+ SHELL_TOOLS = [
1545
+ { id: "shell_exec", name: "Shell Exec", description: "Execute a shell command", category: "write", risk: "high", skillId: "local-shell", sideEffects: ["executes-code"] },
1546
+ { id: "shell_interactive", name: "Interactive Shell", description: "PTY session with follow-up input", category: "write", risk: "high", skillId: "local-shell", sideEffects: ["executes-code"] },
1547
+ { id: "shell_sudo", name: "Sudo Command", description: "Execute with root privileges", category: "write", risk: "critical", skillId: "local-shell", sideEffects: ["executes-code"] },
1548
+ { id: "shell_install", name: "Install Package", description: "Install packages via system package manager", category: "write", risk: "high", skillId: "local-shell", sideEffects: ["executes-code", "modifies-files"] },
1549
+ { id: "shell_session_list", name: "List Sessions", description: "List active PTY sessions", category: "read", risk: "low", skillId: "local-shell", sideEffects: [] },
1550
+ { id: "shell_session_kill", name: "Kill Session", description: "Kill a PTY session", category: "write", risk: "medium", skillId: "local-shell", sideEffects: [] },
1551
+ { id: "system_info", name: "System Info", description: "Get OS, CPU, memory info", category: "read", risk: "low", skillId: "local-shell", sideEffects: [] }
1552
+ ];
1553
+ CODING_SKILL_DEF = {
1554
+ id: "local-coding",
1555
+ name: "Coding & Development",
1556
+ description: "Advanced coding tools: plan, search, build, test, git, multi-edit, pm2.",
1557
+ category: "local",
1558
+ risk: "medium",
1559
+ tools: []
1560
+ };
1561
+ CODING_TOOLS = [
1562
+ { id: "code_plan", name: "Plan Code Changes", description: "Analyze codebase and create implementation plan", category: "read", risk: "low", skillId: "local-coding", sideEffects: [] },
1563
+ { id: "code_search", name: "Search Code", description: "Search codebase with ripgrep/grep", category: "read", risk: "low", skillId: "local-coding", sideEffects: [] },
1564
+ { id: "code_read", name: "Read Code", description: "Read file with line numbers, ranges, symbol outline", category: "read", risk: "low", skillId: "local-coding", sideEffects: [] },
1565
+ { id: "code_multi_edit", name: "Multi-Edit", description: "Apply multiple edits to one or more files in one call", category: "write", risk: "medium", skillId: "local-coding", sideEffects: ["modifies-files"] },
1566
+ { id: "code_build", name: "Build Project", description: "Build project with error parsing", category: "write", risk: "medium", skillId: "local-coding", sideEffects: ["executes-code"] },
1567
+ { id: "code_test", name: "Run Tests", description: "Run tests with result parsing", category: "write", risk: "medium", skillId: "local-coding", sideEffects: ["executes-code"] },
1568
+ { id: "code_git", name: "Git Operations", description: "Git status, diff, log, commit, push, branch", category: "write", risk: "medium", skillId: "local-coding", sideEffects: ["modifies-files"] },
1569
+ { id: "code_create", name: "Create File", description: "Create new file with auto-directory creation", category: "write", risk: "medium", skillId: "local-coding", sideEffects: ["modifies-files"] },
1570
+ { id: "code_diff", name: "Diff Preview", description: "Preview edit as unified diff without applying", category: "read", risk: "low", skillId: "local-coding", sideEffects: [] },
1571
+ { id: "code_pm2", name: "PM2 Manager", description: "Manage pm2 processes: list, restart, logs, stop", category: "write", risk: "medium", skillId: "local-coding", sideEffects: ["executes-code"] }
1572
+ ];
1573
+ LOCAL_SYSTEM_SKILLS = [
1574
+ { ...FS_SKILL_DEF, tools: FS_TOOLS },
1575
+ { ...SHELL_SKILL_DEF, tools: SHELL_TOOLS },
1576
+ { ...CODING_SKILL_DEF, tools: CODING_TOOLS }
1577
+ ];
1578
+ }
1579
+ });
1580
+
1581
+ // src/engine/skills/mcp-bridge.ts
1582
+ var MCP_BRIDGE_SKILL;
1583
+ var init_mcp_bridge = __esm({
1584
+ "src/engine/skills/mcp-bridge.ts"() {
1585
+ "use strict";
1586
+ MCP_BRIDGE_SKILL = {
1587
+ id: "mcp-bridge",
1588
+ name: "MCP Integration Bridge",
1589
+ description: "Third-party service integrations via MCP adapters",
1590
+ category: "integration",
1591
+ risk: "medium",
1592
+ tools: [],
1593
+ source: "builtin"
1594
+ };
1595
+ }
1596
+ });
1597
+
1598
+ // src/engine/skills/agent-management.ts
1599
+ var agentManagementSkill;
1600
+ var init_agent_management = __esm({
1601
+ "src/engine/skills/agent-management.ts"() {
1602
+ "use strict";
1603
+ agentManagementSkill = {
1604
+ id: "agent-management",
1605
+ name: "Agent Management",
1606
+ description: "Organizational hierarchy \u2014 delegation, escalation, team status, org chart",
1607
+ category: "utility",
1608
+ icon: "building",
1609
+ risk: "medium",
1610
+ tools: [
1611
+ {
1612
+ id: "team_status",
1613
+ name: "team_status",
1614
+ description: "Get status of direct reports.",
1615
+ category: "utility",
1616
+ risk: "low",
1617
+ skillId: "agent-management",
1618
+ sideEffects: []
1619
+ },
1620
+ {
1621
+ id: "team_delegate_task",
1622
+ name: "team_delegate_task",
1623
+ description: "Delegate a task to a subordinate.",
1624
+ category: "utility",
1625
+ risk: "medium",
1626
+ skillId: "agent-management",
1627
+ sideEffects: ["database_write"]
1628
+ },
1629
+ {
1630
+ id: "team_tasks",
1631
+ name: "team_tasks",
1632
+ description: "List delegated tasks.",
1633
+ category: "utility",
1634
+ risk: "low",
1635
+ skillId: "agent-management",
1636
+ sideEffects: []
1637
+ },
1638
+ {
1639
+ id: "team_reassign_task",
1640
+ name: "team_reassign_task",
1641
+ description: "Reassign a task to a different agent.",
1642
+ category: "utility",
1643
+ risk: "medium",
1644
+ skillId: "agent-management",
1645
+ sideEffects: ["database_write"]
1646
+ },
1647
+ {
1648
+ id: "team_feedback",
1649
+ name: "team_feedback",
1650
+ description: "Provide feedback on a completed task.",
1651
+ category: "utility",
1652
+ risk: "low",
1653
+ skillId: "agent-management",
1654
+ sideEffects: ["database_write"]
1655
+ },
1656
+ {
1657
+ id: "team_resolve_escalation",
1658
+ name: "team_resolve_escalation",
1659
+ description: "Resolve a pending escalation.",
1660
+ category: "utility",
1661
+ risk: "medium",
1662
+ skillId: "agent-management",
1663
+ sideEffects: ["database_write"]
1664
+ },
1665
+ {
1666
+ id: "team_forward_escalation",
1667
+ name: "team_forward_escalation",
1668
+ description: "Forward an escalation up the chain.",
1669
+ category: "utility",
1670
+ risk: "medium",
1671
+ skillId: "agent-management",
1672
+ sideEffects: ["database_write"]
1673
+ },
1674
+ {
1675
+ id: "team_org_chart",
1676
+ name: "team_org_chart",
1677
+ description: "View the organization chart.",
1678
+ category: "utility",
1679
+ risk: "low",
1680
+ skillId: "agent-management",
1681
+ sideEffects: []
1682
+ },
1683
+ {
1684
+ id: "task_update",
1685
+ name: "task_update",
1686
+ description: "Update a task assigned to you.",
1687
+ category: "utility",
1688
+ risk: "low",
1689
+ skillId: "agent-management",
1690
+ sideEffects: ["database_write"]
1691
+ },
1692
+ {
1693
+ id: "my_tasks",
1694
+ name: "my_tasks",
1695
+ description: "List tasks assigned to you.",
1696
+ category: "utility",
1697
+ risk: "low",
1698
+ skillId: "agent-management",
1699
+ sideEffects: []
1700
+ },
1701
+ {
1702
+ id: "escalate",
1703
+ name: "escalate",
1704
+ description: "Escalate an issue to your manager.",
1705
+ category: "utility",
1706
+ risk: "medium",
1707
+ skillId: "agent-management",
1708
+ sideEffects: ["database_write"]
1709
+ }
1710
+ ]
1711
+ };
1712
+ }
1713
+ });
1714
+
1715
+ // src/engine/skills/agenticmail.ts
1716
+ var agenticmail_exports = {};
1717
+ __export(agenticmail_exports, {
1718
+ SKILL_DEF: () => SKILL_DEF40,
1719
+ TOOLS: () => TOOLS40
1720
+ });
1721
+ var SKILL_DEF40, S, TOOLS40;
1722
+ var init_agenticmail = __esm({
1723
+ "src/engine/skills/agenticmail.ts"() {
1724
+ "use strict";
1725
+ init_emoji();
1726
+ SKILL_DEF40 = {
1727
+ id: "agenticmail",
1728
+ name: "AgenticMail",
1729
+ description: "AI-native email platform \u2014 send/receive email, inter-agent messaging, storage, SMS, task management, and multi-agent coordination.",
1730
+ category: "communication",
1731
+ risk: "medium",
1732
+ icon: Emoji.mailbox,
1733
+ source: "builtin"
1734
+ };
1735
+ S = "agenticmail";
1736
+ TOOLS40 = [
1737
+ // ─── Email Core ────────────────────────────────────────
1738
+ { id: "agenticmail_send", name: "Send Email", description: "Send an email from the agent mailbox. Outbound guard scans for PII/credentials.", category: "communicate", risk: "high", skillId: S, sideEffects: ["sends-email"] },
1739
+ { id: "agenticmail_reply", name: "Reply to Email", description: "Reply to an email by UID. Outbound guard applies.", category: "communicate", risk: "high", skillId: S, sideEffects: ["sends-email"] },
1740
+ { id: "agenticmail_forward", name: "Forward Email", description: "Forward an email to another recipient.", category: "communicate", risk: "high", skillId: S, sideEffects: ["sends-email"] },
1741
+ { id: "agenticmail_inbox", name: "List Inbox", description: "List recent emails in the inbox.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1742
+ { id: "agenticmail_read", name: "Read Email", description: "Read a specific email by UID with security metadata.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1743
+ { id: "agenticmail_search", name: "Search Emails", description: "Search emails by criteria. Supports relay search for connected Gmail/Outlook.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1744
+ { id: "agenticmail_digest", name: "Inbox Digest", description: "Compact inbox digest with subject, sender, date, and text preview.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1745
+ { id: "agenticmail_delete", name: "Delete Email", description: "Delete an email by UID.", category: "destroy", risk: "medium", skillId: S, sideEffects: ["deletes-data"] },
1746
+ { id: "agenticmail_move", name: "Move Email", description: "Move an email to another folder.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1747
+ { id: "agenticmail_mark_read", name: "Mark Read", description: "Mark an email as read.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1748
+ { id: "agenticmail_mark_unread", name: "Mark Unread", description: "Mark an email as unread.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1749
+ { id: "agenticmail_folders", name: "List Folders", description: "List all mail folders.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1750
+ { id: "agenticmail_create_folder", name: "Create Folder", description: "Create a new mail folder.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1751
+ { id: "agenticmail_list_folder", name: "List Folder", description: "List messages in a specific folder (Sent, Drafts, Trash, etc.).", category: "read", risk: "low", skillId: S, sideEffects: [] },
1752
+ // ─── Batch Operations ──────────────────────────────────
1753
+ { id: "agenticmail_batch_read", name: "Batch Read", description: "Read multiple emails at once by UIDs.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1754
+ { id: "agenticmail_batch_delete", name: "Batch Delete", description: "Delete multiple emails by UIDs.", category: "destroy", risk: "medium", skillId: S, sideEffects: ["deletes-data"] },
1755
+ { id: "agenticmail_batch_move", name: "Batch Move", description: "Move multiple emails to another folder.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1756
+ { id: "agenticmail_batch_mark_read", name: "Batch Mark Read", description: "Mark multiple emails as read.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1757
+ { id: "agenticmail_batch_mark_unread", name: "Batch Mark Unread", description: "Mark multiple emails as unread.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1758
+ // ─── Drafts ────────────────────────────────────────────
1759
+ { id: "agenticmail_drafts", name: "Manage Drafts", description: "List, create, update, delete, or send email drafts.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1760
+ // ─── Templates & Signatures ────────────────────────────
1761
+ { id: "agenticmail_templates", name: "Email Templates", description: "List, create, or delete email templates.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1762
+ { id: "agenticmail_template_send", name: "Send from Template", description: "Send email using a saved template with variable substitution.", category: "communicate", risk: "high", skillId: S, sideEffects: ["sends-email"] },
1763
+ { id: "agenticmail_signatures", name: "Email Signatures", description: "List, create, or delete email signatures.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1764
+ // ─── Tags & Rules ──────────────────────────────────────
1765
+ { id: "agenticmail_tags", name: "Manage Tags", description: "List, create, delete, tag/untag messages, get messages by tag.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1766
+ { id: "agenticmail_rules", name: "Email Rules", description: "Auto-process incoming messages with server-side rules.", category: "write", risk: "medium", skillId: S, sideEffects: [] },
1767
+ // ─── Scheduling ────────────────────────────────────────
1768
+ { id: "agenticmail_schedule", name: "Schedule Email", description: "Create, list, or cancel scheduled emails.", category: "communicate", risk: "medium", skillId: S, sideEffects: ["sends-email"] },
1769
+ // ─── Spam Management ───────────────────────────────────
1770
+ { id: "agenticmail_spam", name: "Spam Management", description: "List spam, report/unreport messages, get spam scores.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1771
+ // ─── Agent Communication ───────────────────────────────
1772
+ { id: "agenticmail_list_agents", name: "List Agents", description: "Discover all available AI agents and their emails/roles.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1773
+ { id: "agenticmail_message_agent", name: "Message Agent", description: "Send a message to another AI agent by name.", category: "communicate", risk: "medium", skillId: S, sideEffects: ["sends-email"] },
1774
+ { id: "agenticmail_call_agent", name: "Call Agent", description: "RPC call to another agent \u2014 sync or async. Auto-spawns sessions.", category: "execute", risk: "medium", skillId: S, sideEffects: ["spawns-agent"] },
1775
+ { id: "agenticmail_check_messages", name: "Check Messages", description: "Check for new unread messages from other agents or external senders.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1776
+ { id: "agenticmail_wait_for_email", name: "Wait for Email", description: "Push-based wait for new email or task notification (SSE).", category: "read", risk: "low", skillId: S, sideEffects: [] },
1777
+ // ─── Task Management ───────────────────────────────────
1778
+ { id: "agenticmail_check_tasks", name: "Check Tasks", description: "Check for pending tasks assigned to you or tasks you assigned.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1779
+ { id: "agenticmail_claim_task", name: "Claim Task", description: "Claim a pending task to start working on it.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1780
+ { id: "agenticmail_submit_result", name: "Submit Result", description: "Submit result for a claimed task, marking it complete.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1781
+ { id: "agenticmail_complete_task", name: "Complete Task", description: "Claim and submit result in one call.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1782
+ // ─── Storage / Database ────────────────────────────────
1783
+ { id: "agenticmail_storage", name: "Agent Storage", description: "Full database management \u2014 tables, CRUD, indexes, aggregations, raw SQL.", category: "write", risk: "medium", skillId: S, sideEffects: ["writes-data"] },
1784
+ // ─── Contacts ──────────────────────────────────────────
1785
+ { id: "agenticmail_contacts", name: "Manage Contacts", description: "List, add, or delete contacts.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1786
+ // ─── SMS / Phone ───────────────────────────────────────
1787
+ { id: "agenticmail_sms_setup", name: "SMS Setup", description: "Configure SMS/phone via Google Voice.", category: "write", risk: "medium", skillId: S, sideEffects: [] },
1788
+ { id: "agenticmail_sms_send", name: "Send SMS", description: "Send an SMS text message via Google Voice.", category: "communicate", risk: "high", skillId: S, sideEffects: ["sends-sms"] },
1789
+ { id: "agenticmail_sms_messages", name: "List SMS", description: "List SMS messages (inbound and outbound).", category: "read", risk: "low", skillId: S, sideEffects: [] },
1790
+ { id: "agenticmail_sms_check_code", name: "Check SMS Code", description: "Check for recent verification/OTP codes from SMS.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1791
+ { id: "agenticmail_sms_read_voice", name: "Read Google Voice", description: "Read SMS directly from Google Voice web interface.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1792
+ { id: "agenticmail_sms_record", name: "Record SMS", description: "Record an SMS from Google Voice or other source.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1793
+ { id: "agenticmail_sms_parse_email", name: "Parse SMS Email", description: "Parse SMS from forwarded Google Voice email.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1794
+ { id: "agenticmail_sms_config", name: "SMS Config", description: "Get current SMS/phone number configuration.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1795
+ // ─── Account & Setup ───────────────────────────────────
1796
+ { id: "agenticmail_whoami", name: "Who Am I", description: "Get the current agent account info \u2014 name, email, role, metadata.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1797
+ { id: "agenticmail_update_metadata", name: "Update Metadata", description: "Update the current agent metadata.", category: "write", risk: "low", skillId: S, sideEffects: [] },
1798
+ { id: "agenticmail_status", name: "Server Status", description: "Check AgenticMail server health status.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1799
+ { id: "agenticmail_gateway_status", name: "Gateway Status", description: "Check email gateway status (relay, domain, or none).", category: "read", risk: "low", skillId: S, sideEffects: [] },
1800
+ { id: "agenticmail_pending_emails", name: "Pending Emails", description: "Check outbound emails blocked by the outbound guard.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1801
+ // ─── Admin ─────────────────────────────────────────────
1802
+ { id: "agenticmail_create_account", name: "Create Agent Account", description: "Create a new agent email account (requires master key).", category: "write", risk: "high", skillId: S, sideEffects: ["creates-account"] },
1803
+ { id: "agenticmail_delete_agent", name: "Delete Agent", description: "Delete an agent account permanently.", category: "destroy", risk: "critical", skillId: S, sideEffects: ["deletes-data"] },
1804
+ { id: "agenticmail_cleanup", name: "Cleanup Agents", description: "List or remove inactive non-persistent agent accounts.", category: "destroy", risk: "high", skillId: S, sideEffects: ["deletes-data"] },
1805
+ { id: "agenticmail_deletion_reports", name: "Deletion Reports", description: "List past agent deletion reports.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1806
+ // ─── Relay & Domain Setup ──────────────────────────────
1807
+ { id: "agenticmail_setup_guide", name: "Setup Guide", description: "Comparison of email setup modes (Relay vs Domain).", category: "read", risk: "low", skillId: S, sideEffects: [] },
1808
+ { id: "agenticmail_setup_relay", name: "Setup Relay", description: "Configure Gmail/Outlook relay for real internet email.", category: "write", risk: "high", skillId: S, sideEffects: ["configures-email"] },
1809
+ { id: "agenticmail_setup_domain", name: "Setup Domain", description: "Set up custom domain via Cloudflare with DKIM/SPF/DMARC.", category: "write", risk: "high", skillId: S, sideEffects: ["configures-email"] },
1810
+ { id: "agenticmail_setup_gmail_alias", name: "Gmail Alias Setup", description: 'Instructions to add agent email as Gmail "Send mail as" alias.', category: "read", risk: "low", skillId: S, sideEffects: [] },
1811
+ { id: "agenticmail_setup_payment", name: "Payment Setup", description: "Instructions for adding payment to Cloudflare for domain purchase.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1812
+ { id: "agenticmail_purchase_domain", name: "Search Domains", description: "Search for available domains via Cloudflare Registrar.", category: "read", risk: "low", skillId: S, sideEffects: [] },
1813
+ { id: "agenticmail_test_email", name: "Test Email", description: "Send a test email to verify gateway configuration.", category: "communicate", risk: "medium", skillId: S, sideEffects: ["sends-email"] },
1814
+ { id: "agenticmail_import_relay", name: "Import Relay Email", description: "Import email from connected Gmail/Outlook into local inbox.", category: "write", risk: "low", skillId: S, sideEffects: [] }
1815
+ ];
1816
+ }
1817
+ });
1818
+
1819
+ // src/engine/skills/enterprise-database.ts
1820
+ var enterprise_database_exports = {};
1821
+ __export(enterprise_database_exports, {
1822
+ SKILL_DEF: () => SKILL_DEF41,
1823
+ TOOLS: () => TOOLS41
1824
+ });
1825
+ var SKILL_DEF41, TOOLS41;
1826
+ var init_enterprise_database = __esm({
1827
+ "src/engine/skills/enterprise-database.ts"() {
1828
+ "use strict";
1829
+ init_emoji();
1830
+ SKILL_DEF41 = {
1831
+ id: "enterprise-database",
1832
+ name: "Database Query",
1833
+ description: "Execute read-only SQL queries against approved databases. Supports PostgreSQL, MySQL, SQLite, and MSSQL. Includes schema introspection, parameterized queries, result formatting, and query plan analysis. All queries run in read-only transactions with timeout limits.",
1834
+ category: "database",
1835
+ risk: "medium",
1836
+ icon: Emoji.database,
1837
+ source: "builtin",
1838
+ version: "1.0.0",
1839
+ author: "AgenticMail"
1840
+ };
1841
+ TOOLS41 = [
1842
+ {
1843
+ id: "ent_db_query",
1844
+ name: "Execute SQL Query",
1845
+ description: "Run a read-only SQL SELECT query against a configured database. Automatically wraps in a read-only transaction with a 30-second timeout. Returns results as a JSON array of rows. Supports parameterized queries to prevent SQL injection.",
1846
+ category: "read",
1847
+ risk: "medium",
1848
+ skillId: "enterprise-database",
1849
+ sideEffects: ["network-request"],
1850
+ parameters: {
1851
+ type: "object",
1852
+ properties: {
1853
+ connection: { type: "string", description: 'Named database connection from vault (e.g., "production-db", "analytics-replica")' },
1854
+ query: { type: "string", description: "SQL SELECT query to execute. INSERT/UPDATE/DELETE/DROP are blocked." },
1855
+ params: { type: "array", items: { type: "string" }, description: "Parameterized values for $1, $2, etc. placeholders" },
1856
+ limit: { type: "number", description: "Maximum rows to return (default: 1000, max: 10000)", default: 1e3 },
1857
+ format: { type: "string", enum: ["json", "csv", "markdown"], description: "Output format", default: "json" },
1858
+ timeout: { type: "number", description: "Query timeout in seconds (default: 30, max: 120)", default: 30 }
1859
+ },
1860
+ required: ["connection", "query"]
1861
+ }
1862
+ },
1863
+ {
1864
+ id: "ent_db_schema",
1865
+ name: "Inspect Database Schema",
1866
+ description: "List tables, columns, types, indexes, and foreign keys for a database. Useful for understanding data structure before writing queries.",
1867
+ category: "read",
1868
+ risk: "low",
1869
+ skillId: "enterprise-database",
1870
+ sideEffects: ["network-request"],
1871
+ parameters: {
1872
+ type: "object",
1873
+ properties: {
1874
+ connection: { type: "string", description: "Named database connection" },
1875
+ table: { type: "string", description: "Specific table to inspect (omit for full schema)" },
1876
+ includeIndexes: { type: "boolean", description: "Include index definitions", default: false },
1877
+ includeForeignKeys: { type: "boolean", description: "Include foreign key relationships", default: true }
1878
+ },
1879
+ required: ["connection"]
1880
+ }
1881
+ },
1882
+ {
1883
+ id: "ent_db_explain",
1884
+ name: "Explain Query Plan",
1885
+ description: "Run EXPLAIN ANALYZE on a query to understand execution plan, index usage, and performance characteristics without modifying data.",
1886
+ category: "read",
1887
+ risk: "low",
1888
+ skillId: "enterprise-database",
1889
+ sideEffects: ["network-request"],
1890
+ parameters: {
1891
+ type: "object",
1892
+ properties: {
1893
+ connection: { type: "string", description: "Named database connection" },
1894
+ query: { type: "string", description: "SQL query to analyze" },
1895
+ params: { type: "array", items: { type: "string" }, description: "Parameterized values" }
1896
+ },
1897
+ required: ["connection", "query"]
1898
+ }
1899
+ },
1900
+ {
1901
+ id: "ent_db_connections",
1902
+ name: "List Database Connections",
1903
+ description: "List all configured database connections available to this agent, including connection type, host, and database name. Credentials are never exposed.",
1904
+ category: "read",
1905
+ risk: "low",
1906
+ skillId: "enterprise-database",
1907
+ sideEffects: [],
1908
+ parameters: {
1909
+ type: "object",
1910
+ properties: {}
1911
+ }
1912
+ },
1913
+ {
1914
+ id: "ent_db_tables",
1915
+ name: "List Tables",
1916
+ description: "Quick list of all tables and views in a database with row counts and approximate sizes.",
1917
+ category: "read",
1918
+ risk: "low",
1919
+ skillId: "enterprise-database",
1920
+ sideEffects: ["network-request"],
1921
+ parameters: {
1922
+ type: "object",
1923
+ properties: {
1924
+ connection: { type: "string", description: "Named database connection" },
1925
+ schema: { type: "string", description: "Schema to list (default: public)", default: "public" }
1926
+ },
1927
+ required: ["connection"]
1928
+ }
1929
+ },
1930
+ {
1931
+ id: "ent_db_sample",
1932
+ name: "Sample Table Data",
1933
+ description: "Return a sample of rows from a table to understand data format and content. Returns 10 rows by default.",
1934
+ category: "read",
1935
+ risk: "low",
1936
+ skillId: "enterprise-database",
1937
+ sideEffects: ["network-request"],
1938
+ parameters: {
1939
+ type: "object",
1940
+ properties: {
1941
+ connection: { type: "string", description: "Named database connection" },
1942
+ table: { type: "string", description: "Table name to sample" },
1943
+ limit: { type: "number", description: "Number of sample rows", default: 10 }
1944
+ },
1945
+ required: ["connection", "table"]
1946
+ }
1947
+ }
1948
+ ];
1949
+ }
1950
+ });
1951
+
1952
+ // src/engine/skills/database-access.ts
1953
+ var database_access_exports = {};
1954
+ __export(database_access_exports, {
1955
+ SKILL_DEF: () => SKILL_DEF42,
1956
+ TOOLS: () => TOOLS42
1957
+ });
1958
+ var SKILL_DEF42, TOOLS42;
1959
+ var init_database_access = __esm({
1960
+ "src/engine/skills/database-access.ts"() {
1961
+ "use strict";
1962
+ init_emoji();
1963
+ SKILL_DEF42 = {
1964
+ id: "database-access",
1965
+ name: "External Database Access",
1966
+ description: "Query external databases (Postgres, MySQL, MongoDB, Redis, Supabase, etc.) that have been granted to this agent by an admin. Supports read/write operations based on granted permissions.",
1967
+ category: "database",
1968
+ risk: "medium",
1969
+ icon: Emoji.database,
1970
+ source: "builtin",
1971
+ version: "1.0.0",
1972
+ author: "AgenticMail"
1973
+ };
1974
+ TOOLS42 = [
1975
+ {
1976
+ id: "db_list_connections",
1977
+ name: "List Database Connections",
1978
+ description: "List all external database connections this agent has been granted access to.",
1979
+ category: "read",
1980
+ risk: "low",
1981
+ skillId: "database-access",
1982
+ sideEffects: [],
1983
+ parameters: { type: "object", properties: {} }
1984
+ },
1985
+ {
1986
+ id: "db_query",
1987
+ name: "Query External Database",
1988
+ description: "Execute a SQL query on a granted external database connection.",
1989
+ category: "read",
1990
+ risk: "medium",
1991
+ skillId: "database-access",
1992
+ sideEffects: ["database_write"],
1993
+ parameters: {
1994
+ type: "object",
1995
+ properties: {
1996
+ connectionId: { type: "string", description: "Database connection ID" },
1997
+ sql: { type: "string", description: "SQL query to execute" },
1998
+ params: { type: "array", items: { type: "string" }, description: "Query parameters" }
1999
+ },
2000
+ required: ["connectionId", "sql"]
2001
+ }
2002
+ },
2003
+ {
2004
+ id: "db_describe_table",
2005
+ name: "Describe Table Schema",
2006
+ description: "Get the schema (columns, types, constraints) of a table in an external database.",
2007
+ category: "read",
2008
+ risk: "low",
2009
+ skillId: "database-access",
2010
+ sideEffects: ["network-request"],
2011
+ parameters: {
2012
+ type: "object",
2013
+ properties: {
2014
+ connectionId: { type: "string", description: "Database connection ID" },
2015
+ table: { type: "string", description: "Table name" }
2016
+ },
2017
+ required: ["connectionId", "table"]
2018
+ }
2019
+ },
2020
+ {
2021
+ id: "db_list_tables",
2022
+ name: "List Tables",
2023
+ description: "List all tables in an external database connection.",
2024
+ category: "read",
2025
+ risk: "low",
2026
+ skillId: "database-access",
2027
+ sideEffects: ["network-request"],
2028
+ parameters: {
2029
+ type: "object",
2030
+ properties: {
2031
+ connectionId: { type: "string", description: "Database connection ID" }
2032
+ },
2033
+ required: ["connectionId"]
2034
+ }
2035
+ }
2036
+ ];
2037
+ }
2038
+ });
2039
+
2040
+ // src/engine/skills/enterprise-spreadsheet.ts
2041
+ var enterprise_spreadsheet_exports = {};
2042
+ __export(enterprise_spreadsheet_exports, {
2043
+ SKILL_DEF: () => SKILL_DEF43,
2044
+ TOOLS: () => TOOLS43
2045
+ });
2046
+ var SKILL_DEF43, TOOLS43;
2047
+ var init_enterprise_spreadsheet = __esm({
2048
+ "src/engine/skills/enterprise-spreadsheet.ts"() {
2049
+ "use strict";
2050
+ init_emoji();
2051
+ SKILL_DEF43 = {
2052
+ id: "enterprise-spreadsheet",
2053
+ name: "Spreadsheet Processor",
2054
+ description: "Read, write, transform, and analyze Excel and CSV files. Supports filtering, sorting, aggregations, pivot operations, formula computation, merging datasets, and format conversion. Handles large files with streaming.",
2055
+ category: "data",
2056
+ risk: "medium",
2057
+ icon: Emoji.barChart,
2058
+ source: "builtin",
2059
+ version: "1.0.0",
2060
+ author: "AgenticMail"
2061
+ };
2062
+ TOOLS43 = [
2063
+ {
2064
+ id: "ent_sheet_read",
2065
+ name: "Read Spreadsheet",
2066
+ description: "Read an Excel (.xlsx, .xls) or CSV file and return contents as structured data. Supports sheet selection, header row detection, and data type inference.",
2067
+ category: "read",
2068
+ risk: "low",
2069
+ skillId: "enterprise-spreadsheet",
2070
+ sideEffects: [],
2071
+ parameters: {
2072
+ type: "object",
2073
+ properties: {
2074
+ filePath: { type: "string", description: "Path to the spreadsheet file or URL" },
2075
+ sheet: { type: "string", description: "Sheet name (Excel only, default: first sheet)" },
2076
+ headerRow: { type: "number", description: "Row number containing headers (1-based, default: 1)", default: 1 },
2077
+ range: { type: "string", description: 'Cell range to read (e.g., "A1:D100"). Omit for entire sheet.' },
2078
+ limit: { type: "number", description: "Maximum rows to return", default: 5e3 },
2079
+ format: { type: "string", enum: ["json", "csv", "markdown"], default: "json" }
2080
+ },
2081
+ required: ["filePath"]
2082
+ }
2083
+ },
2084
+ {
2085
+ id: "ent_sheet_write",
2086
+ name: "Write Spreadsheet",
2087
+ description: "Create or overwrite a spreadsheet file from structured data. Supports Excel and CSV output with formatting options.",
2088
+ category: "write",
2089
+ risk: "medium",
2090
+ skillId: "enterprise-spreadsheet",
2091
+ sideEffects: ["modifies-files"],
2092
+ parameters: {
2093
+ type: "object",
2094
+ properties: {
2095
+ outputPath: { type: "string", description: "Output file path (.xlsx or .csv)" },
2096
+ data: { type: "array", items: { type: "object" }, description: "Array of row objects" },
2097
+ headers: { type: "array", items: { type: "string" }, description: "Column headers (auto-detected from data if omitted)" },
2098
+ sheetName: { type: "string", description: "Sheet name (Excel only)", default: "Sheet1" }
2099
+ },
2100
+ required: ["outputPath", "data"]
2101
+ }
2102
+ },
2103
+ {
2104
+ id: "ent_sheet_filter",
2105
+ name: "Filter Rows",
2106
+ description: "Filter spreadsheet rows by column conditions. Supports equals, contains, greater/less than, regex, and is-empty checks.",
2107
+ category: "read",
2108
+ risk: "low",
2109
+ skillId: "enterprise-spreadsheet",
2110
+ sideEffects: [],
2111
+ parameters: {
2112
+ type: "object",
2113
+ properties: {
2114
+ filePath: { type: "string", description: "Path to spreadsheet" },
2115
+ filters: { type: "array", items: { type: "object", properties: { column: { type: "string" }, operator: { type: "string", enum: ["eq", "neq", "gt", "lt", "gte", "lte", "contains", "not_contains", "starts_with", "ends_with", "regex", "is_empty", "not_empty"] }, value: { type: "string" } } }, description: "Filter conditions" },
2116
+ sheet: { type: "string", description: "Sheet name (Excel only)" }
2117
+ },
2118
+ required: ["filePath", "filters"]
2119
+ }
2120
+ },
2121
+ {
2122
+ id: "ent_sheet_aggregate",
2123
+ name: "Aggregate Data",
2124
+ description: "Compute aggregations over spreadsheet data: sum, average, count, min, max, median, std deviation. Supports grouping by columns (like SQL GROUP BY).",
2125
+ category: "read",
2126
+ risk: "low",
2127
+ skillId: "enterprise-spreadsheet",
2128
+ sideEffects: [],
2129
+ parameters: {
2130
+ type: "object",
2131
+ properties: {
2132
+ filePath: { type: "string", description: "Path to spreadsheet" },
2133
+ groupBy: { type: "array", items: { type: "string" }, description: "Columns to group by" },
2134
+ aggregations: { type: "array", items: { type: "object", properties: { column: { type: "string" }, function: { type: "string", enum: ["sum", "avg", "count", "min", "max", "median", "stddev"] } } }, description: "Aggregation operations" },
2135
+ sheet: { type: "string" }
2136
+ },
2137
+ required: ["filePath", "aggregations"]
2138
+ }
2139
+ },
2140
+ {
2141
+ id: "ent_sheet_transform",
2142
+ name: "Transform Columns",
2143
+ description: "Add, rename, reorder, or compute new columns. Supports formulas, string operations, date parsing, and type casting.",
2144
+ category: "write",
2145
+ risk: "low",
2146
+ skillId: "enterprise-spreadsheet",
2147
+ sideEffects: [],
2148
+ parameters: {
2149
+ type: "object",
2150
+ properties: {
2151
+ filePath: { type: "string", description: "Path to spreadsheet" },
2152
+ transforms: { type: "array", items: { type: "object", properties: { action: { type: "string", enum: ["add", "rename", "drop", "reorder", "cast"] }, column: { type: "string" }, newName: { type: "string" }, formula: { type: "string" }, dataType: { type: "string", enum: ["string", "number", "date", "boolean"] } } } },
2153
+ outputPath: { type: "string", description: "Output file (or overwrite source if omitted)" }
2154
+ },
2155
+ required: ["filePath", "transforms"]
2156
+ }
2157
+ },
2158
+ {
2159
+ id: "ent_sheet_merge",
2160
+ name: "Merge Datasets",
2161
+ description: "Join two spreadsheets by matching columns (like SQL JOIN). Supports inner, left, right, and full outer joins.",
2162
+ category: "read",
2163
+ risk: "low",
2164
+ skillId: "enterprise-spreadsheet",
2165
+ sideEffects: [],
2166
+ parameters: {
2167
+ type: "object",
2168
+ properties: {
2169
+ leftFile: { type: "string", description: "Path to left spreadsheet" },
2170
+ rightFile: { type: "string", description: "Path to right spreadsheet" },
2171
+ joinType: { type: "string", enum: ["inner", "left", "right", "full"], default: "inner" },
2172
+ leftKey: { type: "string", description: "Column name in left file to join on" },
2173
+ rightKey: { type: "string", description: "Column name in right file to join on" },
2174
+ outputPath: { type: "string", description: "Output file path" }
2175
+ },
2176
+ required: ["leftFile", "rightFile", "leftKey", "rightKey"]
2177
+ }
2178
+ },
2179
+ {
2180
+ id: "ent_sheet_pivot",
2181
+ name: "Pivot Table",
2182
+ description: "Create a pivot table from spreadsheet data. Group by row and column dimensions, aggregate with sum/avg/count.",
2183
+ category: "read",
2184
+ risk: "low",
2185
+ skillId: "enterprise-spreadsheet",
2186
+ sideEffects: [],
2187
+ parameters: {
2188
+ type: "object",
2189
+ properties: {
2190
+ filePath: { type: "string", description: "Path to spreadsheet" },
2191
+ rows: { type: "array", items: { type: "string" }, description: "Row grouping columns" },
2192
+ columns: { type: "array", items: { type: "string" }, description: "Column grouping columns" },
2193
+ values: { type: "string", description: "Value column to aggregate" },
2194
+ aggregation: { type: "string", enum: ["sum", "avg", "count", "min", "max"], default: "sum" }
2195
+ },
2196
+ required: ["filePath", "rows", "values"]
2197
+ }
2198
+ },
2199
+ {
2200
+ id: "ent_sheet_convert",
2201
+ name: "Convert Format",
2202
+ description: "Convert between spreadsheet formats: Excel to CSV, CSV to Excel, CSV to JSON, JSON to CSV, Excel to JSON.",
2203
+ category: "write",
2204
+ risk: "low",
2205
+ skillId: "enterprise-spreadsheet",
2206
+ sideEffects: ["modifies-files"],
2207
+ parameters: {
2208
+ type: "object",
2209
+ properties: {
2210
+ inputPath: { type: "string", description: "Input file path" },
2211
+ outputPath: { type: "string", description: "Output file path (format inferred from extension)" },
2212
+ sheet: { type: "string", description: "Sheet to convert (Excel only)" }
2213
+ },
2214
+ required: ["inputPath", "outputPath"]
2215
+ }
2216
+ }
2217
+ ];
2218
+ }
2219
+ });
2220
+
2221
+ // src/engine/skills/enterprise-documents.ts
2222
+ var enterprise_documents_exports = {};
2223
+ __export(enterprise_documents_exports, {
2224
+ SKILL_DEF: () => SKILL_DEF44,
2225
+ TOOLS: () => TOOLS44
2226
+ });
2227
+ var SKILL_DEF44, TOOLS44;
2228
+ var init_enterprise_documents = __esm({
2229
+ "src/engine/skills/enterprise-documents.ts"() {
2230
+ "use strict";
2231
+ init_emoji();
2232
+ SKILL_DEF44 = {
2233
+ id: "enterprise-documents",
2234
+ name: "Document Processing",
2235
+ description: "Generate, parse, and convert documents. Create PDFs and Word docs from templates, extract text via OCR from images and scanned PDFs, parse invoices and receipts, and convert between formats (PDF, DOCX, HTML, Markdown).",
2236
+ category: "productivity",
2237
+ risk: "medium",
2238
+ icon: Emoji.document,
2239
+ source: "builtin",
2240
+ version: "1.0.0",
2241
+ author: "AgenticMail"
2242
+ };
2243
+ TOOLS44 = [
2244
+ {
2245
+ id: "ent_doc_generate_pdf",
2246
+ name: "Generate PDF",
2247
+ description: "Create a PDF document from a template with data substitution. Supports headers, footers, tables, images, page numbers, and custom fonts. Templates use Mustache/Handlebars syntax.",
2248
+ category: "write",
2249
+ risk: "medium",
2250
+ skillId: "enterprise-documents",
2251
+ sideEffects: ["modifies-files"],
2252
+ parameters: {
2253
+ type: "object",
2254
+ properties: {
2255
+ template: { type: "string", description: "HTML template string or path to template file" },
2256
+ data: { type: "object", description: "Data object for template substitution" },
2257
+ outputPath: { type: "string", description: "Output PDF file path" },
2258
+ options: { type: "object", properties: { pageSize: { type: "string", enum: ["A4", "Letter", "Legal"], default: "A4" }, landscape: { type: "boolean", default: false }, margin: { type: "string", description: 'CSS margin (e.g., "20mm")' }, headerTemplate: { type: "string" }, footerTemplate: { type: "string" } } }
2259
+ },
2260
+ required: ["template", "data", "outputPath"]
2261
+ }
2262
+ },
2263
+ {
2264
+ id: "ent_doc_generate_docx",
2265
+ name: "Generate Word Document",
2266
+ description: "Create a .docx Word document from a template with data substitution. Supports paragraphs, tables, images, headers, footers, and styles.",
2267
+ category: "write",
2268
+ risk: "medium",
2269
+ skillId: "enterprise-documents",
2270
+ sideEffects: ["modifies-files"],
2271
+ parameters: {
2272
+ type: "object",
2273
+ properties: {
2274
+ template: { type: "string", description: "Path to .docx template file with {{placeholders}}" },
2275
+ data: { type: "object", description: "Data object for placeholder substitution" },
2276
+ outputPath: { type: "string", description: "Output .docx file path" }
2277
+ },
2278
+ required: ["template", "data", "outputPath"]
2279
+ }
2280
+ },
2281
+ {
2282
+ id: "ent_doc_ocr",
2283
+ name: "OCR \u2014 Extract Text",
2284
+ description: "Extract text from images (PNG, JPG, TIFF) and scanned PDFs using optical character recognition. Returns structured text with confidence scores and bounding box coordinates.",
2285
+ category: "read",
2286
+ risk: "low",
2287
+ skillId: "enterprise-documents",
2288
+ sideEffects: [],
2289
+ parameters: {
2290
+ type: "object",
2291
+ properties: {
2292
+ filePath: { type: "string", description: "Path to image or PDF file" },
2293
+ language: { type: "string", description: 'OCR language hint (e.g., "eng", "fra", "deu")', default: "eng" },
2294
+ pages: { type: "string", description: 'Page range for PDFs (e.g., "1-3", "all")', default: "all" },
2295
+ outputFormat: { type: "string", enum: ["text", "json", "hocr"], description: "Output format", default: "text" }
2296
+ },
2297
+ required: ["filePath"]
2298
+ }
2299
+ },
2300
+ {
2301
+ id: "ent_doc_parse_invoice",
2302
+ name: "Parse Invoice / Receipt",
2303
+ description: "Extract structured data from invoices and receipts: vendor name, date, line items, subtotal, tax, total, payment terms, and invoice number. Works on PDFs and images.",
2304
+ category: "read",
2305
+ risk: "low",
2306
+ skillId: "enterprise-documents",
2307
+ sideEffects: [],
2308
+ parameters: {
2309
+ type: "object",
2310
+ properties: {
2311
+ filePath: { type: "string", description: "Path to invoice/receipt file (PDF or image)" },
2312
+ currency: { type: "string", description: 'Expected currency code (e.g., "USD", "EUR")', default: "USD" }
2313
+ },
2314
+ required: ["filePath"]
2315
+ }
2316
+ },
2317
+ {
2318
+ id: "ent_doc_convert",
2319
+ name: "Convert Document Format",
2320
+ description: "Convert between document formats: PDF to text, DOCX to PDF, HTML to PDF, Markdown to PDF, PDF to images, DOCX to HTML.",
2321
+ category: "write",
2322
+ risk: "low",
2323
+ skillId: "enterprise-documents",
2324
+ sideEffects: ["modifies-files"],
2325
+ parameters: {
2326
+ type: "object",
2327
+ properties: {
2328
+ inputPath: { type: "string", description: "Input file path" },
2329
+ outputPath: { type: "string", description: "Output file path (format inferred from extension)" },
2330
+ options: { type: "object", properties: { quality: { type: "number", description: "Image quality 1-100 (for PDF-to-image)", default: 90 }, dpi: { type: "number", description: "DPI for image output", default: 150 } } }
2331
+ },
2332
+ required: ["inputPath", "outputPath"]
2333
+ }
2334
+ },
2335
+ {
2336
+ id: "ent_doc_extract_tables",
2337
+ name: "Extract Tables from Document",
2338
+ description: "Detect and extract tables from PDFs and Word documents. Returns structured table data as arrays of rows, preserving cell merges and formatting.",
2339
+ category: "read",
2340
+ risk: "low",
2341
+ skillId: "enterprise-documents",
2342
+ sideEffects: [],
2343
+ parameters: {
2344
+ type: "object",
2345
+ properties: {
2346
+ filePath: { type: "string", description: "Path to PDF or DOCX file" },
2347
+ pages: { type: "string", description: "Page range (PDFs only)", default: "all" },
2348
+ format: { type: "string", enum: ["json", "csv", "markdown"], default: "json" }
2349
+ },
2350
+ required: ["filePath"]
2351
+ }
2352
+ },
2353
+ {
2354
+ id: "ent_doc_merge_pdfs",
2355
+ name: "Merge PDFs",
2356
+ description: "Combine multiple PDF files into a single document. Supports page range selection from each input file.",
2357
+ category: "write",
2358
+ risk: "low",
2359
+ skillId: "enterprise-documents",
2360
+ sideEffects: ["modifies-files"],
2361
+ parameters: {
2362
+ type: "object",
2363
+ properties: {
2364
+ inputFiles: { type: "array", items: { type: "object", properties: { path: { type: "string" }, pages: { type: "string", description: 'Page range (e.g., "1-3,5")' } } }, description: "PDF files to merge in order" },
2365
+ outputPath: { type: "string", description: "Output PDF path" }
2366
+ },
2367
+ required: ["inputFiles", "outputPath"]
2368
+ }
2369
+ },
2370
+ {
2371
+ id: "ent_doc_fill_form",
2372
+ name: "Fill PDF Form",
2373
+ description: "Fill interactive PDF form fields with data. Returns list of available fields when called without data.",
2374
+ category: "write",
2375
+ risk: "low",
2376
+ skillId: "enterprise-documents",
2377
+ sideEffects: ["modifies-files"],
2378
+ parameters: {
2379
+ type: "object",
2380
+ properties: {
2381
+ filePath: { type: "string", description: "Path to PDF form" },
2382
+ fields: { type: "object", description: "Key-value pairs of field names and values to fill" },
2383
+ outputPath: { type: "string", description: "Output PDF path" },
2384
+ flatten: { type: "boolean", description: "Flatten form fields after filling (non-editable)", default: false }
2385
+ },
2386
+ required: ["filePath"]
2387
+ }
2388
+ }
2389
+ ];
2390
+ }
2391
+ });
2392
+
2393
+ // src/engine/skills/enterprise-http.ts
2394
+ var enterprise_http_exports = {};
2395
+ __export(enterprise_http_exports, {
2396
+ SKILL_DEF: () => SKILL_DEF45,
2397
+ TOOLS: () => TOOLS45
2398
+ });
2399
+ var SKILL_DEF45, TOOLS45;
2400
+ var init_enterprise_http = __esm({
2401
+ "src/engine/skills/enterprise-http.ts"() {
2402
+ "use strict";
2403
+ init_emoji();
2404
+ SKILL_DEF45 = {
2405
+ id: "enterprise-http",
2406
+ name: "HTTP API Client",
2407
+ description: "Make authenticated HTTP requests to any internal or external API. Supports Bearer tokens, API keys, OAuth, mutual TLS, and custom authentication. Includes request/response logging, retry logic, and rate limiting.",
2408
+ category: "automation",
2409
+ risk: "high",
2410
+ icon: Emoji.link,
2411
+ source: "builtin",
2412
+ version: "1.0.0",
2413
+ author: "AgenticMail"
2414
+ };
2415
+ TOOLS45 = [
2416
+ {
2417
+ id: "ent_http_request",
2418
+ name: "HTTP Request",
2419
+ description: "Make an HTTP request to any URL with full control over method, headers, body, and authentication. Response includes status code, headers, and parsed body.",
2420
+ category: "write",
2421
+ risk: "high",
2422
+ skillId: "enterprise-http",
2423
+ sideEffects: ["network-request"],
2424
+ parameters: {
2425
+ type: "object",
2426
+ properties: {
2427
+ url: { type: "string", description: "Full URL to request" },
2428
+ method: { type: "string", enum: ["GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "OPTIONS"], default: "GET" },
2429
+ headers: { type: "object", description: "HTTP headers as key-value pairs" },
2430
+ body: { type: ["object", "string"], description: "Request body (auto-serialized to JSON if object)" },
2431
+ auth: { type: "object", properties: { type: { type: "string", enum: ["bearer", "api-key", "basic", "oauth2", "vault"] }, token: { type: "string" }, vaultSecret: { type: "string", description: "Vault secret name for credentials" }, headerName: { type: "string", description: "Header name for API key auth" } } },
2432
+ timeout: { type: "number", description: "Timeout in milliseconds", default: 3e4 },
2433
+ followRedirects: { type: "boolean", default: true },
2434
+ parseResponse: { type: "string", enum: ["json", "text", "binary"], default: "json" }
2435
+ },
2436
+ required: ["url"]
2437
+ }
2438
+ },
2439
+ {
2440
+ id: "ent_http_graphql",
2441
+ name: "GraphQL Query",
2442
+ description: "Execute a GraphQL query or mutation against an endpoint. Supports variables and operation names.",
2443
+ category: "write",
2444
+ risk: "high",
2445
+ skillId: "enterprise-http",
2446
+ sideEffects: ["network-request"],
2447
+ parameters: {
2448
+ type: "object",
2449
+ properties: {
2450
+ endpoint: { type: "string", description: "GraphQL endpoint URL" },
2451
+ query: { type: "string", description: "GraphQL query or mutation string" },
2452
+ variables: { type: "object", description: "Query variables" },
2453
+ operationName: { type: "string" },
2454
+ auth: { type: "object", properties: { type: { type: "string", enum: ["bearer", "api-key", "vault"] }, token: { type: "string" }, vaultSecret: { type: "string" } } }
2455
+ },
2456
+ required: ["endpoint", "query"]
2457
+ }
2458
+ },
2459
+ {
2460
+ id: "ent_http_batch",
2461
+ name: "Batch HTTP Requests",
2462
+ description: "Execute multiple HTTP requests in parallel or sequence. Returns all responses. Supports concurrency limits and error handling modes.",
2463
+ category: "write",
2464
+ risk: "high",
2465
+ skillId: "enterprise-http",
2466
+ sideEffects: ["network-request"],
2467
+ parameters: {
2468
+ type: "object",
2469
+ properties: {
2470
+ requests: { type: "array", items: { type: "object", properties: { url: { type: "string" }, method: { type: "string" }, headers: { type: "object" }, body: { type: "object" } } } },
2471
+ concurrency: { type: "number", description: "Max concurrent requests", default: 5 },
2472
+ mode: { type: "string", enum: ["parallel", "sequential"], default: "parallel" },
2473
+ stopOnError: { type: "boolean", default: false },
2474
+ auth: { type: "object", description: "Shared auth applied to all requests" }
2475
+ },
2476
+ required: ["requests"]
2477
+ }
2478
+ },
2479
+ {
2480
+ id: "ent_http_download",
2481
+ name: "Download File",
2482
+ description: "Download a file from a URL and save it locally. Supports large files with streaming, progress tracking, and resume.",
2483
+ category: "write",
2484
+ risk: "medium",
2485
+ skillId: "enterprise-http",
2486
+ sideEffects: ["network-request", "modifies-files"],
2487
+ parameters: {
2488
+ type: "object",
2489
+ properties: {
2490
+ url: { type: "string", description: "File URL to download" },
2491
+ outputPath: { type: "string", description: "Local path to save the file" },
2492
+ auth: { type: "object" },
2493
+ headers: { type: "object" }
2494
+ },
2495
+ required: ["url", "outputPath"]
2496
+ }
2497
+ }
2498
+ ];
2499
+ }
2500
+ });
2501
+
2502
+ // src/engine/skills/enterprise-security-scan.ts
2503
+ var enterprise_security_scan_exports = {};
2504
+ __export(enterprise_security_scan_exports, {
2505
+ SKILL_DEF: () => SKILL_DEF46,
2506
+ TOOLS: () => TOOLS46
2507
+ });
2508
+ var SKILL_DEF46, TOOLS46;
2509
+ var init_enterprise_security_scan = __esm({
2510
+ "src/engine/skills/enterprise-security-scan.ts"() {
2511
+ "use strict";
2512
+ init_emoji();
2513
+ SKILL_DEF46 = {
2514
+ id: "enterprise-security-scan",
2515
+ name: "Security Scanning",
2516
+ description: "Scan text, code, and documents for security issues: exposed credentials, PII (personally identifiable information), malicious patterns, and dependency vulnerabilities. Supports GDPR, CCPA, HIPAA, and PCI-DSS compliance checks.",
2517
+ category: "security",
2518
+ risk: "low",
2519
+ icon: Emoji.shield,
2520
+ source: "builtin",
2521
+ version: "1.0.0",
2522
+ author: "AgenticMail"
2523
+ };
2524
+ TOOLS46 = [
2525
+ {
2526
+ id: "ent_sec_scan_secrets",
2527
+ name: "Scan for Exposed Secrets",
2528
+ description: "Scan text, code, or files for accidentally exposed credentials: API keys, passwords, tokens, private keys, connection strings, and AWS/GCP/Azure credentials.",
2529
+ category: "read",
2530
+ risk: "low",
2531
+ skillId: "enterprise-security-scan",
2532
+ sideEffects: [],
2533
+ parameters: {
2534
+ type: "object",
2535
+ properties: {
2536
+ content: { type: "string", description: "Text content to scan" },
2537
+ filePath: { type: "string", description: "File or directory path to scan (alternative to content)" },
2538
+ recursive: { type: "boolean", description: "Scan directories recursively", default: true },
2539
+ excludePatterns: { type: "array", items: { type: "string" }, description: 'File patterns to exclude (e.g., "*.min.js", "node_modules/")' }
2540
+ }
2541
+ }
2542
+ },
2543
+ {
2544
+ id: "ent_sec_scan_pii",
2545
+ name: "Detect PII",
2546
+ description: "Detect personally identifiable information in text: names, email addresses, phone numbers, SSN/TIN, credit card numbers, addresses, dates of birth, passport numbers, and IP addresses.",
2547
+ category: "read",
2548
+ risk: "low",
2549
+ skillId: "enterprise-security-scan",
2550
+ sideEffects: [],
2551
+ parameters: {
2552
+ type: "object",
2553
+ properties: {
2554
+ content: { type: "string", description: "Text to scan for PII" },
2555
+ filePath: { type: "string", description: "File path to scan" },
2556
+ types: { type: "array", items: { type: "string", enum: ["name", "email", "phone", "ssn", "credit_card", "address", "dob", "passport", "ip_address", "all"] }, default: ["all"] },
2557
+ locale: { type: "string", description: 'Locale for PII patterns (e.g., "US", "EU", "UK")', default: "US" }
2558
+ }
2559
+ }
2560
+ },
2561
+ {
2562
+ id: "ent_sec_redact_pii",
2563
+ name: "Redact PII",
2564
+ description: "Replace detected PII in text with redaction markers ([REDACTED-EMAIL], [REDACTED-SSN], etc.). Returns clean text safe for sharing or archiving.",
2565
+ category: "write",
2566
+ risk: "low",
2567
+ skillId: "enterprise-security-scan",
2568
+ sideEffects: [],
2569
+ parameters: {
2570
+ type: "object",
2571
+ properties: {
2572
+ content: { type: "string", description: "Text to redact" },
2573
+ types: { type: "array", items: { type: "string", enum: ["name", "email", "phone", "ssn", "credit_card", "address", "dob", "passport", "ip_address", "all"] }, default: ["all"] },
2574
+ redactionStyle: { type: "string", enum: ["marker", "mask", "hash"], description: "marker=[REDACTED], mask=*****, hash=sha256 prefix", default: "marker" },
2575
+ preserveFormat: { type: "boolean", description: "Keep same string length with masking", default: true }
2576
+ },
2577
+ required: ["content"]
2578
+ }
2579
+ },
2580
+ {
2581
+ id: "ent_sec_scan_deps",
2582
+ name: "Scan Dependencies",
2583
+ description: "Check project dependencies for known vulnerabilities using CVE databases. Supports npm (package.json), Python (requirements.txt), Ruby (Gemfile), Go (go.mod), and Java (pom.xml).",
2584
+ category: "read",
2585
+ risk: "low",
2586
+ skillId: "enterprise-security-scan",
2587
+ sideEffects: ["network-request"],
2588
+ parameters: {
2589
+ type: "object",
2590
+ properties: {
2591
+ projectPath: { type: "string", description: "Path to project directory or manifest file" },
2592
+ severity: { type: "string", enum: ["all", "low", "medium", "high", "critical"], description: "Minimum severity to report", default: "medium" },
2593
+ autoFix: { type: "boolean", description: "Suggest safe version upgrades", default: true }
2594
+ },
2595
+ required: ["projectPath"]
2596
+ }
2597
+ },
2598
+ {
2599
+ id: "ent_sec_compliance_check",
2600
+ name: "Compliance Check",
2601
+ description: "Check content against compliance frameworks: GDPR (data handling), HIPAA (health info), PCI-DSS (payment data), SOC 2 (security controls). Returns findings and recommendations.",
2602
+ category: "read",
2603
+ risk: "low",
2604
+ skillId: "enterprise-security-scan",
2605
+ sideEffects: [],
2606
+ parameters: {
2607
+ type: "object",
2608
+ properties: {
2609
+ content: { type: "string", description: "Content to check" },
2610
+ filePath: { type: "string", description: "File to check" },
2611
+ frameworks: { type: "array", items: { type: "string", enum: ["gdpr", "hipaa", "pci-dss", "soc2", "ccpa", "all"] }, default: ["all"] }
2612
+ }
2613
+ }
2614
+ },
2615
+ {
2616
+ id: "ent_sec_hash",
2617
+ name: "Hash & Verify",
2618
+ description: "Generate cryptographic hashes (SHA-256, SHA-512, MD5) of text or files. Useful for data integrity verification and secure comparisons.",
2619
+ category: "read",
2620
+ risk: "low",
2621
+ skillId: "enterprise-security-scan",
2622
+ sideEffects: [],
2623
+ parameters: {
2624
+ type: "object",
2625
+ properties: {
2626
+ content: { type: "string", description: "Text to hash" },
2627
+ filePath: { type: "string", description: "File to hash" },
2628
+ algorithm: { type: "string", enum: ["sha256", "sha512", "md5", "sha1"], default: "sha256" },
2629
+ verify: { type: "string", description: "Expected hash to verify against" }
2630
+ }
2631
+ }
2632
+ }
2633
+ ];
2634
+ }
2635
+ });
2636
+
2637
+ // src/engine/skills/enterprise-code-sandbox.ts
2638
+ var enterprise_code_sandbox_exports = {};
2639
+ __export(enterprise_code_sandbox_exports, {
2640
+ SKILL_DEF: () => SKILL_DEF47,
2641
+ TOOLS: () => TOOLS47
2642
+ });
2643
+ var SKILL_DEF47, TOOLS47;
2644
+ var init_enterprise_code_sandbox = __esm({
2645
+ "src/engine/skills/enterprise-code-sandbox.ts"() {
2646
+ "use strict";
2647
+ init_emoji();
2648
+ SKILL_DEF47 = {
2649
+ id: "enterprise-code-sandbox",
2650
+ name: "Code Sandbox",
2651
+ description: "Execute code snippets in isolated sandboxes for data transformation, calculations, and automation scripts. Supports JavaScript/TypeScript, Python, and shell commands with memory and time limits.",
2652
+ category: "automation",
2653
+ risk: "high",
2654
+ icon: Emoji.bolt,
2655
+ source: "builtin",
2656
+ version: "1.0.0",
2657
+ author: "AgenticMail"
2658
+ };
2659
+ TOOLS47 = [
2660
+ {
2661
+ id: "ent_code_run_js",
2662
+ name: "Run JavaScript",
2663
+ description: "Execute JavaScript/TypeScript code in an isolated V8 sandbox. Has access to standard library (JSON, Math, Date, crypto, Buffer) but no filesystem or network access. Returns the last expression value.",
2664
+ category: "execute",
2665
+ risk: "medium",
2666
+ skillId: "enterprise-code-sandbox",
2667
+ sideEffects: ["runs-code"],
2668
+ parameters: {
2669
+ type: "object",
2670
+ properties: {
2671
+ code: { type: "string", description: "JavaScript code to execute" },
2672
+ input: { type: "object", description: 'Input data available as the "input" variable in the code' },
2673
+ timeout: { type: "number", description: "Execution timeout in milliseconds", default: 1e4 },
2674
+ memoryLimit: { type: "number", description: "Memory limit in MB", default: 128 }
2675
+ },
2676
+ required: ["code"]
2677
+ }
2678
+ },
2679
+ {
2680
+ id: "ent_code_run_python",
2681
+ name: "Run Python",
2682
+ description: "Execute Python code in an isolated sandbox. Has access to standard library (json, math, datetime, re, csv, collections, itertools) but restricted filesystem and network access.",
2683
+ category: "execute",
2684
+ risk: "medium",
2685
+ skillId: "enterprise-code-sandbox",
2686
+ sideEffects: ["runs-code"],
2687
+ parameters: {
2688
+ type: "object",
2689
+ properties: {
2690
+ code: { type: "string", description: "Python code to execute" },
2691
+ input: { type: "object", description: 'Input data available as the "input" dict' },
2692
+ packages: { type: "array", items: { type: "string" }, description: "Additional pip packages to install (from approved list)" },
2693
+ timeout: { type: "number", default: 3e4 }
2694
+ },
2695
+ required: ["code"]
2696
+ }
2697
+ },
2698
+ {
2699
+ id: "ent_code_run_shell",
2700
+ name: "Run Shell Command",
2701
+ description: "Execute a shell command in an isolated environment. Restricted to read-only filesystem access and approved commands. Dangerous commands (rm, dd, mkfs, etc.) are blocked.",
2702
+ category: "execute",
2703
+ risk: "high",
2704
+ skillId: "enterprise-code-sandbox",
2705
+ sideEffects: ["runs-code"],
2706
+ parameters: {
2707
+ type: "object",
2708
+ properties: {
2709
+ command: { type: "string", description: "Shell command to execute" },
2710
+ workingDir: { type: "string", description: "Working directory" },
2711
+ env: { type: "object", description: "Environment variables" },
2712
+ timeout: { type: "number", default: 3e4 },
2713
+ stdin: { type: "string", description: "Standard input data" }
2714
+ },
2715
+ required: ["command"]
2716
+ }
2717
+ },
2718
+ {
2719
+ id: "ent_code_transform_json",
2720
+ name: "Transform JSON",
2721
+ description: "Apply a JMESPath or JSONPath expression to transform JSON data. Useful for reshaping API responses, extracting nested values, and data mapping.",
2722
+ category: "read",
2723
+ risk: "low",
2724
+ skillId: "enterprise-code-sandbox",
2725
+ sideEffects: [],
2726
+ parameters: {
2727
+ type: "object",
2728
+ properties: {
2729
+ data: { type: "object", description: "Input JSON data" },
2730
+ expression: { type: "string", description: "JMESPath or JSONPath expression" },
2731
+ language: { type: "string", enum: ["jmespath", "jsonpath"], default: "jmespath" }
2732
+ },
2733
+ required: ["data", "expression"]
2734
+ }
2735
+ },
2736
+ {
2737
+ id: "ent_code_regex",
2738
+ name: "Regex Operations",
2739
+ description: "Apply regex operations to text: match, find all, replace, split, extract named groups. Includes regex validation and explanation.",
2740
+ category: "read",
2741
+ risk: "low",
2742
+ skillId: "enterprise-code-sandbox",
2743
+ sideEffects: [],
2744
+ parameters: {
2745
+ type: "object",
2746
+ properties: {
2747
+ text: { type: "string", description: "Text to process" },
2748
+ pattern: { type: "string", description: "Regex pattern" },
2749
+ operation: { type: "string", enum: ["match", "find_all", "replace", "split", "extract"], default: "find_all" },
2750
+ replacement: { type: "string", description: "Replacement string (for replace operation)" },
2751
+ flags: { type: "string", description: 'Regex flags (e.g., "gi" for global case-insensitive)' }
2752
+ },
2753
+ required: ["text", "pattern"]
2754
+ }
2755
+ }
2756
+ ];
2757
+ }
2758
+ });
2759
+
2760
+ // src/engine/skills/enterprise-diff.ts
2761
+ var enterprise_diff_exports = {};
2762
+ __export(enterprise_diff_exports, {
2763
+ SKILL_DEF: () => SKILL_DEF48,
2764
+ TOOLS: () => TOOLS48
2765
+ });
2766
+ var SKILL_DEF48, TOOLS48;
2767
+ var init_enterprise_diff = __esm({
2768
+ "src/engine/skills/enterprise-diff.ts"() {
2769
+ "use strict";
2770
+ init_emoji();
2771
+ SKILL_DEF48 = {
2772
+ id: "enterprise-diff",
2773
+ name: "Comparison & Diff",
2774
+ description: "Compare documents, datasets, configurations, and code to find differences. Supports text diff, JSON/YAML structural diff, spreadsheet comparison, and config audit. Generates human-readable change reports.",
2775
+ category: "data",
2776
+ risk: "low",
2777
+ icon: Emoji.shuffle,
2778
+ source: "builtin",
2779
+ version: "1.0.0",
2780
+ author: "AgenticMail"
2781
+ };
2782
+ TOOLS48 = [
2783
+ {
2784
+ id: "ent_diff_text",
2785
+ name: "Diff Text",
2786
+ description: "Compare two text strings or files line-by-line. Returns additions, deletions, and modifications with line numbers. Supports unified and side-by-side diff formats.",
2787
+ category: "read",
2788
+ risk: "low",
2789
+ skillId: "enterprise-diff",
2790
+ sideEffects: [],
2791
+ parameters: {
2792
+ type: "object",
2793
+ properties: {
2794
+ left: { type: "string", description: "Left text or file path" },
2795
+ right: { type: "string", description: "Right text or file path" },
2796
+ format: { type: "string", enum: ["unified", "side-by-side", "json", "html"], default: "unified" },
2797
+ ignoreWhitespace: { type: "boolean", default: false },
2798
+ contextLines: { type: "number", description: "Lines of context around changes", default: 3 }
2799
+ },
2800
+ required: ["left", "right"]
2801
+ }
2802
+ },
2803
+ {
2804
+ id: "ent_diff_json",
2805
+ name: "Diff JSON/YAML",
2806
+ description: "Structural comparison of two JSON or YAML objects. Shows added, removed, and modified keys with their paths. Understands nested structures and arrays.",
2807
+ category: "read",
2808
+ risk: "low",
2809
+ skillId: "enterprise-diff",
2810
+ sideEffects: [],
2811
+ parameters: {
2812
+ type: "object",
2813
+ properties: {
2814
+ left: { type: ["object", "string"], description: "Left JSON object or file path" },
2815
+ right: { type: ["object", "string"], description: "Right JSON object or file path" },
2816
+ ignoreOrder: { type: "boolean", description: "Ignore array order", default: false },
2817
+ deep: { type: "boolean", description: "Deep comparison of nested objects", default: true }
2818
+ },
2819
+ required: ["left", "right"]
2820
+ }
2821
+ },
2822
+ {
2823
+ id: "ent_diff_spreadsheet",
2824
+ name: "Diff Spreadsheets",
2825
+ description: "Compare two spreadsheets cell-by-cell. Highlights added/removed rows, changed cells, and structural differences (new columns, reordered data). Supports Excel and CSV.",
2826
+ category: "read",
2827
+ risk: "low",
2828
+ skillId: "enterprise-diff",
2829
+ sideEffects: [],
2830
+ parameters: {
2831
+ type: "object",
2832
+ properties: {
2833
+ leftFile: { type: "string", description: "Path to first spreadsheet" },
2834
+ rightFile: { type: "string", description: "Path to second spreadsheet" },
2835
+ keyColumns: { type: "array", items: { type: "string" }, description: "Columns to use as row identifiers for matching" },
2836
+ ignoreColumns: { type: "array", items: { type: "string" }, description: "Columns to exclude from comparison" },
2837
+ sheet: { type: "string", description: "Sheet name (Excel only)" }
2838
+ },
2839
+ required: ["leftFile", "rightFile"]
2840
+ }
2841
+ },
2842
+ {
2843
+ id: "ent_diff_summary",
2844
+ name: "Generate Change Summary",
2845
+ description: "Generate a human-readable summary of differences between two versions of a document, dataset, or configuration. Explains what changed, what was added/removed, and the impact.",
2846
+ category: "read",
2847
+ risk: "low",
2848
+ skillId: "enterprise-diff",
2849
+ sideEffects: [],
2850
+ parameters: {
2851
+ type: "object",
2852
+ properties: {
2853
+ left: { type: "string", description: "Original version (text, file path, or JSON)" },
2854
+ right: { type: "string", description: "New version" },
2855
+ context: { type: "string", description: 'What these documents represent (e.g., "employee handbook", "API config")' },
2856
+ format: { type: "string", enum: ["text", "markdown", "html"], default: "markdown" }
2857
+ },
2858
+ required: ["left", "right"]
2859
+ }
2860
+ }
2861
+ ];
2862
+ }
2863
+ });
2864
+
2865
+ // src/engine/skills/index.ts
2866
+ var M365_MODULES, GWS_MODULES, M365_SKILL_DEFS, GWS_SKILL_DEFS, M365_TOOLS, GWS_TOOLS, AGENTICMAIL_MODULES, AGENTICMAIL_SKILL_DEFS, AGENTICMAIL_TOOLS, ENTERPRISE_MODULES, ENTERPRISE_SKILL_DEFS, ENTERPRISE_UTILITY_TOOLS, SYSTEM_MODULES, SYSTEM_SKILL_DEFS, SYSTEM_TOOLS, ALL_MODULES, FULL_SKILL_DEFINITIONS;
2867
+ var init_skills = __esm({
2868
+ "src/engine/skills/index.ts"() {
2869
+ "use strict";
2870
+ init_m365_outlook();
2871
+ init_m365_teams();
2872
+ init_m365_sharepoint();
2873
+ init_m365_onedrive();
2874
+ init_m365_word();
2875
+ init_m365_excel();
2876
+ init_m365_powerpoint();
2877
+ init_m365_onenote();
2878
+ init_m365_planner();
2879
+ init_m365_power_bi();
2880
+ init_m365_power_automate();
2881
+ init_m365_forms();
2882
+ init_m365_todo();
2883
+ init_m365_bookings();
2884
+ init_m365_whiteboard();
2885
+ init_m365_admin();
2886
+ init_m365_copilot();
2887
+ init_gws_gmail();
2888
+ init_gws_calendar();
2889
+ init_gws_drive();
2890
+ init_gws_docs();
2891
+ init_gws_sheets();
2892
+ init_gws_slides();
2893
+ init_gws_meet();
2894
+ init_gws_chat();
2895
+ init_gws_forms();
2896
+ init_gws_sites();
2897
+ init_gws_keep();
2898
+ init_gws_admin();
2899
+ init_gws_vault();
2900
+ init_gws_groups();
2901
+ init_gws_maps();
2902
+ init_gws_contacts();
2903
+ init_gws_tasks();
2904
+ init_core_tools();
2905
+ init_meeting_lifecycle();
2906
+ init_agent_memory();
2907
+ init_visual_memory();
2908
+ init_knowledge_search();
2909
+ init_messaging();
2910
+ init_local_system();
2911
+ init_mcp_bridge();
2912
+ init_agent_management();
2913
+ init_agenticmail();
2914
+ init_enterprise_database();
2915
+ init_database_access();
2916
+ init_enterprise_spreadsheet();
2917
+ init_enterprise_documents();
2918
+ init_enterprise_http();
2919
+ init_enterprise_security_scan();
2920
+ init_enterprise_code_sandbox();
2921
+ init_enterprise_diff();
2922
+ M365_MODULES = [
2923
+ m365_outlook_exports,
2924
+ m365_teams_exports,
2925
+ m365_sharepoint_exports,
2926
+ m365_onedrive_exports,
2927
+ m365_word_exports,
2928
+ m365_excel_exports,
2929
+ m365_powerpoint_exports,
2930
+ m365_onenote_exports,
2931
+ m365_planner_exports,
2932
+ m365_power_bi_exports,
2933
+ m365_power_automate_exports,
2934
+ m365_forms_exports,
2935
+ m365_todo_exports,
2936
+ m365_bookings_exports,
2937
+ m365_whiteboard_exports,
2938
+ m365_admin_exports,
2939
+ m365_copilot_exports
2940
+ ];
2941
+ GWS_MODULES = [
2942
+ gws_gmail_exports,
2943
+ gws_calendar_exports,
2944
+ gws_drive_exports,
2945
+ gws_docs_exports,
2946
+ gws_sheets_exports,
2947
+ gws_slides_exports,
2948
+ gws_meet_exports,
2949
+ gws_chat_exports,
2950
+ gws_forms_exports,
2951
+ gws_sites_exports,
2952
+ gws_keep_exports,
2953
+ gws_admin_exports,
2954
+ gws_vault_exports,
2955
+ gws_groups_exports,
2956
+ gws_maps_exports,
2957
+ gws_contacts_exports,
2958
+ gws_tasks_exports
2959
+ ];
2960
+ M365_SKILL_DEFS = M365_MODULES.map((m) => m.SKILL_DEF);
2961
+ GWS_SKILL_DEFS = GWS_MODULES.map((m) => m.SKILL_DEF);
2962
+ M365_TOOLS = M365_MODULES.flatMap((m) => m.TOOLS);
2963
+ GWS_TOOLS = GWS_MODULES.flatMap((m) => m.TOOLS);
2964
+ AGENTICMAIL_MODULES = [agenticmail_exports];
2965
+ AGENTICMAIL_SKILL_DEFS = AGENTICMAIL_MODULES.map((m) => m.SKILL_DEF);
2966
+ AGENTICMAIL_TOOLS = AGENTICMAIL_MODULES.flatMap((m) => m.TOOLS);
2967
+ ENTERPRISE_MODULES = [
2968
+ enterprise_database_exports,
2969
+ database_access_exports,
2970
+ enterprise_spreadsheet_exports,
2971
+ enterprise_documents_exports,
2972
+ enterprise_http_exports,
2973
+ enterprise_security_scan_exports,
2974
+ enterprise_code_sandbox_exports,
2975
+ enterprise_diff_exports
2976
+ ];
2977
+ ENTERPRISE_SKILL_DEFS = ENTERPRISE_MODULES.map((m) => m.SKILL_DEF);
2978
+ ENTERPRISE_UTILITY_TOOLS = ENTERPRISE_MODULES.flatMap((m) => m.TOOLS);
2979
+ SYSTEM_MODULES = [core_tools_exports, meeting_lifecycle_exports, agent_memory_exports, visual_memory_exports, knowledge_search_exports];
2980
+ SYSTEM_SKILL_DEFS = SYSTEM_MODULES.map((m) => m.SKILL_DEF);
2981
+ SYSTEM_TOOLS = SYSTEM_MODULES.flatMap((m) => m.TOOLS);
2982
+ ALL_MODULES = [...AGENTICMAIL_MODULES, ...M365_MODULES, ...GWS_MODULES, ...ENTERPRISE_MODULES, ...SYSTEM_MODULES];
2983
+ FULL_SKILL_DEFINITIONS = [
2984
+ ...ALL_MODULES.map((m) => ({
2985
+ ...m.SKILL_DEF,
2986
+ tools: m.TOOLS
2987
+ })),
2988
+ ...MESSAGING_SKILLS,
2989
+ ...LOCAL_SYSTEM_SKILLS,
2990
+ MCP_BRIDGE_SKILL,
2991
+ agentManagementSkill
2992
+ ];
2993
+ }
2994
+ });
2995
+
2996
+ // src/engine/tool-catalog.ts
2997
+ var tool_catalog_exports = {};
2998
+ __export(tool_catalog_exports, {
2999
+ AGENTICMAIL_TOOLS: () => AGENTICMAIL_TOOLS2,
3000
+ ALL_TOOLS: () => ALL_TOOLS,
3001
+ CORE_TOOLS: () => CORE_TOOLS,
3002
+ ENTERPRISE_TOOLS: () => ENTERPRISE_TOOLS,
3003
+ GOOGLE_WORKSPACE_TOOLS: () => GOOGLE_WORKSPACE_TOOLS,
3004
+ MICROSOFT_365_TOOLS: () => MICROSOFT_365_TOOLS,
3005
+ TOOL_INDEX: () => TOOL_INDEX,
3006
+ generateToolPolicy: () => generateToolPolicy,
3007
+ getToolsBySkill: () => getToolsBySkill
3008
+ });
3009
+ function getToolsBySkill() {
3010
+ const map = /* @__PURE__ */ new Map();
3011
+ for (const tool of ALL_TOOLS) {
3012
+ const list = map.get(tool.skillId || tool.name || "unknown") || [];
3013
+ list.push(tool.id || tool.name);
3014
+ map.set(tool.skillId || tool.name || "unknown", list);
3015
+ }
3016
+ return map;
3017
+ }
3018
+ function generateToolPolicy(allowedToolIds, blockedToolIds) {
3019
+ const config = {};
3020
+ if (blockedToolIds.length > 0 && allowedToolIds.length === 0) {
3021
+ config["tools.deny"] = blockedToolIds;
3022
+ } else if (allowedToolIds.length > 0) {
3023
+ config["tools.allow"] = allowedToolIds;
3024
+ }
3025
+ return config;
3026
+ }
3027
+ var CORE_TOOLS, AGENTICMAIL_TOOLS2, MICROSOFT_365_TOOLS, GOOGLE_WORKSPACE_TOOLS, ENTERPRISE_TOOLS, ALL_TOOLS, TOOL_INDEX;
3028
+ var init_tool_catalog = __esm({
3029
+ "src/engine/tool-catalog.ts"() {
3030
+ "use strict";
3031
+ init_skills();
3032
+ CORE_TOOLS = [
3033
+ // File system
3034
+ { id: "read", name: "Read File", description: "Read file contents (text and images)", category: "read", risk: "low", skillId: "files", sideEffects: [] },
3035
+ { id: "write", name: "Write File", description: "Create or overwrite files", category: "write", risk: "medium", skillId: "files", sideEffects: ["modifies-files"] },
3036
+ { id: "edit", name: "Edit File", description: "Make precise edits to files", category: "write", risk: "medium", skillId: "files", sideEffects: ["modifies-files"] },
3037
+ // Execution
3038
+ { id: "exec", name: "Shell Command", description: "Execute shell commands", category: "execute", risk: "critical", skillId: "exec", sideEffects: ["runs-code", "modifies-files", "network-request"] },
3039
+ { id: "process", name: "Process Manager", description: "Manage running exec sessions", category: "execute", risk: "high", skillId: "exec", sideEffects: ["runs-code"] },
3040
+ // Web
3041
+ { id: "web_search", name: "Web Search", description: "Search the web via Brave Search API", category: "read", risk: "low", skillId: "web-search", sideEffects: ["network-request"] },
3042
+ { id: "web_fetch", name: "Web Fetch", description: "Fetch and extract content from URLs", category: "read", risk: "low", skillId: "web-fetch", sideEffects: ["network-request"] },
3043
+ // Browser
3044
+ { id: "browser", name: "Browser Control", description: "Automate web browsers", category: "execute", risk: "high", skillId: "browser", sideEffects: ["network-request", "runs-code"] },
3045
+ // Canvas
3046
+ { id: "canvas", name: "Canvas", description: "Present/eval/snapshot rendered UI", category: "read", risk: "low", skillId: "canvas", sideEffects: [] },
3047
+ // Nodes
3048
+ { id: "nodes", name: "Node Control", description: "Control paired devices", category: "execute", risk: "high", skillId: "nodes", sideEffects: ["controls-device"] },
3049
+ // Cron
3050
+ { id: "cron", name: "Cron Jobs", description: "Schedule tasks and reminders", category: "write", risk: "medium", skillId: "cron", sideEffects: [] },
3051
+ // Messaging
3052
+ { id: "message", name: "Send Message", description: "Send messages via channels", category: "communicate", risk: "high", skillId: "messaging", sideEffects: ["sends-message"] },
3053
+ // Gateway
3054
+ { id: "gateway", name: "Gateway Control", description: "Restart, configure, and update the agent runtime", category: "execute", risk: "critical", skillId: "gateway", sideEffects: ["runs-code"] },
3055
+ // Sessions / Sub-agents
3056
+ { id: "agents_list", name: "List Agents", description: "List agent IDs for spawning", category: "read", risk: "low", skillId: "sessions", sideEffects: [] },
3057
+ { id: "sessions_list", name: "List Sessions", description: "List active sessions", category: "read", risk: "low", skillId: "sessions", sideEffects: [] },
3058
+ { id: "sessions_history", name: "Session History", description: "Fetch message history", category: "read", risk: "low", skillId: "sessions", sideEffects: [] },
3059
+ { id: "sessions_send", name: "Send to Session", description: "Send message to another session", category: "communicate", risk: "medium", skillId: "sessions", sideEffects: ["sends-message"] },
3060
+ { id: "sessions_spawn", name: "Spawn Sub-Agent", description: "Spawn a background sub-agent", category: "execute", risk: "medium", skillId: "sessions", sideEffects: [] },
3061
+ { id: "subagents", name: "Sub-Agent Control", description: "List, steer, or kill sub-agents", category: "execute", risk: "medium", skillId: "sessions", sideEffects: [] },
3062
+ { id: "session_status", name: "Session Status", description: "Show session usage and status", category: "read", risk: "low", skillId: "sessions", sideEffects: [] },
3063
+ // Image
3064
+ { id: "image", name: "Image Analysis", description: "Analyze images with vision model", category: "read", risk: "low", skillId: "media", sideEffects: [] },
3065
+ // TTS
3066
+ { id: "tts", name: "Text-to-Speech", description: "Convert text to speech audio", category: "write", risk: "low", skillId: "media", sideEffects: [] },
3067
+ // Memory
3068
+ { id: "memory_search", name: "Memory Search", description: "Search agent memory files", category: "read", risk: "low", skillId: "memory", sideEffects: [] },
3069
+ { id: "memory_get", name: "Memory Get", description: "Read memory file snippets", category: "read", risk: "low", skillId: "memory", sideEffects: [] }
3070
+ ];
3071
+ AGENTICMAIL_TOOLS2 = [
3072
+ // Core email
3073
+ { id: "agenticmail_inbox", name: "Inbox", description: "List recent emails", category: "read", risk: "low", skillId: "agenticmail", sideEffects: [] },
3074
+ { id: "agenticmail_read", name: "Read Email", description: "Read a specific email by UID", category: "read", risk: "low", skillId: "agenticmail", sideEffects: [] },
3075
+ { id: "agenticmail_send", name: "Send Email", description: "Send an email", category: "communicate", risk: "high", skillId: "agenticmail", sideEffects: ["sends-email"] },
3076
+ { id: "agenticmail_reply", name: "Reply to Email", description: "Reply to an email", category: "communicate", risk: "high", skillId: "agenticmail", sideEffects: ["sends-email"] },
3077
+ { id: "agenticmail_forward", name: "Forward Email", description: "Forward an email", category: "communicate", risk: "high", skillId: "agenticmail", sideEffects: ["sends-email"] },
3078
+ { id: "agenticmail_search", name: "Search Email", description: "Search emails", category: "read", risk: "low", skillId: "agenticmail", sideEffects: [] },
3079
+ { id: "agenticmail_delete", name: "Delete Email", description: "Delete an email", category: "destroy", risk: "medium", skillId: "agenticmail", sideEffects: ["deletes-data"] },
3080
+ { id: "agenticmail_move", name: "Move Email", description: "Move email to folder", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3081
+ { id: "agenticmail_mark_read", name: "Mark Read", description: "Mark email as read", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3082
+ { id: "agenticmail_mark_unread", name: "Mark Unread", description: "Mark email as unread", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3083
+ { id: "agenticmail_digest", name: "Inbox Digest", description: "Get compact inbox digest", category: "read", risk: "low", skillId: "agenticmail", sideEffects: [] },
3084
+ { id: "agenticmail_list_folder", name: "List Folder", description: "List messages in a folder", category: "read", risk: "low", skillId: "agenticmail", sideEffects: [] },
3085
+ { id: "agenticmail_folders", name: "List Folders", description: "List all mail folders", category: "read", risk: "low", skillId: "agenticmail", sideEffects: [] },
3086
+ { id: "agenticmail_create_folder", name: "Create Folder", description: "Create a mail folder", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3087
+ { id: "agenticmail_import_relay", name: "Import Relay", description: "Import email from Gmail/Outlook", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3088
+ // Batch operations
3089
+ { id: "agenticmail_batch_read", name: "Batch Read", description: "Read multiple emails", category: "read", risk: "low", skillId: "agenticmail", sideEffects: [] },
3090
+ { id: "agenticmail_batch_delete", name: "Batch Delete", description: "Delete multiple emails", category: "destroy", risk: "medium", skillId: "agenticmail", sideEffects: ["deletes-data"] },
3091
+ { id: "agenticmail_batch_move", name: "Batch Move", description: "Move multiple emails", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3092
+ { id: "agenticmail_batch_mark_read", name: "Batch Mark Read", description: "Mark multiple as read", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3093
+ { id: "agenticmail_batch_mark_unread", name: "Batch Mark Unread", description: "Mark multiple as unread", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3094
+ // Agent coordination
3095
+ { id: "agenticmail_call_agent", name: "Call Agent", description: "Call another agent with a task", category: "execute", risk: "medium", skillId: "agenticmail-coordination", sideEffects: [] },
3096
+ { id: "agenticmail_message_agent", name: "Message Agent", description: "Send message to another agent", category: "communicate", risk: "low", skillId: "agenticmail-coordination", sideEffects: ["sends-message"] },
3097
+ { id: "agenticmail_list_agents", name: "List Agents", description: "List available agents", category: "read", risk: "low", skillId: "agenticmail-coordination", sideEffects: [] },
3098
+ { id: "agenticmail_check_messages", name: "Check Messages", description: "Check for unread messages", category: "read", risk: "low", skillId: "agenticmail-coordination", sideEffects: [] },
3099
+ { id: "agenticmail_check_tasks", name: "Check Tasks", description: "Check pending tasks", category: "read", risk: "low", skillId: "agenticmail-coordination", sideEffects: [] },
3100
+ { id: "agenticmail_claim_task", name: "Claim Task", description: "Claim a pending task", category: "write", risk: "low", skillId: "agenticmail-coordination", sideEffects: [] },
3101
+ { id: "agenticmail_complete_task", name: "Complete Task", description: "Complete a claimed task", category: "write", risk: "low", skillId: "agenticmail-coordination", sideEffects: [] },
3102
+ { id: "agenticmail_submit_result", name: "Submit Result", description: "Submit task result", category: "write", risk: "low", skillId: "agenticmail-coordination", sideEffects: [] },
3103
+ { id: "agenticmail_wait_for_email", name: "Wait for Email", description: "Wait for new email (SSE)", category: "read", risk: "low", skillId: "agenticmail-coordination", sideEffects: [] },
3104
+ // Account management
3105
+ { id: "agenticmail_create_account", name: "Create Account", description: "Create agent email account", category: "write", risk: "high", skillId: "agenticmail-admin", sideEffects: [] },
3106
+ { id: "agenticmail_delete_agent", name: "Delete Agent", description: "Delete agent account", category: "destroy", risk: "critical", skillId: "agenticmail-admin", sideEffects: ["deletes-data"] },
3107
+ { id: "agenticmail_cleanup", name: "Cleanup Agents", description: "Remove inactive agents", category: "destroy", risk: "high", skillId: "agenticmail-admin", sideEffects: ["deletes-data"] },
3108
+ { id: "agenticmail_deletion_reports", name: "Deletion Reports", description: "List deletion reports", category: "read", risk: "low", skillId: "agenticmail-admin", sideEffects: [] },
3109
+ { id: "agenticmail_whoami", name: "Who Am I", description: "Get agent account info", category: "read", risk: "low", skillId: "agenticmail-admin", sideEffects: [] },
3110
+ { id: "agenticmail_update_metadata", name: "Update Metadata", description: "Update agent metadata", category: "write", risk: "low", skillId: "agenticmail-admin", sideEffects: [] },
3111
+ { id: "agenticmail_status", name: "Server Status", description: "Check server health", category: "read", risk: "low", skillId: "agenticmail-admin", sideEffects: [] },
3112
+ { id: "agenticmail_pending_emails", name: "Pending Emails", description: "Check blocked outbound emails", category: "read", risk: "low", skillId: "agenticmail-admin", sideEffects: [] },
3113
+ // Organization
3114
+ { id: "agenticmail_contacts", name: "Contacts", description: "Manage contacts", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3115
+ { id: "agenticmail_tags", name: "Tags", description: "Manage email tags/labels", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3116
+ { id: "agenticmail_signatures", name: "Signatures", description: "Manage email signatures", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3117
+ { id: "agenticmail_templates", name: "Templates", description: "Manage email templates", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3118
+ { id: "agenticmail_template_send", name: "Send Template", description: "Send email from template", category: "communicate", risk: "high", skillId: "agenticmail", sideEffects: ["sends-email"] },
3119
+ { id: "agenticmail_rules", name: "Email Rules", description: "Manage auto-processing rules", category: "write", risk: "medium", skillId: "agenticmail", sideEffects: [] },
3120
+ { id: "agenticmail_spam", name: "Spam Management", description: "Manage spam folder", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3121
+ { id: "agenticmail_drafts", name: "Drafts", description: "Manage email drafts", category: "write", risk: "low", skillId: "agenticmail", sideEffects: [] },
3122
+ { id: "agenticmail_schedule", name: "Schedule Email", description: "Schedule emails for later", category: "communicate", risk: "medium", skillId: "agenticmail", sideEffects: ["sends-email"] },
3123
+ // Setup (admin only)
3124
+ { id: "agenticmail_setup_relay", name: "Setup Relay", description: "Configure Gmail/Outlook relay", category: "write", risk: "critical", skillId: "agenticmail-setup", sideEffects: [] },
3125
+ { id: "agenticmail_setup_domain", name: "Setup Domain", description: "Configure custom domain", category: "write", risk: "critical", skillId: "agenticmail-setup", sideEffects: [] },
3126
+ { id: "agenticmail_setup_guide", name: "Setup Guide", description: "Email setup comparison", category: "read", risk: "low", skillId: "agenticmail-setup", sideEffects: [] },
3127
+ { id: "agenticmail_setup_gmail_alias", name: "Gmail Alias", description: "Add Gmail send-as alias", category: "read", risk: "low", skillId: "agenticmail-setup", sideEffects: [] },
3128
+ { id: "agenticmail_setup_payment", name: "Setup Payment", description: "Add Cloudflare payment", category: "read", risk: "low", skillId: "agenticmail-setup", sideEffects: [] },
3129
+ { id: "agenticmail_purchase_domain", name: "Purchase Domain", description: "Search available domains", category: "read", risk: "low", skillId: "agenticmail-setup", sideEffects: [] },
3130
+ { id: "agenticmail_test_email", name: "Test Email", description: "Send test email", category: "communicate", risk: "low", skillId: "agenticmail-setup", sideEffects: ["sends-email"] },
3131
+ { id: "agenticmail_gateway_status", name: "Gateway Status", description: "Check email gateway", category: "read", risk: "low", skillId: "agenticmail-setup", sideEffects: [] },
3132
+ // SMS
3133
+ { id: "agenticmail_sms_send", name: "Send SMS", description: "Send SMS via Google Voice", category: "communicate", risk: "high", skillId: "agenticmail-sms", sideEffects: ["sends-sms"] },
3134
+ { id: "agenticmail_sms_messages", name: "SMS Messages", description: "List SMS messages", category: "read", risk: "low", skillId: "agenticmail-sms", sideEffects: [] },
3135
+ { id: "agenticmail_sms_check_code", name: "Check SMS Code", description: "Check for verification codes", category: "read", risk: "low", skillId: "agenticmail-sms", sideEffects: [] },
3136
+ { id: "agenticmail_sms_read_voice", name: "Read Voice SMS", description: "Read SMS from Google Voice", category: "read", risk: "low", skillId: "agenticmail-sms", sideEffects: [] },
3137
+ { id: "agenticmail_sms_record", name: "Record SMS", description: "Save SMS to database", category: "write", risk: "low", skillId: "agenticmail-sms", sideEffects: [] },
3138
+ { id: "agenticmail_sms_parse_email", name: "Parse SMS Email", description: "Parse SMS from forwarded email", category: "read", risk: "low", skillId: "agenticmail-sms", sideEffects: [] },
3139
+ { id: "agenticmail_sms_setup", name: "SMS Setup", description: "Configure Google Voice SMS", category: "write", risk: "medium", skillId: "agenticmail-sms", sideEffects: [] },
3140
+ { id: "agenticmail_sms_config", name: "SMS Config", description: "Get SMS configuration", category: "read", risk: "low", skillId: "agenticmail-sms", sideEffects: [] }
3141
+ ];
3142
+ MICROSOFT_365_TOOLS = M365_TOOLS;
3143
+ GOOGLE_WORKSPACE_TOOLS = GWS_TOOLS;
3144
+ ENTERPRISE_TOOLS = [
3145
+ // Slack
3146
+ { id: "slack_send", name: "Send Message", description: "Send Slack message", category: "communicate", risk: "medium", skillId: "slack", sideEffects: ["sends-message"] },
3147
+ { id: "slack_channels", name: "List Channels", description: "List Slack channels", category: "read", risk: "low", skillId: "slack", sideEffects: [] },
3148
+ { id: "slack_create_channel", name: "Create Channel", description: "Create Slack channel", category: "write", risk: "medium", skillId: "slack", sideEffects: [] },
3149
+ { id: "slack_search", name: "Search Messages", description: "Search Slack messages", category: "read", risk: "low", skillId: "slack", sideEffects: [] },
3150
+ { id: "slack_react", name: "Add Reaction", description: "Add emoji reaction", category: "write", risk: "low", skillId: "slack", sideEffects: [] },
3151
+ { id: "slack_upload", name: "Upload File", description: "Upload file to Slack", category: "write", risk: "medium", skillId: "slack", sideEffects: ["modifies-files"] },
3152
+ // Zoom
3153
+ { id: "zoom_create", name: "Create Meeting", description: "Schedule Zoom meeting", category: "write", risk: "medium", skillId: "zoom", sideEffects: ["sends-email"] },
3154
+ { id: "zoom_list", name: "List Meetings", description: "List scheduled meetings", category: "read", risk: "low", skillId: "zoom", sideEffects: [] },
3155
+ { id: "zoom_recordings", name: "List Recordings", description: "List meeting recordings", category: "read", risk: "low", skillId: "zoom", sideEffects: [] },
3156
+ // Salesforce
3157
+ { id: "sf_query", name: "SOQL Query", description: "Run Salesforce SOQL query", category: "read", risk: "low", skillId: "salesforce", sideEffects: [] },
3158
+ { id: "sf_create", name: "Create Record", description: "Create Salesforce record", category: "write", risk: "medium", skillId: "salesforce", sideEffects: [] },
3159
+ { id: "sf_update", name: "Update Record", description: "Update Salesforce record", category: "write", risk: "medium", skillId: "salesforce", sideEffects: [] },
3160
+ { id: "sf_delete", name: "Delete Record", description: "Delete Salesforce record", category: "destroy", risk: "high", skillId: "salesforce", sideEffects: ["deletes-data"] },
3161
+ { id: "sf_report", name: "Run Report", description: "Run Salesforce report", category: "read", risk: "low", skillId: "salesforce", sideEffects: [] },
3162
+ // HubSpot
3163
+ { id: "hs_contacts", name: "Manage Contacts", description: "CRUD HubSpot contacts", category: "write", risk: "medium", skillId: "hubspot-crm", sideEffects: [] },
3164
+ { id: "hs_deals", name: "Manage Deals", description: "CRUD HubSpot deals", category: "write", risk: "medium", skillId: "hubspot-crm", sideEffects: [] },
3165
+ { id: "hs_tickets", name: "Manage Tickets", description: "CRUD HubSpot tickets", category: "write", risk: "medium", skillId: "hubspot-service", sideEffects: [] },
3166
+ { id: "hs_email", name: "Send Campaign", description: "Send HubSpot email campaign", category: "communicate", risk: "high", skillId: "hubspot-marketing", sideEffects: ["sends-email"] },
3167
+ // Jira
3168
+ { id: "jira_issues", name: "List Issues", description: "Search Jira issues with JQL", category: "read", risk: "low", skillId: "jira", sideEffects: [] },
3169
+ { id: "jira_create", name: "Create Issue", description: "Create Jira issue", category: "write", risk: "medium", skillId: "jira", sideEffects: [] },
3170
+ { id: "jira_update", name: "Update Issue", description: "Update Jira issue", category: "write", risk: "medium", skillId: "jira", sideEffects: [] },
3171
+ { id: "jira_transition", name: "Transition Issue", description: "Move issue through workflow", category: "write", risk: "medium", skillId: "jira", sideEffects: [] },
3172
+ { id: "jira_comment", name: "Add Comment", description: "Comment on Jira issue", category: "write", risk: "low", skillId: "jira", sideEffects: [] },
3173
+ // Notion
3174
+ { id: "notion_pages", name: "Manage Pages", description: "CRUD Notion pages", category: "write", risk: "medium", skillId: "notion", sideEffects: [] },
3175
+ { id: "notion_databases", name: "Query Database", description: "Query Notion database", category: "read", risk: "low", skillId: "notion", sideEffects: [] },
3176
+ { id: "notion_search", name: "Search Notion", description: "Search across Notion workspace", category: "read", risk: "low", skillId: "notion", sideEffects: [] },
3177
+ // Linear
3178
+ { id: "linear_issues", name: "List Issues", description: "List Linear issues", category: "read", risk: "low", skillId: "linear", sideEffects: [] },
3179
+ { id: "linear_create", name: "Create Issue", description: "Create Linear issue", category: "write", risk: "medium", skillId: "linear", sideEffects: [] },
3180
+ { id: "linear_update", name: "Update Issue", description: "Update Linear issue", category: "write", risk: "medium", skillId: "linear", sideEffects: [] },
3181
+ // Asana
3182
+ { id: "asana_tasks", name: "List Tasks", description: "List Asana tasks", category: "read", risk: "low", skillId: "asana", sideEffects: [] },
3183
+ { id: "asana_create", name: "Create Task", description: "Create Asana task", category: "write", risk: "medium", skillId: "asana", sideEffects: [] },
3184
+ { id: "asana_update", name: "Update Task", description: "Update Asana task", category: "write", risk: "medium", skillId: "asana", sideEffects: [] },
3185
+ // Zendesk
3186
+ { id: "zd_tickets", name: "List Tickets", description: "List Zendesk tickets", category: "read", risk: "low", skillId: "zendesk", sideEffects: [] },
3187
+ { id: "zd_create", name: "Create Ticket", description: "Create Zendesk ticket", category: "write", risk: "medium", skillId: "zendesk", sideEffects: [] },
3188
+ { id: "zd_update", name: "Update Ticket", description: "Update Zendesk ticket", category: "write", risk: "medium", skillId: "zendesk", sideEffects: [] },
3189
+ { id: "zd_reply", name: "Reply to Ticket", description: "Reply to Zendesk ticket", category: "communicate", risk: "medium", skillId: "zendesk", sideEffects: ["sends-email"] },
3190
+ // Stripe
3191
+ { id: "stripe_customers", name: "Manage Customers", description: "CRUD Stripe customers", category: "write", risk: "medium", skillId: "stripe", sideEffects: [] },
3192
+ { id: "stripe_charges", name: "List Charges", description: "List Stripe charges", category: "read", risk: "low", skillId: "stripe", sideEffects: [] },
3193
+ { id: "stripe_invoices", name: "Manage Invoices", description: "Create/send Stripe invoices", category: "write", risk: "high", skillId: "stripe", sideEffects: ["financial", "sends-email"] },
3194
+ { id: "stripe_subscriptions", name: "Manage Subscriptions", description: "CRUD subscriptions", category: "write", risk: "high", skillId: "stripe", sideEffects: ["financial"] },
3195
+ { id: "stripe_refund", name: "Issue Refund", description: "Refund a charge", category: "write", risk: "high", skillId: "stripe", sideEffects: ["financial"] },
3196
+ // Docker
3197
+ { id: "docker_ps", name: "List Containers", description: "List Docker containers", category: "read", risk: "low", skillId: "docker", sideEffects: [] },
3198
+ { id: "docker_run", name: "Run Container", description: "Start Docker container", category: "execute", risk: "high", skillId: "docker", sideEffects: ["runs-code"] },
3199
+ { id: "docker_build", name: "Build Image", description: "Build Docker image", category: "execute", risk: "high", skillId: "docker", sideEffects: ["runs-code", "modifies-files"] },
3200
+ { id: "docker_logs", name: "Container Logs", description: "View container logs", category: "read", risk: "low", skillId: "docker", sideEffects: [] },
3201
+ // Kubernetes
3202
+ { id: "k8s_get", name: "Get Resources", description: "List Kubernetes resources", category: "read", risk: "low", skillId: "kubernetes", sideEffects: [] },
3203
+ { id: "k8s_apply", name: "Apply Manifest", description: "Apply Kubernetes manifest", category: "execute", risk: "high", skillId: "kubernetes", sideEffects: ["runs-code"] },
3204
+ { id: "k8s_delete", name: "Delete Resource", description: "Delete Kubernetes resource", category: "destroy", risk: "high", skillId: "kubernetes", sideEffects: ["deletes-data"] },
3205
+ { id: "k8s_logs", name: "Pod Logs", description: "View pod logs", category: "read", risk: "low", skillId: "kubernetes", sideEffects: [] },
3206
+ { id: "k8s_exec", name: "Exec in Pod", description: "Execute command in pod", category: "execute", risk: "high", skillId: "kubernetes", sideEffects: ["runs-code"] },
3207
+ // Terraform
3208
+ { id: "tf_plan", name: "Terraform Plan", description: "Run terraform plan", category: "read", risk: "medium", skillId: "terraform", sideEffects: [] },
3209
+ { id: "tf_apply", name: "Terraform Apply", description: "Run terraform apply", category: "execute", risk: "high", skillId: "terraform", sideEffects: ["runs-code", "network-request"] },
3210
+ { id: "tf_state", name: "Terraform State", description: "Read terraform state", category: "read", risk: "low", skillId: "terraform", sideEffects: [] },
3211
+ // Shopify
3212
+ { id: "shopify_products", name: "Manage Products", description: "CRUD Shopify products", category: "write", risk: "medium", skillId: "shopify", sideEffects: [] },
3213
+ { id: "shopify_orders", name: "List Orders", description: "List Shopify orders", category: "read", risk: "low", skillId: "shopify", sideEffects: [] },
3214
+ { id: "shopify_customers", name: "Manage Customers", description: "CRUD Shopify customers", category: "write", risk: "medium", skillId: "shopify", sideEffects: [] },
3215
+ { id: "shopify_inventory", name: "Manage Inventory", description: "Update inventory levels", category: "write", risk: "medium", skillId: "shopify", sideEffects: [] },
3216
+ // Dropbox
3217
+ { id: "dropbox_list", name: "List Files", description: "List Dropbox files", category: "read", risk: "low", skillId: "dropbox", sideEffects: [] },
3218
+ { id: "dropbox_upload", name: "Upload File", description: "Upload to Dropbox", category: "write", risk: "medium", skillId: "dropbox", sideEffects: ["modifies-files"] },
3219
+ { id: "dropbox_download", name: "Download File", description: "Download from Dropbox", category: "read", risk: "low", skillId: "dropbox", sideEffects: [] },
3220
+ { id: "dropbox_share", name: "Share Link", description: "Create sharing link", category: "write", risk: "medium", skillId: "dropbox", sideEffects: [] },
3221
+ // Datadog
3222
+ { id: "dd_metrics", name: "Query Metrics", description: "Query Datadog metrics", category: "read", risk: "low", skillId: "datadog", sideEffects: [] },
3223
+ { id: "dd_events", name: "List Events", description: "List Datadog events", category: "read", risk: "low", skillId: "datadog", sideEffects: [] },
3224
+ { id: "dd_monitors", name: "Manage Monitors", description: "CRUD Datadog monitors", category: "write", risk: "medium", skillId: "datadog", sideEffects: [] },
3225
+ { id: "dd_dashboards", name: "Manage Dashboards", description: "CRUD Datadog dashboards", category: "write", risk: "low", skillId: "datadog", sideEffects: [] },
3226
+ // PagerDuty
3227
+ { id: "pd_incidents", name: "List Incidents", description: "List PagerDuty incidents", category: "read", risk: "low", skillId: "pagerduty", sideEffects: [] },
3228
+ { id: "pd_create", name: "Create Incident", description: "Create PagerDuty incident", category: "write", risk: "high", skillId: "pagerduty", sideEffects: ["sends-message"] },
3229
+ { id: "pd_acknowledge", name: "Acknowledge Incident", description: "Acknowledge incident", category: "write", risk: "medium", skillId: "pagerduty", sideEffects: [] },
3230
+ { id: "pd_resolve", name: "Resolve Incident", description: "Resolve incident", category: "write", risk: "medium", skillId: "pagerduty", sideEffects: [] },
3231
+ // Sentry
3232
+ { id: "sentry_issues", name: "List Issues", description: "List Sentry issues", category: "read", risk: "low", skillId: "sentry", sideEffects: [] },
3233
+ { id: "sentry_resolve", name: "Resolve Issue", description: "Resolve Sentry issue", category: "write", risk: "low", skillId: "sentry", sideEffects: [] },
3234
+ { id: "sentry_assign", name: "Assign Issue", description: "Assign Sentry issue", category: "write", risk: "low", skillId: "sentry", sideEffects: [] },
3235
+ // DocuSign
3236
+ { id: "ds_send", name: "Send Envelope", description: "Send DocuSign envelope", category: "communicate", risk: "high", skillId: "docusign", sideEffects: ["sends-email"] },
3237
+ { id: "ds_status", name: "Envelope Status", description: "Check envelope status", category: "read", risk: "low", skillId: "docusign", sideEffects: [] },
3238
+ { id: "ds_templates", name: "List Templates", description: "List DocuSign templates", category: "read", risk: "low", skillId: "docusign", sideEffects: [] },
3239
+ // Mailchimp
3240
+ { id: "mc_campaigns", name: "List Campaigns", description: "List Mailchimp campaigns", category: "read", risk: "low", skillId: "mailchimp", sideEffects: [] },
3241
+ { id: "mc_send", name: "Send Campaign", description: "Send Mailchimp campaign", category: "communicate", risk: "high", skillId: "mailchimp", sideEffects: ["sends-email"] },
3242
+ { id: "mc_audiences", name: "Manage Audiences", description: "CRUD Mailchimp audiences", category: "write", risk: "medium", skillId: "mailchimp", sideEffects: [] },
3243
+ // Confluence
3244
+ { id: "conf_pages", name: "List Pages", description: "List Confluence pages", category: "read", risk: "low", skillId: "confluence", sideEffects: [] },
3245
+ { id: "conf_create", name: "Create Page", description: "Create Confluence page", category: "write", risk: "medium", skillId: "confluence", sideEffects: [] },
3246
+ { id: "conf_update", name: "Update Page", description: "Update Confluence page", category: "write", risk: "medium", skillId: "confluence", sideEffects: [] },
3247
+ { id: "conf_search", name: "Search Confluence", description: "Search across spaces", category: "read", risk: "low", skillId: "confluence", sideEffects: [] },
3248
+ // GitHub Actions
3249
+ { id: "gha_workflows", name: "List Workflows", description: "List GitHub Actions workflows", category: "read", risk: "low", skillId: "github-actions", sideEffects: [] },
3250
+ { id: "gha_trigger", name: "Trigger Workflow", description: "Trigger workflow dispatch", category: "execute", risk: "medium", skillId: "github-actions", sideEffects: ["runs-code"] },
3251
+ { id: "gha_runs", name: "List Runs", description: "List workflow runs", category: "read", risk: "low", skillId: "github-actions", sideEffects: [] },
3252
+ { id: "gha_logs", name: "Get Run Logs", description: "Download workflow run logs", category: "read", risk: "low", skillId: "github-actions", sideEffects: [] },
3253
+ // Figma
3254
+ { id: "figma_files", name: "List Files", description: "List Figma files", category: "read", risk: "low", skillId: "figma", sideEffects: [] },
3255
+ { id: "figma_export", name: "Export Assets", description: "Export Figma assets", category: "read", risk: "low", skillId: "figma", sideEffects: [] },
3256
+ { id: "figma_comments", name: "Manage Comments", description: "CRUD Figma comments", category: "write", risk: "low", skillId: "figma", sideEffects: [] },
3257
+ // Twilio
3258
+ { id: "twilio_sms", name: "Send SMS", description: "Send SMS via Twilio", category: "communicate", risk: "high", skillId: "twilio", sideEffects: ["sends-sms"] },
3259
+ { id: "twilio_call", name: "Make Call", description: "Initiate phone call", category: "communicate", risk: "high", skillId: "twilio", sideEffects: ["sends-message"] },
3260
+ { id: "twilio_messages", name: "List Messages", description: "List Twilio messages", category: "read", risk: "low", skillId: "twilio", sideEffects: [] },
3261
+ // Zapier
3262
+ { id: "zapier_trigger", name: "Trigger Zap", description: "Trigger a Zapier webhook", category: "execute", risk: "medium", skillId: "zapier", sideEffects: ["network-request"] },
3263
+ { id: "zapier_list", name: "List Zaps", description: "List configured Zaps", category: "read", risk: "low", skillId: "zapier", sideEffects: [] }
3264
+ ];
3265
+ ALL_TOOLS = [
3266
+ ...CORE_TOOLS,
3267
+ ...AGENTICMAIL_TOOLS2,
3268
+ ...MICROSOFT_365_TOOLS,
3269
+ ...GOOGLE_WORKSPACE_TOOLS,
3270
+ ...ENTERPRISE_TOOLS,
3271
+ ...ENTERPRISE_UTILITY_TOOLS,
3272
+ ...SYSTEM_TOOLS
3273
+ ];
3274
+ TOOL_INDEX = new Map(ALL_TOOLS.map((t) => [t.id || t.name, t]));
3275
+ }
3276
+ });
3277
+
3278
+ export {
3279
+ Emoji,
3280
+ init_emoji,
3281
+ M365_SKILL_DEFS,
3282
+ GWS_SKILL_DEFS,
3283
+ AGENTICMAIL_SKILL_DEFS,
3284
+ ENTERPRISE_SKILL_DEFS,
3285
+ SYSTEM_SKILL_DEFS,
3286
+ FULL_SKILL_DEFINITIONS,
3287
+ init_skills,
3288
+ CORE_TOOLS,
3289
+ AGENTICMAIL_TOOLS2 as AGENTICMAIL_TOOLS,
3290
+ ALL_TOOLS,
3291
+ TOOL_INDEX,
3292
+ getToolsBySkill,
3293
+ generateToolPolicy,
3294
+ tool_catalog_exports,
3295
+ init_tool_catalog
3296
+ };