opensentinel 3.1.1 → 3.7.0
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/README.md +138 -83
- package/dist/agent-manager-JZ4IM7XI.js +39 -0
- package/dist/agent-processor-DDDHC2SO.js +281 -0
- package/dist/agent-processor-DDDHC2SO.js.map +1 -0
- package/dist/agent-types-2T4PXLFQ.js +12 -0
- package/dist/alerting-LK7VVYTX.js +699 -0
- package/dist/alerting-LK7VVYTX.js.map +1 -0
- package/dist/analysis-agent-JWN2GXYE.js +288 -0
- package/dist/analysis-agent-JWN2GXYE.js.map +1 -0
- package/dist/analyzer-OTWE3ARE.js +22 -0
- package/dist/{archiver-AVNBYCKQ.js → archiver-FPGKRP6P.js} +2 -2
- package/dist/{audit-logger-OBPR7CRO.js → audit-logger-CI4WZQPD.js} +6 -5
- package/dist/{auth-UOX5K2BE.js → auth-PH5IHISW.js} +2 -2
- package/dist/{autonomy-ZXDBDQUJ.js → autonomy-N7W5XPLX.js} +4 -3
- package/dist/autonomy-N7W5XPLX.js.map +1 -0
- package/dist/{aws-s3-Q4LLZZPD.js → aws-s3-QZMURYXB.js} +2 -2
- package/dist/{backup-restore-PZ7CYYB7.js → backup-restore-72OQTZO3.js} +2 -2
- package/dist/{blocks-R3PODY47.js → blocks-YOWOESDD.js} +4 -4
- package/dist/bot-VDHBGUVI.js +47 -0
- package/dist/brain-6QTXN4QP.js +66 -0
- package/dist/{camera-monitor-M5CYKUU4.js → camera-monitor-LHTUWHEL.js} +2 -2
- package/dist/{charts-V7ARZNKF.js → charts-FJ32GQK7.js} +2 -2
- package/dist/{chunk-WRAKK6K6.js → chunk-2I5QHYG6.js} +5 -3
- package/dist/chunk-2I5QHYG6.js.map +1 -0
- package/dist/{chunk-TVEWKIK3.js → chunk-2WTKTG2C.js} +2 -2
- package/dist/chunk-3AWAWRWB.js +143 -0
- package/dist/chunk-3AWAWRWB.js.map +1 -0
- package/dist/{chunk-ZLZKF2PM.js → chunk-4KIHDIXZ.js} +43 -2
- package/dist/chunk-4KIHDIXZ.js.map +1 -0
- package/dist/{chunk-EVE7MIIY.js → chunk-4WH6MFEW.js} +15 -16
- package/dist/chunk-4WH6MFEW.js.map +1 -0
- package/dist/{chunk-I6BDYQIG.js → chunk-56UJS2LA.js} +6 -6
- package/dist/chunk-56UJS2LA.js.map +1 -0
- package/dist/chunk-5BTVJR7R.js +37 -0
- package/dist/chunk-5BTVJR7R.js.map +1 -0
- package/dist/chunk-5JJTLWOR.js +1021 -0
- package/dist/chunk-5JJTLWOR.js.map +1 -0
- package/dist/chunk-66SAOZPU.js +236 -0
- package/dist/chunk-66SAOZPU.js.map +1 -0
- package/dist/chunk-6HGMRR4J.js +113 -0
- package/dist/chunk-6HGMRR4J.js.map +1 -0
- package/dist/chunk-6W6PTJFT.js +181 -0
- package/dist/chunk-6W6PTJFT.js.map +1 -0
- package/dist/chunk-6ZNCY2GI.js +418 -0
- package/dist/chunk-6ZNCY2GI.js.map +1 -0
- package/dist/chunk-7BNFELEK.js +31 -0
- package/dist/chunk-7BNFELEK.js.map +1 -0
- package/dist/chunk-ADTDYJO7.js +265 -0
- package/dist/chunk-ADTDYJO7.js.map +1 -0
- package/dist/{chunk-OCVQGBJK.js → chunk-BBN4VCNK.js} +6 -4
- package/dist/chunk-BBN4VCNK.js.map +1 -0
- package/dist/{chunk-SJSUSJ47.js → chunk-BNZHWAZC.js} +2 -2
- package/dist/chunk-C6PELIHS.js +60 -0
- package/dist/chunk-C6PELIHS.js.map +1 -0
- package/dist/{chunk-MQJ2ECQT.js → chunk-CUPEENUY.js} +3 -3
- package/dist/{chunk-NHMBTUMW.js → chunk-CWT6CAE5.js} +2 -2
- package/dist/{chunk-4GLYY4NN.js → chunk-CZTMGHUC.js} +8 -2
- package/dist/chunk-CZTMGHUC.js.map +1 -0
- package/dist/{chunk-RZ4YESBG.js → chunk-DOYGMNMK.js} +1 -1
- package/dist/chunk-DOYGMNMK.js.map +1 -0
- package/dist/chunk-DTISLIMB.js +89 -0
- package/dist/chunk-DTISLIMB.js.map +1 -0
- package/dist/{chunk-SPPMCAKG.js → chunk-GBVJTRXS.js} +2 -2
- package/dist/chunk-GBVJTRXS.js.map +1 -0
- package/dist/{chunk-AYUKPTSM.js → chunk-GJETKBOY.js} +96 -218
- package/dist/chunk-GJETKBOY.js.map +1 -0
- package/dist/{chunk-BXZ6EA52.js → chunk-GW6V4D43.js} +57 -3
- package/dist/chunk-GW6V4D43.js.map +1 -0
- package/dist/{chunk-6PMVAAA7.js → chunk-HJSEEFO3.js} +3 -3
- package/dist/{chunk-TYAGMJNV.js → chunk-HQZQFEAX.js} +5 -5
- package/dist/{chunk-MXAPLSJ5.js → chunk-J4JW73TT.js} +2 -2
- package/dist/{chunk-VEHFVBLI.js → chunk-JHYYFPKX.js} +2 -2
- package/dist/chunk-LFDXEYYB.js +150 -0
- package/dist/chunk-LFDXEYYB.js.map +1 -0
- package/dist/chunk-MIC5IBQF.js +386 -0
- package/dist/chunk-MIC5IBQF.js.map +1 -0
- package/dist/chunk-ODCFS5WD.js +463 -0
- package/dist/chunk-ODCFS5WD.js.map +1 -0
- package/dist/{chunk-XMCVRVTF.js → chunk-P64EV4YY.js} +1 -1
- package/dist/chunk-P64EV4YY.js.map +1 -0
- package/dist/chunk-PBOCSGNL.js +84 -0
- package/dist/chunk-PBOCSGNL.js.map +1 -0
- package/dist/{chunk-66OJ3WB4.js → chunk-PD3CTDO6.js} +2 -2
- package/dist/chunk-QPY3WRVM.js +647 -0
- package/dist/chunk-QPY3WRVM.js.map +1 -0
- package/dist/chunk-S2EOIVF4.js +3907 -0
- package/dist/chunk-S2EOIVF4.js.map +1 -0
- package/dist/chunk-SDLOMKCW.js +213 -0
- package/dist/chunk-SDLOMKCW.js.map +1 -0
- package/dist/chunk-TKBVW7ZJ.js +162 -0
- package/dist/chunk-TKBVW7ZJ.js.map +1 -0
- package/dist/{chunk-BRBWNV65.js → chunk-U2X2J3FI.js} +3 -3
- package/dist/chunk-U2X2J3FI.js.map +1 -0
- package/dist/{chunk-PLDDJCW6.js → chunk-UP2VWCW5.js} +1 -12
- package/dist/{chunk-SVAPX2XN.js → chunk-V3OKHQUX.js} +9 -7
- package/dist/{chunk-SVAPX2XN.js.map → chunk-V3OKHQUX.js.map} +1 -1
- package/dist/{chunk-4UOE5TUZ.js → chunk-WMDVOWN6.js} +4 -4
- package/dist/chunk-WMFYI7XC.js +564 -0
- package/dist/chunk-WMFYI7XC.js.map +1 -0
- package/dist/chunk-WZAH34TG.js +129 -0
- package/dist/chunk-WZAH34TG.js.map +1 -0
- package/dist/{chunk-H5RQOFO2.js → chunk-X6Q3K3L2.js} +6 -6
- package/dist/chunk-X6Q3K3L2.js.map +1 -0
- package/dist/chunk-XTX7EK43.js +134 -0
- package/dist/chunk-XTX7EK43.js.map +1 -0
- package/dist/chunk-YEDEAX6Y.js +194 -0
- package/dist/chunk-YEDEAX6Y.js.map +1 -0
- package/dist/{chunk-XKYRH4FM.js → chunk-ZIBRVA3Y.js} +70 -30
- package/dist/chunk-ZIBRVA3Y.js.map +1 -0
- package/dist/chunk-ZIYTHUM5.js +457 -0
- package/dist/chunk-ZIYTHUM5.js.map +1 -0
- package/dist/{chunk-766ASQWE.js → chunk-ZMML6T63.js} +2711 -2329
- package/dist/chunk-ZMML6T63.js.map +1 -0
- package/dist/chunk-ZVHG4KF2.js +380 -0
- package/dist/chunk-ZVHG4KF2.js.map +1 -0
- package/dist/chunker-K6WTR62A.js +12 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/{client-ZQSFPMOB.js → client-FOIYPOZQ.js} +5 -6
- package/dist/{clipboard-manager-TEO2GEDN.js → clipboard-manager-4SBNESGZ.js} +2 -2
- package/dist/coding-agent-DESSU3AC.js +233 -0
- package/dist/coding-agent-DESSU3AC.js.map +1 -0
- package/dist/commands/setup.js +2 -2
- package/dist/commands/start.js +3 -3
- package/dist/commands/status.js +2 -2
- package/dist/commands/stop.js +2 -2
- package/dist/commands/utils.js +2 -2
- package/dist/cost-tracker-KZQSTSE2.js +11 -0
- package/dist/{cron-explain-HHQKPD3M.js → cron-explain-UOOOYWZZ.js} +2 -2
- package/dist/{crypto-4AP47IKC.js → crypto-2VG3RJR2.js} +2 -2
- package/dist/{databases-37X4CI2Y.js → databases-XDPMG5AV.js} +4 -4
- package/dist/db-I7MNG6CL.js +83 -0
- package/dist/discord-6UQHCN27.js +81 -0
- package/dist/documents-PFHSK7SZ.js +184 -0
- package/dist/documents-PFHSK7SZ.js.map +1 -0
- package/dist/docx-parser-EXL4TN5E.js +16 -0
- package/dist/{email-K7LO2IPB.js → email-6OIN4SYL.js} +34 -25
- package/dist/email-6OIN4SYL.js.map +1 -0
- package/dist/{enhanced-retrieval-DNLLEM4Z.js → enhanced-retrieval-JWX2HWU4.js} +12 -8
- package/dist/{enhanced-retrieval-DNLLEM4Z.js.map → enhanced-retrieval-JWX2HWU4.js.map} +1 -1
- package/dist/enrichment-pipeline-7FE5R5ZI.js +14 -0
- package/dist/{entity-resolution-Y3IUWEAT.js → entity-resolution-7Z6STVXX.js} +6 -5
- package/dist/env-GN5VHI43.js +12 -0
- package/dist/error-tracker-64DEH3D7.js +32 -0
- package/dist/finnhub-X7ZMQSXF.js +178 -0
- package/dist/finnhub-X7ZMQSXF.js.map +1 -0
- package/dist/fred-TMUF3J2V.js +203 -0
- package/dist/fred-TMUF3J2V.js.map +1 -0
- package/dist/github-DUWSXCNP.js +833 -0
- package/dist/github-DUWSXCNP.js.map +1 -0
- package/dist/{google-workspace-DKWUVNGC.js → google-workspace-TSZPZK5G.js} +2 -2
- package/dist/graph-client-NB475AK5.js +17 -0
- package/dist/{hash-tool-ULQYD7B5.js → hash-tool-ENAB5LWH.js} +2 -2
- package/dist/{heartbeat-monitor-GCISLXI3.js → heartbeat-monitor-KRDYTDBF.js} +2 -2
- package/dist/hooks-N4MIFBVM.js +14 -0
- package/dist/{image-generation-OSU7FP6F.js → image-generation-MDE6AVQO.js} +2 -2
- package/dist/imessage-DSGSGUZS.js +44 -0
- package/dist/inbox-summarizer-F2KAU72V.js +56 -0
- package/dist/{incident-response-C5J7Q6DT.js → incident-response-E3UGMX5G.js} +8 -6
- package/dist/incident-response-E3UGMX5G.js.map +1 -0
- package/dist/{inventory-manager-352OHXWD.js → inventory-manager-C67BSZM6.js} +2 -2
- package/dist/{jira-GSGDBMIG.js → jira-PAGZWUBJ.js} +2 -2
- package/dist/{json-tool-QE2SYHEG.js → json-tool-4FK5RNER.js} +2 -2
- package/dist/{key-rotation-DPHU4ZTB.js → key-rotation-WCC5FOYS.js} +2 -2
- package/dist/knowledge-base-5SMMOGQJ.js +46 -0
- package/dist/lib.d.ts +94 -1
- package/dist/lib.js +83 -66
- package/dist/lib.js.map +1 -1
- package/dist/{mailchimp-KKNF6QJ7.js → mailchimp-ZFYDC44J.js} +2 -2
- package/dist/{matrix-QVHG76I7.js → matrix-WYGEOZL5.js} +30 -21
- package/dist/{matrix-QVHG76I7.js.map → matrix-WYGEOZL5.js.map} +1 -1
- package/dist/{mcp-3JI6W7ZE.js → mcp-DJ2QDA6A.js} +3 -3
- package/dist/metrics-BH3ZLGEV.js +25 -0
- package/dist/{microsoft365-UCBKJHNX.js → microsoft365-6G2IJMWC.js} +2 -2
- package/dist/multi-user-XAEMB244.js +411 -0
- package/dist/multi-user-XAEMB244.js.map +1 -0
- package/dist/oauth-UPJYFOVU.js +34 -0
- package/dist/{ocr-AC7NPX33.js → ocr-UONKTQU7.js} +6 -4
- package/dist/{ollama-BOAMSPLJ.js → ollama-J7CU45WT.js} +2 -2
- package/dist/osint-agent-RL5XPBRQ.js +189 -0
- package/dist/osint-agent-RL5XPBRQ.js.map +1 -0
- package/dist/{pages-MI523RB7.js → pages-XDE7JRCA.js} +5 -5
- package/dist/{pair-JDFTERIK.js → pair-YZJFQUU5.js} +2 -2
- package/dist/{pairing-IFQYCPNS.js → pairing-77N47RAT.js} +2 -2
- package/dist/{pdf-ALQVOEJR.js → pdf-67HGXCFJ.js} +3 -3
- package/dist/pdf-parser-YLMTTYHL.js +14 -0
- package/dist/{presentations-DSV5IHG5.js → presentations-UOET2FVZ.js} +3 -3
- package/dist/presentations-UOET2FVZ.js.map +1 -0
- package/dist/{prometheus-JNT2BD4L.js → prometheus-YETCZO4I.js} +2 -2
- package/dist/prometheus-YETCZO4I.js.map +1 -0
- package/dist/{providers-J4LYPHDR.js → providers-2YQ6E3IF.js} +6 -4
- package/dist/providers-2YQ6E3IF.js.map +1 -0
- package/dist/{qr-code-WIX4PB4U.js → qr-code-6WZJHRKL.js} +2 -2
- package/dist/qr-code-6WZJHRKL.js.map +1 -0
- package/dist/{quickbooks-XB4NII2S.js → quickbooks-N675W7IK.js} +2 -2
- package/dist/{regex-tool-W4ABRKGK.js → regex-tool-6Q63LQ7B.js} +2 -2
- package/dist/regex-tool-6Q63LQ7B.js.map +1 -0
- package/dist/research-agent-WCRSY3UZ.js +168 -0
- package/dist/research-agent-WCRSY3UZ.js.map +1 -0
- package/dist/risk-engine-YKCPT5D5.js +10 -0
- package/dist/risk-engine-YKCPT5D5.js.map +1 -0
- package/dist/scheduler-6PLLAQI7.js +74 -0
- package/dist/scheduler-6PLLAQI7.js.map +1 -0
- package/dist/schema-ETY7L2VA.js +78 -0
- package/dist/schema-ETY7L2VA.js.map +1 -0
- package/dist/{search-BCLBO5E3.js → search-GMLKBHSW.js} +4 -4
- package/dist/search-GMLKBHSW.js.map +1 -0
- package/dist/{sendgrid-RNXCAFKM.js → sendgrid-QGJIVPWV.js} +2 -2
- package/dist/sharepoint-V5P4Q62L.js +30 -0
- package/dist/sharepoint-V5P4Q62L.js.map +1 -0
- package/dist/{shopify-NCXYJB4R.js → shopify-ON2PAU27.js} +2 -2
- package/dist/signal-7D5EPGVL.js +44 -0
- package/dist/signal-7D5EPGVL.js.map +1 -0
- package/dist/slack-KSS6YK5Z.js +86 -0
- package/dist/slack-KSS6YK5Z.js.map +1 -0
- package/dist/{sms-M3JIOTCW.js → sms-CSUCC7HL.js} +4 -4
- package/dist/sms-CSUCC7HL.js.map +1 -0
- package/dist/{src-VYUE6LRA.js → src-GO7GGW7O.js} +190 -52
- package/dist/src-GO7GGW7O.js.map +1 -0
- package/dist/{stocks-XXWBPOCU.js → stocks-4M4HZWZS.js} +2 -2
- package/dist/stocks-4M4HZWZS.js.map +1 -0
- package/dist/text-extractor-OAUBAW5P.js +12 -0
- package/dist/text-extractor-OAUBAW5P.js.map +1 -0
- package/dist/{text-transform-6SGUA5Z4.js → text-transform-HCLCUDFZ.js} +2 -2
- package/dist/text-transform-HCLCUDFZ.js.map +1 -0
- package/dist/token-store-SEWRX6RE.js +20 -0
- package/dist/token-store-SEWRX6RE.js.map +1 -0
- package/dist/tools-PJZ6RI4P.js +47 -0
- package/dist/tools-PJZ6RI4P.js.map +1 -0
- package/dist/{tunnel-IWMXUML4.js → tunnel-XOUVVRAK.js} +4 -2
- package/dist/tunnel-XOUVVRAK.js.map +1 -0
- package/dist/{twilio-53GEW5JT.js → twilio-3L7DUNYQ.js} +2 -2
- package/dist/{unit-converter-ZYXMEZOE.js → unit-converter-LYPAHU64.js} +2 -2
- package/dist/unit-converter-LYPAHU64.js.map +1 -0
- package/dist/whatsapp-DWXK25V2.js +44 -0
- package/dist/whatsapp-DWXK25V2.js.map +1 -0
- package/dist/{word-document-7B6SJMAY.js → word-document-AV3YB4L2.js} +4 -4
- package/dist/word-document-AV3YB4L2.js.map +1 -0
- package/dist/workflow-store-5Y56GUP7.js +373 -0
- package/dist/workflow-store-5Y56GUP7.js.map +1 -0
- package/dist/writing-agent-VDGLNOGO.js +243 -0
- package/dist/writing-agent-VDGLNOGO.js.map +1 -0
- package/dist/{xero-QYO66D45.js → xero-UHAHVYSD.js} +2 -2
- package/dist/{zapier-webhook-TBZ5YF2A.js → zapier-webhook-NIELLTXR.js} +2 -2
- package/drizzle/0002_mushy_master_mold.sql +139 -139
- package/drizzle/0003_overjoyed_rhodey.sql +46 -0
- package/drizzle/meta/0002_snapshot.json +3636 -3636
- package/drizzle/meta/0003_snapshot.json +3946 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +110 -100
- package/dist/autonomy-ZXDBDQUJ.js.map +0 -1
- package/dist/bot-QRARP4UN.js +0 -36
- package/dist/brain-7XLLM3KC.js +0 -56
- package/dist/chunk-4GLYY4NN.js.map +0 -1
- package/dist/chunk-766ASQWE.js.map +0 -1
- package/dist/chunk-AYUKPTSM.js.map +0 -1
- package/dist/chunk-BRBWNV65.js.map +0 -1
- package/dist/chunk-BXZ6EA52.js.map +0 -1
- package/dist/chunk-EVE7MIIY.js.map +0 -1
- package/dist/chunk-H5RQOFO2.js.map +0 -1
- package/dist/chunk-I6BDYQIG.js.map +0 -1
- package/dist/chunk-IZJMVV7O.js +0 -347
- package/dist/chunk-IZJMVV7O.js.map +0 -1
- package/dist/chunk-O7IH7JTI.js +0 -1898
- package/dist/chunk-O7IH7JTI.js.map +0 -1
- package/dist/chunk-OCVQGBJK.js.map +0 -1
- package/dist/chunk-RZ4YESBG.js.map +0 -1
- package/dist/chunk-SPPMCAKG.js.map +0 -1
- package/dist/chunk-VRD5CYRL.js +0 -1568
- package/dist/chunk-VRD5CYRL.js.map +0 -1
- package/dist/chunk-WRAKK6K6.js.map +0 -1
- package/dist/chunk-XKYRH4FM.js.map +0 -1
- package/dist/chunk-XMCVRVTF.js.map +0 -1
- package/dist/chunk-ZLZKF2PM.js.map +0 -1
- package/dist/discord-B3HUPGQ6.js +0 -70
- package/dist/dist-UISMLMFN.js +0 -21847
- package/dist/dist-UISMLMFN.js.map +0 -1
- package/dist/email-K7LO2IPB.js.map +0 -1
- package/dist/enrichment-pipeline-MNHNW65K.js +0 -13
- package/dist/env-IWXUVTCB.js +0 -12
- package/dist/imessage-NGA2XF2V.js +0 -35
- package/dist/inbox-summarizer-NRI4S7IF.js +0 -47
- package/dist/incident-response-C5J7Q6DT.js.map +0 -1
- package/dist/presentations-DSV5IHG5.js.map +0 -1
- package/dist/scheduler-VK4WFERV.js +0 -63
- package/dist/signal-6CGDFYL2.js +0 -35
- package/dist/slack-IZQWIKOH.js +0 -75
- package/dist/src-VYUE6LRA.js.map +0 -1
- package/dist/tools-2RLEI2N6.js +0 -38
- package/dist/tunnel-IWMXUML4.js.map +0 -1
- package/dist/whatsapp-LFX6YKCM.js +0 -35
- package/dist/word-document-7B6SJMAY.js.map +0 -1
- /package/dist/{audit-logger-OBPR7CRO.js.map → agent-manager-JZ4IM7XI.js.map} +0 -0
- /package/dist/{auth-UOX5K2BE.js.map → agent-types-2T4PXLFQ.js.map} +0 -0
- /package/dist/{backup-restore-PZ7CYYB7.js.map → analyzer-OTWE3ARE.js.map} +0 -0
- /package/dist/{archiver-AVNBYCKQ.js.map → archiver-FPGKRP6P.js.map} +0 -0
- /package/dist/{blocks-R3PODY47.js.map → audit-logger-CI4WZQPD.js.map} +0 -0
- /package/dist/{bot-QRARP4UN.js.map → auth-PH5IHISW.js.map} +0 -0
- /package/dist/{aws-s3-Q4LLZZPD.js.map → aws-s3-QZMURYXB.js.map} +0 -0
- /package/dist/{brain-7XLLM3KC.js.map → backup-restore-72OQTZO3.js.map} +0 -0
- /package/dist/{chunk-PLDDJCW6.js.map → blocks-YOWOESDD.js.map} +0 -0
- /package/dist/{client-ZQSFPMOB.js.map → bot-VDHBGUVI.js.map} +0 -0
- /package/dist/{clipboard-manager-TEO2GEDN.js.map → brain-6QTXN4QP.js.map} +0 -0
- /package/dist/{camera-monitor-M5CYKUU4.js.map → camera-monitor-LHTUWHEL.js.map} +0 -0
- /package/dist/{charts-V7ARZNKF.js.map → charts-FJ32GQK7.js.map} +0 -0
- /package/dist/{chunk-TVEWKIK3.js.map → chunk-2WTKTG2C.js.map} +0 -0
- /package/dist/{chunk-SJSUSJ47.js.map → chunk-BNZHWAZC.js.map} +0 -0
- /package/dist/{chunk-MQJ2ECQT.js.map → chunk-CUPEENUY.js.map} +0 -0
- /package/dist/{chunk-NHMBTUMW.js.map → chunk-CWT6CAE5.js.map} +0 -0
- /package/dist/{chunk-6PMVAAA7.js.map → chunk-HJSEEFO3.js.map} +0 -0
- /package/dist/{chunk-TYAGMJNV.js.map → chunk-HQZQFEAX.js.map} +0 -0
- /package/dist/{chunk-MXAPLSJ5.js.map → chunk-J4JW73TT.js.map} +0 -0
- /package/dist/{chunk-VEHFVBLI.js.map → chunk-JHYYFPKX.js.map} +0 -0
- /package/dist/{chunk-66OJ3WB4.js.map → chunk-PD3CTDO6.js.map} +0 -0
- /package/dist/{cron-explain-HHQKPD3M.js.map → chunk-UP2VWCW5.js.map} +0 -0
- /package/dist/{chunk-4UOE5TUZ.js.map → chunk-WMDVOWN6.js.map} +0 -0
- /package/dist/{crypto-4AP47IKC.js.map → chunker-K6WTR62A.js.map} +0 -0
- /package/dist/{databases-37X4CI2Y.js.map → client-FOIYPOZQ.js.map} +0 -0
- /package/dist/{discord-B3HUPGQ6.js.map → clipboard-manager-4SBNESGZ.js.map} +0 -0
- /package/dist/{enrichment-pipeline-MNHNW65K.js.map → cost-tracker-KZQSTSE2.js.map} +0 -0
- /package/dist/{entity-resolution-Y3IUWEAT.js.map → cron-explain-UOOOYWZZ.js.map} +0 -0
- /package/dist/{env-IWXUVTCB.js.map → crypto-2VG3RJR2.js.map} +0 -0
- /package/dist/{hash-tool-ULQYD7B5.js.map → databases-XDPMG5AV.js.map} +0 -0
- /package/dist/{heartbeat-monitor-GCISLXI3.js.map → db-I7MNG6CL.js.map} +0 -0
- /package/dist/{imessage-NGA2XF2V.js.map → discord-6UQHCN27.js.map} +0 -0
- /package/dist/{inbox-summarizer-NRI4S7IF.js.map → docx-parser-EXL4TN5E.js.map} +0 -0
- /package/dist/{inventory-manager-352OHXWD.js.map → enrichment-pipeline-7FE5R5ZI.js.map} +0 -0
- /package/dist/{json-tool-QE2SYHEG.js.map → entity-resolution-7Z6STVXX.js.map} +0 -0
- /package/dist/{key-rotation-DPHU4ZTB.js.map → env-GN5VHI43.js.map} +0 -0
- /package/dist/{mcp-3JI6W7ZE.js.map → error-tracker-64DEH3D7.js.map} +0 -0
- /package/dist/{google-workspace-DKWUVNGC.js.map → google-workspace-TSZPZK5G.js.map} +0 -0
- /package/dist/{ocr-AC7NPX33.js.map → graph-client-NB475AK5.js.map} +0 -0
- /package/dist/{ollama-BOAMSPLJ.js.map → hash-tool-ENAB5LWH.js.map} +0 -0
- /package/dist/{pages-MI523RB7.js.map → heartbeat-monitor-KRDYTDBF.js.map} +0 -0
- /package/dist/{pairing-IFQYCPNS.js.map → hooks-N4MIFBVM.js.map} +0 -0
- /package/dist/{image-generation-OSU7FP6F.js.map → image-generation-MDE6AVQO.js.map} +0 -0
- /package/dist/{pdf-ALQVOEJR.js.map → imessage-DSGSGUZS.js.map} +0 -0
- /package/dist/{prometheus-JNT2BD4L.js.map → inbox-summarizer-F2KAU72V.js.map} +0 -0
- /package/dist/{providers-J4LYPHDR.js.map → inventory-manager-C67BSZM6.js.map} +0 -0
- /package/dist/{jira-GSGDBMIG.js.map → jira-PAGZWUBJ.js.map} +0 -0
- /package/dist/{qr-code-WIX4PB4U.js.map → json-tool-4FK5RNER.js.map} +0 -0
- /package/dist/{regex-tool-W4ABRKGK.js.map → key-rotation-WCC5FOYS.js.map} +0 -0
- /package/dist/{scheduler-VK4WFERV.js.map → knowledge-base-5SMMOGQJ.js.map} +0 -0
- /package/dist/{mailchimp-KKNF6QJ7.js.map → mailchimp-ZFYDC44J.js.map} +0 -0
- /package/dist/{search-BCLBO5E3.js.map → mcp-DJ2QDA6A.js.map} +0 -0
- /package/dist/{signal-6CGDFYL2.js.map → metrics-BH3ZLGEV.js.map} +0 -0
- /package/dist/{microsoft365-UCBKJHNX.js.map → microsoft365-6G2IJMWC.js.map} +0 -0
- /package/dist/{slack-IZQWIKOH.js.map → oauth-UPJYFOVU.js.map} +0 -0
- /package/dist/{sms-M3JIOTCW.js.map → ocr-UONKTQU7.js.map} +0 -0
- /package/dist/{stocks-XXWBPOCU.js.map → ollama-J7CU45WT.js.map} +0 -0
- /package/dist/{text-transform-6SGUA5Z4.js.map → pages-XDE7JRCA.js.map} +0 -0
- /package/dist/{pair-JDFTERIK.js.map → pair-YZJFQUU5.js.map} +0 -0
- /package/dist/{tools-2RLEI2N6.js.map → pairing-77N47RAT.js.map} +0 -0
- /package/dist/{unit-converter-ZYXMEZOE.js.map → pdf-67HGXCFJ.js.map} +0 -0
- /package/dist/{whatsapp-LFX6YKCM.js.map → pdf-parser-YLMTTYHL.js.map} +0 -0
- /package/dist/{quickbooks-XB4NII2S.js.map → quickbooks-N675W7IK.js.map} +0 -0
- /package/dist/{sendgrid-RNXCAFKM.js.map → sendgrid-QGJIVPWV.js.map} +0 -0
- /package/dist/{shopify-NCXYJB4R.js.map → shopify-ON2PAU27.js.map} +0 -0
- /package/dist/{twilio-53GEW5JT.js.map → twilio-3L7DUNYQ.js.map} +0 -0
- /package/dist/{xero-QYO66D45.js.map → xero-UHAHVYSD.js.map} +0 -0
- /package/dist/{zapier-webhook-TBZ5YF2A.js.map → zapier-webhook-NIELLTXR.js.map} +0 -0
package/README.md
CHANGED
|
@@ -1,20 +1,69 @@
|
|
|
1
1
|
# OpenSentinel
|
|
2
2
|
|
|
3
3
|
[](https://github.com/dsiemon2/OpenSentinel/actions/workflows/ci.yml)
|
|
4
|
+
[](https://github.com/dsiemon2/OpenSentinel/releases)
|
|
4
5
|
[](https://www.typescriptlang.org/)
|
|
5
6
|
[](https://bun.sh/)
|
|
6
7
|
[](https://www.docker.com/)
|
|
8
|
+
[](https://github.com/dsiemon2/OpenSentinel/actions)
|
|
7
9
|
[](LICENSE)
|
|
10
|
+
[](https://github.com/dsiemon2/OpenSentinel/stargazers)
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
**Your self-hosted AI assistant: 9 LLM providers, 300+ features, 124 tools, 10+ channels, smart home, OSINT, finance, and more.**
|
|
10
13
|
|
|
11
|
-
**Website**: [opensentinel.ai](https://opensentinel.ai) | **Dashboard**: [app.opensentinel.ai](https://app.opensentinel.ai)
|
|
14
|
+
**Website**: [opensentinel.ai](https://opensentinel.ai) | **Docs**: [docs.opensentinel.ai](https://docs.opensentinel.ai) | **Dashboard**: [app.opensentinel.ai](https://app.opensentinel.ai)
|
|
12
15
|
|
|
13
|
-
## What is OpenSentinel?
|
|
14
16
|
|
|
15
|
-
|
|
17
|
+
---
|
|
16
18
|
|
|
17
|
-
##
|
|
19
|
+
## Recent Updates (2026-04-10)
|
|
20
|
+
|
|
21
|
+
- All HTTP endpoints returning 200 OK
|
|
22
|
+
- SSL certificates renewed (~90 day validity)
|
|
23
|
+
- Login screens locked down (social buttons hidden, password eye toggle present)
|
|
24
|
+
- CI/CD pipeline verified working with GitHub Secrets
|
|
25
|
+
- No exposed API keys found in code
|
|
26
|
+
- Removed stray `${SNIPPET}` template variable from the landing page (was rendering literally in production)
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Table of Contents
|
|
31
|
+
|
|
32
|
+
- [Why OpenSentinel?](#why-opensentinel)
|
|
33
|
+
- [Key Features](#key-features)
|
|
34
|
+
- [Quick Start](#quick-start)
|
|
35
|
+
- [How to Use](#how-to-use)
|
|
36
|
+
- [Architecture](#architecture)
|
|
37
|
+
- [Comparison](#comparison)
|
|
38
|
+
- [Contributing](#contributing)
|
|
39
|
+
- [Community](#community)
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Why OpenSentinel?
|
|
44
|
+
|
|
45
|
+
OpenSentinel is a self-hosted personal AI assistant that runs on your infrastructure. Think JARVIS from Iron Man — talk to it via Telegram, Discord, Slack, or a web dashboard, and it takes action: controls your smart home, monitors your finances, searches public records, generates documents, and more.
|
|
46
|
+
|
|
47
|
+
Unlike chat-only interfaces, OpenSentinel is a **full-stack AI platform** with 124 tools, sub-agents, workflow automation, RAG memory, and enterprise security — all self-hosted.
|
|
48
|
+
|
|
49
|
+
**How it works**: You send a message (text, voice, or API call) → the Brain routes it to the right LLM provider → tools execute actions → you get a response with results.
|
|
50
|
+
|
|
51
|
+
## Key Features
|
|
52
|
+
|
|
53
|
+
| Category | Highlights |
|
|
54
|
+
|----------|-----------|
|
|
55
|
+
| **LLM Providers** | Anthropic Claude, OpenAI, xAI Grok, Google Gemini, Groq, Mistral, OpenRouter, Ollama, custom endpoints |
|
|
56
|
+
| **Channels** | Telegram, Discord, Slack, Matrix, WhatsApp, Signal, iMessage, Zalo, Web Dashboard, Desktop App (Electron), Browser Extension |
|
|
57
|
+
| **Smart Home** | Home Assistant device control, automation triggers |
|
|
58
|
+
| **Finance** | Crypto trading (Coinbase/Binance), stocks, DeFi, Finnhub, FRED macroeconomic data |
|
|
59
|
+
| **OSINT** | FEC, SEC EDGAR, IRS 990, USASpending, OpenCorporates, entity resolution, graph explorer |
|
|
60
|
+
| **Productivity** | GitHub, Notion, Email (IMAP/SMTP), Google Drive, Dropbox, Spotify |
|
|
61
|
+
| **Voice** | Wake word detection, VAD, speaker diarization, ElevenLabs TTS |
|
|
62
|
+
| **Security** | AES-256-GCM encryption, 2FA, RBAC, SSO (SAML/OAuth/OIDC), audit logging, GDPR tools |
|
|
63
|
+
| **AI** | Sub-agents, RAG memory (HyDE, re-ranking, graph RAG), ML pipeline, workflow automation |
|
|
64
|
+
|
|
65
|
+
<details>
|
|
66
|
+
<summary><strong>Full Feature List (300+ features)</strong></summary>
|
|
18
67
|
|
|
19
68
|
### Core Capabilities
|
|
20
69
|
- Answer questions and have conversations
|
|
@@ -24,6 +73,8 @@ OpenSentinel is your own personal AI assistant that runs on your infrastructure.
|
|
|
24
73
|
- Search the internet
|
|
25
74
|
- Set reminders and scheduled tasks
|
|
26
75
|
- Remember things about you (advanced RAG: HyDE, re-ranking, multi-step, graph RAG, caching)
|
|
76
|
+
- Agentic RAG pipeline: tool pre-classification, memory middleware, pipeline orchestrator, Brain telemetry
|
|
77
|
+
- ML algorithms (Naive Bayes, Isolation Forest, K-Means, Markov Chain, Linear Regression) for intent parsing, anomaly detection, and forecasting
|
|
27
78
|
- Respond with voice (JARVIS voice via ElevenLabs)
|
|
28
79
|
|
|
29
80
|
### Advanced Voice
|
|
@@ -34,17 +85,12 @@ OpenSentinel is your own personal AI assistant that runs on your infrastructure.
|
|
|
34
85
|
- Noise cancellation
|
|
35
86
|
- Voice note summarization
|
|
36
87
|
|
|
37
|
-
### Communication Platforms
|
|
38
|
-
- Telegram bot with voice support
|
|
39
|
-
- Discord bot with slash commands and voice channels
|
|
40
|
-
- Slack bot with app mentions and threads
|
|
41
|
-
- Matrix bot with mentions and DMs
|
|
42
|
-
- Web dashboard
|
|
43
|
-
- REST API
|
|
44
|
-
|
|
45
88
|
### Multi-Provider LLM
|
|
46
89
|
- Anthropic Claude (default)
|
|
90
|
+
- Google Gemini (1M context, vision, tool use)
|
|
47
91
|
- OpenRouter, Groq, Mistral, OpenAI
|
|
92
|
+
- xAI Grok
|
|
93
|
+
- HuggingFace Inference API (text embeddings)
|
|
48
94
|
- Ollama (local/offline models)
|
|
49
95
|
- Any OpenAI-compatible endpoint
|
|
50
96
|
- Automatic provider registration from env vars
|
|
@@ -58,6 +104,7 @@ OpenSentinel is your own personal AI assistant that runs on your infrastructure.
|
|
|
58
104
|
|
|
59
105
|
### Multi-Modal Input
|
|
60
106
|
- Image understanding and analysis
|
|
107
|
+
- Image/vision analysis from Web Chat uploads (base64 to Claude vision)
|
|
61
108
|
- Document OCR
|
|
62
109
|
- Screenshot interpretation
|
|
63
110
|
- Video summarization
|
|
@@ -77,6 +124,8 @@ OpenSentinel is your own personal AI assistant that runs on your infrastructure.
|
|
|
77
124
|
- Excel spreadsheets
|
|
78
125
|
- Charts and diagrams
|
|
79
126
|
- AI image generation (DALL-E)
|
|
127
|
+
- Secure file download UI with token-based access (1-hour expiry)
|
|
128
|
+
- Document parsing from uploads (PDF, DOCX, TXT, MD, HTML, CSV, JSON, XML, YAML)
|
|
80
129
|
|
|
81
130
|
### Personality System
|
|
82
131
|
- 15 domain expert modes (coding, legal, medical, finance, etc.)
|
|
@@ -85,14 +134,13 @@ OpenSentinel is your own personal AI assistant that runs on your infrastructure.
|
|
|
85
134
|
- Verbosity and humor controls
|
|
86
135
|
|
|
87
136
|
### Security
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
-
|
|
91
|
-
-
|
|
137
|
+
- Gateway token auth (optional, disabled by default for self-hosted)
|
|
138
|
+
- AES-256-GCM field encryption for data at rest
|
|
139
|
+
- Tamper-proof audit logs with HMAC-SHA256 chain integrity
|
|
140
|
+
- Incident response system with automated detection and escalation
|
|
92
141
|
- 2FA for sensitive operations (DB-persisted, encrypted secrets)
|
|
93
142
|
- Biometric verification
|
|
94
143
|
- Memory vault (encrypted storage)
|
|
95
|
-
- Audit logging
|
|
96
144
|
- GDPR compliance tools
|
|
97
145
|
- Rate limiting
|
|
98
146
|
- Autonomy levels (readonly/supervised/autonomous)
|
|
@@ -106,6 +154,8 @@ OpenSentinel is your own personal AI assistant that runs on your infrastructure.
|
|
|
106
154
|
- Kubernetes deployment
|
|
107
155
|
|
|
108
156
|
### Observability
|
|
157
|
+
- Brain Dashboard with real-time pipeline visualization, activity feed, and score gauges
|
|
158
|
+
- Brain Telemetry event emitter with status state machine and metric accumulators
|
|
109
159
|
- Metrics dashboard
|
|
110
160
|
- Replay mode (re-run conversations)
|
|
111
161
|
- Tool dry-run (preview without executing)
|
|
@@ -115,23 +165,21 @@ OpenSentinel is your own personal AI assistant that runs on your infrastructure.
|
|
|
115
165
|
|
|
116
166
|
### Integrations
|
|
117
167
|
- **Email**: IMAP/SMTP with AI inbox summarization + web email client (read, compose, attachments)
|
|
168
|
+
- **Microsoft 365 / Entra ID**: Graph-backed mail + SharePoint read/analysis + Claude-powered phishing/BEC + PII / policy analysis, OAuth with PKCE, encrypted token storage, chat-callable tools — see [`docs/M365_FEATURES.md`](docs/M365_FEATURES.md), [`docs/M365_INTEGRATION.md`](docs/M365_INTEGRATION.md), [`docs/M365_SHAREPOINT.md`](docs/M365_SHAREPOINT.md)
|
|
118
169
|
- **SMS/Phone**: Twilio for calls and texts
|
|
119
170
|
- **GitHub**: Repos, issues, PRs, AI code review
|
|
120
171
|
- **Notion**: Pages, databases, search, sync
|
|
121
172
|
- **Home Assistant**: Smart home device control
|
|
122
173
|
- **Spotify**: Playback, playlists, search
|
|
123
174
|
- **Cloud Storage**: Google Drive, Dropbox
|
|
124
|
-
- **Finance**: Crypto, stocks, currency, portfolio tracking, exchange trading
|
|
175
|
+
- **Finance**: Crypto, stocks, currency, portfolio tracking, exchange trading, DeFi, Finnhub, FRED
|
|
125
176
|
|
|
126
177
|
### OSINT & Public Records
|
|
127
|
-
-
|
|
128
|
-
-
|
|
129
|
-
-
|
|
130
|
-
-
|
|
131
|
-
-
|
|
132
|
-
|
|
133
|
-
### Infrastructure
|
|
134
|
-
- Built-in tunnels (Cloudflare, ngrok, localtunnel)
|
|
178
|
+
- Graph Explorer: D3.js force-directed knowledge graph visualization
|
|
179
|
+
- External API Search: Auto-queries FEC, OpenCorporates when entities aren't in local DB
|
|
180
|
+
- Entity Resolution: Jaro-Winkler fuzzy matching pipeline
|
|
181
|
+
- Public Records Clients: FEC, SEC EDGAR, IRS 990, USASpending, OpenCorporates
|
|
182
|
+
- Rate Limiting: Per-service sliding-window rate limiter for API compliance
|
|
135
183
|
|
|
136
184
|
### Vision & Documents
|
|
137
185
|
- Screen capture and webcam analysis
|
|
@@ -148,47 +196,42 @@ OpenSentinel is your own personal AI assistant that runs on your infrastructure.
|
|
|
148
196
|
- **Electron Desktop App**: System tray, global hotkeys (Ctrl+Shift+M chat, Ctrl+Shift+O OpenSentinel)
|
|
149
197
|
- **Browser Extension**: Chrome/Firefox popup chat, context menu
|
|
150
198
|
|
|
199
|
+
### Infrastructure
|
|
200
|
+
- Built-in tunnels (Cloudflare, ngrok, localtunnel)
|
|
201
|
+
- Docker Compose (dev + hardened production config)
|
|
202
|
+
|
|
203
|
+
</details>
|
|
204
|
+
|
|
151
205
|
## Quick Start
|
|
152
206
|
|
|
207
|
+
### Docker (Fastest)
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
git clone https://github.com/dsiemon2/OpenSentinel.git
|
|
211
|
+
cd OpenSentinel
|
|
212
|
+
cp .env.example .env # Add your API keys (at minimum ANTHROPIC_API_KEY)
|
|
213
|
+
docker compose up -d # Starts PostgreSQL + Redis
|
|
214
|
+
bun install
|
|
215
|
+
bun run db:migrate
|
|
216
|
+
cd src/web && bun install && bun run build && cd ../..
|
|
217
|
+
bun run start
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Open [http://localhost:8030](http://localhost:8030) — no auth required by default (self-hosted).
|
|
221
|
+
|
|
222
|
+
### Supported Platforms
|
|
223
|
+
|
|
224
|
+
| Platform | Status |
|
|
225
|
+
|----------|--------|
|
|
226
|
+
| Linux (Ubuntu/Debian) | Recommended |
|
|
227
|
+
| macOS | Supported |
|
|
228
|
+
| Windows (WSL2) | Supported |
|
|
229
|
+
| Docker | Supported |
|
|
230
|
+
|
|
153
231
|
### Prerequisites
|
|
154
232
|
- [Bun](https://bun.sh) runtime
|
|
155
233
|
- [Docker](https://docker.com) for PostgreSQL and Redis
|
|
156
|
-
- API keys (Claude at minimum; see `.env.example` for all
|
|
157
|
-
|
|
158
|
-
### Installation
|
|
159
|
-
|
|
160
|
-
1. **Clone and install dependencies**
|
|
161
|
-
```bash
|
|
162
|
-
git clone https://github.com/dsiemon2/OpenSentinel.git
|
|
163
|
-
cd OpenSentinel
|
|
164
|
-
bun install
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
2. **Set up environment variables**
|
|
168
|
-
```bash
|
|
169
|
-
cp .env.example .env
|
|
170
|
-
# Edit .env with your API keys
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
3. **Start database services**
|
|
174
|
-
```bash
|
|
175
|
-
docker compose up -d
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
4. **Run database migrations**
|
|
179
|
-
```bash
|
|
180
|
-
bun run db:migrate
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
5. **Build the web dashboard**
|
|
184
|
-
```bash
|
|
185
|
-
cd src/web && bun install && bun run build && cd ../..
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
6. **Start OpenSentinel**
|
|
189
|
-
```bash
|
|
190
|
-
bun run start
|
|
191
|
-
```
|
|
234
|
+
- API keys (Claude at minimum; see `.env.example` for all providers)
|
|
192
235
|
|
|
193
236
|
## How to Use
|
|
194
237
|
|
|
@@ -210,7 +253,7 @@ curl -X POST http://localhost:8030/api/ask \
|
|
|
210
253
|
-d '{"message": "Hello, what can you do?"}'
|
|
211
254
|
```
|
|
212
255
|
|
|
213
|
-
|
|
256
|
+
### Telegram Commands
|
|
214
257
|
|
|
215
258
|
| Command | Description |
|
|
216
259
|
|---------|-------------|
|
|
@@ -239,13 +282,14 @@ curl -X POST http://localhost:8030/api/ask \
|
|
|
239
282
|
│ Device Triggers │ │ │
|
|
240
283
|
│ Calendar │ │ │
|
|
241
284
|
├─────────────────────────────────────────────────────────────────┤
|
|
242
|
-
│ Providers: Anthropic,
|
|
285
|
+
│ Providers: Anthropic, OpenAI, xAI, Gemini, Groq, Mistral, │
|
|
286
|
+
│ OpenRouter, Ollama, Custom │
|
|
243
287
|
├─────────────────────────────────────────────────────────────────┤
|
|
244
288
|
│ Tools: Shell, Files, Browser, Search, OCR, Screenshots, │
|
|
245
|
-
│ Video, Image Analysis, File Generation
|
|
289
|
+
│ Video, Image Analysis, File Generation (124 tools) │
|
|
246
290
|
├─────────────────────────────────────────────────────────────────┤
|
|
247
291
|
│ Intelligence: Predictive, Relationship Graph, Temporal, │
|
|
248
|
-
│ Multi-lingual, Domain Experts
|
|
292
|
+
│ Multi-lingual, Domain Experts, ML Pipeline │
|
|
249
293
|
├─────────────────────────────────────────────────────────────────┤
|
|
250
294
|
│ Security: 2FA, Biometric, Vault, Audit, GDPR, Rate Limiting │
|
|
251
295
|
├─────────────────────────────────────────────────────────────────┤
|
|
@@ -255,6 +299,25 @@ curl -X POST http://localhost:8030/api/ask \
|
|
|
255
299
|
└─────────────────────────────────────────────────────────────────┘
|
|
256
300
|
```
|
|
257
301
|
|
|
302
|
+
## Comparison
|
|
303
|
+
|
|
304
|
+
| Feature | OpenSentinel | Open WebUI | Khoj | Leon AI |
|
|
305
|
+
|---------|:---:|:---:|:---:|:---:|
|
|
306
|
+
| LLM Providers | 9 | 3 | 3 | 1 |
|
|
307
|
+
| Chat Channels | 11 | 1 | 2 | 1 |
|
|
308
|
+
| Built-in Tools | 124 | ~20 | ~10 | ~30 |
|
|
309
|
+
| Smart Home | Home Assistant | - | - | - |
|
|
310
|
+
| Finance/Trading | Coinbase, Binance, Finnhub, FRED | - | - | - |
|
|
311
|
+
| OSINT/Public Records | FEC, SEC, IRS, OpenCorporates | - | - | - |
|
|
312
|
+
| Voice (Wake Word) | Yes | - | - | Yes |
|
|
313
|
+
| RAG Memory | HyDE, Graph RAG, Re-ranking | Basic | Yes | - |
|
|
314
|
+
| Sub-Agents | Yes | - | Yes | - |
|
|
315
|
+
| Workflow Automation | IFTTT-like | - | - | - |
|
|
316
|
+
| Enterprise SSO | SAML, OAuth, OIDC | LDAP | - | - |
|
|
317
|
+
| Desktop App | Electron | - | - | - |
|
|
318
|
+
| Browser Extension | Chrome/Firefox | - | Chrome | - |
|
|
319
|
+
| Test Coverage | 6,400+ tests | Unknown | Unknown | Unknown |
|
|
320
|
+
|
|
258
321
|
## Project Structure
|
|
259
322
|
|
|
260
323
|
```
|
|
@@ -269,13 +332,12 @@ src/
|
|
|
269
332
|
│ ├── agents/ # Sub-agent system
|
|
270
333
|
│ ├── enterprise/ # Multi-user, SSO, quotas
|
|
271
334
|
│ ├── intelligence/ # Predictive, relationship, temporal
|
|
272
|
-
│ ├──
|
|
335
|
+
│ ├── ml/ # ML algorithms (Naive Bayes, Isolation Forest, K-Means)
|
|
273
336
|
│ ├── observability/ # Metrics, replay, alerting
|
|
274
337
|
│ ├── personality/ # Personas, mood, domain experts
|
|
275
338
|
│ ├── plugins/ # Plugin system
|
|
276
339
|
│ ├── providers/ # Multi-LLM provider abstraction
|
|
277
340
|
│ ├── security/ # 2FA, vault, GDPR, audit
|
|
278
|
-
│ ├── tunnel/ # Built-in tunnel support
|
|
279
341
|
│ └── workflows/ # Automation engine
|
|
280
342
|
├── inputs/
|
|
281
343
|
│ ├── telegram/ # Telegram bot
|
|
@@ -288,29 +350,21 @@ src/
|
|
|
288
350
|
│ └── voice/ # Wake word, VAD, diarization
|
|
289
351
|
├── integrations/
|
|
290
352
|
│ ├── email/ # IMAP/SMTP email
|
|
291
|
-
│ ├── twilio/ # SMS/Phone calls
|
|
292
353
|
│ ├── github/ # GitHub API
|
|
293
354
|
│ ├── notion/ # Notion API
|
|
294
355
|
│ ├── homeassistant/ # Home Assistant
|
|
295
356
|
│ ├── spotify/ # Spotify API
|
|
296
|
-
│ ├── cloud-storage/ # Google Drive, Dropbox
|
|
297
357
|
│ ├── finance/ # Crypto, stocks, currency
|
|
298
|
-
│ ├── public-records/ # FEC, SEC, IRS 990,
|
|
299
|
-
│ ├── documents/ # Document ingestion
|
|
358
|
+
│ ├── public-records/ # FEC, SEC, IRS 990, OpenCorporates
|
|
300
359
|
│ └── vision/ # Screen/webcam capture
|
|
301
|
-
├── tools/
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
├── outputs/
|
|
305
|
-
│ ├── stt.ts # Speech-to-text
|
|
306
|
-
│ └── tts.ts # Text-to-speech
|
|
307
|
-
├── db/
|
|
308
|
-
│ └── schema.ts # Drizzle ORM schema
|
|
360
|
+
├── tools/ # 124 tool implementations
|
|
361
|
+
├── outputs/ # STT, TTS
|
|
362
|
+
├── db/ # Database schema
|
|
309
363
|
└── web/ # React dashboard
|
|
310
364
|
|
|
311
365
|
desktop/ # Electron desktop app
|
|
312
366
|
extension/ # Browser extension
|
|
313
|
-
tests/ #
|
|
367
|
+
tests/ # 187 test files, 6,400+ tests
|
|
314
368
|
```
|
|
315
369
|
|
|
316
370
|
## Ports
|
|
@@ -319,7 +373,7 @@ tests/ # 155+ test files, 5,000+ tests
|
|
|
319
373
|
|---------|------|
|
|
320
374
|
| OpenSentinel API + Dashboard | 8030 |
|
|
321
375
|
| PostgreSQL | 5445 |
|
|
322
|
-
| Redis |
|
|
376
|
+
| Redis | 6385 |
|
|
323
377
|
|
|
324
378
|
## Contributing
|
|
325
379
|
|
|
@@ -348,6 +402,7 @@ Found a bug or have a feature request? [Open an issue](https://github.com/dsiemo
|
|
|
348
402
|
- **GitHub Issues**: [Report bugs and request features](https://github.com/dsiemon2/OpenSentinel/issues)
|
|
349
403
|
- **GitHub Discussions**: [Ask questions and share ideas](https://github.com/dsiemon2/OpenSentinel/discussions)
|
|
350
404
|
- **Website**: [opensentinel.ai](https://opensentinel.ai)
|
|
405
|
+
- **Docs**: [docs.opensentinel.ai](https://docs.opensentinel.ai)
|
|
351
406
|
|
|
352
407
|
## License
|
|
353
408
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import {
|
|
2
|
+
addAgentMessage,
|
|
3
|
+
addAgentProgress,
|
|
4
|
+
agentQueue,
|
|
5
|
+
agent_manager_default,
|
|
6
|
+
cancelAgent,
|
|
7
|
+
getAgent,
|
|
8
|
+
getAllAgents,
|
|
9
|
+
getRunningAgentCount,
|
|
10
|
+
getUserAgents,
|
|
11
|
+
shouldAgentStop,
|
|
12
|
+
spawnAgent,
|
|
13
|
+
updateAgentStatus,
|
|
14
|
+
updateAgentTokens
|
|
15
|
+
} from "./chunk-WMFYI7XC.js";
|
|
16
|
+
import "./chunk-YEDEAX6Y.js";
|
|
17
|
+
import "./chunk-6ZNCY2GI.js";
|
|
18
|
+
import "./chunk-WZAH34TG.js";
|
|
19
|
+
import "./chunk-BBN4VCNK.js";
|
|
20
|
+
import "./chunk-5BTVJR7R.js";
|
|
21
|
+
import "./chunk-4KIHDIXZ.js";
|
|
22
|
+
import "./chunk-ZIBRVA3Y.js";
|
|
23
|
+
import "./chunk-UP2VWCW5.js";
|
|
24
|
+
export {
|
|
25
|
+
addAgentMessage,
|
|
26
|
+
addAgentProgress,
|
|
27
|
+
agentQueue,
|
|
28
|
+
cancelAgent,
|
|
29
|
+
agent_manager_default as default,
|
|
30
|
+
getAgent,
|
|
31
|
+
getAllAgents,
|
|
32
|
+
getRunningAgentCount,
|
|
33
|
+
getUserAgents,
|
|
34
|
+
shouldAgentStop,
|
|
35
|
+
spawnAgent,
|
|
36
|
+
updateAgentStatus,
|
|
37
|
+
updateAgentTokens
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=agent-manager-JZ4IM7XI.js.map
|