@agenticmail/enterprise 0.5.325 → 0.5.327
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{agent-heartbeat-77N4OOQL.js → agent-heartbeat-ZFKA6GMI.js} +2 -2
- package/dist/{agent-tools-BNSTIK4P.js → agent-tools-R6RSBDJQ.js} +25 -25
- package/dist/{agenticmail-EDO5XOTP.js → agenticmail-QMWQNUY2.js} +1 -1
- package/dist/{browser-tool-JF3LNRGX.js → browser-tool-4KWE37RL.js} +4 -4
- package/dist/{chunk-JEGYVXYC.js → chunk-CQV7GGHT.js} +1 -1
- package/dist/{chunk-VBTHTPZ6.js → chunk-DWHJYAV6.js} +27 -27
- package/dist/{chunk-HKCKMCPY.js → chunk-G4YSECQ4.js} +2 -2
- package/dist/{chunk-7HBGXW7Z.js → chunk-GNABVGDZ.js} +31 -32
- package/dist/{chunk-DMD24UFZ.js → chunk-HTT6LUPP.js} +19 -19
- package/dist/{chunk-3FMK32KQ.js → chunk-LHQP7QRX.js} +9 -9
- package/dist/{chunk-6C5PKREN.js → chunk-NOAQG5CY.js} +1 -1
- package/dist/{chunk-4EKXYIJF.js → chunk-PAHT4ABL.js} +4 -4
- package/dist/{chunk-JNMDD7JY.js → chunk-RHO7WRVJ.js} +5 -5
- package/dist/{chunk-BQM7MBPS.js → chunk-WYDVMFGJ.js} +5 -5
- package/dist/{chunk-TPLVQFXM.js → chunk-X2YL6KSY.js} +13 -13
- package/dist/{cli-agent-ZIIFI77N.js → cli-agent-2NBPF3GN.js} +11 -11
- package/dist/{cli-recover-XEZ2SKPU.js → cli-recover-TTOR7CJR.js} +2 -2
- package/dist/{cli-serve-BDGOOOKQ.js → cli-serve-5VFU4GR4.js} +3 -3
- package/dist/{cli-verify-CZIITRED.js → cli-verify-WICBVLAM.js} +2 -2
- package/dist/cli.js +5 -5
- package/dist/{connection-manager-KAWEUWUR.js → connection-manager-Y7CCQK4X.js} +1 -1
- package/dist/dashboard/pages/cluster.js +1 -1
- package/dist/{deployer-3YK4RPUL.js → deployer-7NG7LCJW.js} +1 -1
- package/dist/{factory-JFWXTAWK.js → factory-4V2W4BSV.js} +1 -1
- package/dist/index.js +9 -9
- package/dist/{integrations-TF4EBCJ7.js → integrations-V2WXFDIV.js} +13 -13
- package/dist/{local-6MLIZDKO.js → local-OXFH4V7E.js} +2 -2
- package/dist/{meeting-voice-intelligence-CJLR52YV.js → meeting-voice-intelligence-RZZCAD6G.js} +2 -2
- package/dist/{meetings-FJ453ENF.js → meetings-SQNTB6GD.js} +1 -1
- package/dist/{microsoft-2IIHDLJB.js → microsoft-2PDVV6HX.js} +3 -3
- package/dist/{postgres-WGUVC2S7.js → postgres-USXBPTHX.js} +2 -2
- package/dist/{pw-ai-IBEF6HBF.js → pw-ai-NK5GKBDG.js} +1 -1
- package/dist/{routes-XYR2RNEC.js → routes-T3CDAQTD.js} +4 -4
- package/dist/{runtime-6BULDBR3.js → runtime-X4BTVICL.js} +1 -1
- package/dist/{server-7NT4LMSQ.js → server-WQ6LLYGB.js} +5 -5
- package/dist/{setup-2JBXMUDS.js → setup-6DRKSOMH.js} +2 -2
- package/dist/{skills-FR7I5V7H.js → skills-EL4RTJKK.js} +1 -1
- package/logs/cloudflared-error.log +12 -0
- package/logs/enterprise-out.log +2 -0
- package/package.json +1 -1
- package/src/admin/routes.ts +1 -1
- package/src/agent-tools/tool-resolver.ts +1 -1
- package/src/agent-tools/tools/agenticmail.ts +2 -2
- package/src/agent-tools/tools/browser.ts +1 -1
- package/src/agent-tools/tools/enterprise-code-sandbox.ts +1 -1
- package/src/agent-tools/tools/enterprise-diff.ts +1 -1
- package/src/agent-tools/tools/enterprise-http.ts +1 -3
- package/src/agent-tools/tools/enterprise-security-scan.ts +1 -1
- package/src/agent-tools/tools/google/forms.ts +2 -2
- package/src/agent-tools/tools/google/gmail.ts +1 -1
- package/src/agent-tools/tools/google/maps.ts +2 -2
- package/src/agent-tools/tools/google/meeting-voice.ts +1 -1
- package/src/agent-tools/tools/google/meetings.ts +1 -1
- package/src/agent-tools/tools/google/slides.ts +2 -2
- package/src/agent-tools/tools/grep.ts +1 -1
- package/src/agent-tools/tools/knowledge-search.ts +1 -1
- package/src/agent-tools/tools/local/coding.ts +5 -5
- package/src/agent-tools/tools/microsoft/excel-vba.ts +1 -1
- package/src/agent-tools/tools/microsoft/excel.ts +1 -1
- package/src/agent-tools/tools/microsoft/powerpoint.ts +1 -1
- package/src/agent-tools/tools/visual-memory/index.ts +11 -11
- package/src/agent-tools/tools/visual-memory/similarity.ts +2 -2
- package/src/agent-tools/tools/visual-memory/storage.ts +1 -1
- package/src/agenticmail/providers/imap.ts +2 -2
- package/src/browser/enterprise-compat.ts +1 -1
- package/src/cli-agent.ts +3 -3
- package/src/cli-serve.ts +1 -1
- package/src/dashboard/pages/cluster.js +1 -1
- package/src/database-access/connection-manager.ts +6 -6
- package/src/database-access/routes.ts +0 -1
- package/src/db/dynamodb.ts +1 -1
- package/src/db/postgres.ts +2 -2
- package/src/deploy/fly.ts +4 -4
- package/src/deploy/managed.ts +0 -1
- package/src/engine/agent-config.ts +1 -1
- package/src/engine/agent-heartbeat.ts +1 -1
- package/src/engine/agent-hierarchy.ts +1 -1
- package/src/engine/agent-memory.ts +1 -1
- package/src/engine/agent-routes.ts +2 -2
- package/src/engine/chat-poller.ts +1 -1
- package/src/engine/community-registry.ts +2 -2
- package/src/engine/db-adapter.ts +0 -1
- package/src/engine/deployer.ts +8 -8
- package/src/engine/email-poller.ts +1 -1
- package/src/engine/knowledge-contribution.ts +1 -1
- package/src/engine/knowledge-import/import-manager.ts +2 -3
- package/src/engine/knowledge-import/processors/extract-github.ts +1 -1
- package/src/engine/knowledge-import/processors/extract-sharepoint.ts +1 -1
- package/src/engine/knowledge-import/processors/validate.ts +1 -1
- package/src/engine/lifecycle.ts +1 -1
- package/src/engine/meeting-monitor.ts +2 -2
- package/src/engine/meeting-voice-intelligence.ts +3 -3
- package/src/engine/messaging-poller.ts +2 -2
- package/src/engine/org-integration-routes.ts +2 -2
- package/src/engine/org-integrations.ts +1 -1
- package/src/engine/routes.ts +2 -2
- package/src/engine/skills.ts +1 -1
- package/src/engine/tool-catalog.ts +1 -1
- package/src/engine/vault-routes.ts +1 -1
- package/src/engine/vault.ts +1 -1
- package/src/mcp/adapters/adp.adapter.ts +1 -1
- package/src/mcp/adapters/auth0.adapter.ts +1 -1
- package/src/mcp/adapters/clickup.adapter.ts +1 -1
- package/src/mcp/adapters/close.adapter.ts +1 -1
- package/src/mcp/adapters/firebase.adapter.ts +1 -1
- package/src/mcp/adapters/google-ads.adapter.ts +1 -1
- package/src/mcp/adapters/kubernetes.adapter.ts +1 -1
- package/src/mcp/adapters/mixpanel.adapter.ts +1 -1
- package/src/mcp/adapters/recurly.adapter.ts +1 -1
- package/src/mcp/adapters/sap.adapter.ts +2 -2
- package/src/mcp/adapters/shortcut.adapter.ts +1 -1
- package/src/mcp/adapters/snowflake.adapter.ts +1 -1
- package/src/mcp/adapters/stripe.adapter.ts +1 -1
- package/src/mcp/adapters/supabase.adapter.ts +1 -1
- package/src/mcp/adapters/zuora.adapter.ts +1 -1
- package/src/middleware/request-limits.ts +1 -1
- package/src/runtime/agent-loop.ts +3 -3
- package/src/runtime/compaction.ts +2 -2
- package/src/runtime/followup.ts +1 -1
- package/src/runtime/hooks.ts +3 -3
- package/src/runtime/index.ts +5 -6
- package/src/runtime/llm-client.ts +1 -1
- package/src/runtime/subagent.ts +0 -1
- package/src/runtime/types.ts +2 -0
- package/src/security/brute-force.ts +1 -1
- package/src/security/csp.ts +1 -1
- package/src/security/index.ts +3 -3
- package/src/security/input-sanitizer.ts +1 -1
- package/src/security/threat-logger.ts +2 -2
- package/src/server.ts +2 -2
- package/src/setup/database.ts +1 -1
- package/src/setup/index.ts +1 -2
- package/src/setup/provision.ts +1 -1
- package/dist/_seed-data-FQR5PY2W.js +0 -4554
- package/dist/agent-heartbeat-3FWNHZFX.js +0 -510
- package/dist/agent-heartbeat-4RWHZR7H.js +0 -510
- package/dist/agent-heartbeat-6ZGB5ILY.js +0 -510
- package/dist/agent-heartbeat-BBINFNL4.js +0 -510
- package/dist/agent-heartbeat-BIVHLKFM.js +0 -510
- package/dist/agent-heartbeat-HGVIAHS5.js +0 -510
- package/dist/agent-heartbeat-HRKVFK2T.js +0 -510
- package/dist/agent-heartbeat-JC5GWVXD.js +0 -510
- package/dist/agent-heartbeat-K6A4HMHB.js +0 -510
- package/dist/agent-heartbeat-LCDXWFVB.js +0 -510
- package/dist/agent-heartbeat-P7HZCZAQ.js +0 -510
- package/dist/agent-heartbeat-PUIRSNIO.js +0 -510
- package/dist/agent-heartbeat-SN5ILQ6Y.js +0 -510
- package/dist/agent-heartbeat-TW5YTDYC.js +0 -510
- package/dist/agent-heartbeat-UF2RKKS2.js +0 -510
- package/dist/agent-heartbeat-YCSWP54H.js +0 -510
- package/dist/agent-heartbeat-Z2QQXROL.js +0 -510
- package/dist/agent-tools-3W7XLUYA.js +0 -13949
- package/dist/agent-tools-54VZGT6L.js +0 -9
- package/dist/agent-tools-AYYDPO27.js +0 -13949
- package/dist/agent-tools-F2X47FKF.js +0 -13949
- package/dist/agent-tools-O6W3QAZL.js +0 -13949
- package/dist/agent-tools-OAWVZBMW.js +0 -9
- package/dist/agent-tools-QCCU74PN.js +0 -13949
- package/dist/agent-tools-QGE26U6R.js +0 -9
- package/dist/chunk-2LHUARN6.js +0 -4929
- package/dist/chunk-2WVCNCYC.js +0 -5087
- package/dist/chunk-3FM6YQUK.js +0 -5087
- package/dist/chunk-46GOWZT4.js +0 -5087
- package/dist/chunk-4DBWU3P5.js +0 -4929
- package/dist/chunk-5KYJAUZV.js +0 -1519
- package/dist/chunk-6ZMLNEHB.js +0 -1519
- package/dist/chunk-7UCKD25B.js +0 -551
- package/dist/chunk-BDCFOP7O.js +0 -537
- package/dist/chunk-BPZQT5N5.js +0 -25652
- package/dist/chunk-C52OQNNY.js +0 -5087
- package/dist/chunk-C7HGQF4Y.js +0 -25652
- package/dist/chunk-CAHNZGGK.js +0 -25656
- package/dist/chunk-CK7R6UHE.js +0 -4945
- package/dist/chunk-CQYLRIQ3.js +0 -25938
- package/dist/chunk-D36RPWB7.js +0 -25652
- package/dist/chunk-DJK2UPFH.js +0 -4891
- package/dist/chunk-DM7FTF7W.js +0 -4929
- package/dist/chunk-DXZGPUAF.js +0 -5087
- package/dist/chunk-F46WB5IL.js +0 -5087
- package/dist/chunk-F5QG5SQH.js +0 -5087
- package/dist/chunk-GYB2WHMN.js +0 -5101
- package/dist/chunk-H7GP733U.js +0 -5087
- package/dist/chunk-HHBXWB5U.js +0 -25640
- package/dist/chunk-HS5YWSGM.js +0 -3206
- package/dist/chunk-IMXS4N6W.js +0 -1519
- package/dist/chunk-JTV5LA47.js +0 -1519
- package/dist/chunk-KN3T3CTD.js +0 -4929
- package/dist/chunk-KV6G7NZX.js +0 -1519
- package/dist/chunk-M6ZIC5H3.js +0 -1370
- package/dist/chunk-MU5MEBIK.js +0 -1519
- package/dist/chunk-NLT5MC7X.js +0 -465
- package/dist/chunk-NVLYIM4J.js +0 -4945
- package/dist/chunk-NZY2BIZH.js +0 -4891
- package/dist/chunk-O42L6G67.js +0 -1519
- package/dist/chunk-OCNERGGM.js +0 -4891
- package/dist/chunk-OJSNHONE.js +0 -1519
- package/dist/chunk-OWTLNV4Q.js +0 -25623
- package/dist/chunk-PCNYEP6T.js +0 -4891
- package/dist/chunk-PI4AQ4Z6.js +0 -25652
- package/dist/chunk-PN3EGTCA.js +0 -194
- package/dist/chunk-PWWV2U5P.js +0 -195
- package/dist/chunk-Q37UKNRC.js +0 -1519
- package/dist/chunk-QXTC6J7H.js +0 -5087
- package/dist/chunk-RF2LGX3E.js +0 -1519
- package/dist/chunk-RH7KPWRQ.js +0 -465
- package/dist/chunk-RKERL5LZ.js +0 -4925
- package/dist/chunk-RVBK2IOX.js +0 -25652
- package/dist/chunk-SAKODCZ5.js +0 -4891
- package/dist/chunk-SALGFC5L.js +0 -4945
- package/dist/chunk-STGWZ2MS.js +0 -1519
- package/dist/chunk-SVSLIQYN.js +0 -1519
- package/dist/chunk-UY3ZVQDP.js +0 -25652
- package/dist/chunk-V6OSD62M.js +0 -5087
- package/dist/chunk-VP6YAHX4.js +0 -1519
- package/dist/chunk-WD72IOF2.js +0 -5101
- package/dist/chunk-WDYJOEAI.js +0 -5087
- package/dist/chunk-WEAFQNOS.js +0 -195
- package/dist/chunk-XKUSAZGP.js +0 -5087
- package/dist/chunk-YCWOCIPH.js +0 -5101
- package/dist/chunk-ZGE3XAXY.js +0 -1519
- package/dist/chunk-ZGFDTW4H.js +0 -1519
- package/dist/cli-agent-33GWIF2D.js +0 -2300
- package/dist/cli-agent-4XK6LVQQ.js +0 -2357
- package/dist/cli-agent-64EOV3ST.js +0 -2300
- package/dist/cli-agent-67WP6KKO.js +0 -2300
- package/dist/cli-agent-7RW5Y7C4.js +0 -2294
- package/dist/cli-agent-7TB2BWS6.js +0 -2370
- package/dist/cli-agent-AKXFFST2.js +0 -2370
- package/dist/cli-agent-C3YSECO4.js +0 -2344
- package/dist/cli-agent-DZTKLITB.js +0 -2357
- package/dist/cli-agent-FNMDJN7T.js +0 -2357
- package/dist/cli-agent-FOF7PFEP.js +0 -2357
- package/dist/cli-agent-FXZ6DJKP.js +0 -2357
- package/dist/cli-agent-H74M2ZYN.js +0 -2357
- package/dist/cli-agent-HG4Y657I.js +0 -2300
- package/dist/cli-agent-HORWVPHB.js +0 -2370
- package/dist/cli-agent-HSZT6SKF.js +0 -2423
- package/dist/cli-agent-ION2W5JF.js +0 -2441
- package/dist/cli-agent-JLUQ4ZU6.js +0 -2424
- package/dist/cli-agent-KBPWY3CB.js +0 -2302
- package/dist/cli-agent-MVCDH4HV.js +0 -2370
- package/dist/cli-agent-NZXOEPJ2.js +0 -2357
- package/dist/cli-agent-OO6H57UQ.js +0 -2300
- package/dist/cli-agent-PADN3QRC.js +0 -2357
- package/dist/cli-agent-QAYEX3BE.js +0 -2441
- package/dist/cli-agent-QT64DT5J.js +0 -2370
- package/dist/cli-agent-TCTRKCHN.js +0 -2300
- package/dist/cli-agent-TFL2M6UK.js +0 -2424
- package/dist/cli-agent-TSOJG7EX.js +0 -2357
- package/dist/cli-agent-UIKXATTD.js +0 -2357
- package/dist/cli-agent-UJN6FYTO.js +0 -2370
- package/dist/cli-agent-USMKX7WN.js +0 -2473
- package/dist/cli-agent-VIQAYVY4.js +0 -2357
- package/dist/cli-agent-WNWFVOFM.js +0 -2370
- package/dist/cli-agent-XBQX67VJ.js +0 -2423
- package/dist/cli-agent-ZLSC6FF4.js +0 -2357
- package/dist/cli-agent-ZSHUPBBN.js +0 -2357
- package/dist/cli-recover-T32NABFA.js +0 -487
- package/dist/cli-serve-2IL5DTEY.js +0 -153
- package/dist/cli-serve-3NGBX5ER.js +0 -140
- package/dist/cli-serve-47N5UKKW.js +0 -153
- package/dist/cli-serve-4RS4UDHC.js +0 -140
- package/dist/cli-serve-4XGZFUV2.js +0 -140
- package/dist/cli-serve-53FVANQK.js +0 -260
- package/dist/cli-serve-57225XWV.js +0 -140
- package/dist/cli-serve-63BDPSOP.js +0 -140
- package/dist/cli-serve-657NRUOX.js +0 -140
- package/dist/cli-serve-6ER7QMLR.js +0 -140
- package/dist/cli-serve-6OT3UEAN.js +0 -140
- package/dist/cli-serve-7JQ4FVUQ.js +0 -260
- package/dist/cli-serve-7L6EY5UH.js +0 -153
- package/dist/cli-serve-BFNIW2LF.js +0 -153
- package/dist/cli-serve-C7MN6U5Q.js +0 -153
- package/dist/cli-serve-CQFI3LMK.js +0 -140
- package/dist/cli-serve-CR3OY3IM.js +0 -153
- package/dist/cli-serve-DAJFRWQ7.js +0 -153
- package/dist/cli-serve-DTQLN5UI.js +0 -140
- package/dist/cli-serve-EQS2SGT3.js +0 -140
- package/dist/cli-serve-FW6FHFW4.js +0 -153
- package/dist/cli-serve-GEEOQS77.js +0 -153
- package/dist/cli-serve-H562I3ZK.js +0 -153
- package/dist/cli-serve-HDQZF4C4.js +0 -153
- package/dist/cli-serve-KBJNXWYJ.js +0 -140
- package/dist/cli-serve-LICAOMEB.js +0 -140
- package/dist/cli-serve-LLGYLWFS.js +0 -153
- package/dist/cli-serve-LMZKQ5GX.js +0 -140
- package/dist/cli-serve-LNTT73P2.js +0 -140
- package/dist/cli-serve-MLR4KAE2.js +0 -260
- package/dist/cli-serve-MQKBUZ7X.js +0 -140
- package/dist/cli-serve-N3OISDNB.js +0 -153
- package/dist/cli-serve-NBFT7B42.js +0 -140
- package/dist/cli-serve-RTWO3AWY.js +0 -140
- package/dist/cli-serve-SIHTSW5P.js +0 -140
- package/dist/cli-serve-SP6TEURE.js +0 -140
- package/dist/cli-serve-TDKZA6I5.js +0 -140
- package/dist/cli-serve-TF5ZVVXF.js +0 -140
- package/dist/cli-serve-TIZ27EVR.js +0 -153
- package/dist/cli-serve-TUNI2RCN.js +0 -153
- package/dist/cli-serve-WCU66CHX.js +0 -140
- package/dist/cli-serve-WNOZMAWD.js +0 -153
- package/dist/cli-serve-YCCKRRUY.js +0 -140
- package/dist/cli-serve-ZD5V7I6G.js +0 -140
- package/dist/cli-validate-6XDDLVVQ.js +0 -150
- package/dist/cli-verify-I4WGRQNT.js +0 -149
- package/dist/connection-manager-4ZA4XAFA.js +0 -9
- package/dist/db-adapter-IK2EDK2N.js +0 -7
- package/dist/db-adapter-IRHOUMVC.js +0 -7
- package/dist/dependency-manager-G6D2XXNY.js +0 -11
- package/dist/dependency-manager-OCUKF72T.js +0 -543
- package/dist/dependency-manager-YULUXN34.js +0 -511
- package/dist/factory-MQASIPEB.js +0 -11
- package/dist/google-W5AYGNUJ.js +0 -33
- package/dist/integrations-VWANOHQ4.js +0 -43830
- package/dist/local-O2FN57UN.js +0 -1128
- package/dist/local-S7SDOQHN.js +0 -1128
- package/dist/microsoft-HPLA5ZL5.js +0 -2414
- package/dist/microsoft-UFLZBEAC.js +0 -1619
- package/dist/microsoft-VREAZ7M2.js +0 -3955
- package/dist/microsoft-YUT6EIGP.js +0 -3400
- package/dist/postgres-BOTHOPDW.js +0 -875
- package/dist/routes-3MMLQTB6.js +0 -90
- package/dist/routes-4ZUIJ4HE.js +0 -90
- package/dist/routes-5MXHKKH4.js +0 -90
- package/dist/routes-64NJFK3B.js +0 -90
- package/dist/routes-6AKQ2LBV.js +0 -90
- package/dist/routes-CRRBUDO4.js +0 -90
- package/dist/routes-D7SMYOLT.js +0 -90
- package/dist/routes-DIAF3MC3.js +0 -90
- package/dist/routes-IGR6PZCA.js +0 -92
- package/dist/routes-KMUNU6CY.js +0 -90
- package/dist/routes-LRRLXIZR.js +0 -90
- package/dist/routes-N647AJYG.js +0 -90
- package/dist/routes-SSSELAAR.js +0 -90
- package/dist/routes-STERVGKJ.js +0 -90
- package/dist/routes-TZMPYLHJ.js +0 -90
- package/dist/routes-XNK2MAVO.js +0 -90
- package/dist/routes-ZEZZACZP.js +0 -90
- package/dist/runtime-4UVCTFNQ.js +0 -45
- package/dist/runtime-5EQN4GFM.js +0 -45
- package/dist/runtime-5LP7PUD4.js +0 -45
- package/dist/runtime-6YEENDN3.js +0 -45
- package/dist/runtime-7LQFRG3B.js +0 -45
- package/dist/runtime-AMXJU2MB.js +0 -45
- package/dist/runtime-D6WSE7FG.js +0 -45
- package/dist/runtime-EAWOE6JZ.js +0 -45
- package/dist/runtime-EYVN7NFJ.js +0 -45
- package/dist/runtime-F6RPWQVW.js +0 -45
- package/dist/runtime-FYMJURFC.js +0 -45
- package/dist/runtime-GGF4P55M.js +0 -45
- package/dist/runtime-H3SAMWWF.js +0 -45
- package/dist/runtime-H7T4I7I7.js +0 -45
- package/dist/runtime-HTIM7GZR.js +0 -45
- package/dist/runtime-JRNBL4O4.js +0 -45
- package/dist/runtime-K4C7NQLW.js +0 -45
- package/dist/runtime-MWWZCPC2.js +0 -45
- package/dist/runtime-N7CM2DYA.js +0 -45
- package/dist/runtime-OM2NIBMI.js +0 -45
- package/dist/runtime-OVGSOTAH.js +0 -45
- package/dist/runtime-QQ6LAY4U.js +0 -45
- package/dist/runtime-QWPVD7CY.js +0 -45
- package/dist/runtime-SX3B5MG3.js +0 -45
- package/dist/runtime-YLIIPTE4.js +0 -45
- package/dist/runtime-YU6P22CG.js +0 -45
- package/dist/runtime-ZOC337DD.js +0 -45
- package/dist/server-3AVWBRIF.js +0 -28
- package/dist/server-5BKJI5OW.js +0 -28
- package/dist/server-6NDO2S52.js +0 -28
- package/dist/server-7TD3M2BW.js +0 -28
- package/dist/server-AMCSXINC.js +0 -28
- package/dist/server-B3VJ6MSA.js +0 -28
- package/dist/server-BEJ6RAGL.js +0 -28
- package/dist/server-BFPYDHBG.js +0 -28
- package/dist/server-BKEWXGVX.js +0 -28
- package/dist/server-BMEJZGFG.js +0 -28
- package/dist/server-CU6LVQS4.js +0 -28
- package/dist/server-DFR7FI3Q.js +0 -28
- package/dist/server-DFYGH2CV.js +0 -28
- package/dist/server-DURRN3GJ.js +0 -28
- package/dist/server-EELWOC3X.js +0 -28
- package/dist/server-EN5E2OWQ.js +0 -28
- package/dist/server-EXZC3OJO.js +0 -28
- package/dist/server-GW2HYJYI.js +0 -28
- package/dist/server-J25NCRWJ.js +0 -28
- package/dist/server-JDGNOTFV.js +0 -28
- package/dist/server-KA6U3YNP.js +0 -28
- package/dist/server-L52A2ME4.js +0 -28
- package/dist/server-NE5HD5DJ.js +0 -28
- package/dist/server-NLQAXPOG.js +0 -28
- package/dist/server-NQOT7W77.js +0 -28
- package/dist/server-OHHAA34U.js +0 -28
- package/dist/server-PWE5PQTR.js +0 -28
- package/dist/server-Q2Q32H2B.js +0 -28
- package/dist/server-Q77ME7TL.js +0 -28
- package/dist/server-QDKO6OVO.js +0 -28
- package/dist/server-RR6QJIXM.js +0 -28
- package/dist/server-T3R6BO6A.js +0 -28
- package/dist/server-TRIBAHDV.js +0 -28
- package/dist/server-TXV3ZVVR.js +0 -28
- package/dist/server-VHSFJP3I.js +0 -28
- package/dist/server-VOJF2XGU.js +0 -28
- package/dist/server-W76YHPEC.js +0 -28
- package/dist/server-WLLH4WST.js +0 -28
- package/dist/server-WTUJ2O3F.js +0 -28
- package/dist/server-X4CJTHHF.js +0 -28
- package/dist/server-XK3ILCJC.js +0 -28
- package/dist/server-ZRD3NDJE.js +0 -28
- package/dist/setup-2JYXGTW6.js +0 -20
- package/dist/setup-3XOSZEW5.js +0 -20
- package/dist/setup-44VBAO4J.js +0 -20
- package/dist/setup-4OA7QNJW.js +0 -20
- package/dist/setup-4ONNQBWB.js +0 -20
- package/dist/setup-4OSBXSCL.js +0 -20
- package/dist/setup-4QFGRBLZ.js +0 -20
- package/dist/setup-52US54Z4.js +0 -20
- package/dist/setup-5CY3CKKT.js +0 -20
- package/dist/setup-5YRQUOW2.js +0 -20
- package/dist/setup-6766SGAR.js +0 -20
- package/dist/setup-6NUSB4XO.js +0 -20
- package/dist/setup-7FZJEOD4.js +0 -20
- package/dist/setup-7LYYXBUL.js +0 -20
- package/dist/setup-ADSKKBGV.js +0 -20
- package/dist/setup-AMV2WKVH.js +0 -20
- package/dist/setup-AYY24DKM.js +0 -20
- package/dist/setup-B34N4HPU.js +0 -20
- package/dist/setup-CEF4QY4L.js +0 -20
- package/dist/setup-E2YLC2EY.js +0 -20
- package/dist/setup-ER6NXTY5.js +0 -20
- package/dist/setup-FIOAQJ6C.js +0 -20
- package/dist/setup-G76S7X44.js +0 -20
- package/dist/setup-H2AGCBW5.js +0 -20
- package/dist/setup-H4JZUHH5.js +0 -20
- package/dist/setup-ICOZRKCX.js +0 -20
- package/dist/setup-JFTJH7UF.js +0 -20
- package/dist/setup-JJHOT2ZU.js +0 -20
- package/dist/setup-KEAM2BCL.js +0 -20
- package/dist/setup-LW4MLU2N.js +0 -20
- package/dist/setup-NHAZABW4.js +0 -20
- package/dist/setup-PRFNI6YW.js +0 -20
- package/dist/setup-RAHBMYHE.js +0 -20
- package/dist/setup-T6KYFR7O.js +0 -20
- package/dist/setup-TGM6L362.js +0 -20
- package/dist/setup-TNANAH7C.js +0 -20
- package/dist/setup-TXPR5UQX.js +0 -20
- package/dist/setup-UJSNSCLM.js +0 -20
- package/dist/setup-XCJMELVU.js +0 -20
- package/dist/setup-XIYEIFVK.js +0 -20
- package/dist/setup-XP2VGBEU.js +0 -20
- package/dist/setup-Z4PZSHBI.js +0 -20
- package/dist/skills-HCVBA6PK.js +0 -16
- package/dist/skills-HFSW74KZ.js +0 -16
- package/dist/system-prompts-6OUTAMH6.js +0 -41
- package/dist/task-queue-YP2I54IA.js +0 -9
- package/dist/transport-encryption-F2NQYACT.js +0 -25
- package/god_is_great.html +0 -35
- package/seed-data.mjs +0 -455
- package/src/agent-tools/tools/integrations/_seed-data.json +0 -4548
- package/src/agent-tools/tools/integrations/_seed-data.ts +0 -4563
package/src/deploy/fly.ts
CHANGED
|
@@ -93,10 +93,10 @@ async function createApp(name: string, fly: FlyConfig): Promise<void> {
|
|
|
93
93
|
/**
|
|
94
94
|
* Set secrets (environment variables) on a Fly.io app.
|
|
95
95
|
*/
|
|
96
|
-
async function
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
async function _setSecrets(
|
|
97
|
+
_appName: string,
|
|
98
|
+
_secrets: Record<string, string>,
|
|
99
|
+
_fly: FlyConfig,
|
|
100
100
|
): Promise<void> {
|
|
101
101
|
// Fly Machines API doesn't have a direct "set secrets" endpoint
|
|
102
102
|
// like flyctl does. Secrets are passed as env vars in machine config.
|
package/src/deploy/managed.ts
CHANGED
|
@@ -623,7 +623,7 @@ Check every ${config.heartbeat.intervalMinutes} minutes during active hours.
|
|
|
623
623
|
`;
|
|
624
624
|
}
|
|
625
625
|
|
|
626
|
-
private generateTools(
|
|
626
|
+
private generateTools(_config: AgentConfig): string {
|
|
627
627
|
return `# TOOLS.md — Local Notes
|
|
628
628
|
|
|
629
629
|
_Add environment-specific notes here (camera names, SSH hosts, etc.)_
|
|
@@ -182,7 +182,7 @@ function createUpcomingEventsCheck(): HeartbeatCheck {
|
|
|
182
182
|
check: async (ctx: HeartbeatContext): Promise<HeartbeatCheckResult> => {
|
|
183
183
|
try {
|
|
184
184
|
// Check for calendar events in next 2 hours from agent_memory
|
|
185
|
-
const
|
|
185
|
+
const _twoHoursFromNow = new Date(ctx.now.getTime() + 2 * 60 * 60 * 1000).toISOString();
|
|
186
186
|
const rows = await ctx.db.query<any>(
|
|
187
187
|
`SELECT content FROM agent_memory
|
|
188
188
|
WHERE agent_id = $1
|
|
@@ -893,7 +893,7 @@ export class AgentHierarchyManager {
|
|
|
893
893
|
* If 'email' or 'meeting', management context is minimal.
|
|
894
894
|
* If 'task' or 'management', full context is included.
|
|
895
895
|
*/
|
|
896
|
-
async buildManagerPrompt(agentId: string,
|
|
896
|
+
async buildManagerPrompt(agentId: string, _sessionContext?: string): Promise<string | null> {
|
|
897
897
|
const hierarchy = await this.buildHierarchy();
|
|
898
898
|
const node = hierarchy.get(agentId);
|
|
899
899
|
if (!node) return null;
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
16
|
import type { EngineDatabase } from './db-adapter.js';
|
|
17
|
-
import { MemorySearchIndex
|
|
17
|
+
import { MemorySearchIndex } from '../lib/text-search.js';
|
|
18
18
|
|
|
19
19
|
function sj(v: string|null|undefined, fb: any = {}): any { if(!v) return fb; try { return JSON.parse(v); } catch { return fb; } }
|
|
20
20
|
// ─── Types ──────────────────────────────────────────────
|
|
@@ -1730,7 +1730,7 @@ export function createAgentRoutes(opts: {
|
|
|
1730
1730
|
|
|
1731
1731
|
// ── Create a realistic browser profile using agent identity ──
|
|
1732
1732
|
const agentName = managed.displayName || managed.display_name || managed.name || (managed.config as any)?.displayName || (managed.config as any)?.name || 'Agent';
|
|
1733
|
-
const
|
|
1733
|
+
const _agentRole = (managed.config as any)?.role || (managed.config as any)?.description || 'AI Assistant';
|
|
1734
1734
|
const profileDir = join(homedir(), '.agenticmail', 'browser-profiles', agentId);
|
|
1735
1735
|
mkdirSync(profileDir, { recursive: true });
|
|
1736
1736
|
|
|
@@ -1885,7 +1885,7 @@ export function createAgentRoutes(opts: {
|
|
|
1885
1885
|
const data = await resp.json() as any;
|
|
1886
1886
|
if (data.webSocketDebuggerUrl) {
|
|
1887
1887
|
try {
|
|
1888
|
-
const
|
|
1888
|
+
const _closeResp = await fetch(`http://127.0.0.1:${port}/json/close`, { method: 'PUT', signal: AbortSignal.timeout(3000) });
|
|
1889
1889
|
closed = true;
|
|
1890
1890
|
} catch { /* fallback to kill */ }
|
|
1891
1891
|
}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
import type { EngineDatabase } from './db-adapter.js';
|
|
12
12
|
import type { PermissionEngine, SkillDefinition } from './skills.js';
|
|
13
|
-
import { validateSkillManifest,
|
|
13
|
+
import { validateSkillManifest, VALID_CATEGORIES, type ManifestValidationResult as _MVR } from './skill-validator.js';
|
|
14
14
|
|
|
15
15
|
// ─── Types ──────────────────────────────────────────────
|
|
16
16
|
|
|
@@ -133,7 +133,7 @@ export class CommunitySkillRegistry {
|
|
|
133
133
|
// For simplicity, load installed for all orgs
|
|
134
134
|
// (in production this would be per-org on request)
|
|
135
135
|
try {
|
|
136
|
-
const
|
|
136
|
+
const _rows = await this.engineDb.getInstalledSkillsByOrg('*').catch(() => [] as any[]);
|
|
137
137
|
// Actually load per-org when requested; for startup, just clear
|
|
138
138
|
this.installed.clear();
|
|
139
139
|
} catch {
|
package/src/engine/db-adapter.ts
CHANGED
|
@@ -21,7 +21,6 @@ import type { Organization, OrgPlan } from './tenant.js';
|
|
|
21
21
|
import type { ApprovalRequest, ApprovalPolicy } from './approvals.js';
|
|
22
22
|
import type { KnowledgeBase, KBDocument, KBChunk } from './knowledge.js';
|
|
23
23
|
import type { ActivityEvent, ToolCallRecord, ConversationEntry } from './activity.js';
|
|
24
|
-
import type { AgentConfig } from './agent-config.js';
|
|
25
24
|
import {
|
|
26
25
|
ENGINE_TABLES,
|
|
27
26
|
MIGRATIONS,
|
package/src/engine/deployer.ts
CHANGED
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
import type { AgentConfig, DeploymentTarget, DeploymentStatus } from './agent-config.js';
|
|
11
11
|
import { AgentConfigGenerator } from './agent-config.js';
|
|
12
12
|
import { execSync } from 'child_process';
|
|
13
|
-
import { resolve
|
|
14
|
-
import { existsSync
|
|
13
|
+
import { resolve } from 'path';
|
|
14
|
+
import { existsSync } from 'fs';
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
17
|
* Derive PM2 process name from agent config.
|
|
@@ -126,7 +126,7 @@ function generateEcosystemConfig(config: AgentConfig): { script: string; args: s
|
|
|
126
126
|
export class DeploymentEngine {
|
|
127
127
|
private configGen = new AgentConfigGenerator();
|
|
128
128
|
private deployments = new Map<string, DeploymentResult>();
|
|
129
|
-
private
|
|
129
|
+
private _liveStatus = new Map<string, LiveAgentStatus>();
|
|
130
130
|
|
|
131
131
|
/**
|
|
132
132
|
* Deploy an agent to its configured target
|
|
@@ -273,13 +273,13 @@ export class DeploymentEngine {
|
|
|
273
273
|
*/
|
|
274
274
|
async updateConfig(config: AgentConfig): Promise<{ success: boolean; message: string }> {
|
|
275
275
|
const workspace = this.configGen.generateWorkspace(config);
|
|
276
|
-
const
|
|
276
|
+
const _gatewayConfig = this.configGen.generateGatewayConfig(config);
|
|
277
277
|
|
|
278
278
|
switch (config.deployment.target) {
|
|
279
279
|
case 'docker': {
|
|
280
280
|
// Write config files into the container
|
|
281
281
|
for (const [file, content] of Object.entries(workspace)) {
|
|
282
|
-
const
|
|
282
|
+
const _escaped = content.replace(/'/g, "'\\''");
|
|
283
283
|
await this.execCommand(`docker exec agenticmail-${config.name} sh -c 'echo "${Buffer.from(content).toString('base64')}" | base64 -d > /workspace/${file}'`);
|
|
284
284
|
}
|
|
285
285
|
// Restart gateway inside container
|
|
@@ -307,7 +307,7 @@ export class DeploymentEngine {
|
|
|
307
307
|
|
|
308
308
|
// Generate docker-compose
|
|
309
309
|
emit('provision', 'started', 'Generating Docker configuration...');
|
|
310
|
-
const
|
|
310
|
+
const _compose = this.configGen.generateDockerCompose(config);
|
|
311
311
|
emit('provision', 'completed', 'Docker Compose generated');
|
|
312
312
|
|
|
313
313
|
// Generate workspace files
|
|
@@ -897,7 +897,7 @@ export class DeploymentEngine {
|
|
|
897
897
|
}
|
|
898
898
|
}
|
|
899
899
|
|
|
900
|
-
private
|
|
900
|
+
private _generateDockerfile(config: AgentConfig): string {
|
|
901
901
|
return `FROM node:22-slim
|
|
902
902
|
|
|
903
903
|
WORKDIR /app
|
|
@@ -947,7 +947,7 @@ CMD ["agenticmail-enterprise", "start"]
|
|
|
947
947
|
return this.execCommand(`ssh ${sshArgs}`);
|
|
948
948
|
}
|
|
949
949
|
|
|
950
|
-
private async
|
|
950
|
+
private async _writeFile(path: string, content: string): Promise<void> {
|
|
951
951
|
const { writeFile } = await import('fs/promises');
|
|
952
952
|
const { dirname } = await import('path');
|
|
953
953
|
const { mkdir } = await import('fs/promises');
|
|
@@ -258,7 +258,7 @@ export class EmailPoller {
|
|
|
258
258
|
|
|
259
259
|
private async connectMailbox(mailbox: AgentMailbox): Promise<void> {
|
|
260
260
|
// Refresh token
|
|
261
|
-
const
|
|
261
|
+
const _token = await this.refreshToken(mailbox);
|
|
262
262
|
|
|
263
263
|
// Get profile + historyId
|
|
264
264
|
const profile = await this.gmailFetch(mailbox, '/profile');
|
|
@@ -425,7 +425,7 @@ export class KnowledgeContributionManager {
|
|
|
425
425
|
contributors.add(entry.sourceAgentId);
|
|
426
426
|
}
|
|
427
427
|
|
|
428
|
-
private
|
|
428
|
+
private _indexEntryRemove(entry: KnowledgeEntry): void {
|
|
429
429
|
const baseSet = this.baseEntryIndex.get(entry.baseId);
|
|
430
430
|
if (baseSet) { baseSet.delete(entry.id); if (baseSet.size === 0) this.baseEntryIndex.delete(entry.baseId); }
|
|
431
431
|
|
|
@@ -16,7 +16,6 @@ import type {
|
|
|
16
16
|
} from './types.js';
|
|
17
17
|
import { chunkDocument } from './chunker.js';
|
|
18
18
|
import { processDocument } from './processors/pipeline.js';
|
|
19
|
-
import type { ProcessedDocument } from './processors/types.js';
|
|
20
19
|
import { GitHubImportProvider } from './provider-github.js';
|
|
21
20
|
import { SharePointImportProvider } from './provider-sharepoint.js';
|
|
22
21
|
import { GoogleSitesImportProvider } from './provider-google-sites.js';
|
|
@@ -35,8 +34,8 @@ const PROVIDERS: Record<ImportSourceType, ImportProvider> = {
|
|
|
35
34
|
'google-sites': new GoogleSitesImportProvider(),
|
|
36
35
|
'url': new UrlImportProvider(),
|
|
37
36
|
'file-upload': new FileUploadImportProvider(),
|
|
38
|
-
'confluence': new UrlImportProvider(), //
|
|
39
|
-
'notion': new UrlImportProvider(), //
|
|
37
|
+
'confluence': new UrlImportProvider(), // Uses URL-based import; add dedicated API provider when Confluence OAuth is supported
|
|
38
|
+
'notion': new UrlImportProvider(), // Uses URL-based import; add dedicated API provider when Notion OAuth is supported
|
|
40
39
|
};
|
|
41
40
|
|
|
42
41
|
// ─── Source Catalog ──────────────────────────────────
|
|
@@ -11,7 +11,7 @@ import type { ContentExtractor, ExtractResult } from './types.js';
|
|
|
11
11
|
export class GitHubContentExtractor implements ContentExtractor {
|
|
12
12
|
extract(raw: string, sourceUrl?: string): ExtractResult {
|
|
13
13
|
let content = raw;
|
|
14
|
-
const
|
|
14
|
+
const _isReadme = sourceUrl?.toLowerCase().includes('readme') || false;
|
|
15
15
|
|
|
16
16
|
// Remove GitHub badge images at top of README
|
|
17
17
|
content = content.replace(/^\s*(\[!\[[^\]]*\]\([^)]*\)\]\([^)]*\)\s*)+/gm, '');
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import type { ContentExtractor, ExtractResult } from './types.js';
|
|
10
10
|
|
|
11
11
|
export class SharePointContentExtractor implements ContentExtractor {
|
|
12
|
-
extract(raw: string,
|
|
12
|
+
extract(raw: string, _sourceUrl?: string): ExtractResult {
|
|
13
13
|
let content = raw;
|
|
14
14
|
|
|
15
15
|
// If HTML (SharePoint page or Word export)
|
|
@@ -21,7 +21,7 @@ const MIN_SENTENCE_COUNT = 2;
|
|
|
21
21
|
const MAX_DUPLICATE_RATIO = 0.4;
|
|
22
22
|
const MIN_QUALITY_SCORE = 30; // out of 100
|
|
23
23
|
|
|
24
|
-
export function validateContent(content: string,
|
|
24
|
+
export function validateContent(content: string, _title?: string): QualityReport {
|
|
25
25
|
const checks: QualityCheck[] = [];
|
|
26
26
|
const warnings: string[] = [];
|
|
27
27
|
|
package/src/engine/lifecycle.ts
CHANGED
|
@@ -188,7 +188,7 @@ export class AgentLifecycleManager {
|
|
|
188
188
|
/** When true, this lifecycle runs on a standalone agent machine (not the enterprise server).
|
|
189
189
|
* In standalone mode, persistAgent reloads dashboard-managed fields from DB before saving. */
|
|
190
190
|
public standaloneMode = false;
|
|
191
|
-
private
|
|
191
|
+
private _configGen = new AgentConfigGenerator();
|
|
192
192
|
private permissions: PermissionEngine;
|
|
193
193
|
private engineDb?: EngineDatabase;
|
|
194
194
|
private eventListeners: ((event: LifecycleEvent) => void)[] = [];
|
|
@@ -52,8 +52,8 @@ export class MeetingMonitor {
|
|
|
52
52
|
private sendChatIndicator?: (page: Page, text: string) => Promise<void>;
|
|
53
53
|
private flushTimer: ReturnType<typeof setInterval> | null = null;
|
|
54
54
|
private running = false;
|
|
55
|
-
private
|
|
56
|
-
private
|
|
55
|
+
private _lastCaptionCount = 0;
|
|
56
|
+
private _lastChatCount = 0;
|
|
57
57
|
private consecutiveEmpty = 0;
|
|
58
58
|
private consecutiveSendFailures = 0;
|
|
59
59
|
/** Pending captions accumulated across flush cycles (for debouncing) */
|
|
@@ -21,7 +21,7 @@ import { promises as fs } from 'node:fs';
|
|
|
21
21
|
import * as path from 'node:path';
|
|
22
22
|
import * as os from 'node:os';
|
|
23
23
|
|
|
24
|
-
const
|
|
24
|
+
const _ELEVENLABS_BASE = 'https://api.elevenlabs.io/v1';
|
|
25
25
|
|
|
26
26
|
// ═══════════════════════════════════════════════════════════
|
|
27
27
|
// GLOBAL RESPONSE PLAYER KILL
|
|
@@ -221,7 +221,7 @@ export class MeetingVoiceIntelligence {
|
|
|
221
221
|
// ─── Speech State (called by meeting_speak tool) ────────
|
|
222
222
|
|
|
223
223
|
/** Call BEFORE streaming TTS response audio */
|
|
224
|
-
markSpeaking(
|
|
224
|
+
markSpeaking(_text: string): void {
|
|
225
225
|
this._state = 'speaking';
|
|
226
226
|
}
|
|
227
227
|
|
|
@@ -306,7 +306,7 @@ export class MeetingVoiceIntelligence {
|
|
|
306
306
|
hasPendingResume() { return false; }
|
|
307
307
|
async executeResume() { return { success: false, text: '' }; }
|
|
308
308
|
cancelResume() {}
|
|
309
|
-
markDoneSpeaking_legacy(
|
|
309
|
+
markDoneSpeaking_legacy(_completed: boolean) { this.markDoneSpeaking(); }
|
|
310
310
|
|
|
311
311
|
// Legacy — decisionEngine stub
|
|
312
312
|
get decisionEngine() {
|
|
@@ -408,7 +408,7 @@ export class MessagingPoller {
|
|
|
408
408
|
}
|
|
409
409
|
}
|
|
410
410
|
|
|
411
|
-
private async downloadTelegramMedia(agent: AgentEndpoint, fileId: string, mediaType: string, fileName?: string,
|
|
411
|
+
private async downloadTelegramMedia(agent: AgentEndpoint, fileId: string, mediaType: string, fileName?: string, _mimeType?: string): Promise<{ localPath: string } | null> {
|
|
412
412
|
try {
|
|
413
413
|
var channelConfig = this.config.getAgentChannelConfig(agent.id);
|
|
414
414
|
var botToken = channelConfig?.telegram?.botToken;
|
|
@@ -647,7 +647,7 @@ export class MessagingPoller {
|
|
|
647
647
|
|
|
648
648
|
// ─── Security Wrapping ────────────────────────────
|
|
649
649
|
|
|
650
|
-
private wrapCustomerMessage(text: string, senderName: string,
|
|
650
|
+
private wrapCustomerMessage(text: string, senderName: string, _config: any): string {
|
|
651
651
|
return [
|
|
652
652
|
'<<<CUSTOMER_MESSAGE>>>',
|
|
653
653
|
'SECURITY NOTICE: This message is from a CUSTOMER (external, untrusted sender).',
|
|
@@ -185,7 +185,7 @@ export function createOrgIntegrationRoutes(manager: OrgIntegrationManager) {
|
|
|
185
185
|
// ─── Resolve credentials for an agent ─────────────────
|
|
186
186
|
router.get('/resolve/:agentId', async (c) => {
|
|
187
187
|
try {
|
|
188
|
-
const
|
|
188
|
+
const _agentId = c.req.param('agentId');
|
|
189
189
|
const provider = c.req.query('provider') || 'google';
|
|
190
190
|
const orgId = c.req.query('orgId') || null;
|
|
191
191
|
|
|
@@ -288,7 +288,7 @@ export function createOrgIntegrationRoutes(manager: OrgIntegrationManager) {
|
|
|
288
288
|
});
|
|
289
289
|
|
|
290
290
|
if (!tokenRes.ok) {
|
|
291
|
-
const
|
|
291
|
+
const _err = await tokenRes.text();
|
|
292
292
|
return c.html(`<script>window.opener?.postMessage({type:'org-oauth-result',status:'error',message:'Token exchange failed: ${tokenRes.status}'},'*');window.close();</script>`);
|
|
293
293
|
}
|
|
294
294
|
|
|
@@ -427,7 +427,7 @@ export class OrgIntegrationManager {
|
|
|
427
427
|
* Used by Google Workspace and Microsoft tools at runtime.
|
|
428
428
|
*/
|
|
429
429
|
async createTokenProviderForAgent(
|
|
430
|
-
|
|
430
|
+
_agentId: string,
|
|
431
431
|
agentOrgId: string | null,
|
|
432
432
|
provider: 'google' | 'microsoft',
|
|
433
433
|
onTokenRefresh?: (tokens: any) => void
|
package/src/engine/routes.ts
CHANGED
|
@@ -434,7 +434,7 @@ engine.post('/cluster/deploy-via-ssh', async (c) => {
|
|
|
434
434
|
|
|
435
435
|
// Run async — don't block the request
|
|
436
436
|
const { exec } = await import('child_process');
|
|
437
|
-
exec(sshCmd, { timeout: 120_000 }, (err, stdout,
|
|
437
|
+
exec(sshCmd, { timeout: 120_000 }, (err, stdout, _stderr) => {
|
|
438
438
|
if (err) {
|
|
439
439
|
console.warn(`[cluster] SSH deploy to ${body.host} failed:`, err.message);
|
|
440
440
|
} else if (stdout.includes('DEPLOY_SUCCESS')) {
|
|
@@ -468,7 +468,7 @@ engine.get('/cluster/stream', (c) => {
|
|
|
468
468
|
const send = (d: string) => { try { controller.enqueue(encoder.encode(`data: ${d}\n\n`)); } catch { unsub(); } };
|
|
469
469
|
// Send current state
|
|
470
470
|
for (const n of cluster.getAllNodes()) send(JSON.stringify({ type: 'node', event: 'snapshot', ...n }));
|
|
471
|
-
const unsub = cluster.subscribe((
|
|
471
|
+
const unsub = cluster.subscribe((_nodeId, node, event) => send(JSON.stringify({ type: 'node', event, ...node })));
|
|
472
472
|
const hb = setInterval(() => send(JSON.stringify({ type: 'heartbeat' })), 30_000);
|
|
473
473
|
c.req.raw.signal.addEventListener('abort', () => { unsub(); clearInterval(hb); });
|
|
474
474
|
},
|
package/src/engine/skills.ts
CHANGED
|
@@ -575,7 +575,7 @@ export class PermissionEngine {
|
|
|
575
575
|
return this._checkApproval(profile, toolId, tool);
|
|
576
576
|
}
|
|
577
577
|
|
|
578
|
-
private _checkApproval(profile: AgentPermissionProfile,
|
|
578
|
+
private _checkApproval(profile: AgentPermissionProfile, _toolId: string, tool?: ToolDefinition): PermissionResult {
|
|
579
579
|
if (!profile.requireApproval.enabled) {
|
|
580
580
|
return { allowed: true, reason: 'Permitted', requiresApproval: false };
|
|
581
581
|
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import type { ToolDefinition, SkillCategory, RiskLevel, SideEffect } from './skills.js';
|
|
14
|
-
import { M365_TOOLS as M365_SKILL_TOOLS, GWS_TOOLS as GWS_SKILL_TOOLS, ENTERPRISE_UTILITY_TOOLS, AGENTICMAIL_TOOLS as
|
|
14
|
+
import { M365_TOOLS as M365_SKILL_TOOLS, GWS_TOOLS as GWS_SKILL_TOOLS, ENTERPRISE_UTILITY_TOOLS, AGENTICMAIL_TOOLS as _AGENTICMAIL_SKILL_TOOLS, SYSTEM_TOOLS } from './skills/index.js';
|
|
15
15
|
|
|
16
16
|
// ─── Core Platform Tools ────────────────────────────────
|
|
17
17
|
|
|
@@ -7,7 +7,7 @@ import { Hono } from 'hono';
|
|
|
7
7
|
import type { SecureVault } from './vault.js';
|
|
8
8
|
import type { DLPEngine } from './dlp.js';
|
|
9
9
|
|
|
10
|
-
export function createVaultRoutes(vault: SecureVault,
|
|
10
|
+
export function createVaultRoutes(vault: SecureVault, _dlp?: DLPEngine) {
|
|
11
11
|
const router = new Hono();
|
|
12
12
|
|
|
13
13
|
// ─── Secrets CRUD ────────────────────────────────────
|
package/src/engine/vault.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* Master key from AGENTICMAIL_VAULT_KEY env var.
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import {
|
|
11
|
+
import { randomBytes, createCipheriv, createDecipheriv, pbkdf2Sync } from 'crypto';
|
|
12
12
|
import type { EngineDatabase } from './db-adapter.js';
|
|
13
13
|
|
|
14
14
|
function safeJsonParse(val: string | null | undefined, fallback: any = {}): any {
|
|
@@ -33,7 +33,7 @@ function formatWorker(worker: any): string {
|
|
|
33
33
|
? [person.legalName.givenName, person.legalName.familyName1].filter(Boolean).join(' ')
|
|
34
34
|
: '(no name)';
|
|
35
35
|
const email = person.communication?.emails?.[0]?.emailUri || '(no email)';
|
|
36
|
-
const
|
|
36
|
+
const _assignment = worker.workerDates ? '' : '';
|
|
37
37
|
const status = worker.workerStatus?.statusCode?.codeValue || 'N/A';
|
|
38
38
|
const id = worker.workerID?.idValue || worker.associateOID || 'N/A';
|
|
39
39
|
return `${name} <${email}> -- Status: ${status} (ID: ${id})`;
|
|
@@ -333,7 +333,7 @@ const blockUser: ToolHandler = {
|
|
|
333
333
|
const baseUrl = auth0Url(ctx);
|
|
334
334
|
const blocked = params.blocked !== false;
|
|
335
335
|
|
|
336
|
-
const
|
|
336
|
+
const _result = await ctx.apiExecutor.request({
|
|
337
337
|
method: 'PATCH',
|
|
338
338
|
path: undefined,
|
|
339
339
|
url: `${baseUrl}/users/${encodeURIComponent(params.user_id)}`,
|
|
@@ -64,7 +64,7 @@ const listTasks: ToolHandler = {
|
|
|
64
64
|
};
|
|
65
65
|
if (params.include_closed) query.include_closed = 'true';
|
|
66
66
|
if (params.statuses?.length) {
|
|
67
|
-
params.statuses.forEach((s: string,
|
|
67
|
+
params.statuses.forEach((s: string, _i: number) => {
|
|
68
68
|
query[`statuses[]`] = s; // ClickUp expects repeated params
|
|
69
69
|
});
|
|
70
70
|
}
|
|
@@ -32,7 +32,7 @@ function formatLead(lead: any): string {
|
|
|
32
32
|
const status = lead.status_label || 'unknown';
|
|
33
33
|
const contacts = lead.contacts?.length || 0;
|
|
34
34
|
const created = lead.date_created ? lead.date_created.slice(0, 16) : '';
|
|
35
|
-
const
|
|
35
|
+
const _url = lead.url || '';
|
|
36
36
|
return `${name} -- ${status} -- ${contacts} contact(s) -- ${created} (ID: ${lead.id})`;
|
|
37
37
|
}
|
|
38
38
|
|
|
@@ -292,7 +292,7 @@ const updateDocument: ToolHandler = {
|
|
|
292
292
|
}
|
|
293
293
|
}
|
|
294
294
|
|
|
295
|
-
const
|
|
295
|
+
const _queryParts = updateMaskPaths.map(p => `updateMask.fieldPaths=${encodeURIComponent(p)}`);
|
|
296
296
|
const query: Record<string, string> = {};
|
|
297
297
|
for (const path of updateMaskPaths) {
|
|
298
298
|
query[`updateMask.fieldPaths`] = path;
|
|
@@ -78,7 +78,7 @@ function formatMicros(micros: string | number | undefined, currency?: string): s
|
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
/** Extract resource ID from a Google Ads resource name like "customers/123/campaigns/456". */
|
|
81
|
-
function
|
|
81
|
+
function _extractResourceId(resourceName: string | undefined): string {
|
|
82
82
|
if (!resourceName) return 'unknown';
|
|
83
83
|
const parts = resourceName.split('/');
|
|
84
84
|
return parts[parts.length - 1] ?? 'unknown';
|
|
@@ -32,7 +32,7 @@ function k8sError(err: unknown): ToolResult {
|
|
|
32
32
|
if (err instanceof Error) {
|
|
33
33
|
const data = (err as any).data;
|
|
34
34
|
if (data && typeof data === 'object') {
|
|
35
|
-
const
|
|
35
|
+
const _status = data.status || '';
|
|
36
36
|
const message = data.message || '';
|
|
37
37
|
const reason = data.reason || '';
|
|
38
38
|
const code = data.code || '';
|
|
@@ -159,7 +159,7 @@ const mixpanelGetFunnels: ToolHandler = {
|
|
|
159
159
|
|
|
160
160
|
const data = await ctx.apiExecutor.get('/funnels', query);
|
|
161
161
|
|
|
162
|
-
const
|
|
162
|
+
const _meta = data.meta ?? {};
|
|
163
163
|
const funnelData = data.data ?? {};
|
|
164
164
|
const dates = Object.keys(funnelData).sort();
|
|
165
165
|
|
|
@@ -304,7 +304,7 @@ const recurlyGetAccount: ToolHandler = {
|
|
|
304
304
|
const email = acct.email ?? 'N/A';
|
|
305
305
|
const state = acct.state ?? 'unknown';
|
|
306
306
|
const created = formatDate(acct.created_at);
|
|
307
|
-
const
|
|
307
|
+
const _balance = formatAmount(acct.hosted_login_token ? undefined : 0, acct.bill_to ?? 'USD');
|
|
308
308
|
|
|
309
309
|
const addr = acct.address ?? {};
|
|
310
310
|
const addressStr = [addr.street1, addr.street2, addr.city, addr.region, addr.postal_code, addr.country]
|
|
@@ -19,7 +19,7 @@ function sapBaseUrl(ctx: ToolExecutionContext): string {
|
|
|
19
19
|
if (!host) {
|
|
20
20
|
throw new Error('SAP host is required in skillConfig (e.g. { host: "mycompany.s4hana.ondemand.com" })');
|
|
21
21
|
}
|
|
22
|
-
const
|
|
22
|
+
const _client = ctx.skillConfig.client || '100';
|
|
23
23
|
return `https://${host}/sap/opu/odata/sap`;
|
|
24
24
|
}
|
|
25
25
|
|
|
@@ -45,7 +45,7 @@ function sapError(err: unknown): ToolResult {
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
/** Format an SAP OData entity for display */
|
|
48
|
-
function
|
|
48
|
+
function _formatEntity(entity: any, fields: string[]): string {
|
|
49
49
|
return fields
|
|
50
50
|
.map(f => `${f}: ${entity[f] ?? 'N/A'}`)
|
|
51
51
|
.filter(Boolean)
|
|
@@ -164,7 +164,7 @@ const searchStories: ToolHandler = {
|
|
|
164
164
|
|
|
165
165
|
async execute(params: Record<string, any>, ctx: ToolExecutionContext): Promise<ToolResult> {
|
|
166
166
|
try {
|
|
167
|
-
const
|
|
167
|
+
const _body: Record<string, any> = {
|
|
168
168
|
query: params.query,
|
|
169
169
|
page_size: params.page_size ?? 25,
|
|
170
170
|
};
|
|
@@ -132,7 +132,7 @@ const executeQuery: ToolHandler = {
|
|
|
132
132
|
});
|
|
133
133
|
|
|
134
134
|
const statementHandle = result.statementHandle || '';
|
|
135
|
-
const
|
|
135
|
+
const _status = result.statementStatusUrl || '';
|
|
136
136
|
const rowCount = result.resultSetMetaData?.numRows ?? result.data?.length ?? 0;
|
|
137
137
|
|
|
138
138
|
const formatted = formatResultSet(result);
|
|
@@ -32,7 +32,7 @@ function formatAmount(amountCents: number | undefined, currency: string | undefi
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
/** Format a Unix timestamp into a readable date. */
|
|
35
|
-
function
|
|
35
|
+
function _fromUnix(ts: number | undefined): string {
|
|
36
36
|
if (!ts) return 'unknown';
|
|
37
37
|
return new Date(ts * 1000).toLocaleString('en-US', {
|
|
38
38
|
month: 'short',
|
|
@@ -328,7 +328,7 @@ export const supabaseAdapter: SkillAdapter = {
|
|
|
328
328
|
placeholder: 'abcdefghijklmnop',
|
|
329
329
|
},
|
|
330
330
|
},
|
|
331
|
-
async initialize(
|
|
331
|
+
async initialize(_credentials: ResolvedCredentials) {
|
|
332
332
|
// Dynamic base URL will be set by the framework using projectRef from config
|
|
333
333
|
},
|
|
334
334
|
};
|
|
@@ -43,7 +43,7 @@ export function requestBodyLimit(): MiddlewareHandler {
|
|
|
43
43
|
* Reads timeout from firewallConfig.network.requestTimeoutSec.
|
|
44
44
|
*/
|
|
45
45
|
export function requestTimeout(): MiddlewareHandler {
|
|
46
|
-
return async (
|
|
46
|
+
return async (_c, next) => {
|
|
47
47
|
const config = await getNetworkConfig();
|
|
48
48
|
const timeoutSec = config.network?.requestTimeoutSec || DEFAULT_TIMEOUT_SEC;
|
|
49
49
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
import type { AgentConfig, AgentMessage, RuntimeHooks, SessionState, StreamEvent, ToolCall } from './types.js';
|
|
15
15
|
import { callLLM, toolsToDefinitions, estimateMessageTokens, type LLMResponse } from './llm-client.js';
|
|
16
16
|
import { ToolRegistry, executeTool } from './tool-executor.js';
|
|
17
|
-
import { compactContext,
|
|
17
|
+
import { compactContext, COMPACTION_THRESHOLD } from './compaction.js';
|
|
18
18
|
import { buildModelChain, withModelFallback, type ModelFallbackConfig } from '../engine/model-fallback.js';
|
|
19
19
|
|
|
20
20
|
// ─── Constants ───────────────────────────────────────────
|
|
@@ -709,8 +709,8 @@ var FALLBACK_PRICES: Record<string, { input: number; output: number }> = {
|
|
|
709
709
|
};
|
|
710
710
|
|
|
711
711
|
// In-memory cache for DB pricing (refreshed every 5 min)
|
|
712
|
-
var
|
|
713
|
-
var
|
|
712
|
+
var _pricingCache: { data: Record<string, { input: number; output: number }>; expiresAt: number } | null = null;
|
|
713
|
+
var _PRICING_CACHE_TTL = 5 * 60_000;
|
|
714
714
|
|
|
715
715
|
async function estimateCostAsync(
|
|
716
716
|
hooks: import('./types.js').RuntimeHooks,
|
|
@@ -439,7 +439,7 @@ function buildTranscript(previousSummaries: MessageGroup[], groups: MessageGroup
|
|
|
439
439
|
|
|
440
440
|
// Build transcript from groups (in original order — re-sort by position)
|
|
441
441
|
// Groups are sorted by importance, but transcript needs chronological order
|
|
442
|
-
const
|
|
442
|
+
const _chronoGroups = [...groups];
|
|
443
443
|
// We don't have explicit position, but original array order is chronological
|
|
444
444
|
// Since we only sorted a copy, use the original `groups` order...
|
|
445
445
|
// Actually, groups come from groupMessages which is already chronological.
|
|
@@ -492,7 +492,7 @@ async function llmSummarize(
|
|
|
492
492
|
transcript: string,
|
|
493
493
|
config: AgentConfig,
|
|
494
494
|
apiKey: string,
|
|
495
|
-
|
|
495
|
+
_tokenBudget: number,
|
|
496
496
|
): Promise<LLMSummaryResult> {
|
|
497
497
|
// If transcript fits in one chunk, do single call
|
|
498
498
|
if (transcript.length <= CHUNK_MAX_CHARS) {
|