@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
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
DatabaseConnectionManager,
|
|
20
20
|
init_connection_manager,
|
|
21
21
|
init_query_sanitizer
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-BQM7MBPS.js";
|
|
23
23
|
import {
|
|
24
24
|
init_agent_tools,
|
|
25
25
|
init_types
|
|
@@ -52,7 +52,7 @@ import {
|
|
|
52
52
|
setSettingsDb,
|
|
53
53
|
setTransportEncryptionConfig,
|
|
54
54
|
transportEncryptionMiddleware
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-FLQ5FLHW.js";
|
|
56
56
|
import {
|
|
57
57
|
SecureVault,
|
|
58
58
|
init_vault
|
|
@@ -6563,7 +6563,11 @@ function createAgentRoutes(opts) {
|
|
|
6563
6563
|
});
|
|
6564
6564
|
router.get("/agents", (c) => {
|
|
6565
6565
|
const orgId = c.req.query("orgId");
|
|
6566
|
-
const
|
|
6566
|
+
const clientOrgId = c.req.query("clientOrgId");
|
|
6567
|
+
let agents = orgId ? lifecycle2.getAgentsByOrg(orgId) : lifecycle2.getAllAgents();
|
|
6568
|
+
if (clientOrgId) {
|
|
6569
|
+
agents = agents.filter((a) => a.clientOrgId === clientOrgId || a.client_org_id === clientOrgId);
|
|
6570
|
+
}
|
|
6567
6571
|
return c.json({ agents, total: agents.length });
|
|
6568
6572
|
});
|
|
6569
6573
|
router.get("/agents/:id", async (c) => {
|
|
@@ -6847,6 +6851,175 @@ function createAgentRoutes(opts) {
|
|
|
6847
6851
|
return c.json({ success: false, error: e.message, hint: "Try running: sudo npm install -g pm2" }, 500);
|
|
6848
6852
|
}
|
|
6849
6853
|
});
|
|
6854
|
+
router.post("/system/check-port", async (c) => {
|
|
6855
|
+
try {
|
|
6856
|
+
const { port } = await c.req.json();
|
|
6857
|
+
const p = parseInt(port);
|
|
6858
|
+
if (!p || p < 1 || p > 65535) {
|
|
6859
|
+
return c.json({ available: false, error: "Invalid port number (1-65535)" });
|
|
6860
|
+
}
|
|
6861
|
+
const net = await import("net");
|
|
6862
|
+
const tryBind = (host) => new Promise((resolve) => {
|
|
6863
|
+
const server = net.createServer();
|
|
6864
|
+
server.once("error", () => resolve(false));
|
|
6865
|
+
server.once("listening", () => {
|
|
6866
|
+
server.close(() => resolve(true));
|
|
6867
|
+
});
|
|
6868
|
+
server.listen(p, host);
|
|
6869
|
+
});
|
|
6870
|
+
const [availAll, availLocal] = await Promise.all([tryBind("0.0.0.0"), tryBind("127.0.0.1")]);
|
|
6871
|
+
const available = availAll && availLocal;
|
|
6872
|
+
if (!available) {
|
|
6873
|
+
let processInfo = "";
|
|
6874
|
+
try {
|
|
6875
|
+
const { execSync } = await import("child_process");
|
|
6876
|
+
if (process.platform === "darwin" || process.platform === "linux") {
|
|
6877
|
+
const lsofBin = process.platform === "darwin" ? "/usr/sbin/lsof" : "lsof";
|
|
6878
|
+
const out = execSync(`${lsofBin} -i :${p} -P -n 2>/dev/null | head -5`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 3e3 }).trim();
|
|
6879
|
+
if (out) {
|
|
6880
|
+
const lines = out.split("\n").slice(1);
|
|
6881
|
+
if (lines.length > 0) {
|
|
6882
|
+
const parts = lines[0].split(/\s+/);
|
|
6883
|
+
processInfo = parts[0] ? `${parts[0]} (PID ${parts[1]})` : "";
|
|
6884
|
+
}
|
|
6885
|
+
}
|
|
6886
|
+
} else if (process.platform === "win32") {
|
|
6887
|
+
const out = execSync(`netstat -ano | findstr :${p}`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 3e3 }).trim();
|
|
6888
|
+
if (out) {
|
|
6889
|
+
const parts = out.split(/\s+/);
|
|
6890
|
+
processInfo = `PID ${parts[parts.length - 1]}`;
|
|
6891
|
+
}
|
|
6892
|
+
}
|
|
6893
|
+
} catch {
|
|
6894
|
+
}
|
|
6895
|
+
return c.json({ available: false, port: p, inUse: true, process: processInfo || "Unknown process" });
|
|
6896
|
+
}
|
|
6897
|
+
return c.json({ available: true, port: p });
|
|
6898
|
+
} catch (e) {
|
|
6899
|
+
return c.json({ available: false, error: e.message });
|
|
6900
|
+
}
|
|
6901
|
+
});
|
|
6902
|
+
router.post("/system/unlock-screen", async (c) => {
|
|
6903
|
+
try {
|
|
6904
|
+
const platform = process.platform;
|
|
6905
|
+
if (platform === "darwin") {
|
|
6906
|
+
const { execSync } = await import("child_process");
|
|
6907
|
+
try {
|
|
6908
|
+
execSync("caffeinate -u -t 2", { stdio: "pipe", timeout: 5e3 });
|
|
6909
|
+
} catch {
|
|
6910
|
+
}
|
|
6911
|
+
const isLocked = (() => {
|
|
6912
|
+
try {
|
|
6913
|
+
const out = execSync(`python3 -c "import Quartz; d=Quartz.CGSessionCopyCurrentDictionary(); print(d.get('CGSSessionScreenIsLocked', 0))"`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 3e3 }).trim();
|
|
6914
|
+
return out === "1" || out === "True";
|
|
6915
|
+
} catch {
|
|
6916
|
+
try {
|
|
6917
|
+
const out = execSync(`osascript -e 'tell application "System Events" to get name of first application process whose frontmost is true'`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 3e3 }).trim();
|
|
6918
|
+
return out === "loginwindow" || out === "ScreenSaverEngine";
|
|
6919
|
+
} catch {
|
|
6920
|
+
return false;
|
|
6921
|
+
}
|
|
6922
|
+
}
|
|
6923
|
+
})();
|
|
6924
|
+
if (!isLocked) {
|
|
6925
|
+
return c.json({ success: true, wasLocked: false, message: "Screen is already unlocked" });
|
|
6926
|
+
}
|
|
6927
|
+
const body = await c.req.json().catch(() => ({}));
|
|
6928
|
+
const password = body.password;
|
|
6929
|
+
if (!password) {
|
|
6930
|
+
return c.json({ success: false, locked: true, error: "Screen is locked but no password provided. Configure the system password in Settings > Security or the agent's Permissions tab." });
|
|
6931
|
+
}
|
|
6932
|
+
try {
|
|
6933
|
+
execSync(`osascript -e 'tell application "System Events" to keystroke "${password.replace(/["\\]/g, "\\$&")}"' -e 'delay 0.3' -e 'tell application "System Events" to key code 36'`, {
|
|
6934
|
+
stdio: "pipe",
|
|
6935
|
+
timeout: 1e4
|
|
6936
|
+
});
|
|
6937
|
+
await new Promise((r) => setTimeout(r, 2e3));
|
|
6938
|
+
const stillLocked = (() => {
|
|
6939
|
+
try {
|
|
6940
|
+
const out = execSync(`python3 -c "import Quartz; d=Quartz.CGSessionCopyCurrentDictionary(); print(d.get('CGSSessionScreenIsLocked', 0))"`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 3e3 }).trim();
|
|
6941
|
+
return out === "1" || out === "True";
|
|
6942
|
+
} catch {
|
|
6943
|
+
return false;
|
|
6944
|
+
}
|
|
6945
|
+
})();
|
|
6946
|
+
if (stillLocked) {
|
|
6947
|
+
return c.json({ success: false, error: "Failed to unlock \u2014 password may be incorrect" });
|
|
6948
|
+
}
|
|
6949
|
+
return c.json({ success: true, wasLocked: true, message: "Screen unlocked successfully" });
|
|
6950
|
+
} catch (e) {
|
|
6951
|
+
return c.json({ success: false, error: "Unlock attempt failed: " + e.message });
|
|
6952
|
+
}
|
|
6953
|
+
} else if (platform === "linux") {
|
|
6954
|
+
const { execSync } = await import("child_process");
|
|
6955
|
+
const body = await c.req.json().catch(() => ({}));
|
|
6956
|
+
const password = body.password;
|
|
6957
|
+
try {
|
|
6958
|
+
execSync("loginctl unlock-session $(loginctl list-sessions --no-legend | head -1 | awk '{print $1}')", { stdio: "pipe", timeout: 5e3 });
|
|
6959
|
+
return c.json({ success: true, message: "Session unlocked via loginctl" });
|
|
6960
|
+
} catch {
|
|
6961
|
+
}
|
|
6962
|
+
if (password) {
|
|
6963
|
+
try {
|
|
6964
|
+
execSync(`xdotool key --clearmodifiers super; sleep 0.5; xdotool type --clearmodifiers "${password.replace(/["\\]/g, "\\$&")}"; xdotool key Return`, { stdio: "pipe", timeout: 1e4 });
|
|
6965
|
+
return c.json({ success: true, message: "Unlock attempted via xdotool" });
|
|
6966
|
+
} catch {
|
|
6967
|
+
}
|
|
6968
|
+
}
|
|
6969
|
+
return c.json({ success: false, error: "Could not unlock Linux session. Supported: loginctl, xdotool." });
|
|
6970
|
+
} else if (platform === "win32") {
|
|
6971
|
+
return c.json({ success: false, error: "Windows unlock not yet supported. Use Remote Desktop or disable lock screen." });
|
|
6972
|
+
} else {
|
|
6973
|
+
return c.json({ success: false, error: `Unsupported platform: ${platform}` });
|
|
6974
|
+
}
|
|
6975
|
+
} catch (e) {
|
|
6976
|
+
return c.json({ success: false, error: e.message });
|
|
6977
|
+
}
|
|
6978
|
+
});
|
|
6979
|
+
router.get("/system/screen-status", async (c) => {
|
|
6980
|
+
try {
|
|
6981
|
+
const platform = process.platform;
|
|
6982
|
+
if (platform === "darwin") {
|
|
6983
|
+
const { execSync } = await import("child_process");
|
|
6984
|
+
const isLocked = (() => {
|
|
6985
|
+
try {
|
|
6986
|
+
const out = execSync(`python3 -c "import Quartz; d=Quartz.CGSessionCopyCurrentDictionary(); print(d.get('CGSSessionScreenIsLocked', 0))"`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 3e3 }).trim();
|
|
6987
|
+
return out === "1" || out === "True";
|
|
6988
|
+
} catch {
|
|
6989
|
+
try {
|
|
6990
|
+
const out = execSync(`osascript -e 'tell application "System Events" to get name of first application process whose frontmost is true'`, { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 3e3 }).trim();
|
|
6991
|
+
return out === "loginwindow" || out === "ScreenSaverEngine";
|
|
6992
|
+
} catch {
|
|
6993
|
+
return false;
|
|
6994
|
+
}
|
|
6995
|
+
}
|
|
6996
|
+
})();
|
|
6997
|
+
const displayAsleep = (() => {
|
|
6998
|
+
try {
|
|
6999
|
+
const out = execSync('ioreg -r -d 1 -k IODisplayWrangler | grep -i "currentpowerstate"', { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 3e3 });
|
|
7000
|
+
return out.includes("= 0") || out.includes("= 1");
|
|
7001
|
+
} catch {
|
|
7002
|
+
return false;
|
|
7003
|
+
}
|
|
7004
|
+
})();
|
|
7005
|
+
return c.json({ locked: isLocked, displayAsleep, platform: "macOS" });
|
|
7006
|
+
} else if (platform === "linux") {
|
|
7007
|
+
const { execSync } = await import("child_process");
|
|
7008
|
+
const isLocked = (() => {
|
|
7009
|
+
try {
|
|
7010
|
+
const out = execSync("loginctl show-session $(loginctl list-sessions --no-legend | head -1 | awk '{print $1}') -p LockedHint --value", { encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"], timeout: 3e3 }).trim();
|
|
7011
|
+
return out === "yes";
|
|
7012
|
+
} catch {
|
|
7013
|
+
return false;
|
|
7014
|
+
}
|
|
7015
|
+
})();
|
|
7016
|
+
return c.json({ locked: isLocked, platform: "Linux" });
|
|
7017
|
+
}
|
|
7018
|
+
return c.json({ locked: false, platform });
|
|
7019
|
+
} catch (e) {
|
|
7020
|
+
return c.json({ locked: false, error: e.message });
|
|
7021
|
+
}
|
|
7022
|
+
});
|
|
6850
7023
|
router.post("/bridge/agents", async (c) => {
|
|
6851
7024
|
const { orgId, name, email, displayName, role, model, deployment, permissionProfile, presetName, createdBy, persona, permissions: permissionsData, skills, knowledgeBases, description, soulId, deployTarget } = await c.req.json();
|
|
6852
7025
|
if (!name || !orgId) {
|
|
@@ -6924,7 +7097,7 @@ function createAgentRoutes(opts) {
|
|
|
6924
7097
|
}
|
|
6925
7098
|
const managedAgent = await lifecycle2.createAgent(orgId, config, actor);
|
|
6926
7099
|
try {
|
|
6927
|
-
const { knowledgeBase: kbEngine } = await import("./routes-
|
|
7100
|
+
const { knowledgeBase: kbEngine } = await import("./routes-STERVGKJ.js");
|
|
6928
7101
|
const allKbs = kbEngine.getAllKnowledgeBases();
|
|
6929
7102
|
const clientOrgId = managedAgent?.clientOrgId || config?.clientOrgId || null;
|
|
6930
7103
|
let kbAssigned = 0;
|
|
@@ -7867,6 +8040,212 @@ function createAgentRoutes(opts) {
|
|
|
7867
8040
|
icon: Emoji.telegram || Emoji.chat,
|
|
7868
8041
|
requiresIntegration: "telegram",
|
|
7869
8042
|
tools: ["telegram_send", "telegram_send_media", "telegram_get_me", "telegram_get_chat"]
|
|
8043
|
+
},
|
|
8044
|
+
// ── Microsoft 365 ──────────────────────────────────
|
|
8045
|
+
{
|
|
8046
|
+
id: "outlook_mail",
|
|
8047
|
+
name: "Outlook Mail",
|
|
8048
|
+
description: "Full email management \u2014 inbox, send, reply, forward, search, threads, drafts, rules, auto-reply, categories",
|
|
8049
|
+
icon: Emoji.envelope,
|
|
8050
|
+
requiresOAuth: "microsoft",
|
|
8051
|
+
tools: [
|
|
8052
|
+
"outlook_mail_list",
|
|
8053
|
+
"outlook_mail_read",
|
|
8054
|
+
"outlook_mail_thread",
|
|
8055
|
+
"outlook_mail_send",
|
|
8056
|
+
"outlook_mail_reply",
|
|
8057
|
+
"outlook_mail_forward",
|
|
8058
|
+
"outlook_mail_move",
|
|
8059
|
+
"outlook_mail_delete",
|
|
8060
|
+
"outlook_mail_update",
|
|
8061
|
+
"outlook_mail_search",
|
|
8062
|
+
"outlook_mail_draft",
|
|
8063
|
+
"outlook_mail_send_draft",
|
|
8064
|
+
"outlook_mail_folders",
|
|
8065
|
+
"outlook_mail_create_folder",
|
|
8066
|
+
"outlook_mail_attachment_download",
|
|
8067
|
+
"outlook_mail_auto_reply",
|
|
8068
|
+
"outlook_mail_get_auto_reply",
|
|
8069
|
+
"outlook_mail_rules",
|
|
8070
|
+
"outlook_mail_categories",
|
|
8071
|
+
"outlook_mail_profile"
|
|
8072
|
+
]
|
|
8073
|
+
},
|
|
8074
|
+
{
|
|
8075
|
+
id: "outlook_calendar",
|
|
8076
|
+
name: "Outlook Calendar",
|
|
8077
|
+
description: "Calendar events, scheduling, free/busy lookup, Teams meeting creation, invite responses",
|
|
8078
|
+
icon: Emoji.calendar,
|
|
8079
|
+
requiresOAuth: "microsoft",
|
|
8080
|
+
tools: [
|
|
8081
|
+
"outlook_calendar_list",
|
|
8082
|
+
"outlook_calendar_events",
|
|
8083
|
+
"outlook_calendar_create",
|
|
8084
|
+
"outlook_calendar_update",
|
|
8085
|
+
"outlook_calendar_delete",
|
|
8086
|
+
"outlook_calendar_respond",
|
|
8087
|
+
"outlook_calendar_freebusy"
|
|
8088
|
+
]
|
|
8089
|
+
},
|
|
8090
|
+
{
|
|
8091
|
+
id: "onedrive",
|
|
8092
|
+
name: "OneDrive",
|
|
8093
|
+
description: "Cloud file management \u2014 list, search, read, upload, share, create folders",
|
|
8094
|
+
icon: Emoji.folder,
|
|
8095
|
+
requiresOAuth: "microsoft",
|
|
8096
|
+
tools: [
|
|
8097
|
+
"onedrive_list",
|
|
8098
|
+
"onedrive_search",
|
|
8099
|
+
"onedrive_read",
|
|
8100
|
+
"onedrive_upload",
|
|
8101
|
+
"onedrive_create_folder",
|
|
8102
|
+
"onedrive_delete",
|
|
8103
|
+
"onedrive_share"
|
|
8104
|
+
]
|
|
8105
|
+
},
|
|
8106
|
+
{
|
|
8107
|
+
id: "teams",
|
|
8108
|
+
name: "Microsoft Teams",
|
|
8109
|
+
description: "Team messaging, channels, chats, file sharing, presence, member management",
|
|
8110
|
+
icon: Emoji.chat,
|
|
8111
|
+
requiresOAuth: "microsoft",
|
|
8112
|
+
tools: [
|
|
8113
|
+
"teams_list_teams",
|
|
8114
|
+
"teams_list_channels",
|
|
8115
|
+
"teams_create_channel",
|
|
8116
|
+
"teams_send_channel_message",
|
|
8117
|
+
"teams_reply_to_message",
|
|
8118
|
+
"teams_read_channel_messages",
|
|
8119
|
+
"teams_list_chats",
|
|
8120
|
+
"teams_send_chat_message",
|
|
8121
|
+
"teams_read_chat_messages",
|
|
8122
|
+
"teams_list_members",
|
|
8123
|
+
"teams_add_member",
|
|
8124
|
+
"teams_share_file",
|
|
8125
|
+
"teams_presence",
|
|
8126
|
+
"teams_set_status"
|
|
8127
|
+
]
|
|
8128
|
+
},
|
|
8129
|
+
{
|
|
8130
|
+
id: "todo",
|
|
8131
|
+
name: "Microsoft To Do",
|
|
8132
|
+
description: "Task lists, task CRUD with due dates, reminders, and importance",
|
|
8133
|
+
icon: Emoji.check,
|
|
8134
|
+
requiresOAuth: "microsoft",
|
|
8135
|
+
tools: ["todo_list_lists", "todo_list_tasks", "todo_create_task", "todo_update_task", "todo_delete_task", "todo_create_list"]
|
|
8136
|
+
},
|
|
8137
|
+
{
|
|
8138
|
+
id: "outlook_contacts",
|
|
8139
|
+
name: "Outlook Contacts",
|
|
8140
|
+
description: "Contact management, address book, people search",
|
|
8141
|
+
icon: Emoji.people,
|
|
8142
|
+
requiresOAuth: "microsoft",
|
|
8143
|
+
tools: ["outlook_contacts_list", "outlook_contacts_create", "outlook_contacts_update", "outlook_contacts_delete", "outlook_people_search"]
|
|
8144
|
+
},
|
|
8145
|
+
{
|
|
8146
|
+
id: "excel",
|
|
8147
|
+
name: "Microsoft Excel",
|
|
8148
|
+
description: "Read/write cells, ranges, tables, worksheets, formulas, charts, formatting",
|
|
8149
|
+
icon: Emoji.chartUp,
|
|
8150
|
+
requiresOAuth: "microsoft",
|
|
8151
|
+
tools: [
|
|
8152
|
+
"excel_list_worksheets",
|
|
8153
|
+
"excel_read_range",
|
|
8154
|
+
"excel_write_range",
|
|
8155
|
+
"excel_add_row",
|
|
8156
|
+
"excel_list_tables",
|
|
8157
|
+
"excel_read_table",
|
|
8158
|
+
"excel_create_worksheet",
|
|
8159
|
+
"excel_create_session",
|
|
8160
|
+
"excel_close_session",
|
|
8161
|
+
"excel_evaluate_formula",
|
|
8162
|
+
"excel_named_ranges",
|
|
8163
|
+
"excel_read_named_range",
|
|
8164
|
+
"excel_list_charts",
|
|
8165
|
+
"excel_chart_image",
|
|
8166
|
+
"excel_pivot_refresh",
|
|
8167
|
+
"excel_set_cell_format"
|
|
8168
|
+
]
|
|
8169
|
+
},
|
|
8170
|
+
{
|
|
8171
|
+
id: "sharepoint",
|
|
8172
|
+
name: "SharePoint",
|
|
8173
|
+
description: "Sites, document libraries, lists, search, file management across SharePoint Online",
|
|
8174
|
+
icon: Emoji.database,
|
|
8175
|
+
requiresOAuth: "microsoft",
|
|
8176
|
+
tools: [
|
|
8177
|
+
"sharepoint_list_sites",
|
|
8178
|
+
"sharepoint_get_site",
|
|
8179
|
+
"sharepoint_list_drives",
|
|
8180
|
+
"sharepoint_list_files",
|
|
8181
|
+
"sharepoint_upload_file",
|
|
8182
|
+
"sharepoint_list_lists",
|
|
8183
|
+
"sharepoint_list_items",
|
|
8184
|
+
"sharepoint_create_list_item",
|
|
8185
|
+
"sharepoint_update_list_item",
|
|
8186
|
+
"sharepoint_search"
|
|
8187
|
+
]
|
|
8188
|
+
},
|
|
8189
|
+
{
|
|
8190
|
+
id: "onenote",
|
|
8191
|
+
name: "OneNote",
|
|
8192
|
+
description: "Notebooks, sections, pages \u2014 read, create, and update notes",
|
|
8193
|
+
icon: Emoji.note,
|
|
8194
|
+
requiresOAuth: "microsoft",
|
|
8195
|
+
tools: [
|
|
8196
|
+
"onenote_list_notebooks",
|
|
8197
|
+
"onenote_list_sections",
|
|
8198
|
+
"onenote_list_pages",
|
|
8199
|
+
"onenote_read_page",
|
|
8200
|
+
"onenote_create_page",
|
|
8201
|
+
"onenote_update_page"
|
|
8202
|
+
]
|
|
8203
|
+
},
|
|
8204
|
+
{
|
|
8205
|
+
id: "powerpoint",
|
|
8206
|
+
name: "PowerPoint",
|
|
8207
|
+
description: "Presentation metadata, PDF export, thumbnails, templates, embed URLs",
|
|
8208
|
+
icon: Emoji.art,
|
|
8209
|
+
requiresOAuth: "microsoft",
|
|
8210
|
+
tools: [
|
|
8211
|
+
"powerpoint_get_info",
|
|
8212
|
+
"powerpoint_export_pdf",
|
|
8213
|
+
"powerpoint_get_thumbnails",
|
|
8214
|
+
"powerpoint_create_from_template",
|
|
8215
|
+
"powerpoint_get_embed_url"
|
|
8216
|
+
]
|
|
8217
|
+
},
|
|
8218
|
+
{
|
|
8219
|
+
id: "planner",
|
|
8220
|
+
name: "Microsoft Planner",
|
|
8221
|
+
description: "Project boards \u2014 plans, buckets, tasks (Kanban-style task management)",
|
|
8222
|
+
icon: Emoji.clipboard,
|
|
8223
|
+
requiresOAuth: "microsoft",
|
|
8224
|
+
tools: [
|
|
8225
|
+
"planner_list_plans",
|
|
8226
|
+
"planner_list_buckets",
|
|
8227
|
+
"planner_list_tasks",
|
|
8228
|
+
"planner_create_task",
|
|
8229
|
+
"planner_update_task",
|
|
8230
|
+
"planner_delete_task"
|
|
8231
|
+
]
|
|
8232
|
+
},
|
|
8233
|
+
{
|
|
8234
|
+
id: "powerbi",
|
|
8235
|
+
name: "Power BI",
|
|
8236
|
+
description: "Workspaces, reports, dashboards, datasets, DAX queries, data refresh",
|
|
8237
|
+
icon: Emoji.barChart,
|
|
8238
|
+
requiresOAuth: "microsoft",
|
|
8239
|
+
tools: [
|
|
8240
|
+
"powerbi_list_workspaces",
|
|
8241
|
+
"powerbi_list_reports",
|
|
8242
|
+
"powerbi_list_dashboards",
|
|
8243
|
+
"powerbi_list_datasets",
|
|
8244
|
+
"powerbi_refresh_dataset",
|
|
8245
|
+
"powerbi_refresh_history",
|
|
8246
|
+
"powerbi_execute_query",
|
|
8247
|
+
"powerbi_dashboard_tiles"
|
|
8248
|
+
]
|
|
7870
8249
|
}
|
|
7871
8250
|
];
|
|
7872
8251
|
router.get("/bridge/system/capabilities", async (c) => {
|
|
@@ -8355,7 +8734,7 @@ function createAgentRoutes(opts) {
|
|
|
8355
8734
|
if (body.requireApproval) profile.requireApproval = body.requireApproval;
|
|
8356
8735
|
if (body.rateLimits) profile.rateLimits = body.rateLimits;
|
|
8357
8736
|
if (body.constraints) profile.constraints = body.constraints;
|
|
8358
|
-
permissions.setProfile(agentId, profile, managed.
|
|
8737
|
+
permissions.setProfile(agentId, profile, managed.orgId);
|
|
8359
8738
|
}
|
|
8360
8739
|
managed.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
8361
8740
|
await lifecycle2.saveAgent(agentId);
|
|
@@ -8443,7 +8822,7 @@ function createAgentRoutes(opts) {
|
|
|
8443
8822
|
}
|
|
8444
8823
|
profile.tools.blocked = [...newBlocked];
|
|
8445
8824
|
profile.tools.allowed = [...newAllowed];
|
|
8446
|
-
permissions.setProfile(agentId, profile, managed.
|
|
8825
|
+
permissions.setProfile(agentId, profile, managed.orgId);
|
|
8447
8826
|
}
|
|
8448
8827
|
managed.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
8449
8828
|
await lifecycle2.saveAgent(agentId);
|
|
@@ -21085,9 +21464,12 @@ async function handleMessage(c, event, lifecycle2, getRuntime, standaloneAgents)
|
|
|
21085
21464
|
const host = sa.host || "localhost";
|
|
21086
21465
|
const agentUrl = `http://${host}:${sa.port}/api/runtime/chat`;
|
|
21087
21466
|
try {
|
|
21467
|
+
const runtimeSecret = process.env.AGENT_RUNTIME_SECRET || process.env.RUNTIME_SECRET || "";
|
|
21468
|
+
const fwdHeaders = { "Content-Type": "application/json" };
|
|
21469
|
+
if (runtimeSecret) fwdHeaders["x-agent-internal-key"] = runtimeSecret;
|
|
21088
21470
|
const resp = await fetch(agentUrl, {
|
|
21089
21471
|
method: "POST",
|
|
21090
|
-
headers:
|
|
21472
|
+
headers: fwdHeaders,
|
|
21091
21473
|
body: JSON.stringify(chatContext),
|
|
21092
21474
|
signal: AbortSignal.timeout(5e3)
|
|
21093
21475
|
});
|
|
@@ -21113,9 +21495,12 @@ async function handleMessage(c, event, lifecycle2, getRuntime, standaloneAgents)
|
|
|
21113
21495
|
const flyAppName = agent.config?.deployment?.config?.cloud?.appName || agent.config?.deployment?.config?.flyAppName;
|
|
21114
21496
|
if (flyAppName) {
|
|
21115
21497
|
try {
|
|
21498
|
+
const _rs2 = process.env.AGENT_RUNTIME_SECRET || process.env.RUNTIME_SECRET || "";
|
|
21499
|
+
const _fh = { "Content-Type": "application/json" };
|
|
21500
|
+
if (_rs2) _fh["x-agent-internal-key"] = _rs2;
|
|
21116
21501
|
const resp = await fetch(`https://${flyAppName}.fly.dev/api/runtime/chat`, {
|
|
21117
21502
|
method: "POST",
|
|
21118
|
-
headers:
|
|
21503
|
+
headers: _fh,
|
|
21119
21504
|
body: JSON.stringify(chatContext),
|
|
21120
21505
|
signal: AbortSignal.timeout(1e4)
|
|
21121
21506
|
});
|
|
@@ -21719,9 +22104,12 @@ var init_chat_poller = __esm({
|
|
|
21719
22104
|
};
|
|
21720
22105
|
const url = `http://${agent.host}:${agent.port}/api/runtime/chat`;
|
|
21721
22106
|
try {
|
|
22107
|
+
const _rtSecret = process.env.AGENT_RUNTIME_SECRET || process.env.RUNTIME_SECRET || "";
|
|
22108
|
+
const _hdrs = { "Content-Type": "application/json" };
|
|
22109
|
+
if (_rtSecret) _hdrs["x-agent-internal-key"] = _rtSecret;
|
|
21722
22110
|
const resp = await fetch(url, {
|
|
21723
22111
|
method: "POST",
|
|
21724
|
-
headers:
|
|
22112
|
+
headers: _hdrs,
|
|
21725
22113
|
body: JSON.stringify(chatContext),
|
|
21726
22114
|
signal: AbortSignal.timeout(1e4)
|
|
21727
22115
|
});
|
|
@@ -22235,9 +22623,12 @@ var init_email_poller = __esm({
|
|
|
22235
22623
|
async dispatchToAgent(mailbox, email) {
|
|
22236
22624
|
const url = `http://${mailbox.host}:${mailbox.port}/api/runtime/email`;
|
|
22237
22625
|
try {
|
|
22626
|
+
const _rtSecret = process.env.AGENT_RUNTIME_SECRET || process.env.RUNTIME_SECRET || "";
|
|
22627
|
+
const _hdrs = { "Content-Type": "application/json" };
|
|
22628
|
+
if (_rtSecret) _hdrs["x-agent-internal-key"] = _rtSecret;
|
|
22238
22629
|
const resp = await fetch(url, {
|
|
22239
22630
|
method: "POST",
|
|
22240
|
-
headers:
|
|
22631
|
+
headers: _hdrs,
|
|
22241
22632
|
body: JSON.stringify({
|
|
22242
22633
|
source: "gmail",
|
|
22243
22634
|
agentId: mailbox.agentId,
|
|
@@ -22937,9 +23328,12 @@ ${desc}` : desc;
|
|
|
22937
23328
|
try {
|
|
22938
23329
|
var resolved = this.resolveEndpoint(agent.id, agent);
|
|
22939
23330
|
console.log(`[messaging] Dispatching to ${agent.displayName} at ${resolved.host}:${resolved.port}`);
|
|
23331
|
+
var runtimeSecret = process.env.AGENT_RUNTIME_SECRET || process.env.RUNTIME_SECRET || "";
|
|
23332
|
+
var headers = { "Content-Type": "application/json" };
|
|
23333
|
+
if (runtimeSecret) headers["x-agent-internal-key"] = runtimeSecret;
|
|
22940
23334
|
var resp = await fetch(`http://${resolved.host}:${resolved.port}/api/runtime/chat`, {
|
|
22941
23335
|
method: "POST",
|
|
22942
|
-
headers
|
|
23336
|
+
headers,
|
|
22943
23337
|
body: JSON.stringify({
|
|
22944
23338
|
source: ctx.source,
|
|
22945
23339
|
senderName: ctx.senderName,
|
|
@@ -24018,6 +24412,30 @@ Manager: ${node.managerName} (external) \u2014 ${node.managerEmail}`);
|
|
|
24018
24412
|
|
|
24019
24413
|
// src/database-access/routes.ts
|
|
24020
24414
|
import { Hono as Hono28 } from "hono";
|
|
24415
|
+
async function notifyAgentReload(agentId) {
|
|
24416
|
+
try {
|
|
24417
|
+
const ports = [3101, 3102, 3103, 3104, 3105, 4100, 4101, 4102];
|
|
24418
|
+
const tracker = globalThis.__agentStatusTracker;
|
|
24419
|
+
if (tracker) {
|
|
24420
|
+
const status = tracker.getStatus?.(agentId);
|
|
24421
|
+
if (status?.port) ports.unshift(status.port);
|
|
24422
|
+
}
|
|
24423
|
+
for (const port of ports) {
|
|
24424
|
+
try {
|
|
24425
|
+
const resp = await fetch(`http://127.0.0.1:${port}/api/reload-db-access`, { method: "POST", signal: AbortSignal.timeout(2e3) });
|
|
24426
|
+
if (resp.ok) {
|
|
24427
|
+
const data = await resp.json();
|
|
24428
|
+
if (data.ok) {
|
|
24429
|
+
console.log(`[db-access] Notified agent ${agentId} on port ${port}`);
|
|
24430
|
+
return;
|
|
24431
|
+
}
|
|
24432
|
+
}
|
|
24433
|
+
} catch {
|
|
24434
|
+
}
|
|
24435
|
+
}
|
|
24436
|
+
} catch {
|
|
24437
|
+
}
|
|
24438
|
+
}
|
|
24021
24439
|
function createDatabaseAccessRoutes(manager) {
|
|
24022
24440
|
const router = new Hono28();
|
|
24023
24441
|
router.get("/connections", async (c) => {
|
|
@@ -24127,6 +24545,8 @@ function createDatabaseAccessRoutes(manager) {
|
|
|
24127
24545
|
requireApproval: body.requireApproval ?? false,
|
|
24128
24546
|
enabled: true
|
|
24129
24547
|
});
|
|
24548
|
+
notifyAgentReload(body.agentId).catch(() => {
|
|
24549
|
+
});
|
|
24130
24550
|
return c.json(access, 201);
|
|
24131
24551
|
});
|
|
24132
24552
|
router.put("/connections/:connId/agents/:agentId", async (c) => {
|
|
@@ -24136,7 +24556,10 @@ function createDatabaseAccessRoutes(manager) {
|
|
|
24136
24556
|
return c.json(updated);
|
|
24137
24557
|
});
|
|
24138
24558
|
router.delete("/connections/:connId/agents/:agentId", async (c) => {
|
|
24139
|
-
|
|
24559
|
+
const agentId = c.req.param("agentId");
|
|
24560
|
+
await manager.revokeAccess(agentId, c.req.param("connId"));
|
|
24561
|
+
notifyAgentReload(agentId).catch(() => {
|
|
24562
|
+
});
|
|
24140
24563
|
return c.json({ ok: true });
|
|
24141
24564
|
});
|
|
24142
24565
|
router.get("/agents/:agentId/connections", async (c) => {
|
|
@@ -24487,7 +24910,7 @@ function mountRuntimeApp(app) {
|
|
|
24487
24910
|
function setRuntime(runtime) {
|
|
24488
24911
|
_runtime = runtime;
|
|
24489
24912
|
}
|
|
24490
|
-
var engine, _engineApp, permissionEngine, configGen, deployer, approvals, lifecycle, knowledgeBase, tenants, activity, agentStatus, dlp, commBus, guardrails, journal, compliance, communityRegistry, workforce, policyEngine, memoryManager, onboarding, vault, orgIntegrations, storageManager, policyImporter, knowledgeContribution, hierarchyManager, knowledgeImport, taskQueue, skillUpdater, databaseManager,
|
|
24913
|
+
var engine, _engineApp, _engineDb, _adminDb, permissionEngine, configGen, deployer, approvals, lifecycle, knowledgeBase, tenants, activity, agentStatus, dlp, commBus, guardrails, journal, compliance, communityRegistry, workforce, policyEngine, memoryManager, onboarding, vault, orgIntegrations, storageManager, policyImporter, knowledgeContribution, hierarchyManager, knowledgeImport, taskQueue, skillUpdater, databaseManager, _chatPoller, _emailPoller, _messagingPoller, _runtimeApp, _runtime;
|
|
24491
24914
|
var init_routes3 = __esm({
|
|
24492
24915
|
"src/engine/routes.ts"() {
|
|
24493
24916
|
init_skills2();
|
|
@@ -24553,6 +24976,8 @@ var init_routes3 = __esm({
|
|
|
24553
24976
|
init_database_access();
|
|
24554
24977
|
engine = new Hono29();
|
|
24555
24978
|
_engineApp = engine;
|
|
24979
|
+
_engineDb = null;
|
|
24980
|
+
_adminDb = null;
|
|
24556
24981
|
permissionEngine = new PermissionEngine(FULL_SKILL_DEFINITIONS);
|
|
24557
24982
|
{
|
|
24558
24983
|
const totalTools = FULL_SKILL_DEFINITIONS.reduce((s, sk) => s + sk.tools.length, 0);
|
|
@@ -25146,8 +25571,6 @@ var init_routes3 = __esm({
|
|
|
25146
25571
|
await poller.rediscover();
|
|
25147
25572
|
return c.json({ ok: true });
|
|
25148
25573
|
});
|
|
25149
|
-
_engineDb = null;
|
|
25150
|
-
_adminDb = null;
|
|
25151
25574
|
_chatPoller = null;
|
|
25152
25575
|
_emailPoller = null;
|
|
25153
25576
|
_messagingPoller = null;
|