@agenticmail/enterprise 0.5.319 → 0.5.321
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +68 -0
- package/CODE_OF_CONDUCT.md +31 -0
- package/README.md +118 -38
- package/SECURITY.md +42 -0
- package/dist/agent-heartbeat-3FWNHZFX.js +510 -0
- package/dist/agent-heartbeat-4RWHZR7H.js +510 -0
- package/dist/agent-heartbeat-6ZGB5ILY.js +510 -0
- package/dist/agent-heartbeat-BIVHLKFM.js +510 -0
- package/dist/agent-heartbeat-HRKVFK2T.js +510 -0
- package/dist/agent-heartbeat-JC5GWVXD.js +510 -0
- package/dist/agent-heartbeat-K6A4HMHB.js +510 -0
- package/dist/agent-heartbeat-LCDXWFVB.js +510 -0
- package/dist/agent-heartbeat-P7HZCZAQ.js +510 -0
- package/dist/agent-heartbeat-PUIRSNIO.js +510 -0
- package/dist/agent-heartbeat-SN5ILQ6Y.js +510 -0
- package/dist/agent-heartbeat-TW5YTDYC.js +510 -0
- package/dist/agent-heartbeat-Z2QQXROL.js +510 -0
- package/dist/agent-notify-OEQBCZLN.js +43 -0
- package/dist/{agent-tools-263HM5QU.js → agent-tools-3W7XLUYA.js} +1 -1
- package/dist/agent-tools-4QK7LLNP.js +9 -0
- package/dist/agent-tools-54VZGT6L.js +9 -0
- package/dist/{agent-tools-AT4D276V.js → agent-tools-AYYDPO27.js} +7 -7
- package/dist/{agent-tools-MSTAPX2I.js → agent-tools-F2X47FKF.js} +7 -7
- package/dist/{agent-tools-FA26SY5O.js → agent-tools-O6W3QAZL.js} +11 -6
- package/dist/agent-tools-OAWVZBMW.js +9 -0
- package/dist/agent-tools-QCCU74PN.js +13949 -0
- package/dist/chunk-2LHUARN6.js +4929 -0
- package/dist/chunk-2WVCNCYC.js +5087 -0
- package/dist/{chunk-6PWDS7KY.js → chunk-3FM6YQUK.js} +20 -20
- package/dist/chunk-3UAFHUEC.js +212 -0
- package/dist/{chunk-WJO57PMO.js → chunk-46GOWZT4.js} +20 -20
- package/dist/{chunk-BNRE7TSX.js → chunk-5KYJAUZV.js} +3 -3
- package/dist/chunk-6C5PKREN.js +467 -0
- package/dist/{chunk-447MTPZF.js → chunk-6ZMLNEHB.js} +3 -3
- package/dist/chunk-BPZQT5N5.js +25652 -0
- package/dist/chunk-BQM7MBPS.js +1380 -0
- package/dist/{chunk-ZRFKGPIU.js → chunk-C52OQNNY.js} +20 -20
- package/dist/chunk-C7HGQF4Y.js +25652 -0
- package/dist/chunk-CAHNZGGK.js +25656 -0
- package/dist/{chunk-FL3CH3ET.js → chunk-CK7R6UHE.js} +51 -27
- package/dist/chunk-D36RPWB7.js +25652 -0
- package/dist/{chunk-36NM2B4C.js → chunk-DJK2UPFH.js} +63 -93
- package/dist/chunk-DM7FTF7W.js +4929 -0
- package/dist/chunk-DMD24UFZ.js +5101 -0
- package/dist/{chunk-36XNMIHA.js → chunk-DXZGPUAF.js} +20 -20
- package/dist/chunk-F46WB5IL.js +5087 -0
- package/dist/chunk-F5QG5SQH.js +5087 -0
- package/dist/{chunk-JGEVQZDR.js → chunk-FLQ5FLHW.js} +13 -16
- package/dist/chunk-H7GP733U.js +5087 -0
- package/dist/{chunk-OZSQLOV6.js → chunk-HHBXWB5U.js} +415 -19
- package/dist/{chunk-D24JY75H.js → chunk-IMXS4N6W.js} +3 -3
- package/dist/{chunk-6PVBV6ZP.js → chunk-JNMDD7JY.js} +3 -3
- package/dist/chunk-JTV5LA47.js +1519 -0
- package/dist/chunk-KV6G7NZX.js +1519 -0
- package/dist/chunk-MU5MEBIK.js +1519 -0
- package/dist/chunk-NLT5MC7X.js +465 -0
- package/dist/{chunk-GTFZZUXX.js → chunk-NVLYIM4J.js} +51 -27
- package/dist/{chunk-6G5SXLXC.js → chunk-NZY2BIZH.js} +63 -93
- package/dist/chunk-O42L6G67.js +1519 -0
- package/dist/chunk-OCNERGGM.js +4891 -0
- package/dist/chunk-OJSNHONE.js +1519 -0
- package/dist/{chunk-2TAZJWJN.js → chunk-OWL3QVH7.js} +18 -0
- package/dist/{chunk-P3HVY2HS.js → chunk-OWTLNV4Q.js} +382 -7
- package/dist/chunk-PCNYEP6T.js +4891 -0
- package/dist/{chunk-YL3Z5KPR.js → chunk-PI4AQ4Z6.js} +438 -15
- package/dist/chunk-PN3EGTCA.js +194 -0
- package/dist/chunk-Q37UKNRC.js +1519 -0
- package/dist/chunk-QXTC6J7H.js +5087 -0
- package/dist/{chunk-SPBQVNDI.js → chunk-RKERL5LZ.js} +25 -21
- package/dist/chunk-RVBK2IOX.js +25652 -0
- package/dist/chunk-SAKODCZ5.js +4891 -0
- package/dist/{chunk-XV4TU65E.js → chunk-SALGFC5L.js} +51 -27
- package/dist/chunk-STGWZ2MS.js +1519 -0
- package/dist/chunk-UY3ZVQDP.js +25652 -0
- package/dist/chunk-V6OSD62M.js +5087 -0
- package/dist/chunk-VP6YAHX4.js +1519 -0
- package/dist/chunk-WDYJOEAI.js +5087 -0
- package/dist/chunk-WEAFQNOS.js +195 -0
- package/dist/chunk-XKUSAZGP.js +5087 -0
- package/dist/chunk-Z6K5FKAB.js +548 -0
- package/dist/chunk-ZGE3XAXY.js +1519 -0
- package/dist/chunk-ZGYVXYQQ.js +3296 -0
- package/dist/cli-agent-7TB2BWS6.js +2370 -0
- package/dist/cli-agent-AKXFFST2.js +2370 -0
- package/dist/cli-agent-DZTKLITB.js +2357 -0
- package/dist/cli-agent-FOF7PFEP.js +2357 -0
- package/dist/cli-agent-H74M2ZYN.js +2357 -0
- package/dist/cli-agent-HORWVPHB.js +2370 -0
- package/dist/cli-agent-HSZT6SKF.js +2423 -0
- package/dist/cli-agent-JLUQ4ZU6.js +2424 -0
- package/dist/cli-agent-MVCDH4HV.js +2370 -0
- package/dist/cli-agent-NZXOEPJ2.js +2357 -0
- package/dist/cli-agent-PADN3QRC.js +2357 -0
- package/dist/cli-agent-QAYEX3BE.js +2441 -0
- package/dist/cli-agent-QT64DT5J.js +2370 -0
- package/dist/cli-agent-TFL2M6UK.js +2424 -0
- package/dist/cli-agent-UIKXATTD.js +2357 -0
- package/dist/cli-agent-UJN6FYTO.js +2370 -0
- package/dist/cli-agent-VIQAYVY4.js +2357 -0
- package/dist/cli-agent-WNWFVOFM.js +2370 -0
- package/dist/cli-agent-XBQX67VJ.js +2423 -0
- package/dist/cli-agent-ZLSC6FF4.js +2357 -0
- package/dist/cli-serve-2IL5DTEY.js +153 -0
- package/dist/cli-serve-47N5UKKW.js +153 -0
- package/dist/cli-serve-4XGZFUV2.js +140 -0
- package/dist/cli-serve-6OT3UEAN.js +140 -0
- package/dist/cli-serve-7L6EY5UH.js +153 -0
- package/dist/cli-serve-BDGOOOKQ.js +260 -0
- package/dist/cli-serve-BFNIW2LF.js +153 -0
- package/dist/cli-serve-C7MN6U5Q.js +153 -0
- package/dist/cli-serve-CR3OY3IM.js +153 -0
- package/dist/cli-serve-DAJFRWQ7.js +153 -0
- package/dist/cli-serve-FW6FHFW4.js +153 -0
- package/dist/cli-serve-GEEOQS77.js +153 -0
- package/dist/cli-serve-H562I3ZK.js +153 -0
- package/dist/cli-serve-HDQZF4C4.js +153 -0
- package/dist/cli-serve-LICAOMEB.js +140 -0
- package/dist/cli-serve-LLGYLWFS.js +153 -0
- package/dist/cli-serve-N3OISDNB.js +153 -0
- package/dist/cli-serve-TIZ27EVR.js +153 -0
- package/dist/cli-serve-TUNI2RCN.js +153 -0
- package/dist/cli-serve-WNOZMAWD.js +153 -0
- package/dist/cli-validate-Z726VJCN.js +150 -0
- package/dist/cli.js +4 -4
- package/dist/connection-manager-KAWEUWUR.js +9 -0
- package/dist/dashboard/app.js +9 -3
- package/dist/dashboard/components/knowledge-link.js +15 -0
- package/dist/dashboard/components/settings-help.js +4 -2
- package/dist/dashboard/docs/agent-deployment.html +33 -1
- package/dist/dashboard/docs/settings-network.html +321 -0
- package/dist/dashboard/docs/settings-security.html +347 -0
- package/dist/dashboard/docs/settings-tool-security.html +176 -0
- package/dist/dashboard/docs/settings.html +36 -16
- package/dist/dashboard/pages/agent-detail/deployment.js +39 -6
- package/dist/dashboard/pages/agent-detail/tools.js +10 -0
- package/dist/dashboard/pages/database-access.js +4 -3
- package/dist/dashboard/pages/settings.js +174 -37
- package/dist/dashboard/pages/task-pipeline.js +400 -843
- package/dist/db-adapter-2T56ORSD.js +7 -0
- package/dist/db-adapter-IRHOUMVC.js +7 -0
- package/dist/index.js +41 -41
- package/dist/microsoft-VREAZ7M2.js +3955 -0
- package/dist/routes-3MMLQTB6.js +90 -0
- package/dist/routes-4ZUIJ4HE.js +90 -0
- package/dist/routes-5MXHKKH4.js +90 -0
- package/dist/routes-64NJFK3B.js +90 -0
- package/dist/routes-6AKQ2LBV.js +90 -0
- package/dist/routes-CRRBUDO4.js +90 -0
- package/dist/routes-DIAF3MC3.js +90 -0
- package/dist/routes-KMUNU6CY.js +90 -0
- package/dist/routes-LRRLXIZR.js +90 -0
- package/dist/routes-N647AJYG.js +90 -0
- package/dist/routes-SSSELAAR.js +90 -0
- package/dist/routes-STERVGKJ.js +90 -0
- package/dist/routes-ZEZZACZP.js +90 -0
- package/dist/runtime-5EQN4GFM.js +45 -0
- package/dist/runtime-5LP7PUD4.js +45 -0
- package/dist/runtime-6BULDBR3.js +45 -0
- package/dist/runtime-6YEENDN3.js +45 -0
- package/dist/runtime-7LQFRG3B.js +45 -0
- package/dist/runtime-AMXJU2MB.js +45 -0
- package/dist/runtime-D6WSE7FG.js +45 -0
- package/dist/runtime-EYVN7NFJ.js +45 -0
- package/dist/runtime-F6RPWQVW.js +45 -0
- package/dist/runtime-FYMJURFC.js +45 -0
- package/dist/runtime-JRNBL4O4.js +45 -0
- package/dist/runtime-OM2NIBMI.js +45 -0
- package/dist/runtime-QWPVD7CY.js +45 -0
- package/dist/runtime-YLIIPTE4.js +45 -0
- package/dist/runtime-YU6P22CG.js +45 -0
- package/dist/screen-unlock-4RPZBHOI.js +118 -0
- package/dist/server-AMCSXINC.js +28 -0
- package/dist/server-CU6LVQS4.js +28 -0
- package/dist/server-DFYGH2CV.js +28 -0
- package/dist/server-EELWOC3X.js +28 -0
- package/dist/server-EN5E2OWQ.js +28 -0
- package/dist/server-GW2HYJYI.js +28 -0
- package/dist/server-J25NCRWJ.js +28 -0
- package/dist/server-JDGNOTFV.js +28 -0
- package/dist/server-NE5HD5DJ.js +28 -0
- package/dist/server-NQOT7W77.js +28 -0
- package/dist/server-PWE5PQTR.js +28 -0
- package/dist/server-Q2Q32H2B.js +28 -0
- package/dist/server-Q77ME7TL.js +28 -0
- package/dist/server-WLLH4WST.js +28 -0
- package/dist/server-WTUJ2O3F.js +28 -0
- package/dist/server-X4CJTHHF.js +28 -0
- package/dist/server-XK3ILCJC.js +28 -0
- package/dist/server-ZRD3NDJE.js +28 -0
- package/dist/setup-44VBAO4J.js +20 -0
- package/dist/setup-4ONNQBWB.js +20 -0
- package/dist/setup-4OSBXSCL.js +20 -0
- package/dist/setup-4QFGRBLZ.js +20 -0
- package/dist/setup-6766SGAR.js +20 -0
- package/dist/setup-AYY24DKM.js +20 -0
- package/dist/setup-B34N4HPU.js +20 -0
- package/dist/setup-E2YLC2EY.js +20 -0
- package/dist/setup-ER6NXTY5.js +20 -0
- package/dist/setup-H2AGCBW5.js +20 -0
- package/dist/setup-ICOZRKCX.js +20 -0
- package/dist/setup-JFTJH7UF.js +20 -0
- package/dist/setup-PRFNI6YW.js +20 -0
- package/dist/setup-RAHBMYHE.js +20 -0
- package/dist/setup-TXPR5UQX.js +20 -0
- package/dist/setup-XCJMELVU.js +20 -0
- package/dist/setup-XIYEIFVK.js +20 -0
- package/dist/setup-Z4PZSHBI.js +20 -0
- package/dist/skills-FR7I5V7H.js +16 -0
- package/dist/skills-HCVBA6PK.js +16 -0
- package/dist/system-prompts-TM7OA32C.js +913 -0
- package/dist/task-queue-O7IVZYUO.js +9 -0
- package/dist/transport-encryption-2T7PIXKG.js +25 -0
- package/logs/cloudflared-error.log +61 -0
- package/logs/cloudflared-out.log +0 -0
- package/logs/enterprise-error.log +0 -0
- package/logs/enterprise-out.log +3 -0
- package/logs/fola-error.log +0 -0
- package/logs/fola-out.log +0 -0
- package/logs/john-error.log +8 -0
- package/logs/john-out.log +0 -0
- package/package.json +31 -3
- package/src/agent-tools/tool-resolver.ts +50 -61
- package/src/agent-tools/tools/enterprise-database.ts +5 -5
- package/src/agent-tools/tools/local/dependency-manager.ts +2 -2
- package/src/agent-tools/tools/microsoft/graph-api.ts +137 -26
- package/src/agent-tools/tools/microsoft/outlook-mail.ts +392 -100
- package/src/agent-tools/tools/microsoft/teams.ts +267 -48
- package/src/auth/routes.ts +4 -4
- package/src/cli-agent.ts +108 -8
- package/src/cli-serve.ts +140 -0
- package/src/dashboard/app.js +9 -3
- package/src/dashboard/components/knowledge-link.js +15 -0
- package/src/dashboard/components/settings-help.js +4 -2
- package/src/dashboard/docs/agent-deployment.html +33 -1
- package/src/dashboard/docs/settings-network.html +321 -0
- package/src/dashboard/docs/settings-security.html +347 -0
- package/src/dashboard/docs/settings-tool-security.html +176 -0
- package/src/dashboard/docs/settings.html +36 -16
- package/src/dashboard/pages/agent-detail/deployment.js +39 -6
- package/src/dashboard/pages/agent-detail/tools.js +10 -0
- package/src/dashboard/pages/database-access.js +4 -3
- package/src/dashboard/pages/settings.js +174 -37
- package/src/dashboard/pages/task-pipeline.js +400 -843
- package/src/database-access/agent-tools.ts +78 -63
- package/src/database-access/connection-manager.ts +13 -2
- package/src/database-access/routes.ts +13 -1
- package/src/db/adapter.ts +1 -0
- package/src/engine/agent-memory.ts +2 -1
- package/src/engine/agent-notify.ts +50 -0
- package/src/engine/agent-routes.ts +257 -4
- package/src/engine/db-adapter.ts +16 -0
- package/src/engine/lifecycle.ts +4 -0
- package/src/engine/routes.ts +4 -3
- package/src/engine/screen-unlock.ts +136 -0
- package/src/engine/skills/database-access.ts +78 -0
- package/src/engine/skills/index.ts +3 -2
- package/src/engine/skills.ts +2 -0
- package/src/engine/task-queue-routes.ts +18 -0
- package/src/engine/task-queue.ts +15 -2
- package/src/middleware/transport-encryption.ts +1 -4
- package/src/runtime/agent-loop.ts +4 -0
- package/src/runtime/index.ts +15 -6
- package/src/server.ts +14 -1
- package/src/system-prompts/google/index.ts +1 -2
- package/src/system-prompts/index.ts +1 -1
- package/src/system-prompts/microsoft/contacts.ts +34 -0
- package/src/system-prompts/microsoft/excel.ts +52 -0
- package/src/system-prompts/microsoft/index.ts +31 -0
- package/src/system-prompts/microsoft/onedrive.ts +41 -0
- package/src/system-prompts/microsoft/onenote.ts +36 -0
- package/src/system-prompts/microsoft/outlook-calendar.ts +37 -0
- package/src/system-prompts/microsoft/outlook-mail.ts +46 -0
- package/src/system-prompts/microsoft/planner.ts +37 -0
- package/src/system-prompts/microsoft/powerbi.ts +38 -0
- package/src/system-prompts/microsoft/powerpoint.ts +35 -0
- package/src/system-prompts/microsoft/sharepoint.ts +44 -0
- package/src/system-prompts/microsoft/teams.ts +49 -0
- package/src/system-prompts/microsoft/todo.ts +37 -0
- package/src/types/hono-env.ts +4 -0
- package/.github/CODEOWNERS +0 -23
- package/.github/workflows/publish-community-skills.yml +0 -121
- package/.github/workflows/validate-community-skills.yml +0 -172
- package/agriculture_southwest_nigeria_research.txt +0 -10
- package/boa_credit_cards_research.txt +0 -10
- package/customer_support_research_feb2026.txt +0 -10
- package/dist/agent-tools-LRA7PPXG.js +0 -13922
- package/dist/agent-tools-VAU5DOQB.js +0 -13910
- package/dist/agent-tools-VWV7OWXU.js +0 -13922
- package/dist/chunk-2Z7MWTCX.js +0 -4977
- package/dist/chunk-3T4XU3VV.js +0 -5010
- package/dist/chunk-445QM4NX.js +0 -5061
- package/dist/chunk-5TW3Y7DJ.js +0 -1519
- package/dist/chunk-6I7VY3LT.js +0 -5060
- package/dist/chunk-6W5EK3UP.js +0 -4977
- package/dist/chunk-AQMSHJQT.js +0 -5069
- package/dist/chunk-ASSQW7HX.js +0 -5051
- package/dist/chunk-CIN27FGC.js +0 -5037
- package/dist/chunk-CMXY3NUB.js +0 -4977
- package/dist/chunk-DRLMRUDP.js +0 -5052
- package/dist/chunk-EHI7Z446.js +0 -1519
- package/dist/chunk-FEAILFAQ.js +0 -1519
- package/dist/chunk-GA3PYBZL.js +0 -1519
- package/dist/chunk-GWX63G5J.js +0 -1519
- package/dist/chunk-HHMZ4UY6.js +0 -1519
- package/dist/chunk-HVQMNF7E.js +0 -4921
- package/dist/chunk-HXM7F3YN.js +0 -1519
- package/dist/chunk-K6NGOUXG.js +0 -5060
- package/dist/chunk-KPG5WINJ.js +0 -4977
- package/dist/chunk-LBCUBYDL.js +0 -1519
- package/dist/chunk-LIRQSWLR.js +0 -5014
- package/dist/chunk-LRCKO5KE.js +0 -1519
- package/dist/chunk-M7XL3DJD.js +0 -5069
- package/dist/chunk-MHJULEIQ.js +0 -1519
- package/dist/chunk-MJGGW6MC.js +0 -106
- package/dist/chunk-MMYBDHDB.js +0 -4921
- package/dist/chunk-MQT5FXKD.js +0 -1519
- package/dist/chunk-OIMPEQF5.js +0 -4977
- package/dist/chunk-OOU7JUYE.js +0 -542
- package/dist/chunk-OW4GLBHP.js +0 -1519
- package/dist/chunk-Q4K4MMLU.js +0 -4977
- package/dist/chunk-RUK4CRPF.js +0 -1519
- package/dist/chunk-T7H65XQY.js +0 -1519
- package/dist/chunk-TQVFWG57.js +0 -5064
- package/dist/chunk-UEPK3IMC.js +0 -1519
- package/dist/chunk-VUWTXJH6.js +0 -1519
- package/dist/chunk-WCPGGSAD.js +0 -1519
- package/dist/chunk-WO63NZOJ.js +0 -1519
- package/dist/chunk-YPJDRVUM.js +0 -5064
- package/dist/chunk-ZROMH5DL.js +0 -4921
- package/src/dashboard/docs/_template.txt +0 -92
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {
|
|
2
|
+
DEFAULT_SENSITIVE_ENDPOINTS,
|
|
3
|
+
decryptPayload,
|
|
4
|
+
encryptPayload,
|
|
5
|
+
getConfig,
|
|
6
|
+
init_transport_encryption,
|
|
7
|
+
loadConfig,
|
|
8
|
+
resetKeys,
|
|
9
|
+
setSettingsDb,
|
|
10
|
+
setTransportEncryptionConfig,
|
|
11
|
+
transportEncryptionMiddleware
|
|
12
|
+
} from "./chunk-FLQ5FLHW.js";
|
|
13
|
+
import "./chunk-KFQGP6VL.js";
|
|
14
|
+
init_transport_encryption();
|
|
15
|
+
export {
|
|
16
|
+
DEFAULT_SENSITIVE_ENDPOINTS,
|
|
17
|
+
decryptPayload,
|
|
18
|
+
encryptPayload,
|
|
19
|
+
getConfig,
|
|
20
|
+
loadConfig,
|
|
21
|
+
resetKeys,
|
|
22
|
+
setSettingsDb,
|
|
23
|
+
setTransportEncryptionConfig,
|
|
24
|
+
transportEncryptionMiddleware
|
|
25
|
+
};
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Starting tunnel tunnelID=18dbfae9-fe5c-4380-a5c7-e5e875255b06
|
|
2
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Version 2026.2.0 (Checksum dc6e60da390e702c4db3332d0cc9cf4e98a88df99f17273e9b3d83f435695fb4)
|
|
3
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF GOOS: darwin, GOVersion: go1.25.7, GoArch: arm64
|
|
4
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Settings: map[cred-file:/Users/ope/.cloudflared/18dbfae9-fe5c-4380-a5c7-e5e875255b06.json credentials-file:/Users/ope/.cloudflared/18dbfae9-fe5c-4380-a5c7-e5e875255b06.json]
|
|
5
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF cloudflared will not automatically update if installed by a package manager.
|
|
6
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Generated Connector ID: 5680022c-ff41-4224-8d2f-238ae9392416
|
|
7
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Initial protocol quic
|
|
8
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF ICMP proxy will use 192.168.86.21 as source for IPv4
|
|
9
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF ICMP proxy will use fe80::1c9c:15a9:2404:3154 in zone en1 as source for IPv6
|
|
10
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Created ICMP proxy listening on 192.168.86.21:0
|
|
11
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF ICMP proxy will use 192.168.86.21 as source for IPv4
|
|
12
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF ICMP proxy will use fe80::1c9c:15a9:2404:3154 in zone en1 as source for IPv6
|
|
13
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Starting metrics server on 127.0.0.1:20241/metrics
|
|
14
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Tunnel connection curve preferences: [X25519MLKEM768 CurveP256] connIndex=0 event=0 ip=198.41.200.63
|
|
15
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Registered tunnel connection connIndex=0 connection=4853aaeb-0b59-40b7-adab-55225c98aaa2 event=0 ip=198.41.200.63 location=atl10 protocol=quic
|
|
16
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Tunnel connection curve preferences: [X25519MLKEM768 CurveP256] connIndex=1 event=0 ip=198.41.192.7
|
|
17
|
+
2026-03-05 06:30:17: 2026-03-05T05:30:17Z INF Registered tunnel connection connIndex=1 connection=721bad3b-ceeb-4173-8af3-61ef604bef42 event=0 ip=198.41.192.7 location=atl06 protocol=quic
|
|
18
|
+
2026-03-05 06:30:18: 2026-03-05T05:30:18Z INF Tunnel connection curve preferences: [X25519MLKEM768 CurveP256] connIndex=2 event=0 ip=198.41.192.167
|
|
19
|
+
2026-03-05 06:30:18: 2026-03-05T05:30:18Z INF Registered tunnel connection connIndex=2 connection=2c61322a-dbcd-4842-bc5a-24abb5dd04e7 event=0 ip=198.41.192.167 location=atl01 protocol=quic
|
|
20
|
+
2026-03-05 06:30:19: 2026-03-05T05:30:19Z INF Tunnel connection curve preferences: [X25519MLKEM768 CurveP256] connIndex=3 event=0 ip=198.41.200.43
|
|
21
|
+
2026-03-05 06:30:19: 2026-03-05T05:30:19Z INF Registered tunnel connection connIndex=3 connection=3f85a46d-7759-4483-a267-f9e342905648 event=0 ip=198.41.200.43 location=atl14 protocol=quic
|
|
22
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z INF Initiating graceful shutdown due to signal interrupt ...
|
|
23
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR failed to run the datagram handler error="Application error 0x0 (remote)" connIndex=0 event=0 ip=198.41.200.63
|
|
24
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR failed to serve tunnel connection error="accept stream listener encountered a failure while serving" connIndex=0 event=0 ip=198.41.200.63
|
|
25
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR Serve tunnel error error="accept stream listener encountered a failure while serving" connIndex=0 event=0 ip=198.41.200.63
|
|
26
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z INF Retrying connection in up to 1s connIndex=0 event=0 ip=198.41.200.63
|
|
27
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR Connection terminated connIndex=0
|
|
28
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR failed to run the datagram handler error="Application error 0x0 (remote)" connIndex=2 event=0 ip=198.41.192.167
|
|
29
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR failed to serve tunnel connection error="accept stream listener encountered a failure while serving" connIndex=2 event=0 ip=198.41.192.167
|
|
30
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR Serve tunnel error error="accept stream listener encountered a failure while serving" connIndex=2 event=0 ip=198.41.192.167
|
|
31
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z INF Retrying connection in up to 1s connIndex=2 event=0 ip=198.41.192.167
|
|
32
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR Connection terminated connIndex=2
|
|
33
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR failed to run the datagram handler error="context canceled" connIndex=1 event=0 ip=198.41.192.7
|
|
34
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR failed to serve tunnel connection error="accept stream listener encountered a failure while serving" connIndex=1 event=0 ip=198.41.192.7
|
|
35
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR Serve tunnel error error="accept stream listener encountered a failure while serving" connIndex=1 event=0 ip=198.41.192.7
|
|
36
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z INF Retrying connection in up to 1s connIndex=1 event=0 ip=198.41.192.7
|
|
37
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z ERR Connection terminated connIndex=1
|
|
38
|
+
2026-03-05 06:31:03: 2026-03-05T05:31:03Z INF Unregistered tunnel connection connIndex=3 event=0 ip=198.41.200.43
|
|
39
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF Starting tunnel tunnelID=18dbfae9-fe5c-4380-a5c7-e5e875255b06
|
|
40
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF Version 2026.2.0 (Checksum dc6e60da390e702c4db3332d0cc9cf4e98a88df99f17273e9b3d83f435695fb4)
|
|
41
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF GOOS: darwin, GOVersion: go1.25.7, GoArch: arm64
|
|
42
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF Settings: map[cred-file:/Users/ope/.cloudflared/18dbfae9-fe5c-4380-a5c7-e5e875255b06.json credentials-file:/Users/ope/.cloudflared/18dbfae9-fe5c-4380-a5c7-e5e875255b06.json]
|
|
43
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF cloudflared will not automatically update if installed by a package manager.
|
|
44
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF Generated Connector ID: cc6e6cb6-caac-477f-a1a2-d86368d41607
|
|
45
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF Initial protocol quic
|
|
46
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF ICMP proxy will use 192.168.86.21 as source for IPv4
|
|
47
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF ICMP proxy will use fe80::1c9c:15a9:2404:3154 in zone en1 as source for IPv6
|
|
48
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF Created ICMP proxy listening on 192.168.86.21:0
|
|
49
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF ICMP proxy will use 192.168.86.21 as source for IPv4
|
|
50
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF ICMP proxy will use fe80::1c9c:15a9:2404:3154 in zone en1 as source for IPv6
|
|
51
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF Starting metrics server on 127.0.0.1:20241/metrics
|
|
52
|
+
2026-03-05 06:31:08: 2026-03-05T05:31:08Z INF Tunnel connection curve preferences: [X25519MLKEM768 CurveP256] connIndex=0 event=0 ip=198.41.192.107
|
|
53
|
+
2026-03-05 06:31:09: 2026-03-05T05:31:09Z INF Registered tunnel connection connIndex=0 connection=edb70b98-0105-4afd-bb75-6c2ec9ca0a53 event=0 ip=198.41.192.107 location=atl12 protocol=quic
|
|
54
|
+
2026-03-05 06:31:09: 2026-03-05T05:31:09Z INF Tunnel connection curve preferences: [X25519MLKEM768 CurveP256] connIndex=1 event=0 ip=198.41.200.63
|
|
55
|
+
2026-03-05 06:31:09: 2026-03-05T05:31:09Z INF Registered tunnel connection connIndex=1 connection=826299ab-8cff-4806-8890-55db7e5620d0 event=0 ip=198.41.200.63 location=atl11 protocol=quic
|
|
56
|
+
2026-03-05 06:31:10: 2026-03-05T05:31:10Z INF Tunnel connection curve preferences: [X25519MLKEM768 CurveP256] connIndex=2 event=0 ip=198.41.192.57
|
|
57
|
+
2026-03-05 06:31:10: 2026-03-05T05:31:10Z INF Registered tunnel connection connIndex=2 connection=9ceb7c37-a55c-4516-bbd0-e69f4f0c1152 event=0 ip=198.41.192.57 location=atl12 protocol=quic
|
|
58
|
+
2026-03-05 06:31:11: 2026-03-05T05:31:11Z INF Tunnel connection curve preferences: [X25519MLKEM768 CurveP256] connIndex=3 event=0 ip=198.41.200.53
|
|
59
|
+
2026-03-05 06:31:11: 2026-03-05T05:31:11Z INF Registered tunnel connection connIndex=3 connection=3b74716b-204c-459d-b533-31e1307e1ea8 event=0 ip=198.41.200.53 location=atl11 protocol=quic
|
|
60
|
+
2026-03-05 06:35:14: 2026-03-05T05:35:14Z ERR error="unexpected EOF" connIndex=3 event=1 ingressRule=0 originService=http://localhost:3100
|
|
61
|
+
2026-03-05 06:35:14: 2026-03-05T05:35:14Z ERR Request failed error="unexpected EOF" connIndex=3 dest=https://enterprise.agenticmail.io/api/engine/task-pipeline/stream event=0 ip=198.41.200.53 type=http
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
2026-03-05 06:30:17: Loaded config from /Users/ope/Desktop/projects/agenticmail/enterprise/.env
|
|
2
|
+
2026-03-05 06:31:08: Loaded config from /Users/ope/Desktop/projects/agenticmail/enterprise/.env
|
|
3
|
+
2026-03-05 06:35:14: Loaded config from /Users/ope/Desktop/projects/agenticmail/enterprise/.env
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
2026-03-05 06:30:17: ERROR: DATABASE_URL is required
|
|
2
|
+
2026-03-05 06:30:19: ERROR: DATABASE_URL is required
|
|
3
|
+
2026-03-05 06:30:22: ERROR: DATABASE_URL is required
|
|
4
|
+
2026-03-05 06:30:27: ERROR: DATABASE_URL is required
|
|
5
|
+
2026-03-05 06:30:34: ERROR: DATABASE_URL is required
|
|
6
|
+
2026-03-05 06:30:44: ERROR: DATABASE_URL is required
|
|
7
|
+
2026-03-05 06:30:59: ERROR: DATABASE_URL is required
|
|
8
|
+
2026-03-05 06:31:11: Fatal error: current transaction is aborted, commands ignored until end of transaction block
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agenticmail/enterprise",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.321",
|
|
4
4
|
"description": "AgenticMail Enterprise — cloud-hosted AI agent identity, email, auth & compliance for organizations",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -28,10 +28,31 @@
|
|
|
28
28
|
"saml",
|
|
29
29
|
"oidc",
|
|
30
30
|
"scim",
|
|
31
|
-
"identity"
|
|
31
|
+
"identity",
|
|
32
|
+
"ai-agents",
|
|
33
|
+
"agent-platform",
|
|
34
|
+
"microsoft-365",
|
|
35
|
+
"google-workspace",
|
|
36
|
+
"compliance",
|
|
37
|
+
"soc2",
|
|
38
|
+
"gdpr",
|
|
39
|
+
"dlp",
|
|
40
|
+
"data-loss-prevention",
|
|
41
|
+
"oauth",
|
|
42
|
+
"multi-tenant",
|
|
43
|
+
"workforce-management",
|
|
44
|
+
"task-pipeline",
|
|
45
|
+
"telegram-bot",
|
|
46
|
+
"whatsapp-bot",
|
|
47
|
+
"voice-ai",
|
|
48
|
+
"google-meet",
|
|
49
|
+
"dependency-management",
|
|
50
|
+
"audit-log",
|
|
51
|
+
"rbac",
|
|
52
|
+
"encryption"
|
|
32
53
|
],
|
|
33
54
|
"author": "Ope Olatunji (https://github.com/ope-olatunji)",
|
|
34
|
-
"homepage": "https://
|
|
55
|
+
"homepage": "https://agenticmail.io",
|
|
35
56
|
"repository": {
|
|
36
57
|
"type": "git",
|
|
37
58
|
"url": "https://github.com/agenticmail/enterprise.git"
|
|
@@ -90,5 +111,12 @@
|
|
|
90
111
|
"mongodb": "^6.3.0",
|
|
91
112
|
"mysql2": "^3.9.0",
|
|
92
113
|
"postgres": "^3.4.0"
|
|
114
|
+
},
|
|
115
|
+
"engines": {
|
|
116
|
+
"node": ">=18.0.0"
|
|
117
|
+
},
|
|
118
|
+
"funding": {
|
|
119
|
+
"type": "individual",
|
|
120
|
+
"url": "https://agenticmail.io"
|
|
93
121
|
}
|
|
94
122
|
}
|
|
@@ -81,7 +81,10 @@ export type ToolSet =
|
|
|
81
81
|
// Management (hierarchy, delegation, escalation)
|
|
82
82
|
| 'management'
|
|
83
83
|
// Integrations
|
|
84
|
-
| 'mcp_bridge'
|
|
84
|
+
| 'mcp_bridge'
|
|
85
|
+
// Aliases (legacy/shorthand)
|
|
86
|
+
| 'filesystem'
|
|
87
|
+
| 'web';
|
|
85
88
|
|
|
86
89
|
// ─── Tier Classification ─────────────────────────────────
|
|
87
90
|
|
|
@@ -131,6 +134,8 @@ const TIER_MAP: Record<ToolSet, ToolTier> = {
|
|
|
131
134
|
msg_whatsapp: 2,
|
|
132
135
|
msg_telegram: 2,
|
|
133
136
|
mcp_bridge: 3,
|
|
137
|
+
filesystem: 2,
|
|
138
|
+
web: 2,
|
|
134
139
|
};
|
|
135
140
|
|
|
136
141
|
// ─── Exhaustive Tool Registry ────────────────────────────
|
|
@@ -501,67 +506,28 @@ export function clearSessionToolState(sessionId: string): void {
|
|
|
501
506
|
// Which Tier 2 sets get auto-loaded for each context.
|
|
502
507
|
// Tier 1 is ALWAYS loaded. Tier 3 is NEVER auto-loaded (must be requested).
|
|
503
508
|
|
|
509
|
+
const _ALL_SETS = Object.keys(TIER_MAP) as ToolSet[];
|
|
510
|
+
|
|
511
|
+
// Tier 2 sets that are commonly needed — loaded for most contexts
|
|
512
|
+
const _COMMON_T2: ToolSet[] = ['local_filesystem', 'local_shell', 'browser', 'system', 'ent_knowledge'];
|
|
513
|
+
|
|
504
514
|
const CONTEXT_PROMOTIONS: Record<SessionContext, ToolSet[]> = {
|
|
505
|
-
// Meeting: voice +
|
|
506
|
-
meeting: [
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
//
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
'msg_whatsapp',
|
|
522
|
-
'browser',
|
|
523
|
-
'local_shell',
|
|
524
|
-
'filesystem',
|
|
525
|
-
'web',
|
|
526
|
-
],
|
|
527
|
-
|
|
528
|
-
// Telegram: messaging + essential file/shell tools for media processing
|
|
529
|
-
telegram: [
|
|
530
|
-
'msg_telegram',
|
|
531
|
-
'browser',
|
|
532
|
-
'local_shell',
|
|
533
|
-
'filesystem',
|
|
534
|
-
'web',
|
|
535
|
-
],
|
|
536
|
-
|
|
537
|
-
// Email handler: focused email + lookups
|
|
538
|
-
email: [
|
|
539
|
-
'system',
|
|
540
|
-
'gws_gmail',
|
|
541
|
-
'gws_calendar',
|
|
542
|
-
'gws_contacts',
|
|
543
|
-
'gws_drive',
|
|
544
|
-
'gws_tasks',
|
|
545
|
-
'agenticmail',
|
|
546
|
-
'ent_documents',
|
|
547
|
-
'ent_knowledge',
|
|
548
|
-
],
|
|
549
|
-
|
|
550
|
-
// Task: broad access for autonomous work
|
|
551
|
-
task: [
|
|
552
|
-
'browser', 'system',
|
|
553
|
-
'visual_memory',
|
|
554
|
-
'meeting_lifecycle',
|
|
555
|
-
'gws_gmail', 'gws_calendar', 'gws_drive',
|
|
556
|
-
'gws_docs', 'gws_sheets', 'gws_contacts',
|
|
557
|
-
'gws_tasks', 'gws_maps',
|
|
558
|
-
'ent_database', 'ent_spreadsheet', 'ent_documents',
|
|
559
|
-
'ent_http', 'ent_security', 'ent_code', 'ent_diff',
|
|
560
|
-
'agenticmail', 'mcp_bridge',
|
|
561
|
-
],
|
|
562
|
-
|
|
563
|
-
// Full: everything
|
|
564
|
-
full: Object.keys(TIER_MAP) as ToolSet[],
|
|
515
|
+
// Meeting: voice + lifecycle essential, plus common tools
|
|
516
|
+
meeting: ['meeting_voice', 'meeting_lifecycle', ..._COMMON_T2],
|
|
517
|
+
|
|
518
|
+
// Chat (webchat/generic): common tools only — rest loaded on demand via signals or request_tools
|
|
519
|
+
chat: _COMMON_T2,
|
|
520
|
+
|
|
521
|
+
// Messaging channels: load the relevant channel's tools + common tools
|
|
522
|
+
// The agent's OWN channel tools are essential (Tier 1-like for that session)
|
|
523
|
+
// Other channel tools and specialist tools load on demand
|
|
524
|
+
whatsapp: ['msg_whatsapp', ..._COMMON_T2],
|
|
525
|
+
telegram: ['msg_telegram', ..._COMMON_T2],
|
|
526
|
+
email: ['agenticmail', 'gws_gmail', ..._COMMON_T2],
|
|
527
|
+
|
|
528
|
+
// Task/full: broader set for agent-to-agent work
|
|
529
|
+
task: ['agenticmail', ..._COMMON_T2],
|
|
530
|
+
full: _ALL_SETS,
|
|
565
531
|
};
|
|
566
532
|
|
|
567
533
|
// ─── Conversation Signal Detection ───────────────────────
|
|
@@ -619,6 +585,27 @@ const SIGNAL_RULES: SignalRule[] = [
|
|
|
619
585
|
// Knowledge base / hub
|
|
620
586
|
{ patterns: [/\bknowledge\s*base\b/i, /\bknowledge\s*hub\b/i, /\bfaq\b/i, /\bdocumentation\b/i, /\bwiki\b/i, /\bhow\s+do\s+(we|i)\b/i, /\bwhat.*(policy|process|procedure)\b/i, /\bcompany.*(guide|handbook)\b/i],
|
|
621
587
|
sets: ['ent_knowledge'] },
|
|
588
|
+
// WhatsApp (cross-channel)
|
|
589
|
+
{ patterns: [/\bwhatsapp\b/i, /\bsend.*whatsapp\b/i, /\bwa\s+message\b/i],
|
|
590
|
+
sets: ['msg_whatsapp'] },
|
|
591
|
+
// Telegram (cross-channel)
|
|
592
|
+
{ patterns: [/\btelegram\b/i, /\bsend.*telegram\b/i, /\btg\s+message\b/i],
|
|
593
|
+
sets: ['msg_telegram'] },
|
|
594
|
+
// Spreadsheet / CSV
|
|
595
|
+
{ patterns: [/\bcsv\b/i, /\bspreadsheet\b/i, /\btransform.*data\b/i, /\bpivot\b/i],
|
|
596
|
+
sets: ['ent_spreadsheet'] },
|
|
597
|
+
// Diff
|
|
598
|
+
{ patterns: [/\bdiff\b/i, /\bcompare.*files?\b/i, /\bwhat.*changed\b/i],
|
|
599
|
+
sets: ['ent_diff'] },
|
|
600
|
+
// Tasks (Google)
|
|
601
|
+
{ patterns: [/\bgoogle\s*tasks?\b/i, /\btask\s*list\b/i, /\btodo\b/i],
|
|
602
|
+
sets: ['gws_tasks'] },
|
|
603
|
+
// Visual memory
|
|
604
|
+
{ patterns: [/\bscreenshot\b/i, /\bcapture\b/i, /\bvision\b/i, /\bwhat.*see\b/i, /\blook\s*at\b/i],
|
|
605
|
+
sets: ['visual_memory'] },
|
|
606
|
+
// AgenticMail (broader)
|
|
607
|
+
{ patterns: [/\bsend.*email\b/i, /\bwrite.*email\b/i, /\bdraft\b/i, /\binbox\b/i, /\bcheck.*mail\b/i],
|
|
608
|
+
sets: ['agenticmail'] },
|
|
622
609
|
];
|
|
623
610
|
|
|
624
611
|
/**
|
|
@@ -823,6 +810,8 @@ const SET_DESCRIPTIONS: Record<ToolSet, string> = {
|
|
|
823
810
|
msg_telegram: 'Telegram messaging, media, and file download (5 tools)',
|
|
824
811
|
management: 'Team management — delegate tasks, escalate, org chart (10 tools)',
|
|
825
812
|
mcp_bridge: 'MCP integration adapters',
|
|
813
|
+
filesystem: 'File system tools (alias)',
|
|
814
|
+
web: 'Web tools (alias)',
|
|
826
815
|
};
|
|
827
816
|
|
|
828
817
|
function createRequestToolsTool(
|
|
@@ -52,7 +52,7 @@ export function createDatabaseTools(options?: ToolCreationOptions): AnyAgentTool
|
|
|
52
52
|
var entDbQuery: AnyAgentTool = {
|
|
53
53
|
name: 'ent_db_query',
|
|
54
54
|
label: 'Database Query',
|
|
55
|
-
description: 'Execute a read-only SQL query against a database
|
|
55
|
+
description: 'Execute a read-only SQL query against a LOCAL SQLite database file. For external/cloud databases, use db_query instead.',
|
|
56
56
|
category: 'utility',
|
|
57
57
|
risk: 'medium',
|
|
58
58
|
parameters: {
|
|
@@ -220,8 +220,8 @@ export function createDatabaseTools(options?: ToolCreationOptions): AnyAgentTool
|
|
|
220
220
|
|
|
221
221
|
var entDbConnections: AnyAgentTool = {
|
|
222
222
|
name: 'ent_db_connections',
|
|
223
|
-
label: 'List Database
|
|
224
|
-
description: 'List
|
|
223
|
+
label: 'List Local Database Files',
|
|
224
|
+
description: 'List LOCAL SQLite database files found in the workspace directory. ONLY for local .db/.sqlite files on this machine. For external/cloud databases (Postgres, MySQL, Supabase, etc.) granted by your admin, use db_list_connections instead.',
|
|
225
225
|
category: 'utility',
|
|
226
226
|
risk: 'low',
|
|
227
227
|
parameters: {
|
|
@@ -265,8 +265,8 @@ export function createDatabaseTools(options?: ToolCreationOptions): AnyAgentTool
|
|
|
265
265
|
|
|
266
266
|
var entDbTables: AnyAgentTool = {
|
|
267
267
|
name: 'ent_db_tables',
|
|
268
|
-
label: 'List Tables',
|
|
269
|
-
description: 'List all tables in a database
|
|
268
|
+
label: 'List Local DB Tables',
|
|
269
|
+
description: 'List all tables in a LOCAL SQLite database file. For external/cloud databases, use db_list_tables instead.',
|
|
270
270
|
category: 'utility',
|
|
271
271
|
risk: 'low',
|
|
272
272
|
parameters: {
|
|
@@ -426,8 +426,8 @@ export function createDependencyManagerTools(): ToolDefinition[] {
|
|
|
426
426
|
else {
|
|
427
427
|
// Try to figure out a manager
|
|
428
428
|
var mgrs = await detectPackageManagers();
|
|
429
|
-
var fallback
|
|
430
|
-
resolved = { mgr: fallback, pkg: input.package, isLocal: fallback === 'npm' || fallback === 'pip' };
|
|
429
|
+
var fallback = (IS_WINDOWS ? (mgrs.includes('choco') ? 'choco' : mgrs.includes('winget') ? 'winget' : 'npm') : IS_MAC ? 'brew' : (mgrs.includes('apt') ? 'apt' : 'npm')) as PkgManager;
|
|
430
|
+
resolved = { mgr: fallback, pkg: input.package, isLocal: fallback === 'npm' || (fallback as string) === 'pip' };
|
|
431
431
|
}
|
|
432
432
|
}
|
|
433
433
|
if (!resolved) {
|
|
@@ -1,26 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Microsoft Graph API
|
|
2
|
+
* Microsoft Graph API Helper
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Enhanced shared fetch wrapper for all Microsoft 365 tools.
|
|
5
|
+
* Supports pagination, batch requests, retry with backoff, and rate limiting.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
const GRAPH_BASE = 'https://graph.microsoft.com/v1.0';
|
|
9
|
+
const GRAPH_BETA = 'https://graph.microsoft.com/beta';
|
|
9
10
|
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
export interface GraphOptions {
|
|
12
|
+
method?: string;
|
|
13
|
+
body?: any;
|
|
14
|
+
query?: Record<string, string>;
|
|
15
|
+
rawBody?: BodyInit;
|
|
16
|
+
headers?: Record<string, string>;
|
|
17
|
+
beta?: boolean;
|
|
18
|
+
/** Max retries on 429/5xx (default: 3) */
|
|
19
|
+
retries?: number;
|
|
20
|
+
/** Return raw Response instead of parsed JSON */
|
|
21
|
+
raw?: boolean;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Core Graph API fetch — handles auth, JSON, retries, rate-limit backoff.
|
|
26
|
+
*/
|
|
27
|
+
export async function graph(token: string, path: string, opts?: GraphOptions): Promise<any> {
|
|
22
28
|
const method = opts?.method || 'GET';
|
|
23
|
-
const base = opts?.beta ?
|
|
29
|
+
const base = opts?.beta ? GRAPH_BETA : GRAPH_BASE;
|
|
24
30
|
const url = new URL(base + path);
|
|
25
31
|
if (opts?.query) {
|
|
26
32
|
for (const [k, v] of Object.entries(opts.query)) {
|
|
@@ -34,17 +40,122 @@ export async function graph(
|
|
|
34
40
|
if (!opts?.rawBody && !opts?.headers?.['Content-Type']) {
|
|
35
41
|
headers['Content-Type'] = 'application/json';
|
|
36
42
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
43
|
+
|
|
44
|
+
const maxRetries = opts?.retries ?? 3;
|
|
45
|
+
let lastError: Error | null = null;
|
|
46
|
+
|
|
47
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
48
|
+
try {
|
|
49
|
+
const res = await fetch(url.toString(), {
|
|
50
|
+
method,
|
|
51
|
+
headers,
|
|
52
|
+
body: opts?.rawBody || (opts?.body ? JSON.stringify(opts.body) : undefined),
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
// Rate limited — back off using Retry-After header
|
|
56
|
+
if (res.status === 429 && attempt < maxRetries) {
|
|
57
|
+
const retryAfter = parseInt(res.headers.get('Retry-After') || '5', 10);
|
|
58
|
+
await sleep(retryAfter * 1000);
|
|
59
|
+
continue;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Server error — exponential backoff
|
|
63
|
+
if (res.status >= 500 && attempt < maxRetries) {
|
|
64
|
+
await sleep(Math.pow(2, attempt) * 1000);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (opts?.raw) return res;
|
|
69
|
+
|
|
70
|
+
if (!res.ok) {
|
|
71
|
+
const err = await res.text();
|
|
72
|
+
throw new Error(`Graph ${method} ${path} ${res.status}: ${err}`);
|
|
73
|
+
}
|
|
74
|
+
if (res.status === 204 || res.status === 202) return {};
|
|
75
|
+
const ct = res.headers.get('content-type') || '';
|
|
76
|
+
if (ct.includes('application/json')) return res.json();
|
|
77
|
+
return { content: await res.text() };
|
|
78
|
+
} catch (e: any) {
|
|
79
|
+
lastError = e;
|
|
80
|
+
if (attempt < maxRetries && e.message?.includes('fetch failed')) {
|
|
81
|
+
await sleep(Math.pow(2, attempt) * 1000);
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
84
|
+
throw e;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
throw lastError || new Error('Graph request failed after retries');
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Auto-paginate a Graph API collection. Follows @odata.nextLink up to maxPages.
|
|
92
|
+
* Returns all items concatenated.
|
|
93
|
+
*/
|
|
94
|
+
export async function graphPaginate(
|
|
95
|
+
token: string,
|
|
96
|
+
path: string,
|
|
97
|
+
opts?: GraphOptions & { maxPages?: number; maxItems?: number }
|
|
98
|
+
): Promise<any[]> {
|
|
99
|
+
const maxPages = opts?.maxPages ?? 10;
|
|
100
|
+
const maxItems = opts?.maxItems ?? 500;
|
|
101
|
+
const items: any[] = [];
|
|
102
|
+
let nextUrl: string | null = null;
|
|
103
|
+
let page = 0;
|
|
104
|
+
|
|
105
|
+
// First request
|
|
106
|
+
const first = await graph(token, path, opts);
|
|
107
|
+
items.push(...(first.value || []));
|
|
108
|
+
nextUrl = first['@odata.nextLink'] || null;
|
|
109
|
+
|
|
110
|
+
// Follow pagination
|
|
111
|
+
while (nextUrl && ++page < maxPages && items.length < maxItems) {
|
|
112
|
+
const res = await fetch(nextUrl, {
|
|
113
|
+
headers: { Authorization: `Bearer ${token}` },
|
|
114
|
+
});
|
|
115
|
+
if (!res.ok) break;
|
|
116
|
+
const data = await res.json();
|
|
117
|
+
items.push(...(data.value || []));
|
|
118
|
+
nextUrl = data['@odata.nextLink'] || null;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
return items.slice(0, maxItems);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* Execute a JSON batch request (up to 20 requests per batch).
|
|
126
|
+
* https://learn.microsoft.com/en-us/graph/json-batching
|
|
127
|
+
*/
|
|
128
|
+
export async function graphBatch(
|
|
129
|
+
token: string,
|
|
130
|
+
requests: Array<{
|
|
131
|
+
id: string;
|
|
132
|
+
method: string;
|
|
133
|
+
url: string;
|
|
134
|
+
body?: any;
|
|
135
|
+
headers?: Record<string, string>;
|
|
136
|
+
}>,
|
|
137
|
+
opts?: { beta?: boolean }
|
|
138
|
+
): Promise<Map<string, { status: number; body: any }>> {
|
|
139
|
+
const base = opts?.beta ? GRAPH_BETA : GRAPH_BASE;
|
|
140
|
+
const res = await fetch(`${base}/$batch`, {
|
|
141
|
+
method: 'POST',
|
|
142
|
+
headers: {
|
|
143
|
+
Authorization: `Bearer ${token}`,
|
|
144
|
+
'Content-Type': 'application/json',
|
|
145
|
+
},
|
|
146
|
+
body: JSON.stringify({ requests }),
|
|
41
147
|
});
|
|
42
148
|
if (!res.ok) {
|
|
43
|
-
|
|
44
|
-
|
|
149
|
+
throw new Error(`Graph batch ${res.status}: ${await res.text()}`);
|
|
150
|
+
}
|
|
151
|
+
const data = await res.json();
|
|
152
|
+
const results = new Map<string, { status: number; body: any }>();
|
|
153
|
+
for (const r of data.responses || []) {
|
|
154
|
+
results.set(r.id, { status: r.status, body: r.body });
|
|
45
155
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
156
|
+
return results;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function sleep(ms: number): Promise<void> {
|
|
160
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
50
161
|
}
|