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.
Files changed (325) hide show
  1. package/README.md +126 -83
  2. package/dist/agent-manager-7N7REQZQ.js +39 -0
  3. package/dist/agent-processor-I23VWQY3.js +280 -0
  4. package/dist/agent-processor-I23VWQY3.js.map +1 -0
  5. package/dist/agent-types-2T4PXLFQ.js +12 -0
  6. package/dist/alerting-4I37GG4U.js +699 -0
  7. package/dist/alerting-4I37GG4U.js.map +1 -0
  8. package/dist/analysis-agent-JWN2GXYE.js +288 -0
  9. package/dist/analysis-agent-JWN2GXYE.js.map +1 -0
  10. package/dist/{archiver-AVNBYCKQ.js → archiver-XLRIIXPY.js} +86 -17
  11. package/dist/archiver-XLRIIXPY.js.map +1 -0
  12. package/dist/{audit-logger-OBPR7CRO.js → audit-logger-AU3TMWKI.js} +6 -5
  13. package/dist/{auth-UOX5K2BE.js → auth-PH5IHISW.js} +2 -2
  14. package/dist/{autonomy-ZXDBDQUJ.js → autonomy-N7W5XPLX.js} +4 -3
  15. package/dist/autonomy-N7W5XPLX.js.map +1 -0
  16. package/dist/{aws-s3-Q4LLZZPD.js → aws-s3-QZMURYXB.js} +2 -2
  17. package/dist/{backup-restore-PZ7CYYB7.js → backup-restore-72OQTZO3.js} +2 -2
  18. package/dist/{blocks-R3PODY47.js → blocks-YOWOESDD.js} +4 -4
  19. package/dist/bot-MU2TJQ3Y.js +46 -0
  20. package/dist/brain-SLA474EU.js +65 -0
  21. package/dist/{camera-monitor-M5CYKUU4.js → camera-monitor-LHTUWHEL.js} +2 -2
  22. package/dist/{charts-V7ARZNKF.js → charts-FJ32GQK7.js} +2 -2
  23. package/dist/{chunk-6PMVAAA7.js → chunk-2RGPWU77.js} +3 -3
  24. package/dist/{chunk-TVEWKIK3.js → chunk-2WTKTG2C.js} +2 -2
  25. package/dist/{chunk-MXAPLSJ5.js → chunk-45YXODSB.js} +2 -2
  26. package/dist/{chunk-SJSUSJ47.js → chunk-4YJRBMMA.js} +2 -2
  27. package/dist/chunk-643M3AP5.js +564 -0
  28. package/dist/chunk-643M3AP5.js.map +1 -0
  29. package/dist/{chunk-766ASQWE.js → chunk-6JY4HNUH.js} +2413 -2368
  30. package/dist/chunk-6JY4HNUH.js.map +1 -0
  31. package/dist/chunk-6LTLIYAQ.js +194 -0
  32. package/dist/chunk-6LTLIYAQ.js.map +1 -0
  33. package/dist/chunk-6UZPE35A.js +724 -0
  34. package/dist/chunk-6UZPE35A.js.map +1 -0
  35. package/dist/chunk-6W6PTJFT.js +181 -0
  36. package/dist/chunk-6W6PTJFT.js.map +1 -0
  37. package/dist/chunk-7MZN73J2.js +162 -0
  38. package/dist/chunk-7MZN73J2.js.map +1 -0
  39. package/dist/{chunk-SVAPX2XN.js → chunk-A24GPVLY.js} +9 -7
  40. package/dist/{chunk-SVAPX2XN.js.map → chunk-A24GPVLY.js.map} +1 -1
  41. package/dist/chunk-AD6YEH6U.js +3408 -0
  42. package/dist/chunk-AD6YEH6U.js.map +1 -0
  43. package/dist/chunk-ADTDYJO7.js +265 -0
  44. package/dist/chunk-ADTDYJO7.js.map +1 -0
  45. package/dist/{chunk-WRAKK6K6.js → chunk-AR34B6XR.js} +5 -3
  46. package/dist/{chunk-WRAKK6K6.js.map → chunk-AR34B6XR.js.map} +1 -1
  47. package/dist/chunk-BMOUYXLX.js +418 -0
  48. package/dist/chunk-BMOUYXLX.js.map +1 -0
  49. package/dist/chunk-C6PELIHS.js +60 -0
  50. package/dist/chunk-C6PELIHS.js.map +1 -0
  51. package/dist/{chunk-MQJ2ECQT.js → chunk-CUPEENUY.js} +3 -3
  52. package/dist/{chunk-RZ4YESBG.js → chunk-DOYGMNMK.js} +1 -1
  53. package/dist/chunk-DOYGMNMK.js.map +1 -0
  54. package/dist/chunk-FFV2SXFD.js +380 -0
  55. package/dist/chunk-FFV2SXFD.js.map +1 -0
  56. package/dist/{chunk-EVE7MIIY.js → chunk-GUKKW7JI.js} +15 -16
  57. package/dist/chunk-GUKKW7JI.js.map +1 -0
  58. package/dist/{chunk-66OJ3WB4.js → chunk-H3BOLSTS.js} +2 -2
  59. package/dist/chunk-HKOPRRDJ.js +1021 -0
  60. package/dist/chunk-HKOPRRDJ.js.map +1 -0
  61. package/dist/{chunk-BXZ6EA52.js → chunk-HTF2GIQC.js} +57 -3
  62. package/dist/chunk-HTF2GIQC.js.map +1 -0
  63. package/dist/{chunk-TYAGMJNV.js → chunk-JOA5A3G3.js} +5 -5
  64. package/dist/{chunk-OCVQGBJK.js → chunk-KABG5PG3.js} +6 -4
  65. package/dist/{chunk-OCVQGBJK.js.map → chunk-KABG5PG3.js.map} +1 -1
  66. package/dist/{chunk-VEHFVBLI.js → chunk-KT7NLIXP.js} +2 -2
  67. package/dist/chunk-LFDXEYYB.js +150 -0
  68. package/dist/chunk-LFDXEYYB.js.map +1 -0
  69. package/dist/{chunk-I6BDYQIG.js → chunk-M7YLQHFP.js} +6 -6
  70. package/dist/chunk-M7YLQHFP.js.map +1 -0
  71. package/dist/{chunk-AYUKPTSM.js → chunk-MFK34XSY.js} +96 -218
  72. package/dist/chunk-MFK34XSY.js.map +1 -0
  73. package/dist/chunk-MIC5IBQF.js +386 -0
  74. package/dist/chunk-MIC5IBQF.js.map +1 -0
  75. package/dist/{chunk-4UOE5TUZ.js → chunk-NMSHVO5O.js} +4 -4
  76. package/dist/{chunk-XKYRH4FM.js → chunk-NYVBXUGD.js} +13 -32
  77. package/dist/chunk-NYVBXUGD.js.map +1 -0
  78. package/dist/chunk-ODCFS5WD.js +463 -0
  79. package/dist/chunk-ODCFS5WD.js.map +1 -0
  80. package/dist/{chunk-ZLZKF2PM.js → chunk-PUNIMPMY.js} +32 -2
  81. package/dist/chunk-PUNIMPMY.js.map +1 -0
  82. package/dist/chunk-S4NJJS5C.js +37 -0
  83. package/dist/chunk-S4NJJS5C.js.map +1 -0
  84. package/dist/{chunk-NHMBTUMW.js → chunk-TAAZB5KN.js} +2 -2
  85. package/dist/{chunk-BRBWNV65.js → chunk-U2X2J3FI.js} +3 -3
  86. package/dist/chunk-U2X2J3FI.js.map +1 -0
  87. package/dist/{chunk-PLDDJCW6.js → chunk-UP2VWCW5.js} +1 -12
  88. package/dist/{chunk-4GLYY4NN.js → chunk-UWUIJTT4.js} +8 -2
  89. package/dist/chunk-UWUIJTT4.js.map +1 -0
  90. package/dist/{chunk-SPPMCAKG.js → chunk-VKMFUIVA.js} +2 -2
  91. package/dist/chunk-VKMFUIVA.js.map +1 -0
  92. package/dist/chunk-WZAH34TG.js +129 -0
  93. package/dist/chunk-WZAH34TG.js.map +1 -0
  94. package/dist/{chunk-H5RQOFO2.js → chunk-X6Q3K3L2.js} +6 -6
  95. package/dist/chunk-X6Q3K3L2.js.map +1 -0
  96. package/dist/chunk-XTX7EK43.js +134 -0
  97. package/dist/chunk-XTX7EK43.js.map +1 -0
  98. package/dist/chunk-ZIYTHUM5.js +457 -0
  99. package/dist/chunk-ZIYTHUM5.js.map +1 -0
  100. package/dist/chunker-K6WTR62A.js +12 -0
  101. package/dist/cli.js +1 -1
  102. package/dist/{client-ZQSFPMOB.js → client-FOIYPOZQ.js} +5 -6
  103. package/dist/{clipboard-manager-TEO2GEDN.js → clipboard-manager-4SBNESGZ.js} +2 -2
  104. package/dist/coding-agent-DESSU3AC.js +233 -0
  105. package/dist/coding-agent-DESSU3AC.js.map +1 -0
  106. package/dist/commands/setup.js +1 -1
  107. package/dist/commands/start.js +2 -2
  108. package/dist/commands/status.js +1 -1
  109. package/dist/commands/stop.js +1 -1
  110. package/dist/commands/utils.js +1 -1
  111. package/dist/cost-tracker-EMOIOYH7.js +11 -0
  112. package/dist/{cron-explain-HHQKPD3M.js → cron-explain-UOOOYWZZ.js} +2 -2
  113. package/dist/{crypto-4AP47IKC.js → crypto-2VG3RJR2.js} +2 -2
  114. package/dist/{databases-37X4CI2Y.js → databases-XDPMG5AV.js} +4 -4
  115. package/dist/db-LRIOKQBO.js +77 -0
  116. package/dist/discord-NKR3X4AV.js +80 -0
  117. package/dist/documents-EYIYLZK2.js +184 -0
  118. package/dist/documents-EYIYLZK2.js.map +1 -0
  119. package/dist/docx-parser-EXL4TN5E.js +16 -0
  120. package/dist/{email-K7LO2IPB.js → email-EAQNULVD.js} +33 -25
  121. package/dist/{email-K7LO2IPB.js.map → email-EAQNULVD.js.map} +1 -1
  122. package/dist/{enhanced-retrieval-DNLLEM4Z.js → enhanced-retrieval-OGHT6TS5.js} +11 -8
  123. package/dist/{enhanced-retrieval-DNLLEM4Z.js.map → enhanced-retrieval-OGHT6TS5.js.map} +1 -1
  124. package/dist/enrichment-pipeline-CMUVBDC7.js +14 -0
  125. package/dist/{entity-resolution-Y3IUWEAT.js → entity-resolution-4X4JU43O.js} +6 -5
  126. package/dist/env-CHOFICED.js +12 -0
  127. package/dist/error-tracker-SVQSDQDW.js +32 -0
  128. package/dist/finnhub-X7ZMQSXF.js +178 -0
  129. package/dist/finnhub-X7ZMQSXF.js.map +1 -0
  130. package/dist/fred-TMUF3J2V.js +203 -0
  131. package/dist/fred-TMUF3J2V.js.map +1 -0
  132. package/dist/github-KGNILDWJ.js +833 -0
  133. package/dist/github-KGNILDWJ.js.map +1 -0
  134. package/dist/{google-workspace-DKWUVNGC.js → google-workspace-TSZPZK5G.js} +2 -2
  135. package/dist/{hash-tool-ULQYD7B5.js → hash-tool-ENAB5LWH.js} +2 -2
  136. package/dist/{heartbeat-monitor-GCISLXI3.js → heartbeat-monitor-KRDYTDBF.js} +2 -2
  137. package/dist/hooks-N4MIFBVM.js +14 -0
  138. package/dist/{image-generation-OSU7FP6F.js → image-generation-MDE6AVQO.js} +2 -2
  139. package/dist/imessage-V2XNDDHT.js +43 -0
  140. package/dist/inbox-summarizer-DKKRYXDR.js +55 -0
  141. package/dist/{incident-response-C5J7Q6DT.js → incident-response-ZTIKUWEO.js} +8 -6
  142. package/dist/{incident-response-C5J7Q6DT.js.map → incident-response-ZTIKUWEO.js.map} +1 -1
  143. package/dist/{inventory-manager-352OHXWD.js → inventory-manager-C67BSZM6.js} +2 -2
  144. package/dist/{jira-GSGDBMIG.js → jira-PAGZWUBJ.js} +2 -2
  145. package/dist/{json-tool-QE2SYHEG.js → json-tool-4FK5RNER.js} +2 -2
  146. package/dist/{key-rotation-DPHU4ZTB.js → key-rotation-WCC5FOYS.js} +2 -2
  147. package/dist/knowledge-base-J7PJ7MZ3.js +46 -0
  148. package/dist/lib.d.ts +73 -1
  149. package/dist/lib.js +86 -76
  150. package/dist/lib.js.map +1 -1
  151. package/dist/{mailchimp-KKNF6QJ7.js → mailchimp-ZFYDC44J.js} +2 -2
  152. package/dist/{matrix-QVHG76I7.js → matrix-XHTR53VQ.js} +29 -21
  153. package/dist/{matrix-QVHG76I7.js.map → matrix-XHTR53VQ.js.map} +1 -1
  154. package/dist/{mcp-3JI6W7ZE.js → mcp-3C2TN67D.js} +3 -3
  155. package/dist/metrics-VJDWQWU7.js +25 -0
  156. package/dist/{microsoft365-UCBKJHNX.js → microsoft365-6G2IJMWC.js} +2 -2
  157. package/dist/multi-user-S56GUD6L.js +411 -0
  158. package/dist/multi-user-S56GUD6L.js.map +1 -0
  159. package/dist/{ocr-AC7NPX33.js → ocr-LGUIPKVZ.js} +6 -4
  160. package/dist/{ollama-BOAMSPLJ.js → ollama-J7CU45WT.js} +2 -2
  161. package/dist/osint-agent-RL5XPBRQ.js +189 -0
  162. package/dist/osint-agent-RL5XPBRQ.js.map +1 -0
  163. package/dist/{pages-MI523RB7.js → pages-XDE7JRCA.js} +5 -5
  164. package/dist/{pair-JDFTERIK.js → pair-YZJFQUU5.js} +2 -2
  165. package/dist/{pairing-IFQYCPNS.js → pairing-77N47RAT.js} +2 -2
  166. package/dist/{pdf-ALQVOEJR.js → pdf-67HGXCFJ.js} +3 -3
  167. package/dist/pdf-parser-YLMTTYHL.js +14 -0
  168. package/dist/{presentations-DSV5IHG5.js → presentations-HXTAMGHT.js} +3 -3
  169. package/dist/presentations-HXTAMGHT.js.map +1 -0
  170. package/dist/{prometheus-JNT2BD4L.js → prometheus-YETCZO4I.js} +2 -2
  171. package/dist/{providers-J4LYPHDR.js → providers-H6YIC3MG.js} +6 -4
  172. package/dist/{qr-code-WIX4PB4U.js → qr-code-6WZJHRKL.js} +2 -2
  173. package/dist/{quickbooks-XB4NII2S.js → quickbooks-N675W7IK.js} +2 -2
  174. package/dist/{regex-tool-W4ABRKGK.js → regex-tool-6Q63LQ7B.js} +2 -2
  175. package/dist/regex-tool-6Q63LQ7B.js.map +1 -0
  176. package/dist/research-agent-WCRSY3UZ.js +168 -0
  177. package/dist/research-agent-WCRSY3UZ.js.map +1 -0
  178. package/dist/risk-engine-YKCPT5D5.js +10 -0
  179. package/dist/risk-engine-YKCPT5D5.js.map +1 -0
  180. package/dist/scheduler-CA5UNHZV.js +73 -0
  181. package/dist/scheduler-CA5UNHZV.js.map +1 -0
  182. package/dist/schema-ALJ67YVG.js +72 -0
  183. package/dist/schema-ALJ67YVG.js.map +1 -0
  184. package/dist/{search-BCLBO5E3.js → search-GMLKBHSW.js} +4 -4
  185. package/dist/search-GMLKBHSW.js.map +1 -0
  186. package/dist/{sendgrid-RNXCAFKM.js → sendgrid-QGJIVPWV.js} +2 -2
  187. package/dist/{shopify-NCXYJB4R.js → shopify-ON2PAU27.js} +2 -2
  188. package/dist/signal-X7IQJGRQ.js +43 -0
  189. package/dist/signal-X7IQJGRQ.js.map +1 -0
  190. package/dist/slack-P2LFUJUQ.js +85 -0
  191. package/dist/slack-P2LFUJUQ.js.map +1 -0
  192. package/dist/{sms-M3JIOTCW.js → sms-4VME2HUL.js} +4 -4
  193. package/dist/sms-4VME2HUL.js.map +1 -0
  194. package/dist/{src-VYUE6LRA.js → src-S5KX4YEV.js} +179 -48
  195. package/dist/src-S5KX4YEV.js.map +1 -0
  196. package/dist/{stocks-XXWBPOCU.js → stocks-4M4HZWZS.js} +2 -2
  197. package/dist/stocks-4M4HZWZS.js.map +1 -0
  198. package/dist/text-extractor-OAUBAW5P.js +12 -0
  199. package/dist/text-extractor-OAUBAW5P.js.map +1 -0
  200. package/dist/{text-transform-6SGUA5Z4.js → text-transform-HCLCUDFZ.js} +2 -2
  201. package/dist/text-transform-HCLCUDFZ.js.map +1 -0
  202. package/dist/tools-FGPN522P.js +46 -0
  203. package/dist/tools-FGPN522P.js.map +1 -0
  204. package/dist/{tunnel-IWMXUML4.js → tunnel-XOUVVRAK.js} +4 -2
  205. package/dist/tunnel-XOUVVRAK.js.map +1 -0
  206. package/dist/{twilio-53GEW5JT.js → twilio-3L7DUNYQ.js} +2 -2
  207. package/dist/{unit-converter-ZYXMEZOE.js → unit-converter-LYPAHU64.js} +2 -2
  208. package/dist/unit-converter-LYPAHU64.js.map +1 -0
  209. package/dist/whatsapp-KRPQ4YUX.js +43 -0
  210. package/dist/whatsapp-KRPQ4YUX.js.map +1 -0
  211. package/dist/{word-document-7B6SJMAY.js → word-document-D6N2C47N.js} +4 -4
  212. package/dist/word-document-D6N2C47N.js.map +1 -0
  213. package/dist/workflow-store-ZYAYE5P6.js +373 -0
  214. package/dist/workflow-store-ZYAYE5P6.js.map +1 -0
  215. package/dist/writing-agent-VDGLNOGO.js +243 -0
  216. package/dist/writing-agent-VDGLNOGO.js.map +1 -0
  217. package/dist/{xero-QYO66D45.js → xero-UHAHVYSD.js} +2 -2
  218. package/dist/{zapier-webhook-TBZ5YF2A.js → zapier-webhook-NIELLTXR.js} +2 -2
  219. package/package.json +11 -1
  220. package/dist/archiver-AVNBYCKQ.js.map +0 -1
  221. package/dist/autonomy-ZXDBDQUJ.js.map +0 -1
  222. package/dist/bot-QRARP4UN.js +0 -36
  223. package/dist/brain-7XLLM3KC.js +0 -56
  224. package/dist/chunk-4GLYY4NN.js.map +0 -1
  225. package/dist/chunk-766ASQWE.js.map +0 -1
  226. package/dist/chunk-AYUKPTSM.js.map +0 -1
  227. package/dist/chunk-BRBWNV65.js.map +0 -1
  228. package/dist/chunk-BXZ6EA52.js.map +0 -1
  229. package/dist/chunk-EVE7MIIY.js.map +0 -1
  230. package/dist/chunk-H5RQOFO2.js.map +0 -1
  231. package/dist/chunk-I6BDYQIG.js.map +0 -1
  232. package/dist/chunk-IZJMVV7O.js +0 -347
  233. package/dist/chunk-IZJMVV7O.js.map +0 -1
  234. package/dist/chunk-O7IH7JTI.js +0 -1898
  235. package/dist/chunk-O7IH7JTI.js.map +0 -1
  236. package/dist/chunk-RZ4YESBG.js.map +0 -1
  237. package/dist/chunk-SPPMCAKG.js.map +0 -1
  238. package/dist/chunk-VRD5CYRL.js +0 -1568
  239. package/dist/chunk-VRD5CYRL.js.map +0 -1
  240. package/dist/chunk-XKYRH4FM.js.map +0 -1
  241. package/dist/chunk-ZLZKF2PM.js.map +0 -1
  242. package/dist/discord-B3HUPGQ6.js +0 -70
  243. package/dist/dist-UISMLMFN.js +0 -21847
  244. package/dist/dist-UISMLMFN.js.map +0 -1
  245. package/dist/enrichment-pipeline-MNHNW65K.js +0 -13
  246. package/dist/env-IWXUVTCB.js +0 -12
  247. package/dist/imessage-NGA2XF2V.js +0 -35
  248. package/dist/inbox-summarizer-NRI4S7IF.js +0 -47
  249. package/dist/presentations-DSV5IHG5.js.map +0 -1
  250. package/dist/scheduler-VK4WFERV.js +0 -63
  251. package/dist/signal-6CGDFYL2.js +0 -35
  252. package/dist/slack-IZQWIKOH.js +0 -75
  253. package/dist/src-VYUE6LRA.js.map +0 -1
  254. package/dist/tools-2RLEI2N6.js +0 -38
  255. package/dist/tunnel-IWMXUML4.js.map +0 -1
  256. package/dist/whatsapp-LFX6YKCM.js +0 -35
  257. package/dist/word-document-7B6SJMAY.js.map +0 -1
  258. /package/dist/{audit-logger-OBPR7CRO.js.map → agent-manager-7N7REQZQ.js.map} +0 -0
  259. /package/dist/{auth-UOX5K2BE.js.map → agent-types-2T4PXLFQ.js.map} +0 -0
  260. /package/dist/{backup-restore-PZ7CYYB7.js.map → audit-logger-AU3TMWKI.js.map} +0 -0
  261. /package/dist/{blocks-R3PODY47.js.map → auth-PH5IHISW.js.map} +0 -0
  262. /package/dist/{aws-s3-Q4LLZZPD.js.map → aws-s3-QZMURYXB.js.map} +0 -0
  263. /package/dist/{bot-QRARP4UN.js.map → backup-restore-72OQTZO3.js.map} +0 -0
  264. /package/dist/{brain-7XLLM3KC.js.map → blocks-YOWOESDD.js.map} +0 -0
  265. /package/dist/{chunk-PLDDJCW6.js.map → bot-MU2TJQ3Y.js.map} +0 -0
  266. /package/dist/{client-ZQSFPMOB.js.map → brain-SLA474EU.js.map} +0 -0
  267. /package/dist/{camera-monitor-M5CYKUU4.js.map → camera-monitor-LHTUWHEL.js.map} +0 -0
  268. /package/dist/{charts-V7ARZNKF.js.map → charts-FJ32GQK7.js.map} +0 -0
  269. /package/dist/{chunk-6PMVAAA7.js.map → chunk-2RGPWU77.js.map} +0 -0
  270. /package/dist/{chunk-TVEWKIK3.js.map → chunk-2WTKTG2C.js.map} +0 -0
  271. /package/dist/{chunk-MXAPLSJ5.js.map → chunk-45YXODSB.js.map} +0 -0
  272. /package/dist/{chunk-SJSUSJ47.js.map → chunk-4YJRBMMA.js.map} +0 -0
  273. /package/dist/{chunk-MQJ2ECQT.js.map → chunk-CUPEENUY.js.map} +0 -0
  274. /package/dist/{chunk-66OJ3WB4.js.map → chunk-H3BOLSTS.js.map} +0 -0
  275. /package/dist/{chunk-TYAGMJNV.js.map → chunk-JOA5A3G3.js.map} +0 -0
  276. /package/dist/{chunk-VEHFVBLI.js.map → chunk-KT7NLIXP.js.map} +0 -0
  277. /package/dist/{chunk-4UOE5TUZ.js.map → chunk-NMSHVO5O.js.map} +0 -0
  278. /package/dist/{chunk-NHMBTUMW.js.map → chunk-TAAZB5KN.js.map} +0 -0
  279. /package/dist/{clipboard-manager-TEO2GEDN.js.map → chunk-UP2VWCW5.js.map} +0 -0
  280. /package/dist/{cron-explain-HHQKPD3M.js.map → chunker-K6WTR62A.js.map} +0 -0
  281. /package/dist/{crypto-4AP47IKC.js.map → client-FOIYPOZQ.js.map} +0 -0
  282. /package/dist/{databases-37X4CI2Y.js.map → clipboard-manager-4SBNESGZ.js.map} +0 -0
  283. /package/dist/{discord-B3HUPGQ6.js.map → cost-tracker-EMOIOYH7.js.map} +0 -0
  284. /package/dist/{enrichment-pipeline-MNHNW65K.js.map → cron-explain-UOOOYWZZ.js.map} +0 -0
  285. /package/dist/{entity-resolution-Y3IUWEAT.js.map → crypto-2VG3RJR2.js.map} +0 -0
  286. /package/dist/{env-IWXUVTCB.js.map → databases-XDPMG5AV.js.map} +0 -0
  287. /package/dist/{hash-tool-ULQYD7B5.js.map → db-LRIOKQBO.js.map} +0 -0
  288. /package/dist/{heartbeat-monitor-GCISLXI3.js.map → discord-NKR3X4AV.js.map} +0 -0
  289. /package/dist/{imessage-NGA2XF2V.js.map → docx-parser-EXL4TN5E.js.map} +0 -0
  290. /package/dist/{inbox-summarizer-NRI4S7IF.js.map → enrichment-pipeline-CMUVBDC7.js.map} +0 -0
  291. /package/dist/{inventory-manager-352OHXWD.js.map → entity-resolution-4X4JU43O.js.map} +0 -0
  292. /package/dist/{json-tool-QE2SYHEG.js.map → env-CHOFICED.js.map} +0 -0
  293. /package/dist/{key-rotation-DPHU4ZTB.js.map → error-tracker-SVQSDQDW.js.map} +0 -0
  294. /package/dist/{google-workspace-DKWUVNGC.js.map → google-workspace-TSZPZK5G.js.map} +0 -0
  295. /package/dist/{mcp-3JI6W7ZE.js.map → hash-tool-ENAB5LWH.js.map} +0 -0
  296. /package/dist/{ocr-AC7NPX33.js.map → heartbeat-monitor-KRDYTDBF.js.map} +0 -0
  297. /package/dist/{ollama-BOAMSPLJ.js.map → hooks-N4MIFBVM.js.map} +0 -0
  298. /package/dist/{image-generation-OSU7FP6F.js.map → image-generation-MDE6AVQO.js.map} +0 -0
  299. /package/dist/{pages-MI523RB7.js.map → imessage-V2XNDDHT.js.map} +0 -0
  300. /package/dist/{pairing-IFQYCPNS.js.map → inbox-summarizer-DKKRYXDR.js.map} +0 -0
  301. /package/dist/{pdf-ALQVOEJR.js.map → inventory-manager-C67BSZM6.js.map} +0 -0
  302. /package/dist/{jira-GSGDBMIG.js.map → jira-PAGZWUBJ.js.map} +0 -0
  303. /package/dist/{prometheus-JNT2BD4L.js.map → json-tool-4FK5RNER.js.map} +0 -0
  304. /package/dist/{providers-J4LYPHDR.js.map → key-rotation-WCC5FOYS.js.map} +0 -0
  305. /package/dist/{qr-code-WIX4PB4U.js.map → knowledge-base-J7PJ7MZ3.js.map} +0 -0
  306. /package/dist/{mailchimp-KKNF6QJ7.js.map → mailchimp-ZFYDC44J.js.map} +0 -0
  307. /package/dist/{regex-tool-W4ABRKGK.js.map → mcp-3C2TN67D.js.map} +0 -0
  308. /package/dist/{scheduler-VK4WFERV.js.map → metrics-VJDWQWU7.js.map} +0 -0
  309. /package/dist/{microsoft365-UCBKJHNX.js.map → microsoft365-6G2IJMWC.js.map} +0 -0
  310. /package/dist/{search-BCLBO5E3.js.map → ocr-LGUIPKVZ.js.map} +0 -0
  311. /package/dist/{signal-6CGDFYL2.js.map → ollama-J7CU45WT.js.map} +0 -0
  312. /package/dist/{slack-IZQWIKOH.js.map → pages-XDE7JRCA.js.map} +0 -0
  313. /package/dist/{pair-JDFTERIK.js.map → pair-YZJFQUU5.js.map} +0 -0
  314. /package/dist/{sms-M3JIOTCW.js.map → pairing-77N47RAT.js.map} +0 -0
  315. /package/dist/{stocks-XXWBPOCU.js.map → pdf-67HGXCFJ.js.map} +0 -0
  316. /package/dist/{text-transform-6SGUA5Z4.js.map → pdf-parser-YLMTTYHL.js.map} +0 -0
  317. /package/dist/{tools-2RLEI2N6.js.map → prometheus-YETCZO4I.js.map} +0 -0
  318. /package/dist/{unit-converter-ZYXMEZOE.js.map → providers-H6YIC3MG.js.map} +0 -0
  319. /package/dist/{whatsapp-LFX6YKCM.js.map → qr-code-6WZJHRKL.js.map} +0 -0
  320. /package/dist/{quickbooks-XB4NII2S.js.map → quickbooks-N675W7IK.js.map} +0 -0
  321. /package/dist/{sendgrid-RNXCAFKM.js.map → sendgrid-QGJIVPWV.js.map} +0 -0
  322. /package/dist/{shopify-NCXYJB4R.js.map → shopify-ON2PAU27.js.map} +0 -0
  323. /package/dist/{twilio-53GEW5JT.js.map → twilio-3L7DUNYQ.js.map} +0 -0
  324. /package/dist/{xero-QYO66D45.js.map → xero-UHAHVYSD.js.map} +0 -0
  325. /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-SPPMCAKG.js";
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-766ASQWE.js";
31
- import "./chunk-IZJMVV7O.js";
32
- import "./chunk-6PMVAAA7.js";
33
- import "./chunk-MQJ2ECQT.js";
34
- import "./chunk-TVEWKIK3.js";
35
- import "./chunk-BRBWNV65.js";
36
- import "./chunk-H5RQOFO2.js";
37
- import "./chunk-VRD5CYRL.js";
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-HN3F4WSW.js";
41
- import "./chunk-SVAPX2XN.js";
42
- import "./chunk-WRAKK6K6.js";
41
+ import "./chunk-2RGPWU77.js";
42
+ import "./chunk-C6PELIHS.js";
43
43
  import "./chunk-7WQO5J2M.js";
44
- import "./chunk-BXZ6EA52.js";
45
- import "./chunk-4GLYY4NN.js";
46
- import "./chunk-EVE7MIIY.js";
47
- import "./chunk-RZ4YESBG.js";
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-PLDDJCW6.js";
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-NRI4S7IF.js");
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-NRI4S7IF.js");
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-NRI4S7IF.js");
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-K7LO2IPB.js.map
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-IZJMVV7O.js";
3
+ } from "./chunk-6UZPE35A.js";
4
4
  import {
5
5
  providerRegistry
6
- } from "./chunk-BXZ6EA52.js";
6
+ } from "./chunk-HTF2GIQC.js";
7
7
  import {
8
8
  db
9
- } from "./chunk-XKYRH4FM.js";
9
+ } from "./chunk-S4NJJS5C.js";
10
10
  import {
11
11
  env
12
- } from "./chunk-ZLZKF2PM.js";
12
+ } from "./chunk-PUNIMPMY.js";
13
+ import "./chunk-NYVBXUGD.js";
13
14
  import "./chunk-35WYTA3C.js";
14
- import "./chunk-PLDDJCW6.js";
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
- rankedResults2 = await multiStepRetrieve(effectiveQuery, rankedResults2, { userId });
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
- rankedResults = await multiStepRetrieve(effectiveQuery, rankedResults, { userId });
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-DNLLEM4Z.js.map
756
+ //# sourceMappingURL=enhanced-retrieval-OGHT6TS5.js.map