@agenticmail/enterprise 0.5.324 → 0.5.326

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 (449) hide show
  1. package/dist/{agent-heartbeat-77N4OOQL.js → agent-heartbeat-ZFKA6GMI.js} +2 -2
  2. package/dist/{agent-tools-BNSTIK4P.js → agent-tools-R6RSBDJQ.js} +25 -25
  3. package/dist/{agenticmail-EDO5XOTP.js → agenticmail-QMWQNUY2.js} +1 -1
  4. package/dist/{browser-tool-JF3LNRGX.js → browser-tool-4KWE37RL.js} +4 -4
  5. package/dist/{chunk-JEGYVXYC.js → chunk-CQV7GGHT.js} +1 -1
  6. package/dist/{chunk-CQYLRIQ3.js → chunk-DWHJYAV6.js} +143 -26
  7. package/dist/{chunk-HKCKMCPY.js → chunk-G4YSECQ4.js} +2 -2
  8. package/dist/{chunk-DM7FTF7W.js → chunk-GNABVGDZ.js} +31 -32
  9. package/dist/{chunk-DMD24UFZ.js → chunk-HTT6LUPP.js} +19 -19
  10. package/dist/{chunk-3FMK32KQ.js → chunk-LHQP7QRX.js} +9 -9
  11. package/dist/{chunk-6C5PKREN.js → chunk-NOAQG5CY.js} +1 -1
  12. package/dist/{chunk-4EKXYIJF.js → chunk-PAHT4ABL.js} +4 -4
  13. package/dist/{chunk-JNMDD7JY.js → chunk-RHO7WRVJ.js} +5 -5
  14. package/dist/{chunk-BQM7MBPS.js → chunk-WYDVMFGJ.js} +5 -5
  15. package/dist/{chunk-TPLVQFXM.js → chunk-X2YL6KSY.js} +13 -13
  16. package/dist/{cli-agent-USMKX7WN.js → cli-agent-2NBPF3GN.js} +11 -11
  17. package/dist/{cli-recover-XEZ2SKPU.js → cli-recover-TTOR7CJR.js} +2 -2
  18. package/dist/{cli-serve-BDGOOOKQ.js → cli-serve-5VFU4GR4.js} +3 -3
  19. package/dist/{cli-verify-CZIITRED.js → cli-verify-WICBVLAM.js} +2 -2
  20. package/dist/cli.js +5 -5
  21. package/dist/{connection-manager-KAWEUWUR.js → connection-manager-Y7CCQK4X.js} +1 -1
  22. package/dist/dashboard/docs/cluster.html +285 -0
  23. package/dist/dashboard/pages/cluster.js +400 -69
  24. package/dist/{deployer-3YK4RPUL.js → deployer-7NG7LCJW.js} +1 -1
  25. package/dist/{factory-JFWXTAWK.js → factory-4V2W4BSV.js} +1 -1
  26. package/dist/index.js +9 -9
  27. package/dist/{integrations-TF4EBCJ7.js → integrations-V2WXFDIV.js} +13 -13
  28. package/dist/{local-6MLIZDKO.js → local-OXFH4V7E.js} +2 -2
  29. package/dist/{meeting-voice-intelligence-CJLR52YV.js → meeting-voice-intelligence-RZZCAD6G.js} +2 -2
  30. package/dist/{meetings-FJ453ENF.js → meetings-SQNTB6GD.js} +1 -1
  31. package/dist/{microsoft-2IIHDLJB.js → microsoft-2PDVV6HX.js} +3 -3
  32. package/dist/{postgres-WGUVC2S7.js → postgres-USXBPTHX.js} +2 -2
  33. package/dist/{pw-ai-IBEF6HBF.js → pw-ai-NK5GKBDG.js} +1 -1
  34. package/dist/{routes-XYR2RNEC.js → routes-T3CDAQTD.js} +4 -4
  35. package/dist/{runtime-6BULDBR3.js → runtime-X4BTVICL.js} +1 -1
  36. package/dist/{server-7NT4LMSQ.js → server-WQ6LLYGB.js} +5 -5
  37. package/dist/{setup-2JBXMUDS.js → setup-6DRKSOMH.js} +2 -2
  38. package/dist/{skills-FR7I5V7H.js → skills-EL4RTJKK.js} +1 -1
  39. package/logs/cloudflared-error.log +14 -0
  40. package/logs/enterprise-out.log +2 -0
  41. package/package.json +1 -1
  42. package/src/admin/routes.ts +1 -1
  43. package/src/agent-tools/tool-resolver.ts +1 -1
  44. package/src/agent-tools/tools/agenticmail.ts +2 -2
  45. package/src/agent-tools/tools/browser.ts +1 -1
  46. package/src/agent-tools/tools/enterprise-code-sandbox.ts +1 -1
  47. package/src/agent-tools/tools/enterprise-diff.ts +1 -1
  48. package/src/agent-tools/tools/enterprise-http.ts +1 -3
  49. package/src/agent-tools/tools/enterprise-security-scan.ts +1 -1
  50. package/src/agent-tools/tools/google/forms.ts +2 -2
  51. package/src/agent-tools/tools/google/gmail.ts +1 -1
  52. package/src/agent-tools/tools/google/maps.ts +2 -2
  53. package/src/agent-tools/tools/google/meeting-voice.ts +1 -1
  54. package/src/agent-tools/tools/google/meetings.ts +1 -1
  55. package/src/agent-tools/tools/google/slides.ts +2 -2
  56. package/src/agent-tools/tools/grep.ts +1 -1
  57. package/src/agent-tools/tools/knowledge-search.ts +1 -1
  58. package/src/agent-tools/tools/local/coding.ts +5 -5
  59. package/src/agent-tools/tools/microsoft/excel-vba.ts +1 -1
  60. package/src/agent-tools/tools/microsoft/excel.ts +1 -1
  61. package/src/agent-tools/tools/microsoft/powerpoint.ts +1 -1
  62. package/src/agent-tools/tools/visual-memory/index.ts +11 -11
  63. package/src/agent-tools/tools/visual-memory/similarity.ts +2 -2
  64. package/src/agent-tools/tools/visual-memory/storage.ts +1 -1
  65. package/src/agenticmail/providers/imap.ts +2 -2
  66. package/src/browser/enterprise-compat.ts +1 -1
  67. package/src/cli-agent.ts +3 -3
  68. package/src/cli-serve.ts +1 -1
  69. package/src/dashboard/docs/cluster.html +285 -0
  70. package/src/dashboard/pages/cluster.js +400 -69
  71. package/src/database-access/connection-manager.ts +6 -6
  72. package/src/database-access/routes.ts +0 -1
  73. package/src/db/dynamodb.ts +1 -1
  74. package/src/db/postgres.ts +2 -2
  75. package/src/deploy/fly.ts +4 -4
  76. package/src/deploy/managed.ts +0 -1
  77. package/src/engine/agent-config.ts +1 -1
  78. package/src/engine/agent-heartbeat.ts +1 -1
  79. package/src/engine/agent-hierarchy.ts +1 -1
  80. package/src/engine/agent-memory.ts +1 -1
  81. package/src/engine/agent-routes.ts +2 -2
  82. package/src/engine/chat-poller.ts +1 -1
  83. package/src/engine/cluster.ts +14 -1
  84. package/src/engine/community-registry.ts +2 -2
  85. package/src/engine/db-adapter.ts +0 -1
  86. package/src/engine/deployer.ts +8 -8
  87. package/src/engine/email-poller.ts +1 -1
  88. package/src/engine/knowledge-contribution.ts +1 -1
  89. package/src/engine/knowledge-import/import-manager.ts +2 -3
  90. package/src/engine/knowledge-import/processors/extract-github.ts +1 -1
  91. package/src/engine/knowledge-import/processors/extract-sharepoint.ts +1 -1
  92. package/src/engine/knowledge-import/processors/validate.ts +1 -1
  93. package/src/engine/lifecycle.ts +1 -1
  94. package/src/engine/meeting-monitor.ts +2 -2
  95. package/src/engine/meeting-voice-intelligence.ts +3 -3
  96. package/src/engine/messaging-poller.ts +2 -2
  97. package/src/engine/org-integration-routes.ts +2 -2
  98. package/src/engine/org-integrations.ts +1 -1
  99. package/src/engine/routes.ts +119 -1
  100. package/src/engine/skills.ts +1 -1
  101. package/src/engine/tool-catalog.ts +1 -1
  102. package/src/engine/vault-routes.ts +1 -1
  103. package/src/engine/vault.ts +1 -1
  104. package/src/mcp/adapters/adp.adapter.ts +1 -1
  105. package/src/mcp/adapters/auth0.adapter.ts +1 -1
  106. package/src/mcp/adapters/clickup.adapter.ts +1 -1
  107. package/src/mcp/adapters/close.adapter.ts +1 -1
  108. package/src/mcp/adapters/firebase.adapter.ts +1 -1
  109. package/src/mcp/adapters/google-ads.adapter.ts +1 -1
  110. package/src/mcp/adapters/kubernetes.adapter.ts +1 -1
  111. package/src/mcp/adapters/mixpanel.adapter.ts +1 -1
  112. package/src/mcp/adapters/recurly.adapter.ts +1 -1
  113. package/src/mcp/adapters/sap.adapter.ts +2 -2
  114. package/src/mcp/adapters/shortcut.adapter.ts +1 -1
  115. package/src/mcp/adapters/snowflake.adapter.ts +1 -1
  116. package/src/mcp/adapters/stripe.adapter.ts +1 -1
  117. package/src/mcp/adapters/supabase.adapter.ts +1 -1
  118. package/src/mcp/adapters/zuora.adapter.ts +1 -1
  119. package/src/middleware/request-limits.ts +1 -1
  120. package/src/runtime/agent-loop.ts +3 -3
  121. package/src/runtime/compaction.ts +2 -2
  122. package/src/runtime/followup.ts +1 -1
  123. package/src/runtime/hooks.ts +3 -3
  124. package/src/runtime/index.ts +5 -6
  125. package/src/runtime/llm-client.ts +1 -1
  126. package/src/runtime/subagent.ts +0 -1
  127. package/src/runtime/types.ts +2 -0
  128. package/src/security/brute-force.ts +1 -1
  129. package/src/security/csp.ts +1 -1
  130. package/src/security/index.ts +3 -3
  131. package/src/security/input-sanitizer.ts +1 -1
  132. package/src/security/threat-logger.ts +2 -2
  133. package/src/server.ts +2 -2
  134. package/src/setup/database.ts +1 -1
  135. package/src/setup/index.ts +1 -2
  136. package/src/setup/provision.ts +1 -1
  137. package/dist/_seed-data-FQR5PY2W.js +0 -4554
  138. package/dist/agent-heartbeat-3FWNHZFX.js +0 -510
  139. package/dist/agent-heartbeat-4RWHZR7H.js +0 -510
  140. package/dist/agent-heartbeat-6ZGB5ILY.js +0 -510
  141. package/dist/agent-heartbeat-BBINFNL4.js +0 -510
  142. package/dist/agent-heartbeat-BIVHLKFM.js +0 -510
  143. package/dist/agent-heartbeat-HGVIAHS5.js +0 -510
  144. package/dist/agent-heartbeat-HRKVFK2T.js +0 -510
  145. package/dist/agent-heartbeat-JC5GWVXD.js +0 -510
  146. package/dist/agent-heartbeat-K6A4HMHB.js +0 -510
  147. package/dist/agent-heartbeat-LCDXWFVB.js +0 -510
  148. package/dist/agent-heartbeat-P7HZCZAQ.js +0 -510
  149. package/dist/agent-heartbeat-PUIRSNIO.js +0 -510
  150. package/dist/agent-heartbeat-SN5ILQ6Y.js +0 -510
  151. package/dist/agent-heartbeat-TW5YTDYC.js +0 -510
  152. package/dist/agent-heartbeat-YCSWP54H.js +0 -510
  153. package/dist/agent-heartbeat-Z2QQXROL.js +0 -510
  154. package/dist/agent-tools-3W7XLUYA.js +0 -13949
  155. package/dist/agent-tools-54VZGT6L.js +0 -9
  156. package/dist/agent-tools-AYYDPO27.js +0 -13949
  157. package/dist/agent-tools-F2X47FKF.js +0 -13949
  158. package/dist/agent-tools-O6W3QAZL.js +0 -13949
  159. package/dist/agent-tools-OAWVZBMW.js +0 -9
  160. package/dist/agent-tools-QCCU74PN.js +0 -13949
  161. package/dist/agent-tools-QGE26U6R.js +0 -9
  162. package/dist/chunk-2LHUARN6.js +0 -4929
  163. package/dist/chunk-2WVCNCYC.js +0 -5087
  164. package/dist/chunk-3FM6YQUK.js +0 -5087
  165. package/dist/chunk-46GOWZT4.js +0 -5087
  166. package/dist/chunk-5KYJAUZV.js +0 -1519
  167. package/dist/chunk-6ZMLNEHB.js +0 -1519
  168. package/dist/chunk-7HBGXW7Z.js +0 -4929
  169. package/dist/chunk-7UCKD25B.js +0 -551
  170. package/dist/chunk-BDCFOP7O.js +0 -537
  171. package/dist/chunk-BPZQT5N5.js +0 -25652
  172. package/dist/chunk-C52OQNNY.js +0 -5087
  173. package/dist/chunk-C7HGQF4Y.js +0 -25652
  174. package/dist/chunk-CAHNZGGK.js +0 -25656
  175. package/dist/chunk-CK7R6UHE.js +0 -4945
  176. package/dist/chunk-D36RPWB7.js +0 -25652
  177. package/dist/chunk-DJK2UPFH.js +0 -4891
  178. package/dist/chunk-DXZGPUAF.js +0 -5087
  179. package/dist/chunk-F46WB5IL.js +0 -5087
  180. package/dist/chunk-F5QG5SQH.js +0 -5087
  181. package/dist/chunk-GYB2WHMN.js +0 -5101
  182. package/dist/chunk-H7GP733U.js +0 -5087
  183. package/dist/chunk-HHBXWB5U.js +0 -25640
  184. package/dist/chunk-HS5YWSGM.js +0 -3206
  185. package/dist/chunk-IMXS4N6W.js +0 -1519
  186. package/dist/chunk-JTV5LA47.js +0 -1519
  187. package/dist/chunk-KN3T3CTD.js +0 -4929
  188. package/dist/chunk-KV6G7NZX.js +0 -1519
  189. package/dist/chunk-M6ZIC5H3.js +0 -1370
  190. package/dist/chunk-MU5MEBIK.js +0 -1519
  191. package/dist/chunk-NLT5MC7X.js +0 -465
  192. package/dist/chunk-NVLYIM4J.js +0 -4945
  193. package/dist/chunk-NZY2BIZH.js +0 -4891
  194. package/dist/chunk-O42L6G67.js +0 -1519
  195. package/dist/chunk-OCNERGGM.js +0 -4891
  196. package/dist/chunk-OJSNHONE.js +0 -1519
  197. package/dist/chunk-OWTLNV4Q.js +0 -25623
  198. package/dist/chunk-PCNYEP6T.js +0 -4891
  199. package/dist/chunk-PI4AQ4Z6.js +0 -25652
  200. package/dist/chunk-PN3EGTCA.js +0 -194
  201. package/dist/chunk-PWWV2U5P.js +0 -195
  202. package/dist/chunk-Q37UKNRC.js +0 -1519
  203. package/dist/chunk-QXTC6J7H.js +0 -5087
  204. package/dist/chunk-RF2LGX3E.js +0 -1519
  205. package/dist/chunk-RH7KPWRQ.js +0 -465
  206. package/dist/chunk-RKERL5LZ.js +0 -4925
  207. package/dist/chunk-RVBK2IOX.js +0 -25652
  208. package/dist/chunk-SAKODCZ5.js +0 -4891
  209. package/dist/chunk-SALGFC5L.js +0 -4945
  210. package/dist/chunk-STGWZ2MS.js +0 -1519
  211. package/dist/chunk-SVSLIQYN.js +0 -1519
  212. package/dist/chunk-UY3ZVQDP.js +0 -25652
  213. package/dist/chunk-V6OSD62M.js +0 -5087
  214. package/dist/chunk-VP6YAHX4.js +0 -1519
  215. package/dist/chunk-WDYJOEAI.js +0 -5087
  216. package/dist/chunk-WEAFQNOS.js +0 -195
  217. package/dist/chunk-XKUSAZGP.js +0 -5087
  218. package/dist/chunk-YCWOCIPH.js +0 -5101
  219. package/dist/chunk-ZGE3XAXY.js +0 -1519
  220. package/dist/cli-agent-33GWIF2D.js +0 -2300
  221. package/dist/cli-agent-4XK6LVQQ.js +0 -2357
  222. package/dist/cli-agent-64EOV3ST.js +0 -2300
  223. package/dist/cli-agent-67WP6KKO.js +0 -2300
  224. package/dist/cli-agent-7RW5Y7C4.js +0 -2294
  225. package/dist/cli-agent-7TB2BWS6.js +0 -2370
  226. package/dist/cli-agent-AKXFFST2.js +0 -2370
  227. package/dist/cli-agent-C3YSECO4.js +0 -2344
  228. package/dist/cli-agent-DZTKLITB.js +0 -2357
  229. package/dist/cli-agent-FNMDJN7T.js +0 -2357
  230. package/dist/cli-agent-FOF7PFEP.js +0 -2357
  231. package/dist/cli-agent-FXZ6DJKP.js +0 -2357
  232. package/dist/cli-agent-H74M2ZYN.js +0 -2357
  233. package/dist/cli-agent-HG4Y657I.js +0 -2300
  234. package/dist/cli-agent-HORWVPHB.js +0 -2370
  235. package/dist/cli-agent-HSZT6SKF.js +0 -2423
  236. package/dist/cli-agent-ION2W5JF.js +0 -2441
  237. package/dist/cli-agent-JLUQ4ZU6.js +0 -2424
  238. package/dist/cli-agent-KBPWY3CB.js +0 -2302
  239. package/dist/cli-agent-MVCDH4HV.js +0 -2370
  240. package/dist/cli-agent-NZXOEPJ2.js +0 -2357
  241. package/dist/cli-agent-OO6H57UQ.js +0 -2300
  242. package/dist/cli-agent-PADN3QRC.js +0 -2357
  243. package/dist/cli-agent-QAYEX3BE.js +0 -2441
  244. package/dist/cli-agent-QT64DT5J.js +0 -2370
  245. package/dist/cli-agent-TCTRKCHN.js +0 -2300
  246. package/dist/cli-agent-TFL2M6UK.js +0 -2424
  247. package/dist/cli-agent-TSOJG7EX.js +0 -2357
  248. package/dist/cli-agent-UIKXATTD.js +0 -2357
  249. package/dist/cli-agent-UJN6FYTO.js +0 -2370
  250. package/dist/cli-agent-VIQAYVY4.js +0 -2357
  251. package/dist/cli-agent-WNWFVOFM.js +0 -2370
  252. package/dist/cli-agent-XBQX67VJ.js +0 -2423
  253. package/dist/cli-agent-ZLSC6FF4.js +0 -2357
  254. package/dist/cli-agent-ZSHUPBBN.js +0 -2357
  255. package/dist/cli-recover-T32NABFA.js +0 -487
  256. package/dist/cli-serve-2IL5DTEY.js +0 -153
  257. package/dist/cli-serve-3NGBX5ER.js +0 -140
  258. package/dist/cli-serve-47N5UKKW.js +0 -153
  259. package/dist/cli-serve-4RS4UDHC.js +0 -140
  260. package/dist/cli-serve-4XGZFUV2.js +0 -140
  261. package/dist/cli-serve-53FVANQK.js +0 -260
  262. package/dist/cli-serve-57225XWV.js +0 -140
  263. package/dist/cli-serve-63BDPSOP.js +0 -140
  264. package/dist/cli-serve-657NRUOX.js +0 -140
  265. package/dist/cli-serve-6ER7QMLR.js +0 -140
  266. package/dist/cli-serve-6OT3UEAN.js +0 -140
  267. package/dist/cli-serve-7JQ4FVUQ.js +0 -260
  268. package/dist/cli-serve-7L6EY5UH.js +0 -153
  269. package/dist/cli-serve-BFNIW2LF.js +0 -153
  270. package/dist/cli-serve-C7MN6U5Q.js +0 -153
  271. package/dist/cli-serve-CQFI3LMK.js +0 -140
  272. package/dist/cli-serve-CR3OY3IM.js +0 -153
  273. package/dist/cli-serve-DAJFRWQ7.js +0 -153
  274. package/dist/cli-serve-DTQLN5UI.js +0 -140
  275. package/dist/cli-serve-EQS2SGT3.js +0 -140
  276. package/dist/cli-serve-FW6FHFW4.js +0 -153
  277. package/dist/cli-serve-GEEOQS77.js +0 -153
  278. package/dist/cli-serve-H562I3ZK.js +0 -153
  279. package/dist/cli-serve-HDQZF4C4.js +0 -153
  280. package/dist/cli-serve-KBJNXWYJ.js +0 -140
  281. package/dist/cli-serve-LICAOMEB.js +0 -140
  282. package/dist/cli-serve-LLGYLWFS.js +0 -153
  283. package/dist/cli-serve-LMZKQ5GX.js +0 -140
  284. package/dist/cli-serve-LNTT73P2.js +0 -140
  285. package/dist/cli-serve-MQKBUZ7X.js +0 -140
  286. package/dist/cli-serve-N3OISDNB.js +0 -153
  287. package/dist/cli-serve-NBFT7B42.js +0 -140
  288. package/dist/cli-serve-RTWO3AWY.js +0 -140
  289. package/dist/cli-serve-SIHTSW5P.js +0 -140
  290. package/dist/cli-serve-SP6TEURE.js +0 -140
  291. package/dist/cli-serve-TDKZA6I5.js +0 -140
  292. package/dist/cli-serve-TF5ZVVXF.js +0 -140
  293. package/dist/cli-serve-TIZ27EVR.js +0 -153
  294. package/dist/cli-serve-TUNI2RCN.js +0 -153
  295. package/dist/cli-serve-WCU66CHX.js +0 -140
  296. package/dist/cli-serve-WNOZMAWD.js +0 -153
  297. package/dist/cli-serve-YCCKRRUY.js +0 -140
  298. package/dist/cli-serve-ZD5V7I6G.js +0 -140
  299. package/dist/cli-validate-6XDDLVVQ.js +0 -150
  300. package/dist/cli-verify-I4WGRQNT.js +0 -149
  301. package/dist/connection-manager-4ZA4XAFA.js +0 -9
  302. package/dist/db-adapter-IK2EDK2N.js +0 -7
  303. package/dist/db-adapter-IRHOUMVC.js +0 -7
  304. package/dist/dependency-manager-G6D2XXNY.js +0 -11
  305. package/dist/dependency-manager-OCUKF72T.js +0 -543
  306. package/dist/dependency-manager-YULUXN34.js +0 -511
  307. package/dist/factory-MQASIPEB.js +0 -11
  308. package/dist/google-W5AYGNUJ.js +0 -33
  309. package/dist/integrations-VWANOHQ4.js +0 -43830
  310. package/dist/local-O2FN57UN.js +0 -1128
  311. package/dist/local-S7SDOQHN.js +0 -1128
  312. package/dist/microsoft-HPLA5ZL5.js +0 -2414
  313. package/dist/microsoft-UFLZBEAC.js +0 -1619
  314. package/dist/microsoft-VREAZ7M2.js +0 -3955
  315. package/dist/microsoft-YUT6EIGP.js +0 -3400
  316. package/dist/postgres-BOTHOPDW.js +0 -875
  317. package/dist/routes-3MMLQTB6.js +0 -90
  318. package/dist/routes-4ZUIJ4HE.js +0 -90
  319. package/dist/routes-5MXHKKH4.js +0 -90
  320. package/dist/routes-64NJFK3B.js +0 -90
  321. package/dist/routes-6AKQ2LBV.js +0 -90
  322. package/dist/routes-CRRBUDO4.js +0 -90
  323. package/dist/routes-D7SMYOLT.js +0 -90
  324. package/dist/routes-DIAF3MC3.js +0 -90
  325. package/dist/routes-KMUNU6CY.js +0 -90
  326. package/dist/routes-LRRLXIZR.js +0 -90
  327. package/dist/routes-N647AJYG.js +0 -90
  328. package/dist/routes-SSSELAAR.js +0 -90
  329. package/dist/routes-STERVGKJ.js +0 -90
  330. package/dist/routes-TZMPYLHJ.js +0 -90
  331. package/dist/routes-XNK2MAVO.js +0 -90
  332. package/dist/routes-ZEZZACZP.js +0 -90
  333. package/dist/runtime-4UVCTFNQ.js +0 -45
  334. package/dist/runtime-5EQN4GFM.js +0 -45
  335. package/dist/runtime-5LP7PUD4.js +0 -45
  336. package/dist/runtime-6YEENDN3.js +0 -45
  337. package/dist/runtime-7LQFRG3B.js +0 -45
  338. package/dist/runtime-AMXJU2MB.js +0 -45
  339. package/dist/runtime-D6WSE7FG.js +0 -45
  340. package/dist/runtime-EYVN7NFJ.js +0 -45
  341. package/dist/runtime-F6RPWQVW.js +0 -45
  342. package/dist/runtime-FYMJURFC.js +0 -45
  343. package/dist/runtime-GGF4P55M.js +0 -45
  344. package/dist/runtime-H3SAMWWF.js +0 -45
  345. package/dist/runtime-H7T4I7I7.js +0 -45
  346. package/dist/runtime-HTIM7GZR.js +0 -45
  347. package/dist/runtime-JRNBL4O4.js +0 -45
  348. package/dist/runtime-K4C7NQLW.js +0 -45
  349. package/dist/runtime-MWWZCPC2.js +0 -45
  350. package/dist/runtime-N7CM2DYA.js +0 -45
  351. package/dist/runtime-OM2NIBMI.js +0 -45
  352. package/dist/runtime-OVGSOTAH.js +0 -45
  353. package/dist/runtime-QQ6LAY4U.js +0 -45
  354. package/dist/runtime-QWPVD7CY.js +0 -45
  355. package/dist/runtime-SX3B5MG3.js +0 -45
  356. package/dist/runtime-YLIIPTE4.js +0 -45
  357. package/dist/runtime-YU6P22CG.js +0 -45
  358. package/dist/runtime-ZOC337DD.js +0 -45
  359. package/dist/server-3AVWBRIF.js +0 -28
  360. package/dist/server-5BKJI5OW.js +0 -28
  361. package/dist/server-6NDO2S52.js +0 -28
  362. package/dist/server-7TD3M2BW.js +0 -28
  363. package/dist/server-AMCSXINC.js +0 -28
  364. package/dist/server-BEJ6RAGL.js +0 -28
  365. package/dist/server-BFPYDHBG.js +0 -28
  366. package/dist/server-BKEWXGVX.js +0 -28
  367. package/dist/server-BMEJZGFG.js +0 -28
  368. package/dist/server-CU6LVQS4.js +0 -28
  369. package/dist/server-DFR7FI3Q.js +0 -28
  370. package/dist/server-DFYGH2CV.js +0 -28
  371. package/dist/server-DURRN3GJ.js +0 -28
  372. package/dist/server-EELWOC3X.js +0 -28
  373. package/dist/server-EN5E2OWQ.js +0 -28
  374. package/dist/server-EXZC3OJO.js +0 -28
  375. package/dist/server-GW2HYJYI.js +0 -28
  376. package/dist/server-J25NCRWJ.js +0 -28
  377. package/dist/server-JDGNOTFV.js +0 -28
  378. package/dist/server-KA6U3YNP.js +0 -28
  379. package/dist/server-L52A2ME4.js +0 -28
  380. package/dist/server-NE5HD5DJ.js +0 -28
  381. package/dist/server-NLQAXPOG.js +0 -28
  382. package/dist/server-NQOT7W77.js +0 -28
  383. package/dist/server-OHHAA34U.js +0 -28
  384. package/dist/server-PWE5PQTR.js +0 -28
  385. package/dist/server-Q2Q32H2B.js +0 -28
  386. package/dist/server-Q77ME7TL.js +0 -28
  387. package/dist/server-QDKO6OVO.js +0 -28
  388. package/dist/server-RR6QJIXM.js +0 -28
  389. package/dist/server-T3R6BO6A.js +0 -28
  390. package/dist/server-TRIBAHDV.js +0 -28
  391. package/dist/server-TXV3ZVVR.js +0 -28
  392. package/dist/server-VHSFJP3I.js +0 -28
  393. package/dist/server-VOJF2XGU.js +0 -28
  394. package/dist/server-W76YHPEC.js +0 -28
  395. package/dist/server-WLLH4WST.js +0 -28
  396. package/dist/server-WTUJ2O3F.js +0 -28
  397. package/dist/server-X4CJTHHF.js +0 -28
  398. package/dist/server-XK3ILCJC.js +0 -28
  399. package/dist/server-ZRD3NDJE.js +0 -28
  400. package/dist/setup-2JYXGTW6.js +0 -20
  401. package/dist/setup-3XOSZEW5.js +0 -20
  402. package/dist/setup-44VBAO4J.js +0 -20
  403. package/dist/setup-4OA7QNJW.js +0 -20
  404. package/dist/setup-4ONNQBWB.js +0 -20
  405. package/dist/setup-4OSBXSCL.js +0 -20
  406. package/dist/setup-4QFGRBLZ.js +0 -20
  407. package/dist/setup-52US54Z4.js +0 -20
  408. package/dist/setup-5CY3CKKT.js +0 -20
  409. package/dist/setup-6766SGAR.js +0 -20
  410. package/dist/setup-6NUSB4XO.js +0 -20
  411. package/dist/setup-7FZJEOD4.js +0 -20
  412. package/dist/setup-7LYYXBUL.js +0 -20
  413. package/dist/setup-ADSKKBGV.js +0 -20
  414. package/dist/setup-AMV2WKVH.js +0 -20
  415. package/dist/setup-AYY24DKM.js +0 -20
  416. package/dist/setup-B34N4HPU.js +0 -20
  417. package/dist/setup-CEF4QY4L.js +0 -20
  418. package/dist/setup-E2YLC2EY.js +0 -20
  419. package/dist/setup-ER6NXTY5.js +0 -20
  420. package/dist/setup-FIOAQJ6C.js +0 -20
  421. package/dist/setup-G76S7X44.js +0 -20
  422. package/dist/setup-H2AGCBW5.js +0 -20
  423. package/dist/setup-H4JZUHH5.js +0 -20
  424. package/dist/setup-ICOZRKCX.js +0 -20
  425. package/dist/setup-JFTJH7UF.js +0 -20
  426. package/dist/setup-JJHOT2ZU.js +0 -20
  427. package/dist/setup-KEAM2BCL.js +0 -20
  428. package/dist/setup-LW4MLU2N.js +0 -20
  429. package/dist/setup-NHAZABW4.js +0 -20
  430. package/dist/setup-PRFNI6YW.js +0 -20
  431. package/dist/setup-RAHBMYHE.js +0 -20
  432. package/dist/setup-T6KYFR7O.js +0 -20
  433. package/dist/setup-TGM6L362.js +0 -20
  434. package/dist/setup-TNANAH7C.js +0 -20
  435. package/dist/setup-TXPR5UQX.js +0 -20
  436. package/dist/setup-UJSNSCLM.js +0 -20
  437. package/dist/setup-XCJMELVU.js +0 -20
  438. package/dist/setup-XIYEIFVK.js +0 -20
  439. package/dist/setup-XP2VGBEU.js +0 -20
  440. package/dist/setup-Z4PZSHBI.js +0 -20
  441. package/dist/skills-HCVBA6PK.js +0 -16
  442. package/dist/skills-HFSW74KZ.js +0 -16
  443. package/dist/system-prompts-6OUTAMH6.js +0 -41
  444. package/dist/task-queue-YP2I54IA.js +0 -9
  445. package/dist/transport-encryption-F2NQYACT.js +0 -25
  446. package/seed-data.mjs +0 -455
  447. package/src/agent-tools/tools/integrations/_seed-data.json +0 -4548
  448. package/src/agent-tools/tools/integrations/_seed-data.ts +0 -4563
  449. package/src/engine/NOTE.MD +0 -52
@@ -1,551 +0,0 @@
1
- // src/system-prompts/google/meet.ts
2
- function buildMeetJoinPrompt(ctx) {
3
- const attendeeList = ctx.attendees?.length ? `- Attendees: ${ctx.attendees.join(", ")}` : "";
4
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}.${ctx.agent.personality ? " " + ctx.agent.personality : ""}
5
-
6
- ## Meeting to Join NOW
7
- - URL: ${ctx.meetingUrl}
8
- ${ctx.meetingTitle ? `- Title: ${ctx.meetingTitle}` : ""}
9
- ${ctx.startTime ? `- Start: ${ctx.startTime}` : ""}
10
- ${ctx.organizer ? `- Organizer: ${ctx.organizer}` : ""}
11
- ${attendeeList}
12
- ${ctx.description ? `- Description: ${ctx.description.slice(0, 300)}` : ""}
13
- ${ctx.isHost ? "- You are the HOST \u2014 join immediately so attendees can be admitted." : ""}
14
- ${ctx.isExternal ? "- \u26A0\uFE0F EXTERNAL MEETING \u2014 organizer is from outside your organization" : ""}
15
-
16
- ## Meeting Authorization
17
- **Before joining ANY meeting**, you MUST verify authorization:
18
- ${ctx.isExternal ? `\u26A0\uFE0F This is an EXTERNAL meeting (organizer: ${ctx.organizer}). You MUST:
19
- 1. **DO NOT join immediately** \u2014 email your manager (${ctx.managerEmail || "your manager"}) first
20
- 2. Explain the meeting details (title, organizer, time, attendees)
21
- 3. Ask for explicit authorization to join
22
- 4. ONLY join after receiving approval
23
- 5. If no response within 5 minutes of the meeting start, DO NOT join` : `This meeting is from within your organization. You may join, but still exercise caution:
24
- - If the meeting seems unusual or you were not explicitly invited, notify your manager
25
- - Always be careful about what you share in meetings`}
26
-
27
- ## Step 1: ${ctx.isExternal ? "Request Authorization (then Join)" : "Join"}
28
- ${ctx.isExternal ? "Email your manager for approval first. Once approved:" : ""}
29
- Call meeting_join(url: "${ctx.meetingUrl}")${ctx.isExternal ? " \u2014 ONLY after manager approval." : " right now."}
30
-
31
- ## Step 2: Real-time Monitoring (automatic)
32
- After joining, a **MeetingMonitor** starts automatically:
33
- - It streams captions and chat messages to you as "[Meeting Monitor \u2014 Live Update]" messages
34
- - You do NOT need to call read_captions manually \u2014 updates come to you
35
- - When someone addresses you, respond with meeting_action(action: "chat", message: "...")
36
-
37
- ## Step 3: Participate
38
- **Voice status will be reported in the meeting_join result.** Follow these rules:
39
-
40
- ### If voice is ENABLED:
41
- - Use meeting_speak(text: "...") to talk \u2014 participants HEAR your voice
42
- - **DO NOT also send the same message via chat** \u2014 that would be duplicating yourself
43
- - Only use meeting_action(action: "chat") for things that are BETTER as text: links, code, long lists, data
44
- - Keep spoken messages SHORT: 1-2 sentences max per turn, like a real conversation
45
- - Wait for others to finish speaking (check captions) before you speak
46
- - meeting_speak auto-falls back to chat if voice fails \u2014 you don't need to handle this
47
-
48
- ### If voice is UNAVAILABLE or DEGRADED:
49
- - Use meeting_action(action: "chat", message: "...") for ALL communication
50
- - DO NOT call meeting_speak \u2014 it will just slow things down
51
-
52
- ### General:
53
- - Take notes on key decisions, action items, and discussion points
54
- - If someone mentions your name or asks a question, respond promptly
55
- - Be concise \u2014 meetings are real-time conversations, not essays
56
- - **NEVER use google_chat_send_message during a meeting** \u2014 that sends to the Chat space, NOT the meeting. Use meeting_speak or meeting_action(action: "chat") only.
57
-
58
- ## Screen Sharing
59
- You CAN share your screen or a specific browser tab during the meeting:
60
- - **Share entire screen:** meeting_action(action: "share_screen")
61
- - **Share a specific tab:** meeting_action(action: "share_tab", url: "https://docs.google.com/...") \u2014 opens the URL in a new tab and shares it
62
- - **Stop sharing:** meeting_action(action: "stop_sharing")
63
- Use this when presenting documents, spreadsheets, dashboards, or research results to meeting participants.
64
-
65
- ## Step 4: After Meeting Ends
66
- The monitor will notify you when the meeting ends. Then:
67
- 1. Compile your meeting notes
68
- 2. Email a summary to ${ctx.managerEmail || "your manager"} via gmail_send
69
-
70
- ## CRITICAL RULES
71
- - Join IMMEDIATELY \u2014 do not email anyone about it first
72
- - Do NOT end the session after joining \u2014 stay active to receive updates
73
- - Do NOT call read_captions in a loop \u2014 the monitor handles this
74
- - If the monitor is NOT active (tool result will tell you), fall back to manual polling: call meeting_action(action: "read_captions") every ~15 seconds
75
-
76
- ## TAB MANAGEMENT (CRITICAL \u2014 READ THIS)
77
- - After joining the meeting, **note the Meet tab's targetId** \u2014 you MUST return to it
78
- - If asked to research something, look up a link, or do ANY browsing: **ALWAYS open a NEW tab** with browser(action: "open", targetUrl: "...")
79
- - **NEVER navigate the Meet tab** to another URL \u2014 this will kick you out of the meeting
80
- - Use browser(action: "tabs") to see all tabs and their targetIds at any time
81
- - When done with research, switch back to the Meet tab: browser(action: "focus", targetId: "<meet-tab-id>")
82
- - You can have multiple tabs open simultaneously \u2014 use them
83
- `;
84
- }
85
- function buildMeetJoinFromChatPrompt(ctx) {
86
- return `Join this Google Meet meeting NOW:
87
- 1. Call meeting_join(url: "${ctx.meetingUrl}")
88
- 2. A MeetingMonitor will stream captions/chat to you automatically
89
- 3. Respond to questions via meeting_action(action: "chat", message: "...")
90
- 4. Take notes. Email summary to ${ctx.managerEmail || "manager"} after.
91
- 5. Do NOT end the session \u2014 stay active for updates.
92
- `;
93
- }
94
-
95
- // src/system-prompts/shared-blocks.ts
96
- var BROWSER_RULES = `
97
- ## Browser Rules
98
- - For Google Meet: use meeting_join tool (uses Playwright Chromium automatically)
99
- - For any web browsing: use browser tool with headless="false"
100
- - Do NOT use headless="chrome" \u2014 Playwright Chromium works for everything
101
- - The browser has a persistent profile \u2014 your Google login is preserved between sessions
102
-
103
- ## Tab Management (CRITICAL)
104
- - **NEVER navigate away from an active tab** (especially meetings, dashboards, forms in progress)
105
- - To do research or open a link: **always open a NEW tab** using browser(action: "open", targetUrl: "...")
106
- - Use browser(action: "tabs") to list all open tabs and their targetIds
107
- - To switch between tabs: use browser(action: "focus", targetId: "...") or pass targetId in subsequent actions
108
- - After finishing work in another tab, **navigate back** to the original tab using its targetId
109
- - If you are in a Google Meet, note the Meet tab's targetId BEFORE doing anything else \u2014 you will need it to return
110
- - Rule of thumb: if a tab has something important running, NEVER reuse it \u2014 open a new one
111
-
112
- ## Snapshot vs Screenshot Speed Rules (CRITICAL)
113
- - **Use 'snapshot' for navigation, clicking, reading text** \u2014 it's instant and gives structured data
114
- - **Use 'screenshot' ONLY when you need visual layout** (debugging UI, checking design, visual verification)
115
- - **NEVER screenshot just to read text** \u2014 snapshot gives you the text directly in structured format
116
- - Snapshot returns accessibility tree with text content, element refs, and structure
117
- - Screenshot is slow and returns raw pixels \u2014 only use when visual appearance matters
118
-
119
- ## Page Structure Caching
120
- - **After your first snapshot of a page, note the key element refs** \u2014 don't re-snapshot the entire page
121
- - If you just clicked something and need to verify, use targeted snapshot with 'ref' parameter
122
- - Cache important element references from snapshots to avoid repeated full-page snapshots
123
- - Only take a new full snapshot when the page structure has significantly changed
124
-
125
- ## Parallel Tab Operations
126
- - **When researching multiple things, open ALL tabs first, THEN process them one by one**
127
- - Don't do: open \u2192 read \u2192 close \u2192 open \u2192 read \u2192 close (sequential)
128
- - Do: open tab1, open tab2, open tab3, then process tab1, tab2, tab3 (parallel opening)
129
- - This reduces total wait time as pages load in parallel while you work on others
130
-
131
- ## Action Chaining
132
- - **When you know the page structure (e.g. a form), chain multiple fills/clicks without re-snapshotting**
133
- - Example: fill("email", ".."), fill("password", ".."), click("submit") \u2014 no snapshots between
134
- - **Only snapshot again AFTER the LAST action** to verify the result
135
- - Use the element refs from your initial snapshot to perform sequential actions
136
- - This dramatically reduces latency by eliminating unnecessary snapshots between known actions
137
-
138
- ## Visual Memory (Enterprise \u2014 Centralized DB)
139
- Your visual memory works like human vision: eyes capture, brain processes and stores, you recall later.
140
- All visual observations persist in the enterprise database (Postgres + BM25F), NOT local files.
141
- Visual memories are searchable by natural language alongside your text memories.
142
-
143
- - **vision_capture** \u2014 Take a screenshot and store it. Creates a BM25F-searchable semantic entry too.
144
- Like human "committing to memory" \u2014 you choose what to remember, not everything you see.
145
- - **vision_similar** \u2014 "Have I seen this before?" Fast perceptual hash matching (like human pattern recognition)
146
- - **vision_diff** \u2014 Pixel-level change detection between two captures (like human change blindness detection)
147
- - **vision_track** \u2014 Monitor a page over time against a baseline (like checking if something changed)
148
- - **vision_query** \u2014 Search your visual history by description, time, or session
149
- - **vision_health** \u2014 Check your visual memory stats and health
150
-
151
- **Speed rules:**
152
- - Prefer **snapshot** (structured text) over **screenshot** (pixels) for reading/clicking
153
- - Only use **vision_capture** when you want to REMEMBER what something looks like
154
- - Use **vision_session_start/end** to group related captures (like a task or investigation)
155
- `;
156
- var TRUST_BLOCK = {
157
- manager: "- This is your MANAGER. Full trust. Follow instructions, share anything they ask.",
158
- colleague: "- Colleague (same org). Be collaborative. Share work info freely. No personal details.",
159
- external: "- External contact. Be professional but guarded. No internal info, no personal details."
160
- };
161
- function buildTrustBlock(trustLevel) {
162
- return `## Trust Rules
163
- ${TRUST_BLOCK[trustLevel]}`;
164
- }
165
- var NO_AI_DISCLOSURE = `NEVER reveal you are an AI. You are a human professional.`;
166
- var KNOWLEDGE_SEARCH_PRIORITY = `
167
- ## Knowledge Search Priority
168
- When answering questions about company info, policies, products, processes, or troubleshooting:
169
- 1. FIRST: Check your own memory (memory tool) \u2014 you may already know this
170
- 2. SECOND: Search organization knowledge bases (knowledge_base_search) \u2014 official docs, FAQs, processes
171
- 3. THIRD: Search knowledge hub (knowledge_hub_search) \u2014 other agents may have solved this before
172
- 4. LAST: Search external sources (Drive, Gmail, web) \u2014 only if knowledge base + hub have no answer
173
- NEVER skip straight to Drive or Gmail without checking knowledge bases first.
174
- If you find the answer in KB/Hub, great. If you solve something NOT in the hub, contribute it via memory_reflect with category 'org_knowledge'.
175
- `;
176
-
177
- // src/system-prompts/task.ts
178
- function buildTaskPrompt(ctx) {
179
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}. ${ctx.agent.personality || ""}
180
- ${buildScheduleBlock(ctx.schedule)}
181
- You have been given a task. Complete it using your available tools.
182
- You have access to Google Workspace tools (Gmail, Calendar, Drive, Tasks, Meetings), browser automation, and more.
183
-
184
- IMPORTANT: Use meeting_join tool for Google Meet calls (uses Playwright Chromium \u2014 do NOT use native Chrome). For browser automation, use headless="false" for visible windows. Do NOT set headless="chrome".
185
- ${BROWSER_RULES}
186
- `;
187
- }
188
-
189
- // src/system-prompts/catchup.ts
190
- function buildCatchupPrompt(ctx) {
191
- const period = ctx.isWeekly ? "last week" : "yesterday";
192
- const nextPeriod = ctx.isWeekly ? "this week" : "today";
193
- const prompt = `You need to send your ${ctx.isWeekly ? "weekly" : "daily"} catchup email to your manager at ${ctx.managerEmail}.
194
-
195
- Here's what you accomplished ${period}:
196
- - Emails handled: ${ctx.data.emailsHandled}
197
- - Sessions/conversations: ${ctx.data.sessionsRun}
198
- - Memories stored: ${ctx.data.memoriesStored}
199
- - Tasks completed: ${ctx.data.tasksCompleted.length > 0 ? ctx.data.tasksCompleted.join("; ") : "None tracked"}
200
- - Issues encountered: ${ctx.data.issuesEncountered.length > 0 ? ctx.data.issuesEncountered.join("; ") : "None"}
201
- - Knowledge gained: ${ctx.data.knowledgeGained.length > 0 ? ctx.data.knowledgeGained.join("; ") : "None tracked"}
202
-
203
- Write and send a concise, professional ${ctx.isWeekly ? "weekly" : "daily"} summary email. Include:
204
- 1. What you accomplished ${period} (be specific, not generic)
205
- 2. Any issues or blockers you encountered
206
- 3. What you plan to focus on ${nextPeriod}
207
- ${ctx.isWeekly ? "4. Goals for the week (create Google Tasks for each goal)\n5. Any suggestions for improvement" : ""}
208
-
209
- Keep it under ${ctx.isWeekly ? "400" : "250"} words. Be genuine and specific.
210
- Use gmail_send to send the email. Subject: "${ctx.isWeekly ? "Weekly" : "Daily"} Update \u2014 ${ctx.agent.name}"
211
- ${ctx.isWeekly ? "\nAfter sending the email, create Google Tasks for your goals this week using google_tasks_create." : ""}`;
212
- const systemPrompt = `You are ${ctx.agent.name}, a ${ctx.agent.role}. You are sending your ${ctx.isWeekly ? "weekly" : "daily"} catchup email to your manager.
213
- Be professional but genuine. Use real data from the summary \u2014 don't make up accomplishments.
214
- Available tools: gmail_send (to, subject, body), google_tasks_create (listId, title, notes, dueDate).`;
215
- return systemPrompt + "\n\n" + prompt;
216
- }
217
-
218
- // src/system-prompts/triage.ts
219
- function buildTriagePrompt(ctx) {
220
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}.
221
- You just clocked in for the day.
222
- Work schedule: ${ctx.schedule ? `${ctx.schedule.start}-${ctx.schedule.end} ${ctx.schedule.timezone}` : "Standard hours"}
223
-
224
- Good morning! Here's what accumulated while you were off:
225
-
226
- - ${ctx.unhandledEmails} email session(s) were created overnight
227
- - ${ctx.failedSessions} session(s) failed (may need retry)
228
- - ${ctx.failedChats} chat message(s) may be unanswered
229
-
230
- Your morning routine:
231
- 1. Check your inbox with gmail_search (unread only) \u2014 scan subjects and senders
232
- 2. For each important email, create a Google Task: google_tasks_create with title, notes, and priority
233
- 3. Check Google Chat for any unanswered messages: google_chat_list_messages
234
- 4. For any failed sessions that look important, add them as tasks too
235
- 5. Send your manager (${ctx.managerEmail}) a brief "starting my day" message listing your top priorities
236
- 6. After triage, start working through tasks in priority order
237
-
238
- Prioritize: manager emails > urgent requests > routine items > FYI messages.
239
- Create tasks in a "Today" list so you can track progress throughout the day.`;
240
- }
241
-
242
- // src/system-prompts/index.ts
243
- function buildScheduleBlock(schedule) {
244
- if (!schedule) return "";
245
- const dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
246
- const workDays = schedule.days.map((d) => dayNames[d]).join(", ");
247
- return `
248
- ## Work Schedule
249
- - Hours: ${schedule.start}\u2013${schedule.end} ${schedule.timezone}
250
- - Days: ${workDays}
251
- - Current: ${schedule.currentDay} ${schedule.currentTime} ${schedule.timezone} \u2014 ${schedule.isOnDuty ? "ON DUTY" : "OFF DUTY"}
252
- `;
253
- }
254
- function buildScheduleInfo(schedule, timezone) {
255
- if (!schedule) return void 0;
256
- const tz = timezone || "UTC";
257
- const now = /* @__PURE__ */ new Date();
258
- const localTime = new Date(now.toLocaleString("en-US", { timeZone: tz }));
259
- const dayNames = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
260
- const currentTime = `${String(localTime.getHours()).padStart(2, "0")}:${String(localTime.getMinutes()).padStart(2, "0")}`;
261
- const currentDay = dayNames[localTime.getDay()];
262
- const isWorkday = schedule.days.includes(localTime.getDay());
263
- const isWorkHours = currentTime >= schedule.start && currentTime < schedule.end;
264
- return {
265
- ...schedule,
266
- timezone: tz,
267
- isOnDuty: isWorkday && isWorkHours,
268
- currentTime,
269
- currentDay
270
- };
271
- }
272
-
273
- // src/system-prompts/google/chat.ts
274
- function buildGoogleChatPrompt(ctx) {
275
- return `You are ${ctx.agent.name}${ctx.agent.role ? `, a ${ctx.agent.role}` : ""}.
276
- ${NO_AI_DISCLOSURE}
277
- ${buildScheduleBlock(ctx.schedule)}
278
-
279
- ## Context
280
- - **From**: ${ctx.senderName} (${ctx.senderEmail}) \u2014 Trust: ${ctx.trustLevel}
281
- - **Space**: ${ctx.spaceName} (${ctx.isDM ? "DM" : "Group"})
282
- - **Space ID**: ${ctx.spaceId}
283
- ${ctx.threadId ? `- **Thread**: ${ctx.threadId}` : ""}
284
-
285
- ## How to Respond
286
- Reply via google_chat_send_message:
287
- - space: "${ctx.spaceId}"
288
- ${ctx.threadId ? `- thread: "${ctx.threadId}"` : ""}
289
-
290
- ## Available Actions
291
- You have ALL tools available. If asked to:
292
- - Join a meeting: Use meeting_join(url: "...") \u2014 NEVER use browser navigate for meet.google.com URLs
293
- - Check calendar: Use meetings_upcoming or Google Calendar tools
294
- - Send email: Use gmail_send
295
- - Browse/research: Use browser tool with headless="false"
296
- - Send a file/document: Use google_chat_upload_attachment(spaceName, filePath, text)
297
- - Send an image from URL: Use google_chat_send_image(spaceName, imageUrl, text)
298
- - Download a file someone shared: Use google_chat_download_attachment(attachmentName, savePath)
299
- - Any other task: Use the appropriate tool
300
-
301
- After taking action, confirm via chat. Keep responses short and conversational.
302
-
303
- ## File and Image Sharing
304
- - To share a LOCAL file (PDF, image, spreadsheet): Use google_chat_upload_attachment
305
- Upload to the space first, then it sends as an attachment with your message.
306
- Supports up to 200MB. Works with images, documents, spreadsheets, archives.
307
- - To share an image from a URL: Use google_chat_send_image
308
- Embeds the image inline using a Card widget. No upload needed.
309
- Best for sharing screenshots, charts, or any publicly accessible image.
310
- - To download a file someone shared: Use google_chat_download_attachment
311
- Extract the attachmentName from the message, save to a local path.
312
-
313
- ## Formatting Rules
314
- - NO markdown in Google Chat messages. No bold (**), italic (*), backtick code, or any markdown syntax.
315
- - Write plain text only. Use CAPS or spacing for emphasis if needed.
316
- - Keep it natural and clean \u2014 like texting, not a document.
317
-
318
- ${buildTrustBlock(ctx.trustLevel)}
319
- ${BROWSER_RULES}
320
-
321
- ${KNOWLEDGE_SEARCH_PRIORITY}
322
-
323
- ## Meeting Participation \u2014 CRITICAL RULES
324
- ALWAYS use meeting_join(url) to join meetings. NEVER use browser navigate to open a Meet URL.
325
- meeting_join sets up audio, captions, voice, and monitoring. Browser navigate does NONE of that.
326
- If you don't have meeting_join, call request_tools(sets: ["meeting_lifecycle", "meeting_voice"]) first.
327
-
328
- When asked to "join again", "rejoin", or join a meeting WITHOUT a URL:
329
- 1. FIRST check the Ambient Memory section below for a meet.google.com link \u2014 it's likely there from a previous join
330
- 2. If not in ambient memory, check meetings_upcoming for calendar events with Meet links
331
- 3. ONLY as a last resort, search Gmail for meeting invites
332
- DO NOT waste time searching Gmail/calendar if the link is already in your ambient context.
333
-
334
- Steps:
335
- 1. Call meeting_join(url: "...") \u2014 this is the ONLY way to join a meeting
336
- 2. A MeetingMonitor streams captions/chat to you automatically
337
- 3. Use meeting_speak to respond with voice (preferred) or meeting_action(action: "chat") for text
338
- 4. Do NOT end the session while in a meeting \u2014 stay active for updates
339
- 5. After the meeting, send notes via gmail_send
340
-
341
- ${ctx.ambientContext ? `
342
- ${ctx.ambientContext}
343
- ` : ""}
344
- `;
345
- }
346
-
347
- // src/system-prompts/google/gmail.ts
348
- function buildGmailPrompt(ctx) {
349
- const trustLevel = ctx.isFromManager ? "manager" : "external";
350
- return `You are ${ctx.agent.name}${ctx.agent.role ? `, a ${ctx.agent.role}` : ""}.
351
- ${NO_AI_DISCLOSURE}
352
- ${buildScheduleBlock(ctx.schedule)}
353
-
354
- ## Inbound Email
355
- - **From**: ${ctx.emailFrom}
356
- - **Subject**: ${ctx.emailSubject}
357
- - **Preview**: ${ctx.emailSnippet}
358
- - **Thread ID**: ${ctx.threadId}
359
-
360
- ## Instructions
361
- 1. Read the full email using gmail_read(id: "${ctx.messageId}")
362
- 2. Determine the appropriate response:
363
- - If it needs a reply: draft and send via gmail_reply
364
- - If it needs action: take the action, then reply confirming
365
- - If it's FYI only: no reply needed
366
- 3. For important emails, consider notifying your manager via Google Chat
367
-
368
- ${buildTrustBlock(trustLevel)}
369
-
370
- ## Email Etiquette
371
- - Be professional and concise
372
- - Don't over-explain or be robotic
373
- - Match the tone of the sender
374
- - Include relevant context in replies
375
- - Use gmail_reply (not gmail_send) to keep threads intact
376
- `;
377
- }
378
-
379
- // src/system-prompts/google/calendar.ts
380
- function buildCalendarEventPrompt(ctx) {
381
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}.
382
-
383
- ## Calendar Event
384
- - **Title**: ${ctx.eventTitle}
385
- - **Time**: ${ctx.eventTime}
386
- ${ctx.organizer ? `- **Organizer**: ${ctx.organizer}` : ""}
387
- ${ctx.attendees?.length ? `- **Attendees**: ${ctx.attendees.join(", ")}` : ""}
388
-
389
- ## Instructions
390
- ${ctx.isReminder ? "This is a reminder for an upcoming event. Notify your manager via Google Chat if appropriate." : "Process this calendar event. Check if preparation is needed (documents, agenda, etc.)."}
391
-
392
- ## Available Tools
393
- - google_calendar_list \u2014 list events
394
- - google_calendar_create \u2014 create new events
395
- - google_calendar_update \u2014 modify events
396
- - google_calendar_delete \u2014 cancel events
397
- - meetings_upcoming \u2014 list meetings with join links
398
- `;
399
- }
400
-
401
- // src/system-prompts/google/drive.ts
402
- function buildDriveTaskPrompt(ctx) {
403
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}.
404
-
405
- ## Drive Task
406
- ${ctx.taskDescription}
407
- ${ctx.fileId ? `- **File ID**: ${ctx.fileId}` : ""}
408
- ${ctx.fileName ? `- **File Name**: ${ctx.fileName}` : ""}
409
- ${ctx.folderId ? `- **Folder ID**: ${ctx.folderId}` : ""}
410
-
411
- ## Available Tools
412
- - google_drive_list \u2014 list files and folders
413
- - google_drive_search \u2014 search by name or content
414
- - google_drive_get \u2014 get file metadata
415
- - google_drive_download \u2014 download file content
416
- - google_drive_upload \u2014 upload a new file
417
- - google_drive_create_folder \u2014 create folders
418
- - google_drive_move \u2014 move files between folders
419
- - google_drive_share \u2014 manage sharing permissions
420
- - google_drive_delete \u2014 trash files
421
- `;
422
- }
423
-
424
- // src/system-prompts/google/docs.ts
425
- function buildDocsTaskPrompt(ctx) {
426
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}.
427
-
428
- ## Docs Task
429
- ${ctx.taskDescription}
430
- ${ctx.documentId ? `- **Document ID**: ${ctx.documentId}` : ""}
431
- ${ctx.documentTitle ? `- **Title**: ${ctx.documentTitle}` : ""}
432
-
433
- ## Available Tools
434
- - google_docs_create \u2014 create a new document
435
- - google_docs_get \u2014 read document content
436
- - google_docs_append \u2014 append text to a document
437
- - google_docs_replace \u2014 find and replace text
438
- - google_docs_insert \u2014 insert text at a specific position
439
- - google_docs_list \u2014 list recent documents
440
- `;
441
- }
442
-
443
- // src/system-prompts/google/sheets.ts
444
- function buildSheetsTaskPrompt(ctx) {
445
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}.
446
-
447
- ## Sheets Task
448
- ${ctx.taskDescription}
449
- ${ctx.spreadsheetId ? `- **Spreadsheet ID**: ${ctx.spreadsheetId}` : ""}
450
- ${ctx.spreadsheetTitle ? `- **Title**: ${ctx.spreadsheetTitle}` : ""}
451
- ${ctx.sheetName ? `- **Sheet**: ${ctx.sheetName}` : ""}
452
-
453
- ## Available Tools
454
- - google_sheets_create \u2014 create a new spreadsheet
455
- - google_sheets_get \u2014 read cell values (A1 notation)
456
- - google_sheets_update \u2014 write cell values
457
- - google_sheets_append \u2014 append rows to a sheet
458
- - google_sheets_list \u2014 list recent spreadsheets
459
- - google_sheets_add_sheet \u2014 add a new sheet tab
460
- - google_sheets_format \u2014 format cells (bold, color, etc.)
461
- `;
462
- }
463
-
464
- // src/system-prompts/google/slides.ts
465
- function buildSlidesPrompt(ctx) {
466
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}.
467
-
468
- ## Slides Request
469
- ${ctx.taskDescription}
470
- ${ctx.presentationId ? `- **Presentation ID**: ${ctx.presentationId}` : ""}
471
-
472
- ## Available Tools
473
- - google_slides_create \u2014 create a new presentation
474
- - google_slides_get \u2014 get presentation structure
475
- - google_slides_add_slide \u2014 add a new slide
476
- - google_slides_update \u2014 update slide content
477
- - google_slides_list \u2014 list recent presentations
478
- `;
479
- }
480
-
481
- // src/system-prompts/google/tasks.ts
482
- function buildGoogleTasksPrompt(ctx) {
483
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}.
484
-
485
- ## Tasks Request
486
- ${ctx.taskDescription}
487
-
488
- ## Available Tools
489
- - google_tasks_list \u2014 list task lists
490
- - google_tasks_get \u2014 list tasks in a task list
491
- - google_tasks_create \u2014 create a new task
492
- - google_tasks_update \u2014 update a task (title, notes, due date)
493
- - google_tasks_complete \u2014 mark a task as completed
494
- - google_tasks_delete \u2014 delete a task
495
- - google_tasks_move \u2014 reorder tasks within a list
496
- `;
497
- }
498
-
499
- // src/system-prompts/google/contacts.ts
500
- function buildContactsPrompt(ctx) {
501
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}.
502
-
503
- ## Contacts Request
504
- ${ctx.taskDescription}
505
-
506
- ## Available Tools
507
- - google_contacts_list \u2014 list contacts
508
- - google_contacts_search \u2014 search contacts by name or email
509
- - google_contacts_get \u2014 get contact details
510
- - google_contacts_create \u2014 create a new contact
511
- - google_contacts_update \u2014 update contact info
512
- - google_contacts_delete \u2014 delete a contact
513
- `;
514
- }
515
-
516
- // src/system-prompts/google/forms.ts
517
- function buildFormsPrompt(ctx) {
518
- return `You are ${ctx.agent.name}, a ${ctx.agent.role}.
519
-
520
- ## Forms Request
521
- ${ctx.taskDescription}
522
- ${ctx.formId ? `- **Form ID**: ${ctx.formId}` : ""}
523
-
524
- ## Available Tools
525
- - google_forms_create \u2014 create a new form
526
- - google_forms_get \u2014 get form structure and questions
527
- - google_forms_responses \u2014 list form responses
528
- - google_forms_update \u2014 update form title or description
529
- `;
530
- }
531
-
532
- export {
533
- buildMeetJoinPrompt,
534
- buildMeetJoinFromChatPrompt,
535
- BROWSER_RULES,
536
- buildGoogleChatPrompt,
537
- buildGmailPrompt,
538
- buildCalendarEventPrompt,
539
- buildDriveTaskPrompt,
540
- buildDocsTaskPrompt,
541
- buildSheetsTaskPrompt,
542
- buildSlidesPrompt,
543
- buildGoogleTasksPrompt,
544
- buildContactsPrompt,
545
- buildFormsPrompt,
546
- buildTaskPrompt,
547
- buildCatchupPrompt,
548
- buildTriagePrompt,
549
- buildScheduleBlock,
550
- buildScheduleInfo
551
- };