opensentinel 3.1.1 → 3.6.1
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 +126 -83
- package/dist/agent-manager-7N7REQZQ.js +39 -0
- package/dist/agent-processor-I23VWQY3.js +280 -0
- package/dist/agent-processor-I23VWQY3.js.map +1 -0
- package/dist/agent-types-2T4PXLFQ.js +12 -0
- package/dist/alerting-4I37GG4U.js +699 -0
- package/dist/alerting-4I37GG4U.js.map +1 -0
- package/dist/analysis-agent-JWN2GXYE.js +288 -0
- package/dist/analysis-agent-JWN2GXYE.js.map +1 -0
- package/dist/{archiver-AVNBYCKQ.js → archiver-XLRIIXPY.js} +86 -17
- package/dist/archiver-XLRIIXPY.js.map +1 -0
- package/dist/{audit-logger-OBPR7CRO.js → audit-logger-AU3TMWKI.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-MU2TJQ3Y.js +46 -0
- package/dist/brain-SLA474EU.js +65 -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-6PMVAAA7.js → chunk-2RGPWU77.js} +3 -3
- package/dist/{chunk-TVEWKIK3.js → chunk-2WTKTG2C.js} +2 -2
- package/dist/{chunk-MXAPLSJ5.js → chunk-45YXODSB.js} +2 -2
- package/dist/{chunk-SJSUSJ47.js → chunk-4YJRBMMA.js} +2 -2
- package/dist/chunk-643M3AP5.js +564 -0
- package/dist/chunk-643M3AP5.js.map +1 -0
- package/dist/{chunk-766ASQWE.js → chunk-6JY4HNUH.js} +2413 -2368
- package/dist/chunk-6JY4HNUH.js.map +1 -0
- package/dist/chunk-6LTLIYAQ.js +194 -0
- package/dist/chunk-6LTLIYAQ.js.map +1 -0
- package/dist/chunk-6UZPE35A.js +724 -0
- package/dist/chunk-6UZPE35A.js.map +1 -0
- package/dist/chunk-6W6PTJFT.js +181 -0
- package/dist/chunk-6W6PTJFT.js.map +1 -0
- package/dist/chunk-7MZN73J2.js +162 -0
- package/dist/chunk-7MZN73J2.js.map +1 -0
- package/dist/{chunk-SVAPX2XN.js → chunk-A24GPVLY.js} +9 -7
- package/dist/{chunk-SVAPX2XN.js.map → chunk-A24GPVLY.js.map} +1 -1
- package/dist/chunk-AD6YEH6U.js +3408 -0
- package/dist/chunk-AD6YEH6U.js.map +1 -0
- package/dist/chunk-ADTDYJO7.js +265 -0
- package/dist/chunk-ADTDYJO7.js.map +1 -0
- package/dist/{chunk-WRAKK6K6.js → chunk-AR34B6XR.js} +5 -3
- package/dist/{chunk-WRAKK6K6.js.map → chunk-AR34B6XR.js.map} +1 -1
- package/dist/chunk-BMOUYXLX.js +418 -0
- package/dist/chunk-BMOUYXLX.js.map +1 -0
- 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-RZ4YESBG.js → chunk-DOYGMNMK.js} +1 -1
- package/dist/chunk-DOYGMNMK.js.map +1 -0
- package/dist/chunk-FFV2SXFD.js +380 -0
- package/dist/chunk-FFV2SXFD.js.map +1 -0
- package/dist/{chunk-EVE7MIIY.js → chunk-GUKKW7JI.js} +15 -16
- package/dist/chunk-GUKKW7JI.js.map +1 -0
- package/dist/{chunk-66OJ3WB4.js → chunk-H3BOLSTS.js} +2 -2
- package/dist/chunk-HKOPRRDJ.js +1021 -0
- package/dist/chunk-HKOPRRDJ.js.map +1 -0
- package/dist/{chunk-BXZ6EA52.js → chunk-HTF2GIQC.js} +57 -3
- package/dist/chunk-HTF2GIQC.js.map +1 -0
- package/dist/{chunk-TYAGMJNV.js → chunk-JOA5A3G3.js} +5 -5
- package/dist/{chunk-OCVQGBJK.js → chunk-KABG5PG3.js} +6 -4
- package/dist/{chunk-OCVQGBJK.js.map → chunk-KABG5PG3.js.map} +1 -1
- package/dist/{chunk-VEHFVBLI.js → chunk-KT7NLIXP.js} +2 -2
- package/dist/chunk-LFDXEYYB.js +150 -0
- package/dist/chunk-LFDXEYYB.js.map +1 -0
- package/dist/{chunk-I6BDYQIG.js → chunk-M7YLQHFP.js} +6 -6
- package/dist/chunk-M7YLQHFP.js.map +1 -0
- package/dist/{chunk-AYUKPTSM.js → chunk-MFK34XSY.js} +96 -218
- package/dist/chunk-MFK34XSY.js.map +1 -0
- package/dist/chunk-MIC5IBQF.js +386 -0
- package/dist/chunk-MIC5IBQF.js.map +1 -0
- package/dist/{chunk-4UOE5TUZ.js → chunk-NMSHVO5O.js} +4 -4
- package/dist/{chunk-XKYRH4FM.js → chunk-NYVBXUGD.js} +13 -32
- package/dist/chunk-NYVBXUGD.js.map +1 -0
- package/dist/chunk-ODCFS5WD.js +463 -0
- package/dist/chunk-ODCFS5WD.js.map +1 -0
- package/dist/{chunk-ZLZKF2PM.js → chunk-PUNIMPMY.js} +32 -2
- package/dist/chunk-PUNIMPMY.js.map +1 -0
- package/dist/chunk-S4NJJS5C.js +37 -0
- package/dist/chunk-S4NJJS5C.js.map +1 -0
- package/dist/{chunk-NHMBTUMW.js → chunk-TAAZB5KN.js} +2 -2
- 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-4GLYY4NN.js → chunk-UWUIJTT4.js} +8 -2
- package/dist/chunk-UWUIJTT4.js.map +1 -0
- package/dist/{chunk-SPPMCAKG.js → chunk-VKMFUIVA.js} +2 -2
- package/dist/chunk-VKMFUIVA.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-ZIYTHUM5.js +457 -0
- package/dist/chunk-ZIYTHUM5.js.map +1 -0
- package/dist/chunker-K6WTR62A.js +12 -0
- package/dist/cli.js +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 +1 -1
- package/dist/commands/start.js +2 -2
- package/dist/commands/status.js +1 -1
- package/dist/commands/stop.js +1 -1
- package/dist/commands/utils.js +1 -1
- package/dist/cost-tracker-EMOIOYH7.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-LRIOKQBO.js +77 -0
- package/dist/discord-NKR3X4AV.js +80 -0
- package/dist/documents-EYIYLZK2.js +184 -0
- package/dist/documents-EYIYLZK2.js.map +1 -0
- package/dist/docx-parser-EXL4TN5E.js +16 -0
- package/dist/{email-K7LO2IPB.js → email-EAQNULVD.js} +33 -25
- package/dist/{email-K7LO2IPB.js.map → email-EAQNULVD.js.map} +1 -1
- package/dist/{enhanced-retrieval-DNLLEM4Z.js → enhanced-retrieval-OGHT6TS5.js} +11 -8
- package/dist/{enhanced-retrieval-DNLLEM4Z.js.map → enhanced-retrieval-OGHT6TS5.js.map} +1 -1
- package/dist/enrichment-pipeline-CMUVBDC7.js +14 -0
- package/dist/{entity-resolution-Y3IUWEAT.js → entity-resolution-4X4JU43O.js} +6 -5
- package/dist/env-CHOFICED.js +12 -0
- package/dist/error-tracker-SVQSDQDW.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-KGNILDWJ.js +833 -0
- package/dist/github-KGNILDWJ.js.map +1 -0
- package/dist/{google-workspace-DKWUVNGC.js → google-workspace-TSZPZK5G.js} +2 -2
- 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-V2XNDDHT.js +43 -0
- package/dist/inbox-summarizer-DKKRYXDR.js +55 -0
- package/dist/{incident-response-C5J7Q6DT.js → incident-response-ZTIKUWEO.js} +8 -6
- package/dist/{incident-response-C5J7Q6DT.js.map → incident-response-ZTIKUWEO.js.map} +1 -1
- 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-J7PJ7MZ3.js +46 -0
- package/dist/lib.d.ts +73 -1
- package/dist/lib.js +86 -76
- package/dist/lib.js.map +1 -1
- package/dist/{mailchimp-KKNF6QJ7.js → mailchimp-ZFYDC44J.js} +2 -2
- package/dist/{matrix-QVHG76I7.js → matrix-XHTR53VQ.js} +29 -21
- package/dist/{matrix-QVHG76I7.js.map → matrix-XHTR53VQ.js.map} +1 -1
- package/dist/{mcp-3JI6W7ZE.js → mcp-3C2TN67D.js} +3 -3
- package/dist/metrics-VJDWQWU7.js +25 -0
- package/dist/{microsoft365-UCBKJHNX.js → microsoft365-6G2IJMWC.js} +2 -2
- package/dist/multi-user-S56GUD6L.js +411 -0
- package/dist/multi-user-S56GUD6L.js.map +1 -0
- package/dist/{ocr-AC7NPX33.js → ocr-LGUIPKVZ.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-HXTAMGHT.js} +3 -3
- package/dist/presentations-HXTAMGHT.js.map +1 -0
- package/dist/{prometheus-JNT2BD4L.js → prometheus-YETCZO4I.js} +2 -2
- package/dist/{providers-J4LYPHDR.js → providers-H6YIC3MG.js} +6 -4
- package/dist/{qr-code-WIX4PB4U.js → qr-code-6WZJHRKL.js} +2 -2
- 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-CA5UNHZV.js +73 -0
- package/dist/scheduler-CA5UNHZV.js.map +1 -0
- package/dist/schema-ALJ67YVG.js +72 -0
- package/dist/schema-ALJ67YVG.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/{shopify-NCXYJB4R.js → shopify-ON2PAU27.js} +2 -2
- package/dist/signal-X7IQJGRQ.js +43 -0
- package/dist/signal-X7IQJGRQ.js.map +1 -0
- package/dist/slack-P2LFUJUQ.js +85 -0
- package/dist/slack-P2LFUJUQ.js.map +1 -0
- package/dist/{sms-M3JIOTCW.js → sms-4VME2HUL.js} +4 -4
- package/dist/sms-4VME2HUL.js.map +1 -0
- package/dist/{src-VYUE6LRA.js → src-S5KX4YEV.js} +179 -48
- package/dist/src-S5KX4YEV.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/tools-FGPN522P.js +46 -0
- package/dist/tools-FGPN522P.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-KRPQ4YUX.js +43 -0
- package/dist/whatsapp-KRPQ4YUX.js.map +1 -0
- package/dist/{word-document-7B6SJMAY.js → word-document-D6N2C47N.js} +4 -4
- package/dist/word-document-D6N2C47N.js.map +1 -0
- package/dist/workflow-store-ZYAYE5P6.js +373 -0
- package/dist/workflow-store-ZYAYE5P6.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/package.json +11 -1
- package/dist/archiver-AVNBYCKQ.js.map +0 -1
- 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-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-XKYRH4FM.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/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/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-7N7REQZQ.js.map} +0 -0
- /package/dist/{auth-UOX5K2BE.js.map → agent-types-2T4PXLFQ.js.map} +0 -0
- /package/dist/{backup-restore-PZ7CYYB7.js.map → audit-logger-AU3TMWKI.js.map} +0 -0
- /package/dist/{blocks-R3PODY47.js.map → auth-PH5IHISW.js.map} +0 -0
- /package/dist/{aws-s3-Q4LLZZPD.js.map → aws-s3-QZMURYXB.js.map} +0 -0
- /package/dist/{bot-QRARP4UN.js.map → backup-restore-72OQTZO3.js.map} +0 -0
- /package/dist/{brain-7XLLM3KC.js.map → blocks-YOWOESDD.js.map} +0 -0
- /package/dist/{chunk-PLDDJCW6.js.map → bot-MU2TJQ3Y.js.map} +0 -0
- /package/dist/{client-ZQSFPMOB.js.map → brain-SLA474EU.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-6PMVAAA7.js.map → chunk-2RGPWU77.js.map} +0 -0
- /package/dist/{chunk-TVEWKIK3.js.map → chunk-2WTKTG2C.js.map} +0 -0
- /package/dist/{chunk-MXAPLSJ5.js.map → chunk-45YXODSB.js.map} +0 -0
- /package/dist/{chunk-SJSUSJ47.js.map → chunk-4YJRBMMA.js.map} +0 -0
- /package/dist/{chunk-MQJ2ECQT.js.map → chunk-CUPEENUY.js.map} +0 -0
- /package/dist/{chunk-66OJ3WB4.js.map → chunk-H3BOLSTS.js.map} +0 -0
- /package/dist/{chunk-TYAGMJNV.js.map → chunk-JOA5A3G3.js.map} +0 -0
- /package/dist/{chunk-VEHFVBLI.js.map → chunk-KT7NLIXP.js.map} +0 -0
- /package/dist/{chunk-4UOE5TUZ.js.map → chunk-NMSHVO5O.js.map} +0 -0
- /package/dist/{chunk-NHMBTUMW.js.map → chunk-TAAZB5KN.js.map} +0 -0
- /package/dist/{clipboard-manager-TEO2GEDN.js.map → chunk-UP2VWCW5.js.map} +0 -0
- /package/dist/{cron-explain-HHQKPD3M.js.map → chunker-K6WTR62A.js.map} +0 -0
- /package/dist/{crypto-4AP47IKC.js.map → client-FOIYPOZQ.js.map} +0 -0
- /package/dist/{databases-37X4CI2Y.js.map → clipboard-manager-4SBNESGZ.js.map} +0 -0
- /package/dist/{discord-B3HUPGQ6.js.map → cost-tracker-EMOIOYH7.js.map} +0 -0
- /package/dist/{enrichment-pipeline-MNHNW65K.js.map → cron-explain-UOOOYWZZ.js.map} +0 -0
- /package/dist/{entity-resolution-Y3IUWEAT.js.map → crypto-2VG3RJR2.js.map} +0 -0
- /package/dist/{env-IWXUVTCB.js.map → databases-XDPMG5AV.js.map} +0 -0
- /package/dist/{hash-tool-ULQYD7B5.js.map → db-LRIOKQBO.js.map} +0 -0
- /package/dist/{heartbeat-monitor-GCISLXI3.js.map → discord-NKR3X4AV.js.map} +0 -0
- /package/dist/{imessage-NGA2XF2V.js.map → docx-parser-EXL4TN5E.js.map} +0 -0
- /package/dist/{inbox-summarizer-NRI4S7IF.js.map → enrichment-pipeline-CMUVBDC7.js.map} +0 -0
- /package/dist/{inventory-manager-352OHXWD.js.map → entity-resolution-4X4JU43O.js.map} +0 -0
- /package/dist/{json-tool-QE2SYHEG.js.map → env-CHOFICED.js.map} +0 -0
- /package/dist/{key-rotation-DPHU4ZTB.js.map → error-tracker-SVQSDQDW.js.map} +0 -0
- /package/dist/{google-workspace-DKWUVNGC.js.map → google-workspace-TSZPZK5G.js.map} +0 -0
- /package/dist/{mcp-3JI6W7ZE.js.map → hash-tool-ENAB5LWH.js.map} +0 -0
- /package/dist/{ocr-AC7NPX33.js.map → heartbeat-monitor-KRDYTDBF.js.map} +0 -0
- /package/dist/{ollama-BOAMSPLJ.js.map → hooks-N4MIFBVM.js.map} +0 -0
- /package/dist/{image-generation-OSU7FP6F.js.map → image-generation-MDE6AVQO.js.map} +0 -0
- /package/dist/{pages-MI523RB7.js.map → imessage-V2XNDDHT.js.map} +0 -0
- /package/dist/{pairing-IFQYCPNS.js.map → inbox-summarizer-DKKRYXDR.js.map} +0 -0
- /package/dist/{pdf-ALQVOEJR.js.map → inventory-manager-C67BSZM6.js.map} +0 -0
- /package/dist/{jira-GSGDBMIG.js.map → jira-PAGZWUBJ.js.map} +0 -0
- /package/dist/{prometheus-JNT2BD4L.js.map → json-tool-4FK5RNER.js.map} +0 -0
- /package/dist/{providers-J4LYPHDR.js.map → key-rotation-WCC5FOYS.js.map} +0 -0
- /package/dist/{qr-code-WIX4PB4U.js.map → knowledge-base-J7PJ7MZ3.js.map} +0 -0
- /package/dist/{mailchimp-KKNF6QJ7.js.map → mailchimp-ZFYDC44J.js.map} +0 -0
- /package/dist/{regex-tool-W4ABRKGK.js.map → mcp-3C2TN67D.js.map} +0 -0
- /package/dist/{scheduler-VK4WFERV.js.map → metrics-VJDWQWU7.js.map} +0 -0
- /package/dist/{microsoft365-UCBKJHNX.js.map → microsoft365-6G2IJMWC.js.map} +0 -0
- /package/dist/{search-BCLBO5E3.js.map → ocr-LGUIPKVZ.js.map} +0 -0
- /package/dist/{signal-6CGDFYL2.js.map → ollama-J7CU45WT.js.map} +0 -0
- /package/dist/{slack-IZQWIKOH.js.map → pages-XDE7JRCA.js.map} +0 -0
- /package/dist/{pair-JDFTERIK.js.map → pair-YZJFQUU5.js.map} +0 -0
- /package/dist/{sms-M3JIOTCW.js.map → pairing-77N47RAT.js.map} +0 -0
- /package/dist/{stocks-XXWBPOCU.js.map → pdf-67HGXCFJ.js.map} +0 -0
- /package/dist/{text-transform-6SGUA5Z4.js.map → pdf-parser-YLMTTYHL.js.map} +0 -0
- /package/dist/{tools-2RLEI2N6.js.map → prometheus-YETCZO4I.js.map} +0 -0
- /package/dist/{unit-converter-ZYXMEZOE.js.map → providers-H6YIC3MG.js.map} +0 -0
- /package/dist/{whatsapp-LFX6YKCM.js.map → qr-code-6WZJHRKL.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
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import {
|
|
2
|
+
deleteDocument,
|
|
3
|
+
deleteDocuments,
|
|
4
|
+
generateEmbedding,
|
|
5
|
+
generateEmbeddings,
|
|
6
|
+
getDocument,
|
|
7
|
+
getDocumentChunks,
|
|
8
|
+
getKnowledgeBaseStats,
|
|
9
|
+
getQueryContext,
|
|
10
|
+
ingestDocument,
|
|
11
|
+
ingestDocuments,
|
|
12
|
+
listDocuments,
|
|
13
|
+
queryKnowledgeBase,
|
|
14
|
+
searchDocuments,
|
|
15
|
+
updateDocumentMetadata
|
|
16
|
+
} from "./chunk-FFV2SXFD.js";
|
|
17
|
+
import {
|
|
18
|
+
extractPDFPages,
|
|
19
|
+
getPDFMetadata,
|
|
20
|
+
isValidPDF,
|
|
21
|
+
parsePDF
|
|
22
|
+
} from "./chunk-XTX7EK43.js";
|
|
23
|
+
import {
|
|
24
|
+
extractDOCXMarkdown,
|
|
25
|
+
extractDOCXText,
|
|
26
|
+
getDOCXStats,
|
|
27
|
+
isValidDOCX,
|
|
28
|
+
parseDOCX
|
|
29
|
+
} from "./chunk-6W6PTJFT.js";
|
|
30
|
+
import {
|
|
31
|
+
extractText,
|
|
32
|
+
getSupportedTextFormats,
|
|
33
|
+
isSupportedTextFormat
|
|
34
|
+
} from "./chunk-MIC5IBQF.js";
|
|
35
|
+
import {
|
|
36
|
+
chunkText,
|
|
37
|
+
estimateTokens,
|
|
38
|
+
mergeSmallChunks
|
|
39
|
+
} from "./chunk-ZIYTHUM5.js";
|
|
40
|
+
import "./chunk-S4NJJS5C.js";
|
|
41
|
+
import "./chunk-PUNIMPMY.js";
|
|
42
|
+
import {
|
|
43
|
+
documentChunks,
|
|
44
|
+
documents
|
|
45
|
+
} from "./chunk-NYVBXUGD.js";
|
|
46
|
+
import "./chunk-UP2VWCW5.js";
|
|
47
|
+
|
|
48
|
+
// src/integrations/documents/index.ts
|
|
49
|
+
function isSupportedDocumentFormat(format) {
|
|
50
|
+
const supportedFormats = [
|
|
51
|
+
"pdf",
|
|
52
|
+
"docx",
|
|
53
|
+
"doc",
|
|
54
|
+
"txt",
|
|
55
|
+
"text",
|
|
56
|
+
"md",
|
|
57
|
+
"markdown",
|
|
58
|
+
"html",
|
|
59
|
+
"htm",
|
|
60
|
+
"csv",
|
|
61
|
+
"json",
|
|
62
|
+
"jsonl",
|
|
63
|
+
"xml",
|
|
64
|
+
"yaml",
|
|
65
|
+
"yml"
|
|
66
|
+
];
|
|
67
|
+
return supportedFormats.includes(format.toLowerCase());
|
|
68
|
+
}
|
|
69
|
+
function getSupportedDocumentFormats() {
|
|
70
|
+
return [
|
|
71
|
+
"pdf",
|
|
72
|
+
"docx",
|
|
73
|
+
"txt",
|
|
74
|
+
"md",
|
|
75
|
+
"html",
|
|
76
|
+
"csv",
|
|
77
|
+
"json",
|
|
78
|
+
"jsonl",
|
|
79
|
+
"xml",
|
|
80
|
+
"yaml"
|
|
81
|
+
];
|
|
82
|
+
}
|
|
83
|
+
async function parseDocument(input, format) {
|
|
84
|
+
const { parsePDF: parsePDF2 } = await import("./pdf-parser-YLMTTYHL.js");
|
|
85
|
+
const { parseDOCX: parseDOCX2 } = await import("./docx-parser-EXL4TN5E.js");
|
|
86
|
+
const { extractText: extractText2 } = await import("./text-extractor-OAUBAW5P.js");
|
|
87
|
+
const path = await import("path");
|
|
88
|
+
let detectedFormat = format;
|
|
89
|
+
if (!detectedFormat && typeof input === "string") {
|
|
90
|
+
detectedFormat = path.extname(input).toLowerCase().slice(1);
|
|
91
|
+
}
|
|
92
|
+
switch (detectedFormat?.toLowerCase()) {
|
|
93
|
+
case "pdf": {
|
|
94
|
+
const result = await parsePDF2(input);
|
|
95
|
+
return {
|
|
96
|
+
text: result.text,
|
|
97
|
+
metadata: result.metadata
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
case "docx":
|
|
101
|
+
case "doc": {
|
|
102
|
+
const result = await parseDOCX2(input);
|
|
103
|
+
return {
|
|
104
|
+
text: result.text,
|
|
105
|
+
metadata: result.metadata
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
default: {
|
|
109
|
+
const result = await extractText2(input, {
|
|
110
|
+
format: detectedFormat
|
|
111
|
+
});
|
|
112
|
+
return {
|
|
113
|
+
text: result.text,
|
|
114
|
+
metadata: result.metadata
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
var documents_default = {
|
|
120
|
+
// Parsing
|
|
121
|
+
parsePDF: (await import("./pdf-parser-YLMTTYHL.js")).parsePDF,
|
|
122
|
+
parseDOCX: (await import("./docx-parser-EXL4TN5E.js")).parseDOCX,
|
|
123
|
+
extractText: (await import("./text-extractor-OAUBAW5P.js")).extractText,
|
|
124
|
+
parseDocument,
|
|
125
|
+
// Chunking
|
|
126
|
+
chunkText: (await import("./chunker-K6WTR62A.js")).chunkText,
|
|
127
|
+
estimateTokens: (await import("./chunker-K6WTR62A.js")).estimateTokens,
|
|
128
|
+
// Knowledge Base
|
|
129
|
+
ingestDocument: (await import("./knowledge-base-J7PJ7MZ3.js")).ingestDocument,
|
|
130
|
+
ingestDocuments: (await import("./knowledge-base-J7PJ7MZ3.js")).ingestDocuments,
|
|
131
|
+
queryKnowledgeBase: (await import("./knowledge-base-J7PJ7MZ3.js")).queryKnowledgeBase,
|
|
132
|
+
searchDocuments: (await import("./knowledge-base-J7PJ7MZ3.js")).searchDocuments,
|
|
133
|
+
getQueryContext: (await import("./knowledge-base-J7PJ7MZ3.js")).getQueryContext,
|
|
134
|
+
listDocuments: (await import("./knowledge-base-J7PJ7MZ3.js")).listDocuments,
|
|
135
|
+
getDocument: (await import("./knowledge-base-J7PJ7MZ3.js")).getDocument,
|
|
136
|
+
deleteDocument: (await import("./knowledge-base-J7PJ7MZ3.js")).deleteDocument,
|
|
137
|
+
deleteDocuments: (await import("./knowledge-base-J7PJ7MZ3.js")).deleteDocuments,
|
|
138
|
+
updateDocumentMetadata: (await import("./knowledge-base-J7PJ7MZ3.js")).updateDocumentMetadata,
|
|
139
|
+
getDocumentChunks: (await import("./knowledge-base-J7PJ7MZ3.js")).getDocumentChunks,
|
|
140
|
+
getKnowledgeBaseStats: (await import("./knowledge-base-J7PJ7MZ3.js")).getKnowledgeBaseStats,
|
|
141
|
+
// Utilities
|
|
142
|
+
isSupportedDocumentFormat,
|
|
143
|
+
getSupportedDocumentFormats,
|
|
144
|
+
generateEmbedding: (await import("./knowledge-base-J7PJ7MZ3.js")).generateEmbedding,
|
|
145
|
+
generateEmbeddings: (await import("./knowledge-base-J7PJ7MZ3.js")).generateEmbeddings
|
|
146
|
+
};
|
|
147
|
+
export {
|
|
148
|
+
chunkText,
|
|
149
|
+
documents_default as default,
|
|
150
|
+
deleteDocument,
|
|
151
|
+
deleteDocuments,
|
|
152
|
+
documentChunks,
|
|
153
|
+
documents,
|
|
154
|
+
estimateTokens,
|
|
155
|
+
extractDOCXMarkdown,
|
|
156
|
+
extractDOCXText,
|
|
157
|
+
extractPDFPages,
|
|
158
|
+
extractText,
|
|
159
|
+
generateEmbedding,
|
|
160
|
+
generateEmbeddings,
|
|
161
|
+
getDOCXStats,
|
|
162
|
+
getDocument,
|
|
163
|
+
getDocumentChunks,
|
|
164
|
+
getKnowledgeBaseStats,
|
|
165
|
+
getPDFMetadata,
|
|
166
|
+
getQueryContext,
|
|
167
|
+
getSupportedDocumentFormats,
|
|
168
|
+
getSupportedTextFormats,
|
|
169
|
+
ingestDocument,
|
|
170
|
+
ingestDocuments,
|
|
171
|
+
isSupportedDocumentFormat,
|
|
172
|
+
isSupportedTextFormat,
|
|
173
|
+
isValidDOCX,
|
|
174
|
+
isValidPDF,
|
|
175
|
+
listDocuments,
|
|
176
|
+
mergeSmallChunks,
|
|
177
|
+
parseDOCX,
|
|
178
|
+
parseDocument,
|
|
179
|
+
parsePDF,
|
|
180
|
+
queryKnowledgeBase,
|
|
181
|
+
searchDocuments,
|
|
182
|
+
updateDocumentMetadata
|
|
183
|
+
};
|
|
184
|
+
//# sourceMappingURL=documents-EYIYLZK2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/integrations/documents/index.ts"],"sourcesContent":["/**\r\n * Document Ingestion System for OpenSentinel\r\n *\r\n * Provides comprehensive document processing capabilities including:\r\n * - PDF parsing with text and metadata extraction\r\n * - DOCX/Word document parsing\r\n * - Text extraction from various formats (TXT, MD, HTML, CSV, JSON)\r\n * - Semantic text chunking with overlap\r\n * - Embedding generation using OpenAI\r\n * - Vector storage and similarity search using pgvector\r\n *\r\n * @example\r\n * ```typescript\r\n * import {\r\n * ingestDocument,\r\n * queryKnowledgeBase,\r\n * listDocuments,\r\n * deleteDocument,\r\n * } from \"./integrations/documents\";\r\n *\r\n * // Ingest a PDF document\r\n * const doc = await ingestDocument(\"/path/to/document.pdf\", {\r\n * name: \"My Document\",\r\n * metadata: { tags: [\"important\", \"reference\"] },\r\n * });\r\n *\r\n * // Query the knowledge base\r\n * const results = await queryKnowledgeBase(\"What is the main topic?\", {\r\n * limit: 5,\r\n * minSimilarity: 0.7,\r\n * });\r\n *\r\n * // List all documents\r\n * const { documents, total } = await listDocuments({ status: \"completed\" });\r\n *\r\n * // Delete a document\r\n * await deleteDocument(doc.id);\r\n * ```\r\n */\r\n\r\n// PDF Parser\r\nexport {\r\n parsePDF,\r\n extractPDFPages,\r\n getPDFMetadata,\r\n isValidPDF,\r\n type PDFParseResult,\r\n type PDFMetadata,\r\n type PDFParseOptions,\r\n} from \"./pdf-parser\";\r\n\r\n// DOCX Parser\r\nexport {\r\n parseDOCX,\r\n extractDOCXText,\r\n extractDOCXMarkdown,\r\n isValidDOCX,\r\n getDOCXStats,\r\n type DOCXParseResult,\r\n type DOCXMessage,\r\n type DOCXMetadata,\r\n type DOCXParseOptions,\r\n} from \"./docx-parser\";\r\n\r\n// Text Extractor\r\nexport {\r\n extractText,\r\n getSupportedTextFormats,\r\n isSupportedTextFormat,\r\n type SupportedTextFormat,\r\n type TextExtractResult,\r\n type TextMetadata,\r\n type TextExtractOptions,\r\n} from \"./text-extractor\";\r\n\r\n// Chunker\r\nexport {\r\n chunkText,\r\n estimateTokens,\r\n mergeSmallChunks,\r\n type Chunk,\r\n type ChunkMetadata,\r\n type ChunkerOptions,\r\n type ChunkStrategy,\r\n} from \"./chunker\";\r\n\r\n// Knowledge Base\r\nexport {\r\n // Schema\r\n documents,\r\n documentChunks,\r\n // Embedding functions\r\n generateEmbedding,\r\n generateEmbeddings,\r\n // Ingestion\r\n ingestDocument,\r\n ingestDocuments,\r\n // Querying\r\n queryKnowledgeBase,\r\n searchDocuments,\r\n getQueryContext,\r\n // Document management\r\n listDocuments,\r\n getDocument,\r\n deleteDocument,\r\n deleteDocuments,\r\n updateDocumentMetadata,\r\n getDocumentChunks,\r\n // Statistics\r\n getKnowledgeBaseStats,\r\n // Types\r\n type DocumentMetadata,\r\n type ChunkDBMetadata,\r\n type IngestOptions,\r\n type QueryOptions,\r\n type QueryResult,\r\n type DocumentInfo,\r\n} from \"./knowledge-base\";\r\n\r\n// Convenience types\r\nexport type SupportedDocumentFormat =\r\n | \"pdf\"\r\n | \"docx\"\r\n | \"txt\"\r\n | \"md\"\r\n | \"html\"\r\n | \"csv\"\r\n | \"json\";\r\n\r\n/**\r\n * Check if a file format is supported for ingestion\r\n */\r\nexport function isSupportedDocumentFormat(format: string): boolean {\r\n const supportedFormats = [\r\n \"pdf\",\r\n \"docx\",\r\n \"doc\",\r\n \"txt\",\r\n \"text\",\r\n \"md\",\r\n \"markdown\",\r\n \"html\",\r\n \"htm\",\r\n \"csv\",\r\n \"json\",\r\n \"jsonl\",\r\n \"xml\",\r\n \"yaml\",\r\n \"yml\",\r\n ];\r\n return supportedFormats.includes(format.toLowerCase());\r\n}\r\n\r\n/**\r\n * Get list of all supported document formats\r\n */\r\nexport function getSupportedDocumentFormats(): string[] {\r\n return [\r\n \"pdf\",\r\n \"docx\",\r\n \"txt\",\r\n \"md\",\r\n \"html\",\r\n \"csv\",\r\n \"json\",\r\n \"jsonl\",\r\n \"xml\",\r\n \"yaml\",\r\n ];\r\n}\r\n\r\n/**\r\n * Parse any supported document format\r\n */\r\nexport async function parseDocument(\r\n input: string | Buffer,\r\n format?: string\r\n): Promise<{ text: string; metadata: Record<string, unknown> }> {\r\n const { parsePDF } = await import(\"./pdf-parser\");\r\n const { parseDOCX } = await import(\"./docx-parser\");\r\n const { extractText } = await import(\"./text-extractor\");\r\n const path = await import(\"path\");\r\n\r\n let detectedFormat = format;\r\n\r\n if (!detectedFormat && typeof input === \"string\") {\r\n detectedFormat = path.extname(input).toLowerCase().slice(1);\r\n }\r\n\r\n switch (detectedFormat?.toLowerCase()) {\r\n case \"pdf\": {\r\n const result = await parsePDF(input);\r\n return {\r\n text: result.text,\r\n metadata: result.metadata as unknown as Record<string, unknown>,\r\n };\r\n }\r\n\r\n case \"docx\":\r\n case \"doc\": {\r\n const result = await parseDOCX(input);\r\n return {\r\n text: result.text,\r\n metadata: result.metadata as unknown as Record<string, unknown>,\r\n };\r\n }\r\n\r\n default: {\r\n const result = await extractText(input, {\r\n format: detectedFormat as any,\r\n });\r\n return {\r\n text: result.text,\r\n metadata: result.metadata as unknown as Record<string, unknown>,\r\n };\r\n }\r\n }\r\n}\r\n\r\n// Default export with all main functions\r\nexport default {\r\n // Parsing\r\n parsePDF: (await import(\"./pdf-parser\")).parsePDF,\r\n parseDOCX: (await import(\"./docx-parser\")).parseDOCX,\r\n extractText: (await import(\"./text-extractor\")).extractText,\r\n parseDocument,\r\n\r\n // Chunking\r\n chunkText: (await import(\"./chunker\")).chunkText,\r\n estimateTokens: (await import(\"./chunker\")).estimateTokens,\r\n\r\n // Knowledge Base\r\n ingestDocument: (await import(\"./knowledge-base\")).ingestDocument,\r\n ingestDocuments: (await import(\"./knowledge-base\")).ingestDocuments,\r\n queryKnowledgeBase: (await import(\"./knowledge-base\")).queryKnowledgeBase,\r\n searchDocuments: (await import(\"./knowledge-base\")).searchDocuments,\r\n getQueryContext: (await import(\"./knowledge-base\")).getQueryContext,\r\n listDocuments: (await import(\"./knowledge-base\")).listDocuments,\r\n getDocument: (await import(\"./knowledge-base\")).getDocument,\r\n deleteDocument: (await import(\"./knowledge-base\")).deleteDocument,\r\n deleteDocuments: (await import(\"./knowledge-base\")).deleteDocuments,\r\n updateDocumentMetadata: (await import(\"./knowledge-base\")).updateDocumentMetadata,\r\n getDocumentChunks: (await import(\"./knowledge-base\")).getDocumentChunks,\r\n getKnowledgeBaseStats: (await import(\"./knowledge-base\")).getKnowledgeBaseStats,\r\n\r\n // Utilities\r\n isSupportedDocumentFormat,\r\n getSupportedDocumentFormats,\r\n generateEmbedding: (await import(\"./knowledge-base\")).generateEmbedding,\r\n generateEmbeddings: (await import(\"./knowledge-base\")).generateEmbeddings,\r\n};\r\n"],"mappings":"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","names":["parsePDF","parseDOCX","extractText"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
extractDOCXMarkdown,
|
|
3
|
+
extractDOCXText,
|
|
4
|
+
getDOCXStats,
|
|
5
|
+
isValidDOCX,
|
|
6
|
+
parseDOCX
|
|
7
|
+
} from "./chunk-6W6PTJFT.js";
|
|
8
|
+
import "./chunk-UP2VWCW5.js";
|
|
9
|
+
export {
|
|
10
|
+
extractDOCXMarkdown,
|
|
11
|
+
extractDOCXText,
|
|
12
|
+
getDOCXStats,
|
|
13
|
+
isValidDOCX,
|
|
14
|
+
parseDOCX
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=docx-parser-EXL4TN5E.js.map
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
suggestReplies,
|
|
18
18
|
summarizeInbox,
|
|
19
19
|
summarizeThread
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-VKMFUIVA.js";
|
|
21
21
|
import {
|
|
22
22
|
ImapClient,
|
|
23
23
|
SmtpClient,
|
|
@@ -27,34 +27,42 @@ import {
|
|
|
27
27
|
init_imap_client,
|
|
28
28
|
init_smtp_client,
|
|
29
29
|
smtp_client_exports
|
|
30
|
-
} from "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
30
|
+
} from "./chunk-6JY4HNUH.js";
|
|
31
|
+
import "./chunk-HKOPRRDJ.js";
|
|
32
|
+
import "./chunk-6UZPE35A.js";
|
|
33
|
+
import "./chunk-ADTDYJO7.js";
|
|
34
|
+
import "./chunk-CUPEENUY.js";
|
|
35
|
+
import "./chunk-2WTKTG2C.js";
|
|
36
|
+
import "./chunk-U2X2J3FI.js";
|
|
37
|
+
import "./chunk-X6Q3K3L2.js";
|
|
38
|
+
import "./chunk-ODCFS5WD.js";
|
|
38
39
|
import "./chunk-KM22GV7G.js";
|
|
39
40
|
import "./chunk-P6QINGFL.js";
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-WRAKK6K6.js";
|
|
41
|
+
import "./chunk-2RGPWU77.js";
|
|
42
|
+
import "./chunk-C6PELIHS.js";
|
|
43
43
|
import "./chunk-7WQO5J2M.js";
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-CQ4JURG7.js";
|
|
49
|
-
import "./chunk-OCVQGBJK.js";
|
|
50
|
-
import "./chunk-XKYRH4FM.js";
|
|
51
|
-
import "./chunk-ZLZKF2PM.js";
|
|
44
|
+
import "./chunk-643M3AP5.js";
|
|
45
|
+
import "./chunk-6LTLIYAQ.js";
|
|
46
|
+
import "./chunk-BMOUYXLX.js";
|
|
47
|
+
import "./chunk-WZAH34TG.js";
|
|
52
48
|
import "./chunk-6KONMXQ6.js";
|
|
53
49
|
import "./chunk-22VGGA7S.js";
|
|
50
|
+
import "./chunk-HN3F4WSW.js";
|
|
51
|
+
import "./chunk-A24GPVLY.js";
|
|
52
|
+
import "./chunk-AR34B6XR.js";
|
|
53
|
+
import "./chunk-UWUIJTT4.js";
|
|
54
|
+
import "./chunk-GUKKW7JI.js";
|
|
55
|
+
import "./chunk-HTF2GIQC.js";
|
|
56
|
+
import "./chunk-DOYGMNMK.js";
|
|
57
|
+
import "./chunk-CQ4JURG7.js";
|
|
58
|
+
import "./chunk-KABG5PG3.js";
|
|
59
|
+
import "./chunk-S4NJJS5C.js";
|
|
60
|
+
import "./chunk-PUNIMPMY.js";
|
|
61
|
+
import "./chunk-NYVBXUGD.js";
|
|
54
62
|
import "./chunk-35WYTA3C.js";
|
|
55
63
|
import {
|
|
56
64
|
__toCommonJS
|
|
57
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-UP2VWCW5.js";
|
|
58
66
|
|
|
59
67
|
// src/integrations/email/index.ts
|
|
60
68
|
init_imap_client();
|
|
@@ -136,7 +144,7 @@ var EmailClient = class {
|
|
|
136
144
|
* Get inbox summary using AI
|
|
137
145
|
*/
|
|
138
146
|
async getInboxSummary() {
|
|
139
|
-
const { summarizeInbox: summarizeInbox2 } = await import("./inbox-summarizer-
|
|
147
|
+
const { summarizeInbox: summarizeInbox2 } = await import("./inbox-summarizer-DKKRYXDR.js");
|
|
140
148
|
const emails = await this.fetchRecent(100);
|
|
141
149
|
return summarizeInbox2(emails);
|
|
142
150
|
}
|
|
@@ -144,7 +152,7 @@ var EmailClient = class {
|
|
|
144
152
|
* Get action items from recent emails
|
|
145
153
|
*/
|
|
146
154
|
async getActionItems() {
|
|
147
|
-
const { extractActionItems: extractActionItems2, categorizeEmail: categorizeEmail2 } = await import("./inbox-summarizer-
|
|
155
|
+
const { extractActionItems: extractActionItems2, categorizeEmail: categorizeEmail2 } = await import("./inbox-summarizer-DKKRYXDR.js");
|
|
148
156
|
const emails = await this.fetchRecent(50);
|
|
149
157
|
const allActions = [];
|
|
150
158
|
for (const email of emails) {
|
|
@@ -160,7 +168,7 @@ var EmailClient = class {
|
|
|
160
168
|
* Generate daily digest
|
|
161
169
|
*/
|
|
162
170
|
async generateDigest() {
|
|
163
|
-
const { generateDailyDigest: generateDailyDigest2 } = await import("./inbox-summarizer-
|
|
171
|
+
const { generateDailyDigest: generateDailyDigest2 } = await import("./inbox-summarizer-DKKRYXDR.js");
|
|
164
172
|
const emails = await this.fetchRecent(100);
|
|
165
173
|
return generateDailyDigest2(emails);
|
|
166
174
|
}
|
|
@@ -265,4 +273,4 @@ export {
|
|
|
265
273
|
summarizeInbox,
|
|
266
274
|
summarizeThread
|
|
267
275
|
};
|
|
268
|
-
//# sourceMappingURL=email-
|
|
276
|
+
//# sourceMappingURL=email-EAQNULVD.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/integrations/email/index.ts"],"sourcesContent":["// IMAP Client - Reading emails\nexport {\n ImapClient,\n createImapClient,\n type EmailConfig,\n type EmailMessage,\n type EmailAddress,\n type EmailAttachment,\n type SearchOptions,\n type FolderInfo,\n} from \"./imap-client\";\n\n// SMTP Client - Sending emails\nexport {\n SmtpClient,\n createSmtpClient,\n type SmtpConfig,\n type EmailRecipient,\n type EmailAttachment as SmtpEmailAttachment,\n type SendEmailOptions,\n type ReplyOptions,\n type SendResult,\n} from \"./smtp-client\";\n\n// Email Parser - Content parsing and threading\nexport {\n parseEmail,\n parseAttachment,\n groupIntoThreads,\n cleanSubject,\n parseEmailBody,\n extractEmailAddresses,\n extractUrls,\n extractPhoneNumbers,\n getEmailSummary,\n calculateEmailSize,\n matchesFilter,\n type ParsedEmail,\n type ThreadInfo,\n type ParsedAttachment,\n type EmailMetadata,\n type EmailThread,\n type QuotedSection,\n type EmailBodyParts,\n} from \"./email-parser\";\n\n// Inbox Summarizer - AI-powered analysis\nexport {\n categorizeEmail,\n extractActionItems,\n summarizeThread,\n summarizeInbox,\n generateDailyDigest,\n suggestReplies,\n analyzeSentiment,\n type InboxSummary,\n type CategorySummary,\n type UrgentItem,\n type ActionItem,\n type EmailCategorization,\n type ThreadSummary,\n} from \"./inbox-summarizer\";\n\n/**\n * Email Integration for OpenSentinel\n *\n * This module provides comprehensive email functionality:\n *\n * ## Reading Emails (IMAP)\n * ```typescript\n * import { createImapClient } from './integrations/email';\n *\n * const imap = createImapClient('gmail', {\n * user: 'your@gmail.com',\n * password: 'your-app-password'\n * });\n *\n * await imap.connect();\n * const emails = await imap.fetchEmails('INBOX', { limit: 20 });\n * const unread = await imap.getUnreadCount();\n * await imap.disconnect();\n * ```\n *\n * ## Sending Emails (SMTP)\n * ```typescript\n * import { createSmtpClient } from './integrations/email';\n *\n * const smtp = createSmtpClient('gmail', {\n * user: 'your@gmail.com',\n * password: 'your-app-password'\n * });\n *\n * await smtp.send({\n * to: 'recipient@example.com',\n * subject: 'Hello',\n * text: 'This is a test email'\n * });\n * ```\n *\n * ## Parsing Emails\n * ```typescript\n * import { parseEmail, groupIntoThreads } from './integrations/email';\n *\n * const parsed = parseEmail(rawEmail);\n * const threads = groupIntoThreads(emails);\n * ```\n *\n * ## AI-Powered Features\n * ```typescript\n * import { summarizeInbox, extractActionItems } from './integrations/email';\n *\n * const summary = await summarizeInbox(emails);\n * const actions = await extractActionItems(email);\n * ```\n */\n\n// Convenience class that combines IMAP and SMTP\nexport class EmailClient {\n private imapClient: InstanceType<typeof import(\"./imap-client\").ImapClient>;\n private smtpClient: InstanceType<typeof import(\"./smtp-client\").SmtpClient>;\n\n constructor(config: {\n imap: import(\"./imap-client\").EmailConfig;\n smtp: import(\"./smtp-client\").SmtpConfig;\n }) {\n const { ImapClient } = require(\"./imap-client\");\n const { SmtpClient } = require(\"./smtp-client\");\n\n this.imapClient = new ImapClient(config.imap);\n this.smtpClient = new SmtpClient(config.smtp);\n }\n\n /**\n * Connect to the email server\n */\n async connect(): Promise<void> {\n await this.imapClient.connect();\n await this.smtpClient.verify();\n }\n\n /**\n * Disconnect from the email server\n */\n async disconnect(): Promise<void> {\n await this.imapClient.disconnect();\n await this.smtpClient.close();\n }\n\n /**\n * Get the IMAP client for reading emails\n */\n get imap() {\n return this.imapClient;\n }\n\n /**\n * Get the SMTP client for sending emails\n */\n get smtp() {\n return this.smtpClient;\n }\n\n /**\n * Fetch recent emails\n */\n async fetchRecent(limit: number = 20): Promise<import(\"./imap-client\").EmailMessage[]> {\n return this.imapClient.fetchEmails(\"INBOX\", { limit });\n }\n\n /**\n * Get unread count\n */\n async getUnreadCount(): Promise<number> {\n return this.imapClient.getUnreadCount();\n }\n\n /**\n * Send a simple text email\n */\n async sendText(\n to: string | string[],\n subject: string,\n text: string\n ): Promise<import(\"./smtp-client\").SendResult> {\n return this.smtpClient.sendText(to, subject, text);\n }\n\n /**\n * Send an HTML email\n */\n async sendHtml(\n to: string | string[],\n subject: string,\n html: string,\n text?: string\n ): Promise<import(\"./smtp-client\").SendResult> {\n return this.smtpClient.sendHtml(to, subject, html, text);\n }\n\n /**\n * Reply to an email\n */\n async reply(\n originalEmail: import(\"./imap-client\").EmailMessage,\n options: import(\"./smtp-client\").ReplyOptions\n ): Promise<import(\"./smtp-client\").SendResult> {\n return this.smtpClient.reply(originalEmail, options);\n }\n\n /**\n * Search for emails\n */\n async search(\n options: import(\"./imap-client\").SearchOptions\n ): Promise<import(\"./imap-client\").EmailMessage[]> {\n return this.imapClient.searchEmails(options);\n }\n\n /**\n * Get inbox summary using AI\n */\n async getInboxSummary(): Promise<import(\"./inbox-summarizer\").InboxSummary> {\n const { summarizeInbox } = await import(\"./inbox-summarizer\");\n const emails = await this.fetchRecent(100);\n return summarizeInbox(emails);\n }\n\n /**\n * Get action items from recent emails\n */\n async getActionItems(): Promise<import(\"./inbox-summarizer\").ActionItem[]> {\n const { extractActionItems, categorizeEmail } = await import(\"./inbox-summarizer\");\n const emails = await this.fetchRecent(50);\n\n const allActions: import(\"./inbox-summarizer\").ActionItem[] = [];\n\n for (const email of emails) {\n const category = await categorizeEmail(email);\n if (category.category === \"action_required\" || category.category === \"urgent\") {\n const actions = await extractActionItems(email);\n allActions.push(...actions);\n }\n }\n\n return allActions;\n }\n\n /**\n * Generate daily digest\n */\n async generateDigest(): Promise<string> {\n const { generateDailyDigest } = await import(\"./inbox-summarizer\");\n const emails = await this.fetchRecent(100);\n return generateDailyDigest(emails);\n }\n}\n\n/**\n * Create an email client with common provider presets\n */\nexport function createEmailClient(\n provider: \"gmail\" | \"outlook\" | \"yahoo\" | \"custom\",\n credentials: { user: string; password: string },\n customConfig?: {\n imap?: Partial<import(\"./imap-client\").EmailConfig>;\n smtp?: Partial<import(\"./smtp-client\").SmtpConfig>;\n }\n): EmailClient {\n const configs: Record<string, { imap: import(\"./imap-client\").EmailConfig; smtp: import(\"./smtp-client\").SmtpConfig }> = {\n gmail: {\n imap: {\n host: \"imap.gmail.com\",\n port: 993,\n secure: true,\n user: credentials.user,\n password: credentials.password,\n },\n smtp: {\n host: \"smtp.gmail.com\",\n port: 465,\n secure: true,\n auth: { user: credentials.user, pass: credentials.password },\n },\n },\n outlook: {\n imap: {\n host: \"outlook.office365.com\",\n port: 993,\n secure: true,\n user: credentials.user,\n password: credentials.password,\n },\n smtp: {\n host: \"smtp-mail.outlook.com\",\n port: 587,\n secure: false,\n auth: { user: credentials.user, pass: credentials.password },\n },\n },\n yahoo: {\n imap: {\n host: \"imap.mail.yahoo.com\",\n port: 993,\n secure: true,\n user: credentials.user,\n password: credentials.password,\n },\n smtp: {\n host: \"smtp.mail.yahoo.com\",\n port: 465,\n secure: true,\n auth: { user: credentials.user, pass: credentials.password },\n },\n },\n custom: {\n imap: {\n host: customConfig?.imap?.host || \"localhost\",\n port: customConfig?.imap?.port || 993,\n secure: customConfig?.imap?.secure ?? true,\n user: credentials.user,\n password: credentials.password,\n ...customConfig?.imap,\n },\n smtp: {\n host: customConfig?.smtp?.host || \"localhost\",\n port: customConfig?.smtp?.port || 587,\n secure: customConfig?.smtp?.secure ?? false,\n auth: { user: credentials.user, pass: credentials.password },\n ...customConfig?.smtp,\n },\n },\n };\n\n return new EmailClient(configs[provider]);\n}\n\n// Import factory functions for default export\nimport { createImapClient as _createImapClient } from \"./imap-client\";\nimport { createSmtpClient as _createSmtpClient } from \"./smtp-client\";\n\nexport default {\n EmailClient,\n createEmailClient,\n createImapClient: _createImapClient,\n createSmtpClient: _createSmtpClient,\n};\n"],"mappings":"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","names":["ImapClient","SmtpClient","summarizeInbox","extractActionItems","categorizeEmail","generateDailyDigest"]}
|
|
1
|
+
{"version":3,"sources":["../src/integrations/email/index.ts"],"sourcesContent":["// IMAP Client - Reading emails\nexport {\n ImapClient,\n createImapClient,\n type EmailConfig,\n type EmailMessage,\n type EmailAddress,\n type EmailAttachment,\n type SearchOptions,\n type FolderInfo,\n} from \"./imap-client\";\n\n// SMTP Client - Sending emails\nexport {\n SmtpClient,\n createSmtpClient,\n type SmtpConfig,\n type EmailRecipient,\n type EmailAttachment as SmtpEmailAttachment,\n type SendEmailOptions,\n type ReplyOptions,\n type SendResult,\n} from \"./smtp-client\";\n\n// Email Parser - Content parsing and threading\nexport {\n parseEmail,\n parseAttachment,\n groupIntoThreads,\n cleanSubject,\n parseEmailBody,\n extractEmailAddresses,\n extractUrls,\n extractPhoneNumbers,\n getEmailSummary,\n calculateEmailSize,\n matchesFilter,\n type ParsedEmail,\n type ThreadInfo,\n type ParsedAttachment,\n type EmailMetadata,\n type EmailThread,\n type QuotedSection,\n type EmailBodyParts,\n} from \"./email-parser\";\n\n// Inbox Summarizer - AI-powered analysis\nexport {\n categorizeEmail,\n extractActionItems,\n summarizeThread,\n summarizeInbox,\n generateDailyDigest,\n suggestReplies,\n analyzeSentiment,\n type InboxSummary,\n type CategorySummary,\n type UrgentItem,\n type ActionItem,\n type EmailCategorization,\n type ThreadSummary,\n} from \"./inbox-summarizer\";\n\n/**\n * Email Integration for OpenSentinel\n *\n * This module provides comprehensive email functionality:\n *\n * ## Reading Emails (IMAP)\n * ```typescript\n * import { createImapClient } from './integrations/email';\n *\n * const imap = createImapClient('gmail', {\n * user: 'your@gmail.com',\n * password: 'your-app-password'\n * });\n *\n * await imap.connect();\n * const emails = await imap.fetchEmails('INBOX', { limit: 20 });\n * const unread = await imap.getUnreadCount();\n * await imap.disconnect();\n * ```\n *\n * ## Sending Emails (SMTP)\n * ```typescript\n * import { createSmtpClient } from './integrations/email';\n *\n * const smtp = createSmtpClient('gmail', {\n * user: 'your@gmail.com',\n * password: 'your-app-password'\n * });\n *\n * await smtp.send({\n * to: 'recipient@example.com',\n * subject: 'Hello',\n * text: 'This is a test email'\n * });\n * ```\n *\n * ## Parsing Emails\n * ```typescript\n * import { parseEmail, groupIntoThreads } from './integrations/email';\n *\n * const parsed = parseEmail(rawEmail);\n * const threads = groupIntoThreads(emails);\n * ```\n *\n * ## AI-Powered Features\n * ```typescript\n * import { summarizeInbox, extractActionItems } from './integrations/email';\n *\n * const summary = await summarizeInbox(emails);\n * const actions = await extractActionItems(email);\n * ```\n */\n\n// Convenience class that combines IMAP and SMTP\nexport class EmailClient {\n private imapClient: InstanceType<typeof import(\"./imap-client\").ImapClient>;\n private smtpClient: InstanceType<typeof import(\"./smtp-client\").SmtpClient>;\n\n constructor(config: {\n imap: import(\"./imap-client\").EmailConfig;\n smtp: import(\"./smtp-client\").SmtpConfig;\n }) {\n const { ImapClient } = require(\"./imap-client\");\n const { SmtpClient } = require(\"./smtp-client\");\n\n this.imapClient = new ImapClient(config.imap);\n this.smtpClient = new SmtpClient(config.smtp);\n }\n\n /**\n * Connect to the email server\n */\n async connect(): Promise<void> {\n await this.imapClient.connect();\n await this.smtpClient.verify();\n }\n\n /**\n * Disconnect from the email server\n */\n async disconnect(): Promise<void> {\n await this.imapClient.disconnect();\n await this.smtpClient.close();\n }\n\n /**\n * Get the IMAP client for reading emails\n */\n get imap() {\n return this.imapClient;\n }\n\n /**\n * Get the SMTP client for sending emails\n */\n get smtp() {\n return this.smtpClient;\n }\n\n /**\n * Fetch recent emails\n */\n async fetchRecent(limit: number = 20): Promise<import(\"./imap-client\").EmailMessage[]> {\n return this.imapClient.fetchEmails(\"INBOX\", { limit });\n }\n\n /**\n * Get unread count\n */\n async getUnreadCount(): Promise<number> {\n return this.imapClient.getUnreadCount();\n }\n\n /**\n * Send a simple text email\n */\n async sendText(\n to: string | string[],\n subject: string,\n text: string\n ): Promise<import(\"./smtp-client\").SendResult> {\n return this.smtpClient.sendText(to, subject, text);\n }\n\n /**\n * Send an HTML email\n */\n async sendHtml(\n to: string | string[],\n subject: string,\n html: string,\n text?: string\n ): Promise<import(\"./smtp-client\").SendResult> {\n return this.smtpClient.sendHtml(to, subject, html, text);\n }\n\n /**\n * Reply to an email\n */\n async reply(\n originalEmail: import(\"./imap-client\").EmailMessage,\n options: import(\"./smtp-client\").ReplyOptions\n ): Promise<import(\"./smtp-client\").SendResult> {\n return this.smtpClient.reply(originalEmail, options);\n }\n\n /**\n * Search for emails\n */\n async search(\n options: import(\"./imap-client\").SearchOptions\n ): Promise<import(\"./imap-client\").EmailMessage[]> {\n return this.imapClient.searchEmails(options);\n }\n\n /**\n * Get inbox summary using AI\n */\n async getInboxSummary(): Promise<import(\"./inbox-summarizer\").InboxSummary> {\n const { summarizeInbox } = await import(\"./inbox-summarizer\");\n const emails = await this.fetchRecent(100);\n return summarizeInbox(emails);\n }\n\n /**\n * Get action items from recent emails\n */\n async getActionItems(): Promise<import(\"./inbox-summarizer\").ActionItem[]> {\n const { extractActionItems, categorizeEmail } = await import(\"./inbox-summarizer\");\n const emails = await this.fetchRecent(50);\n\n const allActions: import(\"./inbox-summarizer\").ActionItem[] = [];\n\n for (const email of emails) {\n const category = await categorizeEmail(email);\n if (category.category === \"action_required\" || category.category === \"urgent\") {\n const actions = await extractActionItems(email);\n allActions.push(...actions);\n }\n }\n\n return allActions;\n }\n\n /**\n * Generate daily digest\n */\n async generateDigest(): Promise<string> {\n const { generateDailyDigest } = await import(\"./inbox-summarizer\");\n const emails = await this.fetchRecent(100);\n return generateDailyDigest(emails);\n }\n}\n\n/**\n * Create an email client with common provider presets\n */\nexport function createEmailClient(\n provider: \"gmail\" | \"outlook\" | \"yahoo\" | \"custom\",\n credentials: { user: string; password: string },\n customConfig?: {\n imap?: Partial<import(\"./imap-client\").EmailConfig>;\n smtp?: Partial<import(\"./smtp-client\").SmtpConfig>;\n }\n): EmailClient {\n const configs: Record<string, { imap: import(\"./imap-client\").EmailConfig; smtp: import(\"./smtp-client\").SmtpConfig }> = {\n gmail: {\n imap: {\n host: \"imap.gmail.com\",\n port: 993,\n secure: true,\n user: credentials.user,\n password: credentials.password,\n },\n smtp: {\n host: \"smtp.gmail.com\",\n port: 465,\n secure: true,\n auth: { user: credentials.user, pass: credentials.password },\n },\n },\n outlook: {\n imap: {\n host: \"outlook.office365.com\",\n port: 993,\n secure: true,\n user: credentials.user,\n password: credentials.password,\n },\n smtp: {\n host: \"smtp-mail.outlook.com\",\n port: 587,\n secure: false,\n auth: { user: credentials.user, pass: credentials.password },\n },\n },\n yahoo: {\n imap: {\n host: \"imap.mail.yahoo.com\",\n port: 993,\n secure: true,\n user: credentials.user,\n password: credentials.password,\n },\n smtp: {\n host: \"smtp.mail.yahoo.com\",\n port: 465,\n secure: true,\n auth: { user: credentials.user, pass: credentials.password },\n },\n },\n custom: {\n imap: {\n host: customConfig?.imap?.host || \"localhost\",\n port: customConfig?.imap?.port || 993,\n secure: customConfig?.imap?.secure ?? true,\n user: credentials.user,\n password: credentials.password,\n ...customConfig?.imap,\n },\n smtp: {\n host: customConfig?.smtp?.host || \"localhost\",\n port: customConfig?.smtp?.port || 587,\n secure: customConfig?.smtp?.secure ?? false,\n auth: { user: credentials.user, pass: credentials.password },\n ...customConfig?.smtp,\n },\n },\n };\n\n return new EmailClient(configs[provider]);\n}\n\n// Import factory functions for default export\nimport { createImapClient as _createImapClient } from \"./imap-client\";\nimport { createSmtpClient as _createSmtpClient } from \"./smtp-client\";\n\nexport default {\n EmailClient,\n createEmailClient,\n createImapClient: _createImapClient,\n createSmtpClient: _createSmtpClient,\n};\n"],"mappings":"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","names":["ImapClient","SmtpClient","summarizeInbox","extractActionItems","categorizeEmail","generateDailyDigest"]}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generateEmbedding
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-6UZPE35A.js";
|
|
4
4
|
import {
|
|
5
5
|
providerRegistry
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-HTF2GIQC.js";
|
|
7
7
|
import {
|
|
8
8
|
db
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-S4NJJS5C.js";
|
|
10
10
|
import {
|
|
11
11
|
env
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-PUNIMPMY.js";
|
|
13
|
+
import "./chunk-NYVBXUGD.js";
|
|
13
14
|
import "./chunk-35WYTA3C.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-UP2VWCW5.js";
|
|
15
16
|
|
|
16
17
|
// src/core/memory/hybrid-search.ts
|
|
17
18
|
import { sql } from "drizzle-orm";
|
|
@@ -671,7 +672,8 @@ async function enhancedRetrieve(query, opts) {
|
|
|
671
672
|
}
|
|
672
673
|
if (env.MULTISTEP_RAG_ENABLED) {
|
|
673
674
|
console.log("[EnhancedRetrieval] Multi-step retrieval on cached results...");
|
|
674
|
-
|
|
675
|
+
const multiStepResult = await multiStepRetrieve(effectiveQuery, rankedResults2, { userId });
|
|
676
|
+
rankedResults2 = multiStepResult.results;
|
|
675
677
|
steps++;
|
|
676
678
|
}
|
|
677
679
|
return {
|
|
@@ -711,7 +713,8 @@ async function enhancedRetrieve(query, opts) {
|
|
|
711
713
|
}
|
|
712
714
|
if (env.MULTISTEP_RAG_ENABLED) {
|
|
713
715
|
console.log("[EnhancedRetrieval] Multi-step retrieval enabled, filling gaps...");
|
|
714
|
-
|
|
716
|
+
const multiStepResult = await multiStepRetrieve(effectiveQuery, rankedResults, { userId });
|
|
717
|
+
rankedResults = multiStepResult.results;
|
|
715
718
|
steps++;
|
|
716
719
|
}
|
|
717
720
|
return {
|
|
@@ -750,4 +753,4 @@ async function enhancedRetrieve(query, opts) {
|
|
|
750
753
|
export {
|
|
751
754
|
enhancedRetrieve
|
|
752
755
|
};
|
|
753
|
-
//# sourceMappingURL=enhanced-retrieval-
|
|
756
|
+
//# sourceMappingURL=enhanced-retrieval-OGHT6TS5.js.map
|