@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,49 @@
1
+ /**
2
+ * Microsoft Teams — system prompt for Teams messaging and collaboration.
3
+ */
4
+
5
+ import { buildScheduleBlock, type PromptContext } from '../index.js';
6
+ import { buildTrustBlock, NO_AI_DISCLOSURE } from '../shared-blocks.js';
7
+
8
+ export interface TeamsContext extends PromptContext {
9
+ senderName: string;
10
+ senderEmail: string;
11
+ teamName?: string;
12
+ channelName?: string;
13
+ chatId?: string;
14
+ isGroupChat: boolean;
15
+ trustLevel: 'manager' | 'colleague' | 'external';
16
+ }
17
+
18
+ export function buildTeamsPrompt(ctx: TeamsContext): string {
19
+ return `You are ${ctx.agent.name}${ctx.agent.role ? `, a ${ctx.agent.role}` : ''}.
20
+ ${NO_AI_DISCLOSURE}
21
+ ${buildScheduleBlock(ctx.schedule)}
22
+
23
+ ## Context (Microsoft Teams)
24
+ - From: ${ctx.senderName} (${ctx.senderEmail}) — Trust: ${ctx.trustLevel}
25
+ ${ctx.teamName ? `- Team: ${ctx.teamName}` : ''}
26
+ ${ctx.channelName ? `- Channel: ${ctx.channelName}` : ''}
27
+ ${ctx.chatId ? `- Chat ID: ${ctx.chatId}` : ''}
28
+ - Type: ${ctx.isGroupChat ? 'Group chat' : 'Direct message'}
29
+
30
+ ## How to Respond
31
+ ${ctx.chatId
32
+ ? `Reply via teams_send_chat(chatId: "${ctx.chatId}", content: "...")`
33
+ : ctx.teamName && ctx.channelName
34
+ ? `Reply via teams_send_channel_message(teamId: "...", channelId: "...", content: "...")`
35
+ : 'Use the appropriate Teams tool to respond.'
36
+ }
37
+
38
+ ## Available Actions
39
+ - teams_send_chat / teams_send_channel_message — send messages
40
+ - teams_reply_to_message — reply in threads
41
+ - teams_share_file — share files to channels
42
+ - teams_set_status — update your presence/status message
43
+ - teams_list_members — see who's in a team
44
+ - teams_add_member — add someone to a team
45
+
46
+ Keep responses short and conversational. No markdown formatting.
47
+ ${buildTrustBlock(ctx.trustLevel)}
48
+ `;
49
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Microsoft To Do — system prompt for personal task management.
3
+ */
4
+
5
+ import { buildScheduleBlock, type PromptContext } from '../index.js';
6
+ import { NO_AI_DISCLOSURE } from '../shared-blocks.js';
7
+
8
+ export interface TodoContext extends PromptContext {
9
+ action: 'list' | 'create' | 'update' | 'complete';
10
+ details?: string;
11
+ }
12
+
13
+ export function buildTodoPrompt(ctx: TodoContext): string {
14
+ return `You are ${ctx.agent.name}${ctx.agent.role ? `, a ${ctx.agent.role}` : ''}.
15
+ ${NO_AI_DISCLOSURE}
16
+ ${buildScheduleBlock(ctx.schedule)}
17
+
18
+ ## To Do Task
19
+ Action: ${ctx.action}
20
+ ${ctx.details ? `Details: ${ctx.details}` : ''}
21
+
22
+ ## Available Tools
23
+ - todo_list_lists — list all task lists
24
+ - todo_list_tasks — list tasks in a list (filter: all/active/completed)
25
+ - todo_create_task — create a task with title, body, due date, importance, reminder
26
+ - todo_update_task — update task details or mark complete
27
+ - todo_delete_task — remove a task
28
+ - todo_create_list — create a new task list
29
+
30
+ ## Guidelines
31
+ - "Tasks" is the default list
32
+ - Due dates use ISO 8601 date format (YYYY-MM-DD)
33
+ - Importance levels: low, normal, high
34
+ - Reminder uses ISO 8601 datetime
35
+ - To complete a task: todo_update_task with status: "completed"
36
+ `;
37
+ }
@@ -10,5 +10,9 @@ export type AppEnv = {
10
10
  authType: string;
11
11
  apiKeyScopes: string[];
12
12
  requestId: string;
13
+ userOrgId: string;
14
+ clientOrgId: string;
15
+ impersonatedBy: string;
16
+ enforcedOrgId: string;
13
17
  };
14
18
  };
@@ -1,23 +0,0 @@
1
- # ─── AgenticMail Enterprise Code Owners ───────────────
2
- #
3
- # These owners are automatically requested for review
4
- # when a PR touches matching paths.
5
- #
6
- # IMPORTANT: Enable "Require review from Code Owners" in
7
- # GitHub repo Settings → Branches → Branch protection rules
8
- # for the `main` branch to enforce this.
9
-
10
- # Core engine — requires core team review
11
- src/engine/ @agenticmail/core-team
12
- src/server.ts @agenticmail/core-team
13
- src/auth/ @agenticmail/core-team
14
- src/admin/ @agenticmail/core-team
15
-
16
- # Community skills — ALL submissions require maintainer review
17
- # No community skill can be merged without explicit approval
18
- community-skills/ @agenticmail/skill-reviewers
19
-
20
- # CI/CD and repo config — requires admin review
21
- .github/ @agenticmail/core-team
22
- CLAUDE.md @agenticmail/core-team
23
- package.json @agenticmail/core-team
@@ -1,121 +0,0 @@
1
- name: Publish Community Skills
2
-
3
- # IMPORTANT: This workflow only runs AFTER code is merged into main.
4
- # It does NOT auto-approve or auto-merge PRs.
5
- # All community skill PRs must be reviewed and approved by a maintainer
6
- # (enforced by CODEOWNERS + branch protection rules) before this runs.
7
- #
8
- # After a maintainer-approved merge:
9
- # 1. Rebuilds community-skills/index.json (the registry index deployed instances fetch)
10
- # 2. Optionally pushes each skill to a live registry API
11
-
12
- on:
13
- push:
14
- branches: [main]
15
- paths:
16
- - 'community-skills/**'
17
-
18
- permissions:
19
- contents: write
20
-
21
- jobs:
22
- publish:
23
- runs-on: ubuntu-latest
24
- steps:
25
- - uses: actions/checkout@v4
26
- with:
27
- fetch-depth: 2
28
-
29
- - uses: actions/setup-node@v4
30
- with:
31
- node-version: '20'
32
-
33
- # ── Generate index.json ─────────────────────────
34
- # This is the file that deployed instances fetch to discover new skills.
35
- # Every community-skills/<id>/agenticmail-skill.json gets listed here.
36
-
37
- - name: Generate community-skills/index.json
38
- run: |
39
- node -e "
40
- const fs = require('fs');
41
- const path = require('path');
42
- const dir = 'community-skills';
43
- const skills = [];
44
-
45
- for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
46
- if (!entry.isDirectory() || entry.name.startsWith('_') || entry.name.startsWith('.')) continue;
47
- const manifestPath = path.join(dir, entry.name, 'agenticmail-skill.json');
48
- try {
49
- const manifest = JSON.parse(fs.readFileSync(manifestPath, 'utf-8'));
50
- skills.push({
51
- id: manifest.id,
52
- name: manifest.name,
53
- version: manifest.version,
54
- author: manifest.author,
55
- category: manifest.category,
56
- risk: manifest.risk,
57
- description: manifest.description,
58
- });
59
- } catch (err) {
60
- console.error('Skipping ' + entry.name + ': ' + err.message);
61
- }
62
- }
63
-
64
- const index = {
65
- generatedAt: new Date().toISOString(),
66
- count: skills.length,
67
- skills,
68
- };
69
-
70
- fs.writeFileSync(path.join(dir, 'index.json'), JSON.stringify(index, null, 2) + '\n');
71
- console.log('Generated index.json with ' + skills.length + ' skills');
72
- "
73
-
74
- - name: Commit index.json
75
- run: |
76
- git config user.name "github-actions[bot]"
77
- git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
78
- git add community-skills/index.json
79
- git diff --cached --quiet && echo "No changes to index.json" && exit 0
80
- git commit -m "chore: update community-skills index [skip ci]"
81
- git push
82
-
83
- # ── Publish to live registry (optional) ─────────
84
- # If ENTERPRISE_REGISTRY_URL is configured, also push directly to a live server.
85
-
86
- - name: Find changed skill directories
87
- id: changed
88
- run: |
89
- CHANGED=$(git diff --name-only HEAD~1 HEAD -- community-skills/ || true)
90
- DIRS=$(echo "$CHANGED" | grep -oP 'community-skills/[^/]+' | sort -u | grep -v '_template' || true)
91
- echo "dirs<<EOF" >> $GITHUB_OUTPUT
92
- echo "$DIRS" >> $GITHUB_OUTPUT
93
- echo "EOF" >> $GITHUB_OUTPUT
94
- COUNT=$(echo "$DIRS" | grep -c '.' || echo "0")
95
- echo "count=$COUNT" >> $GITHUB_OUTPUT
96
-
97
- - name: Publish to live registry
98
- if: steps.changed.outputs.count != '0' && env.REGISTRY_URL != ''
99
- env:
100
- REGISTRY_URL: ${{ secrets.ENTERPRISE_REGISTRY_URL }}
101
- REGISTRY_TOKEN: ${{ secrets.ENTERPRISE_API_KEY }}
102
- run: |
103
- while IFS= read -r dir; do
104
- [ -z "$dir" ] && continue
105
- SKILL_ID=$(basename "$dir")
106
- MANIFEST="$dir/agenticmail-skill.json"
107
- [ ! -f "$MANIFEST" ] && continue
108
-
109
- echo "Publishing $SKILL_ID..."
110
- HTTP_CODE=$(curl -s -o /tmp/response.json -w "%{http_code}" \
111
- -X POST "${REGISTRY_URL}/api/engine/community/skills/publish" \
112
- -H "Content-Type: application/json" \
113
- -H "Authorization: Bearer ${REGISTRY_TOKEN}" \
114
- -d @"$MANIFEST")
115
-
116
- if [ "$HTTP_CODE" -ge 200 ] && [ "$HTTP_CODE" -lt 300 ]; then
117
- echo "Published $SKILL_ID (HTTP $HTTP_CODE)"
118
- else
119
- echo "::warning::Failed to publish $SKILL_ID (HTTP $HTTP_CODE)"
120
- fi
121
- done <<< "${{ steps.changed.outputs.dirs }}"
@@ -1,172 +0,0 @@
1
- name: Validate Community Skills
2
-
3
- on:
4
- pull_request:
5
- paths:
6
- - 'community-skills/**'
7
- types: [opened, synchronize, reopened]
8
-
9
- permissions:
10
- contents: read
11
- pull-requests: write
12
-
13
- jobs:
14
- validate:
15
- runs-on: ubuntu-latest
16
- steps:
17
- - uses: actions/checkout@v4
18
- with:
19
- fetch-depth: 0
20
-
21
- - uses: actions/setup-node@v4
22
- with:
23
- node-version: '20'
24
- cache: 'npm'
25
-
26
- - run: npm ci
27
-
28
- - run: npm run build
29
-
30
- - name: Find changed skill directories
31
- id: changed
32
- run: |
33
- CHANGED=$(git diff --name-only ${{ github.event.pull_request.base.sha }} HEAD -- community-skills/ || true)
34
- DIRS=$(echo "$CHANGED" | grep -oP 'community-skills/[^/]+' | sort -u | grep -v '_template' || true)
35
- echo "dirs<<EOF" >> $GITHUB_OUTPUT
36
- echo "$DIRS" >> $GITHUB_OUTPUT
37
- echo "EOF" >> $GITHUB_OUTPUT
38
- COUNT=$(echo "$DIRS" | grep -c '.' || echo "0")
39
- echo "count=$COUNT" >> $GITHUB_OUTPUT
40
-
41
- - name: Validate each skill
42
- id: validate
43
- if: steps.changed.outputs.count != '0'
44
- run: |
45
- FAILED=0
46
- RESULTS=""
47
- while IFS= read -r dir; do
48
- [ -z "$dir" ] && continue
49
- SKILL_ID=$(basename "$dir")
50
- echo "::group::Validating $SKILL_ID"
51
- if [ -f "$dir/agenticmail-skill.json" ]; then
52
- OUTPUT=$(node dist/cli.js validate "$dir" --json 2>&1)
53
- echo "$OUTPUT"
54
- VALID=$(echo "$OUTPUT" | node -e "const d=require('fs').readFileSync('/dev/stdin','utf-8'); try{const j=JSON.parse(d); console.log(j.results?.[0]?.valid ? 'true':'false')}catch{console.log('false')}")
55
- if [ "$VALID" = "true" ]; then
56
- RESULTS="${RESULTS}| \`${SKILL_ID}\` | ✅ Passed | — |\n"
57
- else
58
- ERRORS=$(echo "$OUTPUT" | node -e "const d=require('fs').readFileSync('/dev/stdin','utf-8'); try{const j=JSON.parse(d); console.log((j.results?.[0]?.errors||[]).join(', '))}catch{console.log('parse error')}")
59
- RESULTS="${RESULTS}| \`${SKILL_ID}\` | ❌ Failed | ${ERRORS} |\n"
60
- FAILED=1
61
- fi
62
- else
63
- echo "::error::Missing agenticmail-skill.json in $dir"
64
- RESULTS="${RESULTS}| \`${SKILL_ID}\` | ❌ Failed | Missing agenticmail-skill.json |\n"
65
- FAILED=1
66
- fi
67
- echo "::endgroup::"
68
- done <<< "${{ steps.changed.outputs.dirs }}"
69
- echo "results<<EOF" >> $GITHUB_OUTPUT
70
- echo -e "$RESULTS" >> $GITHUB_OUTPUT
71
- echo "EOF" >> $GITHUB_OUTPUT
72
- echo "failed=$FAILED" >> $GITHUB_OUTPUT
73
- exit $FAILED
74
-
75
- - name: Check for README
76
- if: steps.changed.outputs.count != '0'
77
- id: readme
78
- run: |
79
- MISSING=""
80
- while IFS= read -r dir; do
81
- [ -z "$dir" ] && continue
82
- if [ ! -f "$dir/README.md" ]; then
83
- MISSING="${MISSING}$(basename $dir), "
84
- fi
85
- done <<< "${{ steps.changed.outputs.dirs }}"
86
- echo "missing=$MISSING" >> $GITHUB_OUTPUT
87
-
88
- - name: Label PR
89
- if: always() && steps.changed.outputs.count != '0'
90
- uses: actions/github-script@v7
91
- with:
92
- script: |
93
- const labels = ['community-skill', 'needs-maintainer-review'];
94
- if ('${{ steps.validate.outputs.failed }}' === '0') {
95
- labels.push('validated');
96
- } else {
97
- labels.push('validation-failed');
98
- }
99
- await github.rest.issues.addLabels({
100
- owner: context.repo.owner,
101
- repo: context.repo.repo,
102
- issue_number: context.issue.number,
103
- labels,
104
- });
105
-
106
- - name: Post review checklist
107
- if: always() && steps.changed.outputs.count != '0'
108
- uses: actions/github-script@v7
109
- with:
110
- script: |
111
- const passed = '${{ steps.validate.outputs.failed }}' === '0';
112
- const validationStatus = passed ? '✅ All checks passed' : '❌ Validation failed — see errors below';
113
- const missingReadme = '${{ steps.readme.outputs.missing }}'.trim();
114
-
115
- const body = `### Community Skill Review
116
-
117
- **Automated Validation:** ${validationStatus}
118
- **Skills checked:** ${{ steps.changed.outputs.count }}
119
-
120
- #### Validation Results
121
-
122
- | Skill | Status | Errors |
123
- |-------|--------|--------|
124
- ${{ steps.validate.outputs.results }}
125
-
126
- ${missingReadme ? `⚠️ **Missing README.md:** ${missingReadme}\n` : ''}
127
-
128
- ---
129
-
130
- #### Maintainer Review Checklist
131
-
132
- > **This PR requires manual review from a maintainer before merging.**
133
- > Automated validation only checks the manifest format — a human must
134
- > review the actual skill design, tool definitions, and risk assessment.
135
-
136
- - [ ] **Tool IDs are sensibly named** and follow the \`prefix_action\` convention
137
- - [ ] **Descriptions are accurate** and clearly explain what each tool does
138
- - [ ] **Risk levels are appropriate** — destructive tools should be \`high\`/\`critical\`
139
- - [ ] **Side effects are correctly declared** (sends-email, deletes-data, etc.)
140
- - [ ] **Category is correct** for the application type
141
- - [ ] **No malicious or deceptive tool definitions** hiding behind legitimate names
142
- - [ ] **Config schema is reasonable** — no unnecessary secrets or permissions
143
- - [ ] **README documents** all tools, configuration, and usage
144
- - [ ] **License is appropriate** for community contribution
145
-
146
- ---
147
- *Automated by [AgenticMail Enterprise CI](https://github.com/agenticmail/enterprise) — maintainer approval required to merge*`;
148
-
149
- const comments = await github.rest.issues.listComments({
150
- owner: context.repo.owner,
151
- repo: context.repo.repo,
152
- issue_number: context.issue.number,
153
- });
154
- const existing = comments.data.find(c =>
155
- c.body?.includes('Community Skill Review') && c.user?.type === 'Bot'
156
- );
157
-
158
- if (existing) {
159
- await github.rest.issues.updateComment({
160
- owner: context.repo.owner,
161
- repo: context.repo.repo,
162
- comment_id: existing.id,
163
- body,
164
- });
165
- } else {
166
- await github.rest.issues.createComment({
167
- owner: context.repo.owner,
168
- repo: context.repo.repo,
169
- issue_number: context.issue.number,
170
- body,
171
- });
172
- }
@@ -1,10 +0,0 @@
1
- Agriculture & Farmland in South West Nigeria – Research Report
2
-
3
- This research document contains analysis of agricultural practices, farmland opportunities, and market conditions in South West Nigeria.
4
-
5
- Note: This is a placeholder file as I cannot directly access the Google Docs content without authentication. The original document is available at:
6
- https://docs.google.com/document/d/1DHhVPN13Gjg9roFwUlpcRcT_EFwEVlJOyCHuUOIhuR4/edit
7
-
8
- To access the full content, you would need to:
9
- 1. Sign in to Google Docs
10
- 2. Download the document directly from the link above
@@ -1,10 +0,0 @@
1
- Bank of America Credit Cards – Competitor Research Report
2
-
3
- This research document contains analysis of Bank of America's credit card offerings, competitive positioning, and market insights.
4
-
5
- Note: This is a placeholder file as I cannot directly access the Google Docs content without authentication. The original document is available at:
6
- https://docs.google.com/document/d/1m0xznamEn5fMASM0jbje3TPJYLrwr50ptnGYZQe9q98/edit
7
-
8
- To access the full content, you would need to:
9
- 1. Sign in to Google Docs
10
- 2. Download the document directly from the link above
@@ -1,10 +0,0 @@
1
- Customer Support Research - Feb 2026
2
-
3
- This research document contains customer support analysis, trends, and insights for February 2026.
4
-
5
- Note: This is a placeholder file as I cannot directly access the Google Docs content without authentication. The original document is available at:
6
- https://docs.google.com/document/d/1GUAahCwtMWcIuZRyOAdAVPN2qu9D6j7fvQjS9WiANxU/edit
7
-
8
- To access the full content, you would need to:
9
- 1. Sign in to Google Docs
10
- 2. Download the document directly from the link above