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/dist/lib.d.ts
CHANGED
|
@@ -65,12 +65,18 @@ declare const envSchema: z.ZodObject<{
|
|
|
65
65
|
TENOR_API_KEY: z.ZodOptional<z.ZodString>;
|
|
66
66
|
GIPHY_API_KEY: z.ZodOptional<z.ZodString>;
|
|
67
67
|
ALPHA_VANTAGE_API_KEY: z.ZodOptional<z.ZodString>;
|
|
68
|
+
FRED_API_KEY: z.ZodOptional<z.ZodString>;
|
|
69
|
+
FINNHUB_API_KEY: z.ZodOptional<z.ZodString>;
|
|
68
70
|
COINBASE_API_KEY: z.ZodOptional<z.ZodString>;
|
|
69
71
|
COINBASE_PRIVATE_KEY: z.ZodOptional<z.ZodString>;
|
|
70
72
|
BINANCE_API_KEY: z.ZodOptional<z.ZodString>;
|
|
71
73
|
BINANCE_API_SECRET: z.ZodOptional<z.ZodString>;
|
|
72
74
|
BINANCE_TESTNET: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
73
75
|
EXCHANGE_REQUIRE_CONFIRMATION: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
76
|
+
EXCHANGE_MAX_TRADE_SIZE: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
77
|
+
EXCHANGE_MAX_DAILY_SPEND: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
78
|
+
EXCHANGE_MAX_TRADES_PER_HOUR: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
79
|
+
EXCHANGE_AGENT_TRADING_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
74
80
|
DEFILLAMA_API_KEY: z.ZodOptional<z.ZodString>;
|
|
75
81
|
ETHERSCAN_API_KEY: z.ZodOptional<z.ZodString>;
|
|
76
82
|
ALCHEMY_API_KEY: z.ZodOptional<z.ZodString>;
|
|
@@ -93,6 +99,13 @@ declare const envSchema: z.ZodObject<{
|
|
|
93
99
|
OUTLOOK_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
|
|
94
100
|
OUTLOOK_REDIRECT_URI: z.ZodOptional<z.ZodString>;
|
|
95
101
|
OUTLOOK_REFRESH_TOKEN: z.ZodOptional<z.ZodString>;
|
|
102
|
+
M365_CLIENT_ID: z.ZodOptional<z.ZodString>;
|
|
103
|
+
M365_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
|
|
104
|
+
M365_TENANT_ID: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
105
|
+
M365_REDIRECT_URI: z.ZodOptional<z.ZodString>;
|
|
106
|
+
M365_GRAPH_SCOPES: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
107
|
+
M365_ANALYZE_RATE_LIMIT: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
108
|
+
M365_ANALYZE_RATE_REFILL: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
96
109
|
DROPBOX_CLIENT_ID: z.ZodOptional<z.ZodString>;
|
|
97
110
|
DROPBOX_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
|
|
98
111
|
DROPBOX_REDIRECT_URI: z.ZodOptional<z.ZodString>;
|
|
@@ -107,6 +120,10 @@ declare const envSchema: z.ZodObject<{
|
|
|
107
120
|
OPENAI_COMPATIBLE_API_KEY: z.ZodOptional<z.ZodString>;
|
|
108
121
|
OPENAI_COMPATIBLE_BASE_URL: z.ZodOptional<z.ZodString>;
|
|
109
122
|
OPENAI_COMPATIBLE_MODEL: z.ZodOptional<z.ZodString>;
|
|
123
|
+
XAI_API_KEY: z.ZodOptional<z.ZodString>;
|
|
124
|
+
XAI_DEFAULT_MODEL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
125
|
+
GEMINI_API_KEY: z.ZodOptional<z.ZodString>;
|
|
126
|
+
GEMINI_DEFAULT_MODEL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
110
127
|
OLLAMA_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
111
128
|
OLLAMA_BASE_URL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
112
129
|
OLLAMA_DEFAULT_MODEL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
@@ -174,6 +191,18 @@ declare const envSchema: z.ZodObject<{
|
|
|
174
191
|
MULTISTEP_MAX_STEPS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
175
192
|
RETRIEVAL_CACHE_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
176
193
|
CONTEXTUAL_QUERY_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
194
|
+
TOOL_CLASSIFIER_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
195
|
+
TOOL_CLASSIFIER_TIMEOUT_MS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
196
|
+
TOOL_CLASSIFIER_MAX_CATEGORIES: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
197
|
+
AUTO_MEMORY_EXTRACT_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
198
|
+
AUTO_MEMORY_EXTRACT_DEDUP_THRESHOLD: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
199
|
+
AUTO_MEMORY_SEARCH_THRESHOLD: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
200
|
+
AGENTIC_PIPELINE_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
201
|
+
AGENTIC_PRE_EXECUTION_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
202
|
+
AGENTIC_PRE_EXECUTION_TIMEOUT_MS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
203
|
+
AGENT_PROCESSOR_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
204
|
+
AGENT_PROCESSOR_CONCURRENCY: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
205
|
+
AGENT_MAX_TURNS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
177
206
|
ENCRYPTION_MASTER_KEY: z.ZodOptional<z.ZodString>;
|
|
178
207
|
AUDIT_SIGNING_KEY: z.ZodOptional<z.ZodString>;
|
|
179
208
|
PORT: z.ZodDefault<z.ZodNumber>;
|
|
@@ -199,11 +228,21 @@ declare const envSchema: z.ZodObject<{
|
|
|
199
228
|
EMAIL_LOCAL_SMTP_PORT: number;
|
|
200
229
|
BINANCE_TESTNET: boolean;
|
|
201
230
|
EXCHANGE_REQUIRE_CONFIRMATION: boolean;
|
|
231
|
+
EXCHANGE_MAX_TRADE_SIZE: number;
|
|
232
|
+
EXCHANGE_MAX_DAILY_SPEND: number;
|
|
233
|
+
EXCHANGE_MAX_TRADES_PER_HOUR: number;
|
|
234
|
+
EXCHANGE_AGENT_TRADING_ENABLED: boolean;
|
|
202
235
|
ALCHEMY_NETWORK: string;
|
|
236
|
+
M365_TENANT_ID: string;
|
|
237
|
+
M365_GRAPH_SCOPES: string;
|
|
238
|
+
M365_ANALYZE_RATE_LIMIT: number;
|
|
239
|
+
M365_ANALYZE_RATE_REFILL: number;
|
|
203
240
|
MCP_ENABLED: boolean;
|
|
204
241
|
MCP_CONFIG_PATH: string;
|
|
205
242
|
LLM_PROVIDER: string;
|
|
206
243
|
OPENAI_LLM_ENABLED: boolean;
|
|
244
|
+
XAI_DEFAULT_MODEL: string;
|
|
245
|
+
GEMINI_DEFAULT_MODEL: string;
|
|
207
246
|
OLLAMA_ENABLED: boolean;
|
|
208
247
|
OLLAMA_BASE_URL: string;
|
|
209
248
|
OLLAMA_DEFAULT_MODEL: string;
|
|
@@ -256,6 +295,18 @@ declare const envSchema: z.ZodObject<{
|
|
|
256
295
|
MULTISTEP_MAX_STEPS: number;
|
|
257
296
|
RETRIEVAL_CACHE_ENABLED: boolean;
|
|
258
297
|
CONTEXTUAL_QUERY_ENABLED: boolean;
|
|
298
|
+
TOOL_CLASSIFIER_ENABLED: boolean;
|
|
299
|
+
TOOL_CLASSIFIER_TIMEOUT_MS: number;
|
|
300
|
+
TOOL_CLASSIFIER_MAX_CATEGORIES: number;
|
|
301
|
+
AUTO_MEMORY_EXTRACT_ENABLED: boolean;
|
|
302
|
+
AUTO_MEMORY_EXTRACT_DEDUP_THRESHOLD: number;
|
|
303
|
+
AUTO_MEMORY_SEARCH_THRESHOLD: number;
|
|
304
|
+
AGENTIC_PIPELINE_ENABLED: boolean;
|
|
305
|
+
AGENTIC_PRE_EXECUTION_ENABLED: boolean;
|
|
306
|
+
AGENTIC_PRE_EXECUTION_TIMEOUT_MS: number;
|
|
307
|
+
AGENT_PROCESSOR_ENABLED: boolean;
|
|
308
|
+
AGENT_PROCESSOR_CONCURRENCY: number;
|
|
309
|
+
AGENT_MAX_TURNS: number;
|
|
259
310
|
PORT: number;
|
|
260
311
|
NODE_ENV: "development" | "production" | "test";
|
|
261
312
|
DISCORD_BOT_TOKEN?: string | undefined;
|
|
@@ -294,6 +345,8 @@ declare const envSchema: z.ZodObject<{
|
|
|
294
345
|
TENOR_API_KEY?: string | undefined;
|
|
295
346
|
GIPHY_API_KEY?: string | undefined;
|
|
296
347
|
ALPHA_VANTAGE_API_KEY?: string | undefined;
|
|
348
|
+
FRED_API_KEY?: string | undefined;
|
|
349
|
+
FINNHUB_API_KEY?: string | undefined;
|
|
297
350
|
COINBASE_API_KEY?: string | undefined;
|
|
298
351
|
COINBASE_PRIVATE_KEY?: string | undefined;
|
|
299
352
|
BINANCE_API_KEY?: string | undefined;
|
|
@@ -319,6 +372,9 @@ declare const envSchema: z.ZodObject<{
|
|
|
319
372
|
OUTLOOK_CLIENT_SECRET?: string | undefined;
|
|
320
373
|
OUTLOOK_REDIRECT_URI?: string | undefined;
|
|
321
374
|
OUTLOOK_REFRESH_TOKEN?: string | undefined;
|
|
375
|
+
M365_CLIENT_ID?: string | undefined;
|
|
376
|
+
M365_CLIENT_SECRET?: string | undefined;
|
|
377
|
+
M365_REDIRECT_URI?: string | undefined;
|
|
322
378
|
DROPBOX_CLIENT_ID?: string | undefined;
|
|
323
379
|
DROPBOX_CLIENT_SECRET?: string | undefined;
|
|
324
380
|
DROPBOX_REDIRECT_URI?: string | undefined;
|
|
@@ -329,6 +385,8 @@ declare const envSchema: z.ZodObject<{
|
|
|
329
385
|
OPENAI_COMPATIBLE_API_KEY?: string | undefined;
|
|
330
386
|
OPENAI_COMPATIBLE_BASE_URL?: string | undefined;
|
|
331
387
|
OPENAI_COMPATIBLE_MODEL?: string | undefined;
|
|
388
|
+
XAI_API_KEY?: string | undefined;
|
|
389
|
+
GEMINI_API_KEY?: string | undefined;
|
|
332
390
|
WHATSAPP_ALLOWED_NUMBERS?: string | undefined;
|
|
333
391
|
SIGNAL_PHONE_NUMBER?: string | undefined;
|
|
334
392
|
SIGNAL_ALLOWED_NUMBERS?: string | undefined;
|
|
@@ -401,12 +459,18 @@ declare const envSchema: z.ZodObject<{
|
|
|
401
459
|
TENOR_API_KEY?: string | undefined;
|
|
402
460
|
GIPHY_API_KEY?: string | undefined;
|
|
403
461
|
ALPHA_VANTAGE_API_KEY?: string | undefined;
|
|
462
|
+
FRED_API_KEY?: string | undefined;
|
|
463
|
+
FINNHUB_API_KEY?: string | undefined;
|
|
404
464
|
COINBASE_API_KEY?: string | undefined;
|
|
405
465
|
COINBASE_PRIVATE_KEY?: string | undefined;
|
|
406
466
|
BINANCE_API_KEY?: string | undefined;
|
|
407
467
|
BINANCE_API_SECRET?: string | undefined;
|
|
408
468
|
BINANCE_TESTNET?: boolean | undefined;
|
|
409
469
|
EXCHANGE_REQUIRE_CONFIRMATION?: boolean | undefined;
|
|
470
|
+
EXCHANGE_MAX_TRADE_SIZE?: number | undefined;
|
|
471
|
+
EXCHANGE_MAX_DAILY_SPEND?: number | undefined;
|
|
472
|
+
EXCHANGE_MAX_TRADES_PER_HOUR?: number | undefined;
|
|
473
|
+
EXCHANGE_AGENT_TRADING_ENABLED?: boolean | undefined;
|
|
410
474
|
DEFILLAMA_API_KEY?: string | undefined;
|
|
411
475
|
ETHERSCAN_API_KEY?: string | undefined;
|
|
412
476
|
ALCHEMY_API_KEY?: string | undefined;
|
|
@@ -429,6 +493,13 @@ declare const envSchema: z.ZodObject<{
|
|
|
429
493
|
OUTLOOK_CLIENT_SECRET?: string | undefined;
|
|
430
494
|
OUTLOOK_REDIRECT_URI?: string | undefined;
|
|
431
495
|
OUTLOOK_REFRESH_TOKEN?: string | undefined;
|
|
496
|
+
M365_CLIENT_ID?: string | undefined;
|
|
497
|
+
M365_CLIENT_SECRET?: string | undefined;
|
|
498
|
+
M365_TENANT_ID?: string | undefined;
|
|
499
|
+
M365_REDIRECT_URI?: string | undefined;
|
|
500
|
+
M365_GRAPH_SCOPES?: string | undefined;
|
|
501
|
+
M365_ANALYZE_RATE_LIMIT?: number | undefined;
|
|
502
|
+
M365_ANALYZE_RATE_REFILL?: number | undefined;
|
|
432
503
|
DROPBOX_CLIENT_ID?: string | undefined;
|
|
433
504
|
DROPBOX_CLIENT_SECRET?: string | undefined;
|
|
434
505
|
DROPBOX_REDIRECT_URI?: string | undefined;
|
|
@@ -443,6 +514,10 @@ declare const envSchema: z.ZodObject<{
|
|
|
443
514
|
OPENAI_COMPATIBLE_API_KEY?: string | undefined;
|
|
444
515
|
OPENAI_COMPATIBLE_BASE_URL?: string | undefined;
|
|
445
516
|
OPENAI_COMPATIBLE_MODEL?: string | undefined;
|
|
517
|
+
XAI_API_KEY?: string | undefined;
|
|
518
|
+
XAI_DEFAULT_MODEL?: string | undefined;
|
|
519
|
+
GEMINI_API_KEY?: string | undefined;
|
|
520
|
+
GEMINI_DEFAULT_MODEL?: string | undefined;
|
|
446
521
|
OLLAMA_ENABLED?: boolean | undefined;
|
|
447
522
|
OLLAMA_BASE_URL?: string | undefined;
|
|
448
523
|
OLLAMA_DEFAULT_MODEL?: string | undefined;
|
|
@@ -510,6 +585,18 @@ declare const envSchema: z.ZodObject<{
|
|
|
510
585
|
MULTISTEP_MAX_STEPS?: number | undefined;
|
|
511
586
|
RETRIEVAL_CACHE_ENABLED?: boolean | undefined;
|
|
512
587
|
CONTEXTUAL_QUERY_ENABLED?: boolean | undefined;
|
|
588
|
+
TOOL_CLASSIFIER_ENABLED?: boolean | undefined;
|
|
589
|
+
TOOL_CLASSIFIER_TIMEOUT_MS?: number | undefined;
|
|
590
|
+
TOOL_CLASSIFIER_MAX_CATEGORIES?: number | undefined;
|
|
591
|
+
AUTO_MEMORY_EXTRACT_ENABLED?: boolean | undefined;
|
|
592
|
+
AUTO_MEMORY_EXTRACT_DEDUP_THRESHOLD?: number | undefined;
|
|
593
|
+
AUTO_MEMORY_SEARCH_THRESHOLD?: number | undefined;
|
|
594
|
+
AGENTIC_PIPELINE_ENABLED?: boolean | undefined;
|
|
595
|
+
AGENTIC_PRE_EXECUTION_ENABLED?: boolean | undefined;
|
|
596
|
+
AGENTIC_PRE_EXECUTION_TIMEOUT_MS?: number | undefined;
|
|
597
|
+
AGENT_PROCESSOR_ENABLED?: boolean | undefined;
|
|
598
|
+
AGENT_PROCESSOR_CONCURRENCY?: number | undefined;
|
|
599
|
+
AGENT_MAX_TURNS?: number | undefined;
|
|
513
600
|
ENCRYPTION_MASTER_KEY?: string | undefined;
|
|
514
601
|
AUDIT_SIGNING_KEY?: string | undefined;
|
|
515
602
|
PORT?: number | undefined;
|
|
@@ -541,10 +628,16 @@ declare const env: Env;
|
|
|
541
628
|
*/
|
|
542
629
|
declare function initializeProviders(): Promise<void>;
|
|
543
630
|
|
|
544
|
-
declare const SYSTEM_PROMPT = "You are OpenSentinel, a personal AI assistant with a JARVIS-like personality. You are helpful, efficient, and have a subtle sense of humor. You speak in a professional yet friendly manner.\n\nYou have access to 120+ tools spanning many domains. ALWAYS check your available tools before telling the user you cannot do something. Key capabilities include:\n\n**System & Productivity**\n- Execute shell commands, manage files, browse the web, search for information\n- Remember facts about the user, spawn background agents for complex tasks\n- Generate documents, spreadsheets, charts, diagrams, reports\n- Analyze images, take screenshots, OCR\n\n**Communication & Social**\n- Send/read Telegram, Discord, Slack, WhatsApp, Signal, iMessage, Matrix messages\n- Send/read emails (Gmail, IMAP/SMTP), SMS/phone calls via Twilio\n\n**Entertainment & Media**\n- Control Spotify playback (play, pause, skip, volume, queue, search, playlists, recommendations)\n- Search for GIFs (Tenor, Giphy, web fallback)\n- Generate images, text-to-speech, speech-to-text\n\n**Smart Home & Location**\n- Control Home Assistant devices (lights, switches, climate, cameras)\n- Search places, geocode addresses, find nearby POIs, get driving directions\n- Camera capture from webcams, RTSP streams, and HA cameras\n\n**Google Workspace**\n- Gmail (list, read, send, search, reply emails)\n- Google Calendar (list, create, update, delete events)\n- Google Drive (list, search, upload, download, share files)\n\n**Finance & Data**\n- Cryptocurrency prices, stock data, currency conversion\n- OSINT research, web scraping\n\n**DevOps & Code**\n- GitHub (repos, issues, PRs, code search)\n- Notion (pages, databases, search)\n- Terminal command execution (local or remote via WebSocket bridge)\n- Token usage dashboard with cost tracking\n\nIMPORTANT: When the user asks you to do something, USE YOUR TOOLS. Do not say \"I cannot do that\" if a matching tool exists. If a tool requires credentials that are not configured, tell the user what credentials are needed rather than refusing outright.\n\nAlways be concise but thorough. When executing tasks, explain what you're doing briefly. If you encounter errors, suggest solutions.\n\nThe user is your principal. Assist them with whatever they need while being mindful of security and privacy.";
|
|
631
|
+
declare const SYSTEM_PROMPT = "You are OpenSentinel, a personal AI assistant with a JARVIS-like personality. You are helpful, efficient, and have a subtle sense of humor. You speak in a professional yet friendly manner.\n\nYou have access to 120+ tools spanning many domains. ALWAYS check your available tools before telling the user you cannot do something. Key capabilities include:\n\n**System & Productivity**\n- Execute shell commands, manage files, browse the web, search for information\n- Remember facts about the user, spawn background agents for complex tasks\n- Generate documents, spreadsheets, charts, diagrams, reports\n- Analyze images, take screenshots, OCR\n\n**Communication & Social**\n- Send/read Telegram, Discord, Slack, WhatsApp, Signal, iMessage, Matrix messages\n- Send/read emails (Gmail, IMAP/SMTP), SMS/phone calls via Twilio\n\n**Entertainment & Media**\n- Control Spotify playback (play, pause, skip, volume, queue, search, playlists, recommendations)\n- Search for GIFs (Tenor, Giphy, web fallback)\n- Generate images, text-to-speech, speech-to-text\n\n**Smart Home & Location**\n- Control Home Assistant devices (lights, switches, climate, cameras)\n- Search places, geocode addresses, find nearby POIs, get driving directions\n- Camera capture from webcams, RTSP streams, and HA cameras\n\n**Google Workspace**\n- Gmail (list, read, send, search, reply emails)\n- Google Calendar (list, create, update, delete events)\n- Google Drive (list, search, upload, download, share files)\n\n**Finance & Data**\n- Cryptocurrency prices, stock data, currency conversion\n- OSINT research, web scraping\n\n**DevOps & Code**\n- GitHub (repos, issues, PRs, code search)\n- Notion (pages, databases, search)\n- Terminal command execution (local or remote via WebSocket bridge)\n- Token usage dashboard with cost tracking\n\nIMPORTANT: When the user asks you to do something, USE YOUR TOOLS. Do not say \"I cannot do that\" if a matching tool exists. If a tool requires credentials that are not configured, tell the user what credentials are needed rather than refusing outright.\n\nAlways be concise but thorough. When executing tasks, explain what you're doing briefly. If you encounter errors, suggest solutions.\n\nWhen a file-generation tool returns a `downloadUrl`, include a markdown link like `[Download filename](downloadUrl)` so the user can download the file.\n\nWhen the user uploads a document (PDF, DOCX, etc.), use the parse_document tool to extract its contents before responding.\n\nThe user is your principal. Assist them with whatever they need while being mindful of security and privacy.";
|
|
632
|
+
interface MessageAttachment {
|
|
633
|
+
name: string;
|
|
634
|
+
type: string;
|
|
635
|
+
data: string;
|
|
636
|
+
}
|
|
545
637
|
interface Message {
|
|
546
638
|
role: "user" | "assistant";
|
|
547
639
|
content: string;
|
|
640
|
+
attachments?: MessageAttachment[];
|
|
548
641
|
}
|
|
549
642
|
interface BrainResponse {
|
|
550
643
|
content: string;
|
package/dist/lib.js
CHANGED
|
@@ -1,32 +1,34 @@
|
|
|
1
1
|
import {
|
|
2
2
|
app
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import {
|
|
5
|
-
SignalBot
|
|
6
|
-
} from "./chunk-VEHFVBLI.js";
|
|
7
|
-
import {
|
|
8
|
-
iMessageBot
|
|
9
|
-
} from "./chunk-NHMBTUMW.js";
|
|
3
|
+
} from "./chunk-S2EOIVF4.js";
|
|
10
4
|
import {
|
|
11
5
|
createBot
|
|
12
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-56UJS2LA.js";
|
|
13
7
|
import {
|
|
14
8
|
DiscordBot
|
|
15
|
-
} from "./chunk-
|
|
16
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-HQZQFEAX.js";
|
|
10
|
+
import "./chunk-J4JW73TT.js";
|
|
17
11
|
import {
|
|
18
12
|
SlackBot
|
|
19
|
-
} from "./chunk-
|
|
20
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-WMDVOWN6.js";
|
|
14
|
+
import "./chunk-BNZHWAZC.js";
|
|
21
15
|
import {
|
|
22
16
|
cancelTask,
|
|
23
17
|
generateBriefing,
|
|
24
18
|
scheduleReminder,
|
|
25
19
|
scheduleTask
|
|
26
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-GJETKBOY.js";
|
|
27
21
|
import {
|
|
28
22
|
WhatsAppBot
|
|
29
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-PD3CTDO6.js";
|
|
24
|
+
import {
|
|
25
|
+
SignalBot
|
|
26
|
+
} from "./chunk-JHYYFPKX.js";
|
|
27
|
+
import {
|
|
28
|
+
iMessageBot
|
|
29
|
+
} from "./chunk-CWT6CAE5.js";
|
|
30
|
+
import "./chunk-SDLOMKCW.js";
|
|
31
|
+
import "./chunk-66SAOZPU.js";
|
|
30
32
|
import {
|
|
31
33
|
SYSTEM_PROMPT,
|
|
32
34
|
TOOLS,
|
|
@@ -35,35 +37,18 @@ import {
|
|
|
35
37
|
executeTool,
|
|
36
38
|
streamChat,
|
|
37
39
|
streamChatWithTools
|
|
38
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-ZMML6T63.js";
|
|
41
|
+
import "./chunk-5JJTLWOR.js";
|
|
39
42
|
import {
|
|
40
43
|
buildMemoryContext,
|
|
41
44
|
extractMemories,
|
|
42
45
|
generateEmbedding,
|
|
43
46
|
searchMemories,
|
|
44
47
|
storeMemory
|
|
45
|
-
} from "./chunk-
|
|
46
|
-
import
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
detectLanguage,
|
|
50
|
-
extractKeywords,
|
|
51
|
-
transformText
|
|
52
|
-
} from "./chunk-PTGTGXV2.js";
|
|
53
|
-
import {
|
|
54
|
-
diffJson,
|
|
55
|
-
flattenJson,
|
|
56
|
-
formatJson,
|
|
57
|
-
jsonTool,
|
|
58
|
-
queryJson,
|
|
59
|
-
validateJson
|
|
60
|
-
} from "./chunk-F3TTNID2.js";
|
|
61
|
-
import {
|
|
62
|
-
cronTool,
|
|
63
|
-
explainCron,
|
|
64
|
-
getNextRuns,
|
|
65
|
-
validateCron
|
|
66
|
-
} from "./chunk-APHSRMBS.js";
|
|
48
|
+
} from "./chunk-QPY3WRVM.js";
|
|
49
|
+
import "./chunk-ADTDYJO7.js";
|
|
50
|
+
import "./chunk-LFDXEYYB.js";
|
|
51
|
+
import "./chunk-TKBVW7ZJ.js";
|
|
67
52
|
import {
|
|
68
53
|
compareHashes,
|
|
69
54
|
generateToken,
|
|
@@ -87,6 +72,11 @@ import {
|
|
|
87
72
|
import {
|
|
88
73
|
clipboardTool
|
|
89
74
|
} from "./chunk-MGFBLVR7.js";
|
|
75
|
+
import "./chunk-6HGMRR4J.js";
|
|
76
|
+
import "./chunk-DTISLIMB.js";
|
|
77
|
+
import "./chunk-3AWAWRWB.js";
|
|
78
|
+
import "./chunk-PBOCSGNL.js";
|
|
79
|
+
import "./chunk-7BNFELEK.js";
|
|
90
80
|
import {
|
|
91
81
|
generateEncryptionKey,
|
|
92
82
|
getRotationInfo,
|
|
@@ -103,38 +93,65 @@ import {
|
|
|
103
93
|
recordBeat,
|
|
104
94
|
registerService
|
|
105
95
|
} from "./chunk-SAX5MHK4.js";
|
|
106
|
-
import
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
96
|
+
import {
|
|
97
|
+
changeCase,
|
|
98
|
+
countText,
|
|
99
|
+
detectLanguage,
|
|
100
|
+
extractKeywords,
|
|
101
|
+
transformText
|
|
102
|
+
} from "./chunk-PTGTGXV2.js";
|
|
103
|
+
import {
|
|
104
|
+
diffJson,
|
|
105
|
+
flattenJson,
|
|
106
|
+
formatJson,
|
|
107
|
+
jsonTool,
|
|
108
|
+
queryJson,
|
|
109
|
+
validateJson
|
|
110
|
+
} from "./chunk-F3TTNID2.js";
|
|
111
|
+
import {
|
|
112
|
+
cronTool,
|
|
113
|
+
explainCron,
|
|
114
|
+
getNextRuns,
|
|
115
|
+
validateCron
|
|
116
|
+
} from "./chunk-APHSRMBS.js";
|
|
117
|
+
import "./chunk-CUPEENUY.js";
|
|
118
|
+
import "./chunk-2WTKTG2C.js";
|
|
119
|
+
import "./chunk-U2X2J3FI.js";
|
|
120
|
+
import "./chunk-X6Q3K3L2.js";
|
|
121
|
+
import "./chunk-ODCFS5WD.js";
|
|
112
122
|
import "./chunk-KM22GV7G.js";
|
|
113
123
|
import "./chunk-P6QINGFL.js";
|
|
114
|
-
import "./chunk-
|
|
115
|
-
import "./chunk-
|
|
116
|
-
import "./chunk-WRAKK6K6.js";
|
|
124
|
+
import "./chunk-HJSEEFO3.js";
|
|
125
|
+
import "./chunk-C6PELIHS.js";
|
|
117
126
|
import "./chunk-7WQO5J2M.js";
|
|
127
|
+
import "./chunk-WMFYI7XC.js";
|
|
128
|
+
import "./chunk-YEDEAX6Y.js";
|
|
129
|
+
import "./chunk-6ZNCY2GI.js";
|
|
130
|
+
import "./chunk-WZAH34TG.js";
|
|
131
|
+
import "./chunk-6KONMXQ6.js";
|
|
132
|
+
import "./chunk-22VGGA7S.js";
|
|
133
|
+
import "./chunk-HN3F4WSW.js";
|
|
134
|
+
import "./chunk-V3OKHQUX.js";
|
|
135
|
+
import "./chunk-2I5QHYG6.js";
|
|
136
|
+
import "./chunk-CZTMGHUC.js";
|
|
137
|
+
import "./chunk-4WH6MFEW.js";
|
|
118
138
|
import {
|
|
119
139
|
initializeProviders
|
|
120
|
-
} from "./chunk-
|
|
121
|
-
import "./chunk-
|
|
122
|
-
import "./chunk-EVE7MIIY.js";
|
|
123
|
-
import "./chunk-RZ4YESBG.js";
|
|
140
|
+
} from "./chunk-GW6V4D43.js";
|
|
141
|
+
import "./chunk-DOYGMNMK.js";
|
|
124
142
|
import "./chunk-CQ4JURG7.js";
|
|
125
|
-
import "./chunk-
|
|
143
|
+
import "./chunk-BBN4VCNK.js";
|
|
126
144
|
import {
|
|
127
145
|
db
|
|
128
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-5BTVJR7R.js";
|
|
129
147
|
import {
|
|
130
148
|
configure,
|
|
131
149
|
env,
|
|
132
150
|
ready
|
|
133
|
-
} from "./chunk-
|
|
134
|
-
import "./chunk-
|
|
135
|
-
import "./chunk-22VGGA7S.js";
|
|
151
|
+
} from "./chunk-4KIHDIXZ.js";
|
|
152
|
+
import "./chunk-ZIBRVA3Y.js";
|
|
136
153
|
import "./chunk-35WYTA3C.js";
|
|
137
|
-
import "./chunk-
|
|
154
|
+
import "./chunk-UP2VWCW5.js";
|
|
138
155
|
|
|
139
156
|
// src/app.ts
|
|
140
157
|
var OpenSentinel = class {
|
|
@@ -152,7 +169,7 @@ var OpenSentinel = class {
|
|
|
152
169
|
if (this._running) return;
|
|
153
170
|
const services = this.config.services || {};
|
|
154
171
|
if (services.telegram && env.TELEGRAM_BOT_TOKEN) {
|
|
155
|
-
const { createBot: createBot2 } = await import("./bot-
|
|
172
|
+
const { createBot: createBot2 } = await import("./bot-VDHBGUVI.js");
|
|
156
173
|
this._services.telegramBot = createBot2();
|
|
157
174
|
this._services.telegramBot.start({
|
|
158
175
|
onStart: (botInfo) => {
|
|
@@ -162,7 +179,7 @@ var OpenSentinel = class {
|
|
|
162
179
|
}
|
|
163
180
|
if (services.scheduler) {
|
|
164
181
|
try {
|
|
165
|
-
const { startWorker } = await import("./scheduler-
|
|
182
|
+
const { startWorker } = await import("./scheduler-6PLLAQI7.js");
|
|
166
183
|
startWorker(async (task) => {
|
|
167
184
|
console.log(`[Scheduler] Executing task: ${task.type}`);
|
|
168
185
|
if (task.chatId && task.message && this._services.telegramBot) {
|
|
@@ -182,8 +199,8 @@ var OpenSentinel = class {
|
|
|
182
199
|
}
|
|
183
200
|
if (services.mcp !== false && env.MCP_ENABLED) {
|
|
184
201
|
try {
|
|
185
|
-
const { initMCPRegistry, getMCPToolSummary } = await import("./mcp-
|
|
186
|
-
const { setMCPRegistry } = await import("./tools-
|
|
202
|
+
const { initMCPRegistry, getMCPToolSummary } = await import("./mcp-DJ2QDA6A.js");
|
|
203
|
+
const { setMCPRegistry } = await import("./tools-PJZ6RI4P.js");
|
|
187
204
|
this._services.mcpRegistry = await initMCPRegistry(env.MCP_CONFIG_PATH);
|
|
188
205
|
setMCPRegistry(this._services.mcpRegistry);
|
|
189
206
|
if (this._services.mcpRegistry.connectedCount > 0) {
|
|
@@ -199,7 +216,7 @@ var OpenSentinel = class {
|
|
|
199
216
|
}
|
|
200
217
|
if (services.discord && env.DISCORD_BOT_TOKEN) {
|
|
201
218
|
try {
|
|
202
|
-
const { DiscordBot: DiscordBot2 } = await import("./discord-
|
|
219
|
+
const { DiscordBot: DiscordBot2 } = await import("./discord-6UQHCN27.js");
|
|
203
220
|
this._services.discordBot = new DiscordBot2({
|
|
204
221
|
token: env.DISCORD_BOT_TOKEN,
|
|
205
222
|
clientId: env.DISCORD_CLIENT_ID || "",
|
|
@@ -216,7 +233,7 @@ var OpenSentinel = class {
|
|
|
216
233
|
}
|
|
217
234
|
if (services.slack && env.SLACK_BOT_TOKEN && env.SLACK_SIGNING_SECRET) {
|
|
218
235
|
try {
|
|
219
|
-
const { SlackBot: SlackBot2 } = await import("./slack-
|
|
236
|
+
const { SlackBot: SlackBot2 } = await import("./slack-KSS6YK5Z.js");
|
|
220
237
|
this._services.slackBot = new SlackBot2({
|
|
221
238
|
token: env.SLACK_BOT_TOKEN,
|
|
222
239
|
signingSecret: env.SLACK_SIGNING_SECRET,
|
|
@@ -235,7 +252,7 @@ var OpenSentinel = class {
|
|
|
235
252
|
}
|
|
236
253
|
if (services.whatsapp && env.WHATSAPP_ENABLED) {
|
|
237
254
|
try {
|
|
238
|
-
const { WhatsAppBot: WhatsAppBot2 } = await import("./whatsapp-
|
|
255
|
+
const { WhatsAppBot: WhatsAppBot2 } = await import("./whatsapp-DWXK25V2.js");
|
|
239
256
|
this._services.whatsappBot = new WhatsAppBot2({
|
|
240
257
|
authDir: env.WHATSAPP_AUTH_DIR,
|
|
241
258
|
allowedNumbers: env.WHATSAPP_ALLOWED_NUMBERS?.split(",").filter(Boolean) || [],
|
|
@@ -250,7 +267,7 @@ var OpenSentinel = class {
|
|
|
250
267
|
}
|
|
251
268
|
if (services.signal && env.SIGNAL_ENABLED && env.SIGNAL_PHONE_NUMBER) {
|
|
252
269
|
try {
|
|
253
|
-
const { SignalBot: SignalBot2 } = await import("./signal-
|
|
270
|
+
const { SignalBot: SignalBot2 } = await import("./signal-7D5EPGVL.js");
|
|
254
271
|
this._services.signalBot = new SignalBot2({
|
|
255
272
|
phoneNumber: env.SIGNAL_PHONE_NUMBER,
|
|
256
273
|
signalCliPath: env.SIGNAL_CLI_PATH,
|
|
@@ -265,7 +282,7 @@ var OpenSentinel = class {
|
|
|
265
282
|
}
|
|
266
283
|
if (services.imessage && env.IMESSAGE_ENABLED) {
|
|
267
284
|
try {
|
|
268
|
-
const { iMessageBot: iMessageBot2 } = await import("./imessage-
|
|
285
|
+
const { iMessageBot: iMessageBot2 } = await import("./imessage-DSGSGUZS.js");
|
|
269
286
|
this._services.imessageBot = new iMessageBot2({
|
|
270
287
|
mode: env.IMESSAGE_MODE,
|
|
271
288
|
serverUrl: env.IMESSAGE_BLUEBUBBLES_URL,
|
|
@@ -284,7 +301,7 @@ var OpenSentinel = class {
|
|
|
284
301
|
async stop() {
|
|
285
302
|
if (!this._running) return;
|
|
286
303
|
console.log("Shutting down OpenSentinel...");
|
|
287
|
-
const { stopWorker } = await import("./scheduler-
|
|
304
|
+
const { stopWorker } = await import("./scheduler-6PLLAQI7.js");
|
|
288
305
|
stopWorker();
|
|
289
306
|
if (this._services.mcpRegistry) {
|
|
290
307
|
await this._services.mcpRegistry.shutdown();
|
package/dist/lib.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/app.ts"],"sourcesContent":["/**\n * OpenSentinel - Programmatic API\n *\n * Usage:\n * import { OpenSentinel } from 'opensentinel';\n *\n * const sentinel = new OpenSentinel({\n * claudeApiKey: 'sk-ant-...',\n * env: { DATABASE_URL: 'postgresql://...', TELEGRAM_BOT_TOKEN: '...' },\n * services: { telegram: true, api: true },\n * });\n *\n * await sentinel.start();\n */\n\nimport { configure, env, type Env } from \"./config/env\";\nimport { chat, chatWithTools, type Message, type BrainResponse } from \"./core/brain\";\n\nexport interface OpenSentinelConfig {\n /** Required: your Claude API key */\n claudeApiKey: string;\n /** All other env vars as optional overrides */\n env?: Partial<Env>;\n /** Which services to start (all default to false except api) */\n services?: {\n telegram?: boolean;\n discord?: boolean;\n slack?: boolean;\n whatsapp?: boolean;\n signal?: boolean;\n imessage?: boolean;\n api?: boolean;\n scheduler?: boolean;\n mcp?: boolean;\n websocket?: boolean;\n };\n}\n\nexport class OpenSentinel {\n private config: OpenSentinelConfig;\n private _running = false;\n private _services: {\n telegramBot?: any;\n discordBot?: any;\n slackBot?: any;\n whatsappBot?: any;\n signalBot?: any;\n imessageBot?: any;\n mcpRegistry?: any;\n server?: any;\n } = {};\n\n constructor(config: OpenSentinelConfig) {\n this.config = config;\n\n // Configure the env singleton\n configure({\n CLAUDE_API_KEY: config.claudeApiKey,\n ...(config.env || {}),\n } as Partial<Env> & { CLAUDE_API_KEY: string });\n }\n\n async start(): Promise<void> {\n if (this._running) return;\n\n const services = this.config.services || {};\n\n // Start Telegram bot\n if (services.telegram && env.TELEGRAM_BOT_TOKEN) {\n const { createBot } = await import(\"./inputs/telegram/bot\");\n this._services.telegramBot = createBot();\n this._services.telegramBot.start({\n onStart: (botInfo: any) => {\n console.log(`[Telegram] Bot started as @${botInfo.username}`);\n },\n });\n }\n\n // Start scheduler\n if (services.scheduler) {\n try {\n const { startWorker } = await import(\"./core/scheduler\");\n startWorker(async (task: any) => {\n console.log(`[Scheduler] Executing task: ${task.type}`);\n if (task.chatId && task.message && this._services.telegramBot) {\n try {\n await this._services.telegramBot.api.sendMessage(\n task.chatId,\n `Reminder: ${task.message}`\n );\n } catch (err) {\n console.error(\"[Scheduler] Failed to send reminder:\", err);\n }\n }\n });\n } catch (err) {\n console.warn(\"[Scheduler] Could not start worker:\", err);\n }\n }\n\n // Initialize MCP\n if (services.mcp !== false && env.MCP_ENABLED) {\n try {\n const { initMCPRegistry, getMCPToolSummary } = await import(\"./core/mcp\");\n const { setMCPRegistry } = await import(\"./tools\");\n this._services.mcpRegistry = await initMCPRegistry(env.MCP_CONFIG_PATH);\n setMCPRegistry(this._services.mcpRegistry);\n\n if (this._services.mcpRegistry.connectedCount > 0) {\n console.log(\n `[MCP] Connected to ${this._services.mcpRegistry.connectedCount} server(s), ${this._services.mcpRegistry.totalToolCount} tools available`\n );\n console.log(getMCPToolSummary(this._services.mcpRegistry));\n }\n } catch (err) {\n console.warn(\"[MCP] Failed to initialize:\", err);\n this._services.mcpRegistry = null;\n }\n }\n\n // Start Discord bot\n if (services.discord && env.DISCORD_BOT_TOKEN) {\n try {\n const { DiscordBot } = await import(\"./inputs/discord\");\n this._services.discordBot = new DiscordBot({\n token: env.DISCORD_BOT_TOKEN,\n clientId: env.DISCORD_CLIENT_ID || \"\",\n guildId: env.DISCORD_GUILD_ID,\n allowedUserIds: env.DISCORD_ALLOWED_USER_IDS?.split(\",\") || [],\n allowedRoleIds: env.DISCORD_ALLOWED_ROLE_IDS?.split(\",\") || [],\n });\n await this._services.discordBot.start();\n console.log(\"[Discord] Bot started\");\n } catch (err: any) {\n console.warn(\"[Discord] Failed to start bot:\", err.message);\n this._services.discordBot = null;\n }\n }\n\n // Start Slack bot\n if (services.slack && env.SLACK_BOT_TOKEN && env.SLACK_SIGNING_SECRET) {\n try {\n const { SlackBot } = await import(\"./inputs/slack\");\n this._services.slackBot = new SlackBot({\n token: env.SLACK_BOT_TOKEN,\n signingSecret: env.SLACK_SIGNING_SECRET,\n appToken: env.SLACK_APP_TOKEN,\n socketMode: env.SLACK_SOCKET_MODE,\n port: parseInt(String(env.SLACK_PORT) || \"3000\"),\n allowedUserIds: env.SLACK_ALLOWED_USER_IDS?.split(\",\") || [],\n allowedChannelIds: env.SLACK_ALLOWED_CHANNEL_IDS?.split(\",\") || [],\n });\n await this._services.slackBot.start();\n console.log(\"[Slack] Bot started\");\n } catch (err: any) {\n console.warn(\"[Slack] Failed to start bot:\", err.message);\n this._services.slackBot = null;\n }\n }\n\n // Start WhatsApp bot\n if (services.whatsapp && env.WHATSAPP_ENABLED) {\n try {\n const { WhatsAppBot } = await import(\"./inputs/whatsapp\");\n this._services.whatsappBot = new WhatsAppBot({\n authDir: env.WHATSAPP_AUTH_DIR,\n allowedNumbers:\n env.WHATSAPP_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n printQR: true,\n });\n await this._services.whatsappBot.start();\n console.log(\"[WhatsApp] Bot started\");\n } catch (err: any) {\n console.warn(\"[WhatsApp] Failed to start bot:\", err.message);\n this._services.whatsappBot = null;\n }\n }\n\n // Start Signal bot\n if (services.signal && env.SIGNAL_ENABLED && env.SIGNAL_PHONE_NUMBER) {\n try {\n const { SignalBot } = await import(\"./inputs/signal\");\n this._services.signalBot = new SignalBot({\n phoneNumber: env.SIGNAL_PHONE_NUMBER,\n signalCliPath: env.SIGNAL_CLI_PATH,\n allowedNumbers:\n env.SIGNAL_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n });\n await this._services.signalBot.start();\n console.log(\"[Signal] Bot started\");\n } catch (err: any) {\n console.warn(\"[Signal] Failed to start bot:\", err.message);\n this._services.signalBot = null;\n }\n }\n\n // Start iMessage bot\n if (services.imessage && env.IMESSAGE_ENABLED) {\n try {\n const { iMessageBot } = await import(\"./inputs/imessage\");\n this._services.imessageBot = new iMessageBot({\n mode: env.IMESSAGE_MODE as \"bluebubbles\" | \"applescript\",\n serverUrl: env.IMESSAGE_BLUEBUBBLES_URL,\n password: env.IMESSAGE_BLUEBUBBLES_PASSWORD,\n allowedNumbers:\n env.IMESSAGE_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n });\n await this._services.imessageBot.start();\n console.log(\"[iMessage] Bot started\");\n } catch (err: any) {\n console.warn(\"[iMessage] Failed to start bot:\", err.message);\n this._services.imessageBot = null;\n }\n }\n\n this._running = true;\n }\n\n async stop(): Promise<void> {\n if (!this._running) return;\n\n console.log(\"Shutting down OpenSentinel...\");\n\n const { stopWorker } = await import(\"./core/scheduler\");\n stopWorker();\n\n if (this._services.mcpRegistry) {\n await this._services.mcpRegistry.shutdown();\n }\n if (this._services.telegramBot) {\n await this._services.telegramBot.stop();\n }\n if (this._services.discordBot) {\n await this._services.discordBot.stop();\n }\n if (this._services.slackBot) {\n await this._services.slackBot.stop();\n }\n if (this._services.whatsappBot) {\n await this._services.whatsappBot.stop();\n }\n if (this._services.signalBot) {\n await this._services.signalBot.stop();\n }\n if (this._services.imessageBot) {\n await this._services.imessageBot.stop();\n }\n if (this._services.server) {\n this._services.server.stop();\n }\n\n this._running = false;\n console.log(\"OpenSentinel stopped.\");\n }\n\n /** Send a simple chat message (no tools) */\n async chat(\n messages: Message[],\n systemPrompt?: string\n ): Promise<BrainResponse> {\n return chat(messages, systemPrompt);\n }\n\n /** Send a chat message with tool execution */\n async chatWithTools(\n messages: Message[],\n userId?: string,\n onToolUse?: (toolName: string, input: unknown) => void\n ): Promise<BrainResponse> {\n return chatWithTools(messages, userId, onToolUse);\n }\n\n get running(): boolean {\n return this._running;\n }\n\n get services() {\n return { ...this._services };\n }\n}\n"],"mappings":"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","names":["createBot","DiscordBot","SlackBot","WhatsAppBot","SignalBot","iMessageBot"]}
|
|
1
|
+
{"version":3,"sources":["../src/app.ts"],"sourcesContent":["/**\n * OpenSentinel - Programmatic API\n *\n * Usage:\n * import { OpenSentinel } from 'opensentinel';\n *\n * const sentinel = new OpenSentinel({\n * claudeApiKey: 'sk-ant-...',\n * env: { DATABASE_URL: 'postgresql://...', TELEGRAM_BOT_TOKEN: '...' },\n * services: { telegram: true, api: true },\n * });\n *\n * await sentinel.start();\n */\n\nimport { configure, env, type Env } from \"./config/env\";\nimport { chat, chatWithTools, type Message, type BrainResponse } from \"./core/brain\";\n\nexport interface OpenSentinelConfig {\n /** Required: your Claude API key */\n claudeApiKey: string;\n /** All other env vars as optional overrides */\n env?: Partial<Env>;\n /** Which services to start (all default to false except api) */\n services?: {\n telegram?: boolean;\n discord?: boolean;\n slack?: boolean;\n whatsapp?: boolean;\n signal?: boolean;\n imessage?: boolean;\n api?: boolean;\n scheduler?: boolean;\n mcp?: boolean;\n websocket?: boolean;\n };\n}\n\nexport class OpenSentinel {\n private config: OpenSentinelConfig;\n private _running = false;\n private _services: {\n telegramBot?: any;\n discordBot?: any;\n slackBot?: any;\n whatsappBot?: any;\n signalBot?: any;\n imessageBot?: any;\n mcpRegistry?: any;\n server?: any;\n } = {};\n\n constructor(config: OpenSentinelConfig) {\n this.config = config;\n\n // Configure the env singleton\n configure({\n CLAUDE_API_KEY: config.claudeApiKey,\n ...(config.env || {}),\n } as Partial<Env> & { CLAUDE_API_KEY: string });\n }\n\n async start(): Promise<void> {\n if (this._running) return;\n\n const services = this.config.services || {};\n\n // Start Telegram bot\n if (services.telegram && env.TELEGRAM_BOT_TOKEN) {\n const { createBot } = await import(\"./inputs/telegram/bot\");\n this._services.telegramBot = createBot();\n this._services.telegramBot.start({\n onStart: (botInfo: any) => {\n console.log(`[Telegram] Bot started as @${botInfo.username}`);\n },\n });\n }\n\n // Start scheduler\n if (services.scheduler) {\n try {\n const { startWorker } = await import(\"./core/scheduler\");\n startWorker(async (task: any) => {\n console.log(`[Scheduler] Executing task: ${task.type}`);\n if (task.chatId && task.message && this._services.telegramBot) {\n try {\n await this._services.telegramBot.api.sendMessage(\n task.chatId,\n `Reminder: ${task.message}`\n );\n } catch (err) {\n console.error(\"[Scheduler] Failed to send reminder:\", err);\n }\n }\n });\n } catch (err) {\n console.warn(\"[Scheduler] Could not start worker:\", err);\n }\n }\n\n // Initialize MCP\n if (services.mcp !== false && env.MCP_ENABLED) {\n try {\n const { initMCPRegistry, getMCPToolSummary } = await import(\"./core/mcp\");\n const { setMCPRegistry } = await import(\"./tools\");\n this._services.mcpRegistry = await initMCPRegistry(env.MCP_CONFIG_PATH);\n setMCPRegistry(this._services.mcpRegistry);\n\n if (this._services.mcpRegistry.connectedCount > 0) {\n console.log(\n `[MCP] Connected to ${this._services.mcpRegistry.connectedCount} server(s), ${this._services.mcpRegistry.totalToolCount} tools available`\n );\n console.log(getMCPToolSummary(this._services.mcpRegistry));\n }\n } catch (err) {\n console.warn(\"[MCP] Failed to initialize:\", err);\n this._services.mcpRegistry = null;\n }\n }\n\n // Start Discord bot\n if (services.discord && env.DISCORD_BOT_TOKEN) {\n try {\n const { DiscordBot } = await import(\"./inputs/discord\");\n this._services.discordBot = new DiscordBot({\n token: env.DISCORD_BOT_TOKEN,\n clientId: env.DISCORD_CLIENT_ID || \"\",\n guildId: env.DISCORD_GUILD_ID,\n allowedUserIds: env.DISCORD_ALLOWED_USER_IDS?.split(\",\") || [],\n allowedRoleIds: env.DISCORD_ALLOWED_ROLE_IDS?.split(\",\") || [],\n });\n await this._services.discordBot.start();\n console.log(\"[Discord] Bot started\");\n } catch (err: any) {\n console.warn(\"[Discord] Failed to start bot:\", err.message);\n this._services.discordBot = null;\n }\n }\n\n // Start Slack bot\n if (services.slack && env.SLACK_BOT_TOKEN && env.SLACK_SIGNING_SECRET) {\n try {\n const { SlackBot } = await import(\"./inputs/slack\");\n this._services.slackBot = new SlackBot({\n token: env.SLACK_BOT_TOKEN,\n signingSecret: env.SLACK_SIGNING_SECRET,\n appToken: env.SLACK_APP_TOKEN,\n socketMode: env.SLACK_SOCKET_MODE,\n port: parseInt(String(env.SLACK_PORT) || \"3000\"),\n allowedUserIds: env.SLACK_ALLOWED_USER_IDS?.split(\",\") || [],\n allowedChannelIds: env.SLACK_ALLOWED_CHANNEL_IDS?.split(\",\") || [],\n });\n await this._services.slackBot.start();\n console.log(\"[Slack] Bot started\");\n } catch (err: any) {\n console.warn(\"[Slack] Failed to start bot:\", err.message);\n this._services.slackBot = null;\n }\n }\n\n // Start WhatsApp bot\n if (services.whatsapp && env.WHATSAPP_ENABLED) {\n try {\n const { WhatsAppBot } = await import(\"./inputs/whatsapp\");\n this._services.whatsappBot = new WhatsAppBot({\n authDir: env.WHATSAPP_AUTH_DIR,\n allowedNumbers:\n env.WHATSAPP_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n printQR: true,\n });\n await this._services.whatsappBot.start();\n console.log(\"[WhatsApp] Bot started\");\n } catch (err: any) {\n console.warn(\"[WhatsApp] Failed to start bot:\", err.message);\n this._services.whatsappBot = null;\n }\n }\n\n // Start Signal bot\n if (services.signal && env.SIGNAL_ENABLED && env.SIGNAL_PHONE_NUMBER) {\n try {\n const { SignalBot } = await import(\"./inputs/signal\");\n this._services.signalBot = new SignalBot({\n phoneNumber: env.SIGNAL_PHONE_NUMBER,\n signalCliPath: env.SIGNAL_CLI_PATH,\n allowedNumbers:\n env.SIGNAL_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n });\n await this._services.signalBot.start();\n console.log(\"[Signal] Bot started\");\n } catch (err: any) {\n console.warn(\"[Signal] Failed to start bot:\", err.message);\n this._services.signalBot = null;\n }\n }\n\n // Start iMessage bot\n if (services.imessage && env.IMESSAGE_ENABLED) {\n try {\n const { iMessageBot } = await import(\"./inputs/imessage\");\n this._services.imessageBot = new iMessageBot({\n mode: env.IMESSAGE_MODE as \"bluebubbles\" | \"applescript\",\n serverUrl: env.IMESSAGE_BLUEBUBBLES_URL,\n password: env.IMESSAGE_BLUEBUBBLES_PASSWORD,\n allowedNumbers:\n env.IMESSAGE_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n });\n await this._services.imessageBot.start();\n console.log(\"[iMessage] Bot started\");\n } catch (err: any) {\n console.warn(\"[iMessage] Failed to start bot:\", err.message);\n this._services.imessageBot = null;\n }\n }\n\n this._running = true;\n }\n\n async stop(): Promise<void> {\n if (!this._running) return;\n\n console.log(\"Shutting down OpenSentinel...\");\n\n const { stopWorker } = await import(\"./core/scheduler\");\n stopWorker();\n\n if (this._services.mcpRegistry) {\n await this._services.mcpRegistry.shutdown();\n }\n if (this._services.telegramBot) {\n await this._services.telegramBot.stop();\n }\n if (this._services.discordBot) {\n await this._services.discordBot.stop();\n }\n if (this._services.slackBot) {\n await this._services.slackBot.stop();\n }\n if (this._services.whatsappBot) {\n await this._services.whatsappBot.stop();\n }\n if (this._services.signalBot) {\n await this._services.signalBot.stop();\n }\n if (this._services.imessageBot) {\n await this._services.imessageBot.stop();\n }\n if (this._services.server) {\n this._services.server.stop();\n }\n\n this._running = false;\n console.log(\"OpenSentinel stopped.\");\n }\n\n /** Send a simple chat message (no tools) */\n async chat(\n messages: Message[],\n systemPrompt?: string\n ): Promise<BrainResponse> {\n return chat(messages, systemPrompt);\n }\n\n /** Send a chat message with tool execution */\n async chatWithTools(\n messages: Message[],\n userId?: string,\n onToolUse?: (toolName: string, input: unknown) => void\n ): Promise<BrainResponse> {\n return chatWithTools(messages, userId, onToolUse);\n }\n\n get running(): boolean {\n return this._running;\n }\n\n get services() {\n return { ...this._services };\n }\n}\n"],"mappings":"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","names":["createBot","DiscordBot","SlackBot","WhatsAppBot","SignalBot","iMessageBot"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BaseAdapter
|
|
3
3
|
} from "./chunk-7WQO5J2M.js";
|
|
4
|
-
import "./chunk-
|
|
4
|
+
import "./chunk-UP2VWCW5.js";
|
|
5
5
|
|
|
6
6
|
// src/core/adapters/adapters/mailchimp.ts
|
|
7
7
|
import { z } from "zod";
|
|
@@ -149,4 +149,4 @@ var MailchimpAdapter = class extends BaseAdapter {
|
|
|
149
149
|
export {
|
|
150
150
|
MailchimpAdapter
|
|
151
151
|
};
|
|
152
|
-
//# sourceMappingURL=mailchimp-
|
|
152
|
+
//# sourceMappingURL=mailchimp-ZFYDC44J.js.map
|
|
@@ -1,31 +1,40 @@
|
|
|
1
1
|
import {
|
|
2
2
|
chatWithTools
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-ZMML6T63.js";
|
|
4
|
+
import "./chunk-5JJTLWOR.js";
|
|
5
|
+
import "./chunk-QPY3WRVM.js";
|
|
6
|
+
import "./chunk-ADTDYJO7.js";
|
|
7
|
+
import "./chunk-DTISLIMB.js";
|
|
8
|
+
import "./chunk-CUPEENUY.js";
|
|
9
|
+
import "./chunk-2WTKTG2C.js";
|
|
10
|
+
import "./chunk-U2X2J3FI.js";
|
|
11
|
+
import "./chunk-X6Q3K3L2.js";
|
|
12
|
+
import "./chunk-ODCFS5WD.js";
|
|
11
13
|
import "./chunk-KM22GV7G.js";
|
|
12
14
|
import "./chunk-P6QINGFL.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-WRAKK6K6.js";
|
|
15
|
+
import "./chunk-HJSEEFO3.js";
|
|
16
|
+
import "./chunk-C6PELIHS.js";
|
|
16
17
|
import "./chunk-7WQO5J2M.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-CQ4JURG7.js";
|
|
22
|
-
import "./chunk-OCVQGBJK.js";
|
|
23
|
-
import "./chunk-XKYRH4FM.js";
|
|
24
|
-
import "./chunk-ZLZKF2PM.js";
|
|
18
|
+
import "./chunk-WMFYI7XC.js";
|
|
19
|
+
import "./chunk-YEDEAX6Y.js";
|
|
20
|
+
import "./chunk-6ZNCY2GI.js";
|
|
21
|
+
import "./chunk-WZAH34TG.js";
|
|
25
22
|
import "./chunk-6KONMXQ6.js";
|
|
26
23
|
import "./chunk-22VGGA7S.js";
|
|
24
|
+
import "./chunk-HN3F4WSW.js";
|
|
25
|
+
import "./chunk-V3OKHQUX.js";
|
|
26
|
+
import "./chunk-2I5QHYG6.js";
|
|
27
|
+
import "./chunk-CZTMGHUC.js";
|
|
28
|
+
import "./chunk-4WH6MFEW.js";
|
|
29
|
+
import "./chunk-GW6V4D43.js";
|
|
30
|
+
import "./chunk-DOYGMNMK.js";
|
|
31
|
+
import "./chunk-CQ4JURG7.js";
|
|
32
|
+
import "./chunk-BBN4VCNK.js";
|
|
33
|
+
import "./chunk-5BTVJR7R.js";
|
|
34
|
+
import "./chunk-4KIHDIXZ.js";
|
|
35
|
+
import "./chunk-ZIBRVA3Y.js";
|
|
27
36
|
import "./chunk-35WYTA3C.js";
|
|
28
|
-
import "./chunk-
|
|
37
|
+
import "./chunk-UP2VWCW5.js";
|
|
29
38
|
|
|
30
39
|
// src/inputs/matrix/index.ts
|
|
31
40
|
import sdk from "matrix-js-sdk";
|
|
@@ -276,4 +285,4 @@ export {
|
|
|
276
285
|
createMatrixBot,
|
|
277
286
|
matrix_default as default
|
|
278
287
|
};
|
|
279
|
-
//# sourceMappingURL=matrix-
|
|
288
|
+
//# sourceMappingURL=matrix-WYGEOZL5.js.map
|