@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,537 +0,0 @@
1
- import {
2
- __esm
3
- } from "./chunk-KFQGP6VL.js";
4
-
5
- // src/engine/task-queue.ts
6
- import { randomUUID } from "crypto";
7
- function safeJson(v, fallback) {
8
- if (!v || typeof v !== "string") return fallback;
9
- try {
10
- return JSON.parse(v);
11
- } catch {
12
- return fallback;
13
- }
14
- }
15
- var TaskQueueManager;
16
- var init_task_queue = __esm({
17
- "src/engine/task-queue.ts"() {
18
- TaskQueueManager = class {
19
- tasks = /* @__PURE__ */ new Map();
20
- listeners = /* @__PURE__ */ new Set();
21
- db;
22
- initialized = false;
23
- constructor(db) {
24
- this.db = db;
25
- }
26
- async init() {
27
- if (this.initialized) return;
28
- if (this.db) {
29
- if (!this.db.all && this.db.query) this.db.all = this.db.query.bind(this.db);
30
- if (!this.db.get && this.db.query) this.db.get = async (sql, params) => {
31
- const rows = await this.db.query(sql, params);
32
- return rows?.[0] ?? null;
33
- };
34
- try {
35
- await this.db.run(`CREATE TABLE IF NOT EXISTS task_pipeline (
36
- id TEXT PRIMARY KEY,
37
- org_id TEXT NOT NULL,
38
- assigned_to TEXT NOT NULL,
39
- assigned_to_name TEXT NOT NULL DEFAULT '',
40
- created_by TEXT NOT NULL DEFAULT 'system',
41
- created_by_name TEXT NOT NULL DEFAULT '',
42
- title TEXT NOT NULL,
43
- description TEXT NOT NULL DEFAULT '',
44
- category TEXT NOT NULL DEFAULT 'custom',
45
- tags TEXT NOT NULL DEFAULT '[]',
46
- status TEXT NOT NULL DEFAULT 'created',
47
- priority TEXT NOT NULL DEFAULT 'normal',
48
- progress INTEGER NOT NULL DEFAULT 0,
49
- created_at TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP,
50
- assigned_at TEXT,
51
- started_at TEXT,
52
- completed_at TEXT,
53
- estimated_duration_ms INTEGER,
54
- actual_duration_ms INTEGER,
55
- result TEXT,
56
- error TEXT,
57
- parent_task_id TEXT,
58
- related_agent_ids TEXT NOT NULL DEFAULT '[]',
59
- session_id TEXT,
60
- model TEXT,
61
- fallback_model TEXT,
62
- model_used TEXT,
63
- tokens_used INTEGER NOT NULL DEFAULT 0,
64
- cost_usd REAL NOT NULL DEFAULT 0,
65
- chain_id TEXT,
66
- chain_seq INTEGER NOT NULL DEFAULT 0,
67
- delegated_from TEXT,
68
- delegated_to TEXT,
69
- delegation_type TEXT,
70
- customer_context TEXT,
71
- activity_log TEXT NOT NULL DEFAULT '[]',
72
- source TEXT
73
- )`);
74
- await this.db.run(`CREATE INDEX IF NOT EXISTS idx_task_pipeline_org ON task_pipeline(org_id)`);
75
- await this.db.run(`CREATE INDEX IF NOT EXISTS idx_task_pipeline_agent ON task_pipeline(assigned_to)`);
76
- await this.db.run(`CREATE INDEX IF NOT EXISTS idx_task_pipeline_status ON task_pipeline(status)`);
77
- await this.db.run(`CREATE INDEX IF NOT EXISTS idx_task_pipeline_created ON task_pipeline(created_at)`);
78
- for (const col of [
79
- ["chain_id", "TEXT"],
80
- ["chain_seq", "INTEGER DEFAULT 0"],
81
- ["delegated_from", "TEXT"],
82
- ["delegated_to", "TEXT"],
83
- ["delegation_type", "TEXT"],
84
- ["customer_context", "TEXT"],
85
- ["activity_log", "TEXT DEFAULT '[]'"],
86
- ["source", "TEXT"],
87
- ["delivery_context", "TEXT"]
88
- ]) {
89
- try {
90
- await this.db.run(`ALTER TABLE task_pipeline ADD COLUMN ${col[0]} ${col[1]}`);
91
- } catch {
92
- }
93
- }
94
- try {
95
- await this.db.run(`CREATE INDEX IF NOT EXISTS idx_task_pipeline_chain ON task_pipeline(chain_id)`);
96
- } catch {
97
- }
98
- const cutoff = new Date(Date.now() - 24 * 60 * 60 * 1e3).toISOString();
99
- const rows = await this.db.all(`SELECT * FROM task_pipeline WHERE status IN ('created','assigned','in_progress') OR created_at > ? ORDER BY created_at DESC LIMIT 500`, [cutoff]);
100
- for (const row of rows || []) {
101
- this.tasks.set(row.id, this.rowToTask(row));
102
- }
103
- } catch (e) {
104
- console.error("[TaskQueue] DB init error:", e.message);
105
- }
106
- }
107
- this.initialized = true;
108
- }
109
- /**
110
- * Sync active tasks from database into memory.
111
- * Called by the task poller before each cycle to catch externally-added or reset tasks.
112
- */
113
- async syncFromDb() {
114
- if (!this.db) return;
115
- try {
116
- const rows = await this.db.all(
117
- `SELECT * FROM task_pipeline WHERE status IN ('created','assigned','in_progress') ORDER BY created_at DESC LIMIT 200`
118
- );
119
- if (!rows) return;
120
- let added = 0;
121
- for (const row of rows) {
122
- const existing = this.tasks.get(row.id);
123
- const dbTask = this.rowToTask(row);
124
- if (!existing) {
125
- this.tasks.set(row.id, dbTask);
126
- added++;
127
- } else if (existing.status !== dbTask.status || existing.sessionId !== dbTask.sessionId) {
128
- this.tasks.set(row.id, dbTask);
129
- }
130
- }
131
- if (added > 0) console.log(`[TaskQueue] syncFromDb: added ${added} tasks from DB`);
132
- } catch (e) {
133
- console.error("[TaskQueue] syncFromDb error:", e.message);
134
- }
135
- }
136
- // ─── CRUD ─────────────────────────────────────────────
137
- async createTask(opts) {
138
- await this.init();
139
- const now = (/* @__PURE__ */ new Date()).toISOString();
140
- const task = {
141
- id: randomUUID(),
142
- orgId: opts.orgId,
143
- assignedTo: opts.assignedTo,
144
- assignedToName: opts.assignedToName,
145
- createdBy: opts.createdBy || "system",
146
- createdByName: opts.createdByName || "System",
147
- title: opts.title,
148
- description: opts.description || "",
149
- category: opts.category || "custom",
150
- tags: opts.tags || [],
151
- status: "created",
152
- priority: opts.priority || "normal",
153
- progress: 0,
154
- createdAt: now,
155
- assignedAt: null,
156
- startedAt: null,
157
- completedAt: null,
158
- estimatedDurationMs: opts.estimatedDurationMs || null,
159
- actualDurationMs: null,
160
- result: null,
161
- error: null,
162
- parentTaskId: opts.parentTaskId || null,
163
- relatedAgentIds: opts.relatedAgentIds || [],
164
- sessionId: opts.sessionId || null,
165
- model: opts.model || null,
166
- fallbackModel: opts.fallbackModel || null,
167
- modelUsed: null,
168
- tokensUsed: 0,
169
- costUsd: 0,
170
- chainId: opts.chainId || randomUUID(),
171
- chainSeq: opts.chainSeq || 0,
172
- delegatedFrom: opts.delegatedFrom || null,
173
- delegatedTo: null,
174
- delegationType: opts.delegationType || null,
175
- customerContext: opts.customerContext || null,
176
- source: opts.source || null,
177
- deliveryContext: opts.deliveryContext || null,
178
- activityLog: [{ ts: now, type: "created", agent: opts.createdBy || "system", detail: "Task created" }]
179
- };
180
- this.tasks.set(task.id, task);
181
- await this.persist(task);
182
- this.emit({ type: "task_created", task, timestamp: now });
183
- return task;
184
- }
185
- /**
186
- * Delegate a task from one agent to another, creating a new linked task in the chain.
187
- */
188
- async delegateTask(taskId, opts) {
189
- const source = this.tasks.get(taskId);
190
- if (!source) return null;
191
- const now = (/* @__PURE__ */ new Date()).toISOString();
192
- source.activityLog.push({ ts: now, type: "delegated", agent: source.assignedTo, detail: `Delegated to ${opts.toAgentName} (${opts.delegationType || "delegation"})` });
193
- const delegated = await this.createTask({
194
- orgId: source.orgId,
195
- assignedTo: opts.toAgent,
196
- assignedToName: opts.toAgentName,
197
- createdBy: source.assignedTo,
198
- createdByName: source.assignedToName,
199
- title: opts.title || source.title,
200
- description: opts.description || source.description,
201
- category: source.category,
202
- tags: [...source.tags],
203
- priority: opts.priority || source.priority,
204
- parentTaskId: source.parentTaskId || void 0,
205
- relatedAgentIds: [.../* @__PURE__ */ new Set([...source.relatedAgentIds, source.assignedTo])],
206
- chainId: source.chainId || void 0,
207
- chainSeq: (source.chainSeq || 0) + 1,
208
- delegatedFrom: source.id,
209
- delegationType: opts.delegationType || "delegation",
210
- customerContext: source.customerContext,
211
- deliveryContext: source.deliveryContext
212
- });
213
- source.delegatedTo = delegated.id;
214
- await this.persist(source);
215
- this.emit({ type: "task_updated", task: source, timestamp: now });
216
- return delegated;
217
- }
218
- /**
219
- * Get full task chain by chainId — all tasks in a delegation flow.
220
- */
221
- getTaskChain(chainId) {
222
- const chain = [];
223
- for (const t of this.tasks.values()) {
224
- if (t.chainId === chainId) chain.push(t);
225
- }
226
- return chain.sort((a, b) => (a.chainSeq || 0) - (b.chainSeq || 0));
227
- }
228
- async updateTask(taskId, updates) {
229
- await this.init();
230
- const task = this.tasks.get(taskId);
231
- if (!task) return null;
232
- const now = (/* @__PURE__ */ new Date()).toISOString();
233
- if (updates.status === "assigned" && !task.assignedAt) {
234
- task.assignedAt = now;
235
- task.activityLog.push({ ts: now, type: "assigned", agent: task.assignedTo, detail: "Task assigned" });
236
- }
237
- if (updates.status === "in_progress" && !task.startedAt) {
238
- task.startedAt = now;
239
- task.activityLog.push({ ts: now, type: "started", agent: task.assignedTo, detail: "Work started" });
240
- }
241
- if (updates.progress !== void 0 && updates.progress !== task.progress) {
242
- task.activityLog.push({ ts: now, type: "progress", agent: task.assignedTo, detail: `Progress: ${updates.progress}%` });
243
- }
244
- if (updates.status === "completed" || updates.status === "failed" || updates.status === "cancelled") {
245
- task.completedAt = now;
246
- if (task.startedAt) task.actualDurationMs = new Date(now).getTime() - new Date(task.startedAt).getTime();
247
- if (updates.status === "completed") {
248
- task.progress = 100;
249
- const dur = task.actualDurationMs ? ` in ${Math.round(task.actualDurationMs / 1e3)}s` : "";
250
- const tokens = updates.tokensUsed ? ` (${updates.tokensUsed.toLocaleString()} tokens` + (updates.costUsd ? `, $${updates.costUsd.toFixed(4)}` : "") + ")" : "";
251
- task.activityLog.push({ ts: now, type: "completed", agent: task.assignedTo, detail: `Task completed${dur}${tokens}` });
252
- }
253
- if (updates.status === "failed") {
254
- task.activityLog.push({ ts: now, type: "failed", agent: task.assignedTo, detail: `Task failed: ${updates.error || "Unknown error"}` });
255
- }
256
- if (updates.status === "cancelled") {
257
- task.activityLog.push({ ts: now, type: "cancelled", agent: task.assignedTo, detail: "Task cancelled" });
258
- }
259
- }
260
- Object.assign(task, updates);
261
- await this.persist(task);
262
- const eventType = updates.status === "completed" ? "task_completed" : updates.status === "failed" ? "task_failed" : updates.status === "cancelled" ? "task_cancelled" : updates.progress !== void 0 ? "task_progress" : "task_updated";
263
- this.emit({ type: eventType, task, timestamp: now });
264
- return task;
265
- }
266
- getTask(taskId) {
267
- return this.tasks.get(taskId);
268
- }
269
- // ─── Queries ──────────────────────────────────────────
270
- getActiveTasks(orgId) {
271
- const active = [];
272
- for (const t of this.tasks.values()) {
273
- if (t.status === "created" || t.status === "assigned" || t.status === "in_progress") {
274
- if (!orgId || t.orgId === orgId) active.push(t);
275
- }
276
- }
277
- return active.sort((a, b) => {
278
- const pri = { urgent: 0, high: 1, normal: 2, low: 3 };
279
- return pri[a.priority] - pri[b.priority] || new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
280
- });
281
- }
282
- getAllTasks(orgId, limit = 100) {
283
- const all = [];
284
- for (const t of this.tasks.values()) {
285
- if (!orgId || t.orgId === orgId) all.push(t);
286
- }
287
- return all.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime()).slice(0, limit);
288
- }
289
- getAgentTasks(agentId, includeCompleted = false) {
290
- const res = [];
291
- for (const t of this.tasks.values()) {
292
- if (t.assignedTo === agentId) {
293
- if (includeCompleted || t.status === "created" || t.status === "assigned" || t.status === "in_progress") {
294
- res.push(t);
295
- }
296
- }
297
- }
298
- return res.sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime());
299
- }
300
- async getTaskBySessionId(sessionId) {
301
- if (this.db) {
302
- try {
303
- const row = await this.db.get(
304
- `SELECT * FROM task_pipeline WHERE session_id = ? AND status = 'in_progress' ORDER BY created_at DESC LIMIT 1`,
305
- [sessionId]
306
- );
307
- return row ? this.rowToTask(row) : null;
308
- } catch {
309
- }
310
- }
311
- for (const task of this.tasks.values()) {
312
- if (task.sessionId === sessionId && task.status === "in_progress") return task;
313
- }
314
- return null;
315
- }
316
- async getTaskHistory(orgId, limit = 50, offset = 0) {
317
- if (this.db) {
318
- try {
319
- const rows = await this.db.all(
320
- `SELECT * FROM task_pipeline WHERE org_id = ? ORDER BY created_at DESC LIMIT ? OFFSET ?`,
321
- [orgId, limit, offset]
322
- );
323
- return (rows || []).map((r) => this.rowToTask(r));
324
- } catch {
325
- }
326
- }
327
- return this.getAllTasks(orgId, limit);
328
- }
329
- async getPipelineStats(orgId) {
330
- const stats = {
331
- created: 0,
332
- assigned: 0,
333
- inProgress: 0,
334
- completed: 0,
335
- failed: 0,
336
- cancelled: 0,
337
- total: 0,
338
- todayCompleted: 0,
339
- todayFailed: 0,
340
- todayCreated: 0,
341
- avgDurationMs: 0,
342
- totalCost: 0,
343
- totalTokens: 0,
344
- topAgents: []
345
- };
346
- const todayStart = /* @__PURE__ */ new Date();
347
- todayStart.setHours(0, 0, 0, 0);
348
- const todayMs = todayStart.getTime();
349
- let durationSum = 0;
350
- let durationCount = 0;
351
- const agentMap = /* @__PURE__ */ new Map();
352
- for (const t of this.tasks.values()) {
353
- if (orgId && t.orgId !== orgId) continue;
354
- stats.total++;
355
- if (t.status === "created") stats.created++;
356
- else if (t.status === "assigned") stats.assigned++;
357
- else if (t.status === "in_progress") stats.inProgress++;
358
- else if (t.status === "completed") stats.completed++;
359
- else if (t.status === "failed") stats.failed++;
360
- else if (t.status === "cancelled") stats.cancelled++;
361
- const createdMs = new Date(t.createdAt).getTime();
362
- if (createdMs >= todayMs) stats.todayCreated++;
363
- if (t.completedAt && new Date(t.completedAt).getTime() >= todayMs) {
364
- if (t.status === "completed") stats.todayCompleted++;
365
- if (t.status === "failed") stats.todayFailed++;
366
- }
367
- if (t.actualDurationMs) {
368
- durationSum += t.actualDurationMs;
369
- durationCount++;
370
- }
371
- stats.totalCost += t.costUsd || 0;
372
- stats.totalTokens += t.tokensUsed || 0;
373
- if (t.assignedTo) {
374
- if (!agentMap.has(t.assignedTo)) agentMap.set(t.assignedTo, { name: t.assignedToName || t.assignedTo, completed: 0, active: 0 });
375
- const a = agentMap.get(t.assignedTo);
376
- if (t.status === "completed") a.completed++;
377
- if (t.status === "in_progress" || t.status === "assigned") a.active++;
378
- }
379
- }
380
- stats.avgDurationMs = durationCount > 0 ? Math.round(durationSum / durationCount) : 0;
381
- stats.topAgents = Array.from(agentMap.entries()).map(([agent, d]) => ({ agent, ...d })).sort((a, b) => b.completed + b.active - (a.completed + a.active)).slice(0, 5);
382
- if (this.db) {
383
- try {
384
- const todayISO = todayStart.toISOString();
385
- const dbToday = await this.db.get(
386
- `SELECT COUNT(*) FILTER (WHERE status='completed' AND completed_at >= ?) as dc,
387
- COUNT(*) FILTER (WHERE status='failed' AND completed_at >= ?) as df,
388
- COUNT(*) FILTER (WHERE created_at >= ?) as dn
389
- FROM task_pipeline` + (orgId ? ` WHERE org_id = ?` : ""),
390
- orgId ? [todayISO, todayISO, todayISO, orgId] : [todayISO, todayISO, todayISO]
391
- ).catch(() => null);
392
- if (!dbToday || dbToday.dc === void 0) {
393
- const r1 = await this.db.get(`SELECT COUNT(*) as c FROM task_pipeline WHERE status='completed' AND completed_at >= ?`, [todayISO]).catch(() => null);
394
- const r2 = await this.db.get(`SELECT COUNT(*) as c FROM task_pipeline WHERE status='failed' AND completed_at >= ?`, [todayISO]).catch(() => null);
395
- const r3 = await this.db.get(`SELECT COUNT(*) as c FROM task_pipeline WHERE created_at >= ?`, [todayISO]).catch(() => null);
396
- if (r1?.c > stats.todayCompleted) stats.todayCompleted = r1.c;
397
- if (r2?.c > stats.todayFailed) stats.todayFailed = r2.c;
398
- if (r3?.c > stats.todayCreated) stats.todayCreated = r3.c;
399
- } else {
400
- if (dbToday.dc > stats.todayCompleted) stats.todayCompleted = dbToday.dc;
401
- if (dbToday.df > stats.todayFailed) stats.todayFailed = dbToday.df;
402
- if (dbToday.dn > stats.todayCreated) stats.todayCreated = dbToday.dn;
403
- }
404
- } catch {
405
- }
406
- }
407
- return stats;
408
- }
409
- // ─── SSE Subscriptions ────────────────────────────────
410
- subscribe(listener) {
411
- this.listeners.add(listener);
412
- return () => {
413
- this.listeners.delete(listener);
414
- };
415
- }
416
- emit(event) {
417
- for (const l of this.listeners) {
418
- try {
419
- l(event);
420
- } catch {
421
- }
422
- }
423
- }
424
- // ─── Persistence ──────────────────────────────────────
425
- async persist(task) {
426
- if (!this.db) return;
427
- try {
428
- await this.db.run(`INSERT INTO task_pipeline (
429
- id, org_id, assigned_to, assigned_to_name, created_by, created_by_name,
430
- title, description, category, tags, status, priority, progress,
431
- created_at, assigned_at, started_at, completed_at,
432
- estimated_duration_ms, actual_duration_ms, result, error,
433
- parent_task_id, related_agent_ids, session_id,
434
- model, fallback_model, model_used, tokens_used, cost_usd,
435
- chain_id, chain_seq, delegated_from, delegated_to, delegation_type,
436
- customer_context, activity_log, source, delivery_context
437
- ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
438
- ON CONFLICT (id) DO UPDATE SET
439
- status=EXCLUDED.status, priority=EXCLUDED.priority, progress=EXCLUDED.progress,
440
- assigned_at=EXCLUDED.assigned_at, started_at=EXCLUDED.started_at, completed_at=EXCLUDED.completed_at,
441
- actual_duration_ms=EXCLUDED.actual_duration_ms, result=EXCLUDED.result, error=EXCLUDED.error,
442
- model_used=EXCLUDED.model_used, tokens_used=EXCLUDED.tokens_used, cost_usd=EXCLUDED.cost_usd,
443
- session_id=EXCLUDED.session_id, title=EXCLUDED.title, description=EXCLUDED.description,
444
- delegated_to=EXCLUDED.delegated_to, activity_log=EXCLUDED.activity_log`, [
445
- task.id,
446
- task.orgId,
447
- task.assignedTo,
448
- task.assignedToName,
449
- task.createdBy,
450
- task.createdByName,
451
- task.title,
452
- task.description,
453
- task.category,
454
- JSON.stringify(task.tags),
455
- task.status,
456
- task.priority,
457
- task.progress,
458
- task.createdAt,
459
- task.assignedAt,
460
- task.startedAt,
461
- task.completedAt,
462
- task.estimatedDurationMs,
463
- task.actualDurationMs,
464
- task.result ? JSON.stringify(task.result) : null,
465
- task.error,
466
- task.parentTaskId,
467
- JSON.stringify(task.relatedAgentIds),
468
- task.sessionId,
469
- task.model,
470
- task.fallbackModel,
471
- task.modelUsed,
472
- task.tokensUsed,
473
- task.costUsd,
474
- task.chainId,
475
- task.chainSeq,
476
- task.delegatedFrom,
477
- task.delegatedTo,
478
- task.delegationType,
479
- task.customerContext ? JSON.stringify(task.customerContext) : null,
480
- JSON.stringify(task.activityLog || []),
481
- task.source,
482
- task.deliveryContext ? JSON.stringify(task.deliveryContext) : null
483
- ]);
484
- } catch (e) {
485
- console.error("[TaskQueue] persist error:", e.message);
486
- }
487
- }
488
- rowToTask(row) {
489
- return {
490
- id: row.id,
491
- orgId: row.org_id,
492
- assignedTo: row.assigned_to,
493
- assignedToName: row.assigned_to_name || "",
494
- createdBy: row.created_by || "system",
495
- createdByName: row.created_by_name || "",
496
- title: row.title,
497
- description: row.description || "",
498
- category: row.category || "custom",
499
- tags: safeJson(row.tags, []),
500
- status: row.status,
501
- priority: row.priority || "normal",
502
- progress: row.progress || 0,
503
- createdAt: row.created_at,
504
- assignedAt: row.assigned_at || null,
505
- startedAt: row.started_at || null,
506
- completedAt: row.completed_at || null,
507
- estimatedDurationMs: row.estimated_duration_ms || null,
508
- actualDurationMs: row.actual_duration_ms || null,
509
- result: safeJson(row.result, null),
510
- error: row.error || null,
511
- parentTaskId: row.parent_task_id || null,
512
- relatedAgentIds: safeJson(row.related_agent_ids, []),
513
- sessionId: row.session_id || null,
514
- model: row.model || null,
515
- fallbackModel: row.fallback_model || null,
516
- modelUsed: row.model_used || null,
517
- tokensUsed: row.tokens_used || 0,
518
- costUsd: row.cost_usd || 0,
519
- chainId: row.chain_id || null,
520
- chainSeq: row.chain_seq || 0,
521
- delegatedFrom: row.delegated_from || null,
522
- delegatedTo: row.delegated_to || null,
523
- delegationType: row.delegation_type || null,
524
- customerContext: safeJson(row.customer_context, null),
525
- source: row.source || null,
526
- deliveryContext: safeJson(row.delivery_context, null),
527
- activityLog: safeJson(row.activity_log, [])
528
- };
529
- }
530
- };
531
- }
532
- });
533
-
534
- export {
535
- TaskQueueManager,
536
- init_task_queue
537
- };