opensentinel 3.6.1 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/README.md +12 -0
  2. package/dist/{agent-manager-7N7REQZQ.js → agent-manager-JZ4IM7XI.js} +8 -8
  3. package/dist/{agent-processor-I23VWQY3.js → agent-processor-DDDHC2SO.js} +22 -21
  4. package/dist/{agent-processor-I23VWQY3.js.map → agent-processor-DDDHC2SO.js.map} +1 -1
  5. package/dist/{alerting-4I37GG4U.js → alerting-LK7VVYTX.js} +4 -4
  6. package/dist/alerting-LK7VVYTX.js.map +1 -0
  7. package/dist/analyzer-OTWE3ARE.js +22 -0
  8. package/dist/{archiver-XLRIIXPY.js → archiver-FPGKRP6P.js} +16 -85
  9. package/dist/archiver-FPGKRP6P.js.map +1 -0
  10. package/dist/{audit-logger-AU3TMWKI.js → audit-logger-CI4WZQPD.js} +5 -5
  11. package/dist/bot-VDHBGUVI.js +47 -0
  12. package/dist/{brain-SLA474EU.js → brain-6QTXN4QP.js} +18 -17
  13. package/dist/{chunk-AR34B6XR.js → chunk-2I5QHYG6.js} +3 -3
  14. package/dist/chunk-2I5QHYG6.js.map +1 -0
  15. package/dist/chunk-3AWAWRWB.js +143 -0
  16. package/dist/chunk-3AWAWRWB.js.map +1 -0
  17. package/dist/{chunk-PUNIMPMY.js → chunk-4KIHDIXZ.js} +13 -2
  18. package/dist/chunk-4KIHDIXZ.js.map +1 -0
  19. package/dist/{chunk-GUKKW7JI.js → chunk-4WH6MFEW.js} +2 -2
  20. package/dist/chunk-4WH6MFEW.js.map +1 -0
  21. package/dist/{chunk-M7YLQHFP.js → chunk-56UJS2LA.js} +6 -6
  22. package/dist/{chunk-S4NJJS5C.js → chunk-5BTVJR7R.js} +3 -3
  23. package/dist/{chunk-HKOPRRDJ.js → chunk-5JJTLWOR.js} +3 -3
  24. package/dist/chunk-5JJTLWOR.js.map +1 -0
  25. package/dist/chunk-66SAOZPU.js +236 -0
  26. package/dist/chunk-66SAOZPU.js.map +1 -0
  27. package/dist/chunk-6HGMRR4J.js +113 -0
  28. package/dist/chunk-6HGMRR4J.js.map +1 -0
  29. package/dist/{chunk-BMOUYXLX.js → chunk-6ZNCY2GI.js} +5 -5
  30. package/dist/chunk-7BNFELEK.js +31 -0
  31. package/dist/chunk-7BNFELEK.js.map +1 -0
  32. package/dist/{chunk-KABG5PG3.js → chunk-BBN4VCNK.js} +4 -4
  33. package/dist/chunk-BBN4VCNK.js.map +1 -0
  34. package/dist/{chunk-4YJRBMMA.js → chunk-BNZHWAZC.js} +2 -2
  35. package/dist/{chunk-TAAZB5KN.js → chunk-CWT6CAE5.js} +2 -2
  36. package/dist/{chunk-UWUIJTT4.js → chunk-CZTMGHUC.js} +1 -1
  37. package/dist/chunk-CZTMGHUC.js.map +1 -0
  38. package/dist/chunk-DTISLIMB.js +89 -0
  39. package/dist/chunk-DTISLIMB.js.map +1 -0
  40. package/dist/{chunk-VKMFUIVA.js → chunk-GBVJTRXS.js} +2 -2
  41. package/dist/{chunk-MFK34XSY.js → chunk-GJETKBOY.js} +15 -15
  42. package/dist/chunk-GJETKBOY.js.map +1 -0
  43. package/dist/{chunk-HTF2GIQC.js → chunk-GW6V4D43.js} +2 -2
  44. package/dist/chunk-GW6V4D43.js.map +1 -0
  45. package/dist/{chunk-2RGPWU77.js → chunk-HJSEEFO3.js} +2 -2
  46. package/dist/{chunk-JOA5A3G3.js → chunk-HQZQFEAX.js} +5 -5
  47. package/dist/{chunk-45YXODSB.js → chunk-J4JW73TT.js} +2 -2
  48. package/dist/{chunk-KT7NLIXP.js → chunk-JHYYFPKX.js} +2 -2
  49. package/dist/{chunk-XMCVRVTF.js → chunk-P64EV4YY.js} +1 -1
  50. package/dist/chunk-P64EV4YY.js.map +1 -0
  51. package/dist/chunk-PBOCSGNL.js +84 -0
  52. package/dist/chunk-PBOCSGNL.js.map +1 -0
  53. package/dist/{chunk-H3BOLSTS.js → chunk-PD3CTDO6.js} +2 -2
  54. package/dist/{chunk-6UZPE35A.js → chunk-QPY3WRVM.js} +10 -87
  55. package/dist/chunk-QPY3WRVM.js.map +1 -0
  56. package/dist/{chunk-AD6YEH6U.js → chunk-S2EOIVF4.js} +590 -91
  57. package/dist/chunk-S2EOIVF4.js.map +1 -0
  58. package/dist/chunk-SDLOMKCW.js +213 -0
  59. package/dist/chunk-SDLOMKCW.js.map +1 -0
  60. package/dist/{chunk-7MZN73J2.js → chunk-TKBVW7ZJ.js} +4 -4
  61. package/dist/{chunk-A24GPVLY.js → chunk-V3OKHQUX.js} +5 -5
  62. package/dist/{chunk-NMSHVO5O.js → chunk-WMDVOWN6.js} +4 -4
  63. package/dist/{chunk-643M3AP5.js → chunk-WMFYI7XC.js} +7 -7
  64. package/dist/{chunk-6LTLIYAQ.js → chunk-YEDEAX6Y.js} +3 -3
  65. package/dist/{chunk-NYVBXUGD.js → chunk-ZIBRVA3Y.js} +60 -1
  66. package/dist/chunk-ZIBRVA3Y.js.map +1 -0
  67. package/dist/{chunk-6JY4HNUH.js → chunk-ZMML6T63.js} +361 -24
  68. package/dist/chunk-ZMML6T63.js.map +1 -0
  69. package/dist/{chunk-FFV2SXFD.js → chunk-ZVHG4KF2.js} +4 -4
  70. package/dist/cli.js.map +1 -1
  71. package/dist/commands/setup.js +1 -1
  72. package/dist/commands/start.js +2 -2
  73. package/dist/commands/status.js +1 -1
  74. package/dist/commands/stop.js +1 -1
  75. package/dist/commands/utils.js +1 -1
  76. package/dist/{cost-tracker-EMOIOYH7.js → cost-tracker-KZQSTSE2.js} +2 -2
  77. package/dist/{db-LRIOKQBO.js → db-I7MNG6CL.js} +10 -4
  78. package/dist/{discord-NKR3X4AV.js → discord-6UQHCN27.js} +24 -23
  79. package/dist/{documents-EYIYLZK2.js → documents-PFHSK7SZ.js} +19 -19
  80. package/dist/{email-EAQNULVD.js → email-6OIN4SYL.js} +22 -21
  81. package/dist/email-6OIN4SYL.js.map +1 -0
  82. package/dist/{enhanced-retrieval-OGHT6TS5.js → enhanced-retrieval-JWX2HWU4.js} +7 -6
  83. package/dist/{enhanced-retrieval-OGHT6TS5.js.map → enhanced-retrieval-JWX2HWU4.js.map} +1 -1
  84. package/dist/enrichment-pipeline-7FE5R5ZI.js +14 -0
  85. package/dist/{entity-resolution-4X4JU43O.js → entity-resolution-7Z6STVXX.js} +5 -5
  86. package/dist/{env-CHOFICED.js → env-GN5VHI43.js} +2 -2
  87. package/dist/{error-tracker-SVQSDQDW.js → error-tracker-64DEH3D7.js} +6 -6
  88. package/dist/{github-KGNILDWJ.js → github-DUWSXCNP.js} +4 -4
  89. package/dist/graph-client-NB475AK5.js +17 -0
  90. package/dist/{imessage-V2XNDDHT.js → imessage-DSGSGUZS.js} +19 -18
  91. package/dist/{inbox-summarizer-DKKRYXDR.js → inbox-summarizer-F2KAU72V.js} +19 -18
  92. package/dist/{incident-response-ZTIKUWEO.js → incident-response-E3UGMX5G.js} +5 -5
  93. package/dist/incident-response-E3UGMX5G.js.map +1 -0
  94. package/dist/{knowledge-base-J7PJ7MZ3.js → knowledge-base-5SMMOGQJ.js} +5 -5
  95. package/dist/lib.d.ts +21 -0
  96. package/dist/lib.js +64 -57
  97. package/dist/lib.js.map +1 -1
  98. package/dist/{matrix-XHTR53VQ.js → matrix-WYGEOZL5.js} +18 -17
  99. package/dist/{matrix-XHTR53VQ.js.map → matrix-WYGEOZL5.js.map} +1 -1
  100. package/dist/{mcp-3C2TN67D.js → mcp-DJ2QDA6A.js} +2 -2
  101. package/dist/{metrics-VJDWQWU7.js → metrics-BH3ZLGEV.js} +5 -5
  102. package/dist/{multi-user-S56GUD6L.js → multi-user-XAEMB244.js} +4 -4
  103. package/dist/oauth-UPJYFOVU.js +34 -0
  104. package/dist/{ocr-LGUIPKVZ.js → ocr-UONKTQU7.js} +4 -4
  105. package/dist/{presentations-HXTAMGHT.js → presentations-UOET2FVZ.js} +2 -2
  106. package/dist/{providers-H6YIC3MG.js → providers-2YQ6E3IF.js} +3 -3
  107. package/dist/{scheduler-CA5UNHZV.js → scheduler-6PLLAQI7.js} +21 -20
  108. package/dist/{schema-ALJ67YVG.js → schema-ETY7L2VA.js} +8 -2
  109. package/dist/sharepoint-V5P4Q62L.js +30 -0
  110. package/dist/{signal-X7IQJGRQ.js → signal-7D5EPGVL.js} +19 -18
  111. package/dist/{slack-P2LFUJUQ.js → slack-KSS6YK5Z.js} +23 -22
  112. package/dist/slack-KSS6YK5Z.js.map +1 -0
  113. package/dist/{sms-4VME2HUL.js → sms-CSUCC7HL.js} +3 -3
  114. package/dist/sms-CSUCC7HL.js.map +1 -0
  115. package/dist/{src-S5KX4YEV.js → src-GO7GGW7O.js} +48 -41
  116. package/dist/{src-S5KX4YEV.js.map → src-GO7GGW7O.js.map} +1 -1
  117. package/dist/token-store-SEWRX6RE.js +20 -0
  118. package/dist/token-store-SEWRX6RE.js.map +1 -0
  119. package/dist/{tools-FGPN522P.js → tools-PJZ6RI4P.js} +18 -17
  120. package/dist/tools-PJZ6RI4P.js.map +1 -0
  121. package/dist/{whatsapp-KRPQ4YUX.js → whatsapp-DWXK25V2.js} +19 -18
  122. package/dist/whatsapp-DWXK25V2.js.map +1 -0
  123. package/dist/{word-document-D6N2C47N.js → word-document-AV3YB4L2.js} +2 -2
  124. package/dist/{workflow-store-ZYAYE5P6.js → workflow-store-5Y56GUP7.js} +4 -4
  125. package/drizzle/0002_mushy_master_mold.sql +139 -139
  126. package/drizzle/0003_overjoyed_rhodey.sql +46 -0
  127. package/drizzle/meta/0002_snapshot.json +3636 -3636
  128. package/drizzle/meta/0003_snapshot.json +3946 -0
  129. package/drizzle/meta/_journal.json +7 -0
  130. package/package.json +110 -110
  131. package/dist/alerting-4I37GG4U.js.map +0 -1
  132. package/dist/archiver-XLRIIXPY.js.map +0 -1
  133. package/dist/bot-MU2TJQ3Y.js +0 -46
  134. package/dist/chunk-6JY4HNUH.js.map +0 -1
  135. package/dist/chunk-6UZPE35A.js.map +0 -1
  136. package/dist/chunk-AD6YEH6U.js.map +0 -1
  137. package/dist/chunk-AR34B6XR.js.map +0 -1
  138. package/dist/chunk-GUKKW7JI.js.map +0 -1
  139. package/dist/chunk-HKOPRRDJ.js.map +0 -1
  140. package/dist/chunk-HTF2GIQC.js.map +0 -1
  141. package/dist/chunk-KABG5PG3.js.map +0 -1
  142. package/dist/chunk-MFK34XSY.js.map +0 -1
  143. package/dist/chunk-NYVBXUGD.js.map +0 -1
  144. package/dist/chunk-PUNIMPMY.js.map +0 -1
  145. package/dist/chunk-UWUIJTT4.js.map +0 -1
  146. package/dist/chunk-XMCVRVTF.js.map +0 -1
  147. package/dist/email-EAQNULVD.js.map +0 -1
  148. package/dist/enrichment-pipeline-CMUVBDC7.js +0 -14
  149. package/dist/incident-response-ZTIKUWEO.js.map +0 -1
  150. /package/dist/{agent-manager-7N7REQZQ.js.map → agent-manager-JZ4IM7XI.js.map} +0 -0
  151. /package/dist/{audit-logger-AU3TMWKI.js.map → analyzer-OTWE3ARE.js.map} +0 -0
  152. /package/dist/{bot-MU2TJQ3Y.js.map → audit-logger-CI4WZQPD.js.map} +0 -0
  153. /package/dist/{brain-SLA474EU.js.map → bot-VDHBGUVI.js.map} +0 -0
  154. /package/dist/{cost-tracker-EMOIOYH7.js.map → brain-6QTXN4QP.js.map} +0 -0
  155. /package/dist/{chunk-M7YLQHFP.js.map → chunk-56UJS2LA.js.map} +0 -0
  156. /package/dist/{chunk-S4NJJS5C.js.map → chunk-5BTVJR7R.js.map} +0 -0
  157. /package/dist/{chunk-BMOUYXLX.js.map → chunk-6ZNCY2GI.js.map} +0 -0
  158. /package/dist/{chunk-4YJRBMMA.js.map → chunk-BNZHWAZC.js.map} +0 -0
  159. /package/dist/{chunk-TAAZB5KN.js.map → chunk-CWT6CAE5.js.map} +0 -0
  160. /package/dist/{chunk-VKMFUIVA.js.map → chunk-GBVJTRXS.js.map} +0 -0
  161. /package/dist/{chunk-2RGPWU77.js.map → chunk-HJSEEFO3.js.map} +0 -0
  162. /package/dist/{chunk-JOA5A3G3.js.map → chunk-HQZQFEAX.js.map} +0 -0
  163. /package/dist/{chunk-45YXODSB.js.map → chunk-J4JW73TT.js.map} +0 -0
  164. /package/dist/{chunk-KT7NLIXP.js.map → chunk-JHYYFPKX.js.map} +0 -0
  165. /package/dist/{chunk-H3BOLSTS.js.map → chunk-PD3CTDO6.js.map} +0 -0
  166. /package/dist/{chunk-7MZN73J2.js.map → chunk-TKBVW7ZJ.js.map} +0 -0
  167. /package/dist/{chunk-A24GPVLY.js.map → chunk-V3OKHQUX.js.map} +0 -0
  168. /package/dist/{chunk-NMSHVO5O.js.map → chunk-WMDVOWN6.js.map} +0 -0
  169. /package/dist/{chunk-643M3AP5.js.map → chunk-WMFYI7XC.js.map} +0 -0
  170. /package/dist/{chunk-6LTLIYAQ.js.map → chunk-YEDEAX6Y.js.map} +0 -0
  171. /package/dist/{chunk-FFV2SXFD.js.map → chunk-ZVHG4KF2.js.map} +0 -0
  172. /package/dist/{db-LRIOKQBO.js.map → cost-tracker-KZQSTSE2.js.map} +0 -0
  173. /package/dist/{discord-NKR3X4AV.js.map → db-I7MNG6CL.js.map} +0 -0
  174. /package/dist/{enrichment-pipeline-CMUVBDC7.js.map → discord-6UQHCN27.js.map} +0 -0
  175. /package/dist/{documents-EYIYLZK2.js.map → documents-PFHSK7SZ.js.map} +0 -0
  176. /package/dist/{entity-resolution-4X4JU43O.js.map → enrichment-pipeline-7FE5R5ZI.js.map} +0 -0
  177. /package/dist/{env-CHOFICED.js.map → entity-resolution-7Z6STVXX.js.map} +0 -0
  178. /package/dist/{error-tracker-SVQSDQDW.js.map → env-GN5VHI43.js.map} +0 -0
  179. /package/dist/{imessage-V2XNDDHT.js.map → error-tracker-64DEH3D7.js.map} +0 -0
  180. /package/dist/{github-KGNILDWJ.js.map → github-DUWSXCNP.js.map} +0 -0
  181. /package/dist/{inbox-summarizer-DKKRYXDR.js.map → graph-client-NB475AK5.js.map} +0 -0
  182. /package/dist/{knowledge-base-J7PJ7MZ3.js.map → imessage-DSGSGUZS.js.map} +0 -0
  183. /package/dist/{mcp-3C2TN67D.js.map → inbox-summarizer-F2KAU72V.js.map} +0 -0
  184. /package/dist/{metrics-VJDWQWU7.js.map → knowledge-base-5SMMOGQJ.js.map} +0 -0
  185. /package/dist/{ocr-LGUIPKVZ.js.map → mcp-DJ2QDA6A.js.map} +0 -0
  186. /package/dist/{providers-H6YIC3MG.js.map → metrics-BH3ZLGEV.js.map} +0 -0
  187. /package/dist/{multi-user-S56GUD6L.js.map → multi-user-XAEMB244.js.map} +0 -0
  188. /package/dist/{scheduler-CA5UNHZV.js.map → oauth-UPJYFOVU.js.map} +0 -0
  189. /package/dist/{schema-ALJ67YVG.js.map → ocr-UONKTQU7.js.map} +0 -0
  190. /package/dist/{presentations-HXTAMGHT.js.map → presentations-UOET2FVZ.js.map} +0 -0
  191. /package/dist/{signal-X7IQJGRQ.js.map → providers-2YQ6E3IF.js.map} +0 -0
  192. /package/dist/{slack-P2LFUJUQ.js.map → scheduler-6PLLAQI7.js.map} +0 -0
  193. /package/dist/{sms-4VME2HUL.js.map → schema-ETY7L2VA.js.map} +0 -0
  194. /package/dist/{tools-FGPN522P.js.map → sharepoint-V5P4Q62L.js.map} +0 -0
  195. /package/dist/{whatsapp-KRPQ4YUX.js.map → signal-7D5EPGVL.js.map} +0 -0
  196. /package/dist/{word-document-D6N2C47N.js.map → word-document-AV3YB4L2.js.map} +0 -0
  197. /package/dist/{workflow-store-ZYAYE5P6.js.map → workflow-store-5Y56GUP7.js.map} +0 -0
@@ -13,14 +13,14 @@ import {
13
13
  } from "./chunk-ZIYTHUM5.js";
14
14
  import {
15
15
  db
16
- } from "./chunk-S4NJJS5C.js";
16
+ } from "./chunk-5BTVJR7R.js";
17
17
  import {
18
18
  env
19
- } from "./chunk-PUNIMPMY.js";
19
+ } from "./chunk-4KIHDIXZ.js";
20
20
  import {
21
21
  documentChunks,
22
22
  documents
23
- } from "./chunk-NYVBXUGD.js";
23
+ } from "./chunk-ZIBRVA3Y.js";
24
24
 
25
25
  // src/integrations/documents/knowledge-base.ts
26
26
  import { sql, eq, and, desc, inArray } from "drizzle-orm";
@@ -377,4 +377,4 @@ export {
377
377
  getDocumentChunks,
378
378
  getKnowledgeBaseStats
379
379
  };
380
- //# sourceMappingURL=chunk-FFV2SXFD.js.map
380
+ //# sourceMappingURL=chunk-ZVHG4KF2.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env bun\n\n/**\n * OpenSentinel CLI\n *\n * Usage:\n * opensentinel Start the server (default)\n * opensentinel start Start the server\n * opensentinel setup Interactive setup wizard\n * opensentinel stop Stop the system service\n * opensentinel status Show service status\n * opensentinel version Show version\n * opensentinel help Show this help\n */\n\nconst command = process.argv[2];\n\nswitch (command) {\n case \"setup\":\n import(\"./commands/setup\").then((m) => m.default());\n break;\n\n case \"start\":\n import(\"./commands/start\").then((m) => m.default());\n break;\n\n case \"stop\":\n import(\"./commands/stop\").then((m) => m.default());\n break;\n\n case \"status\":\n import(\"./commands/status\").then((m) => m.default());\n break;\n\n case \"pair\":\n import(\"./commands/pair\").then((m) => m.showPairingInfo());\n break;\n\n case \"version\":\n case \"--version\":\n case \"-v\":\n console.log(\"opensentinel v3.0.0\");\n break;\n\n case \"help\":\n case \"--help\":\n case \"-h\":\n console.log(`\nOpenSentinel - Your Personal AI Assistant\n\nUsage:\n opensentinel [command]\n\nCommands:\n start Start the server (default)\n setup Interactive setup wizard\n stop Stop the system service\n status Show service status\n pair Show device pairing info\n version Show version\n help Show this help\n\nExamples:\n opensentinel Start with default config\n opensentinel setup Run the setup wizard\n opensentinel status Check service health\n\nDocumentation: https://docs.opensentinel.ai\n`);\n break;\n\n default:\n // Default: start the server (backward compatibility)\n import(\"./commands/start\").then((m) => m.default());\n break;\n}\n"],"mappings":";;;AAeA,IAAM,UAAU,QAAQ,KAAK,CAAC;AAE9B,QAAQ,SAAS;AAAA,EACf,KAAK;AACH,WAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AAClD;AAAA,EAEF,KAAK;AACH,WAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AAClD;AAAA,EAEF,KAAK;AACH,WAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AACjD;AAAA,EAEF,KAAK;AACH,WAAO,sBAAmB,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AACnD;AAAA,EAEF,KAAK;AACH,WAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC;AACzD;AAAA,EAEF,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACH,YAAQ,IAAI,qBAAqB;AACjC;AAAA,EAEF,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACH,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAqBf;AACG;AAAA,EAEF;AAEE,WAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AAClD;AACJ;","names":[]}
1
+ {"version":3,"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env bun\r\n\r\n/**\r\n * OpenSentinel CLI\r\n *\r\n * Usage:\r\n * opensentinel Start the server (default)\r\n * opensentinel start Start the server\r\n * opensentinel setup Interactive setup wizard\r\n * opensentinel stop Stop the system service\r\n * opensentinel status Show service status\r\n * opensentinel version Show version\r\n * opensentinel help Show this help\r\n */\r\n\r\nconst command = process.argv[2];\r\n\r\nswitch (command) {\r\n case \"setup\":\r\n import(\"./commands/setup\").then((m) => m.default());\r\n break;\r\n\r\n case \"start\":\r\n import(\"./commands/start\").then((m) => m.default());\r\n break;\r\n\r\n case \"stop\":\r\n import(\"./commands/stop\").then((m) => m.default());\r\n break;\r\n\r\n case \"status\":\r\n import(\"./commands/status\").then((m) => m.default());\r\n break;\r\n\r\n case \"pair\":\r\n import(\"./commands/pair\").then((m) => m.showPairingInfo());\r\n break;\r\n\r\n case \"version\":\r\n case \"--version\":\r\n case \"-v\":\r\n console.log(\"opensentinel v3.0.0\");\r\n break;\r\n\r\n case \"help\":\r\n case \"--help\":\r\n case \"-h\":\r\n console.log(`\r\nOpenSentinel - Your Personal AI Assistant\r\n\r\nUsage:\r\n opensentinel [command]\r\n\r\nCommands:\r\n start Start the server (default)\r\n setup Interactive setup wizard\r\n stop Stop the system service\r\n status Show service status\r\n pair Show device pairing info\r\n version Show version\r\n help Show this help\r\n\r\nExamples:\r\n opensentinel Start with default config\r\n opensentinel setup Run the setup wizard\r\n opensentinel status Check service health\r\n\r\nDocumentation: https://docs.opensentinel.ai\r\n`);\r\n break;\r\n\r\n default:\r\n // Default: start the server (backward compatibility)\r\n import(\"./commands/start\").then((m) => m.default());\r\n break;\r\n}\r\n"],"mappings":";;;AAeA,IAAM,UAAU,QAAQ,KAAK,CAAC;AAE9B,QAAQ,SAAS;AAAA,EACf,KAAK;AACH,WAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AAClD;AAAA,EAEF,KAAK;AACH,WAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AAClD;AAAA,EAEF,KAAK;AACH,WAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AACjD;AAAA,EAEF,KAAK;AACH,WAAO,sBAAmB,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AACnD;AAAA,EAEF,KAAK;AACH,WAAO,oBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,gBAAgB,CAAC;AACzD;AAAA,EAEF,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACH,YAAQ,IAAI,qBAAqB;AACjC;AAAA,EAEF,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACH,YAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAqBf;AACG;AAAA,EAEF;AAEE,WAAO,qBAAkB,EAAE,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC;AAClD;AACJ;","names":[]}
@@ -11,7 +11,7 @@ import {
11
11
  printBanner,
12
12
  prompt,
13
13
  which
14
- } from "../chunk-XMCVRVTF.js";
14
+ } from "../chunk-P64EV4YY.js";
15
15
  import "../chunk-UP2VWCW5.js";
16
16
 
17
17
  // src/commands/setup.ts
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadEnvFile
3
- } from "../chunk-XMCVRVTF.js";
3
+ } from "../chunk-P64EV4YY.js";
4
4
  import "../chunk-UP2VWCW5.js";
5
5
 
6
6
  // src/commands/start.ts
@@ -10,7 +10,7 @@ async function start() {
10
10
  console.log(`[Config] Loaded ${envFile}`);
11
11
  }
12
12
  process.env.__OPENSENTINEL_CLI__ = "1";
13
- const { main } = await import("../src-S5KX4YEV.js");
13
+ const { main } = await import("../src-GO7GGW7O.js");
14
14
  const shutdown = await main();
15
15
  process.on("SIGINT", async () => {
16
16
  await shutdown();
@@ -5,7 +5,7 @@ import {
5
5
  exec,
6
6
  getConfigDir,
7
7
  printBanner
8
- } from "../chunk-XMCVRVTF.js";
8
+ } from "../chunk-P64EV4YY.js";
9
9
  import "../chunk-UP2VWCW5.js";
10
10
 
11
11
  // src/commands/status.ts
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  colors,
3
3
  exec
4
- } from "../chunk-XMCVRVTF.js";
4
+ } from "../chunk-P64EV4YY.js";
5
5
  import "../chunk-UP2VWCW5.js";
6
6
 
7
7
  // src/commands/stop.ts
@@ -14,7 +14,7 @@ import {
14
14
  prompt,
15
15
  promptSecret,
16
16
  which
17
- } from "../chunk-XMCVRVTF.js";
17
+ } from "../chunk-P64EV4YY.js";
18
18
  import "../chunk-UP2VWCW5.js";
19
19
  export {
20
20
  checkPort,
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  CostTracker,
3
3
  costTracker
4
- } from "./chunk-BMOUYXLX.js";
4
+ } from "./chunk-6ZNCY2GI.js";
5
5
  import "./chunk-WZAH34TG.js";
6
6
  import "./chunk-UP2VWCW5.js";
7
7
  export {
8
8
  CostTracker,
9
9
  costTracker
10
10
  };
11
- //# sourceMappingURL=cost-tracker-EMOIOYH7.js.map
11
+ //# sourceMappingURL=cost-tracker-KZQSTSE2.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  db
3
- } from "./chunk-S4NJJS5C.js";
4
- import "./chunk-PUNIMPMY.js";
3
+ } from "./chunk-5BTVJR7R.js";
4
+ import "./chunk-4KIHDIXZ.js";
5
5
  import {
6
6
  achievements,
7
7
  agentMessages,
@@ -18,6 +18,9 @@ import {
18
18
  graphEntities,
19
19
  graphRelationships,
20
20
  incidentTimeline,
21
+ m365AnalysisResults,
22
+ m365Connections,
23
+ m365OauthStates,
21
24
  memories,
22
25
  messages,
23
26
  metrics,
@@ -36,7 +39,7 @@ import {
36
39
  usageQuotas,
37
40
  userAchievements,
38
41
  users
39
- } from "./chunk-NYVBXUGD.js";
42
+ } from "./chunk-ZIBRVA3Y.js";
40
43
  import "./chunk-UP2VWCW5.js";
41
44
  export {
42
45
  achievements,
@@ -55,6 +58,9 @@ export {
55
58
  graphEntities,
56
59
  graphRelationships,
57
60
  incidentTimeline,
61
+ m365AnalysisResults,
62
+ m365Connections,
63
+ m365OauthStates,
58
64
  memories,
59
65
  messages,
60
66
  metrics,
@@ -74,4 +80,4 @@ export {
74
80
  userAchievements,
75
81
  users
76
82
  };
77
- //# sourceMappingURL=db-LRIOKQBO.js.map
83
+ //# sourceMappingURL=db-I7MNG6CL.js.map
@@ -17,16 +17,17 @@ import {
17
17
  splitMessage,
18
18
  statusCommand,
19
19
  voiceCommand
20
- } from "./chunk-JOA5A3G3.js";
21
- import "./chunk-45YXODSB.js";
22
- import "./chunk-4YJRBMMA.js";
23
- import "./chunk-MFK34XSY.js";
24
- import "./chunk-LFDXEYYB.js";
25
- import "./chunk-7MZN73J2.js";
26
- import "./chunk-6JY4HNUH.js";
27
- import "./chunk-HKOPRRDJ.js";
28
- import "./chunk-6UZPE35A.js";
20
+ } from "./chunk-HQZQFEAX.js";
21
+ import "./chunk-J4JW73TT.js";
22
+ import "./chunk-BNZHWAZC.js";
23
+ import "./chunk-GJETKBOY.js";
24
+ import "./chunk-ZMML6T63.js";
25
+ import "./chunk-5JJTLWOR.js";
26
+ import "./chunk-QPY3WRVM.js";
29
27
  import "./chunk-ADTDYJO7.js";
28
+ import "./chunk-LFDXEYYB.js";
29
+ import "./chunk-TKBVW7ZJ.js";
30
+ import "./chunk-DTISLIMB.js";
30
31
  import "./chunk-CUPEENUY.js";
31
32
  import "./chunk-2WTKTG2C.js";
32
33
  import "./chunk-U2X2J3FI.js";
@@ -34,27 +35,27 @@ import "./chunk-X6Q3K3L2.js";
34
35
  import "./chunk-ODCFS5WD.js";
35
36
  import "./chunk-KM22GV7G.js";
36
37
  import "./chunk-P6QINGFL.js";
37
- import "./chunk-2RGPWU77.js";
38
+ import "./chunk-HJSEEFO3.js";
38
39
  import "./chunk-C6PELIHS.js";
39
40
  import "./chunk-7WQO5J2M.js";
40
- import "./chunk-643M3AP5.js";
41
- import "./chunk-6LTLIYAQ.js";
42
- import "./chunk-BMOUYXLX.js";
41
+ import "./chunk-WMFYI7XC.js";
42
+ import "./chunk-YEDEAX6Y.js";
43
+ import "./chunk-6ZNCY2GI.js";
43
44
  import "./chunk-WZAH34TG.js";
44
45
  import "./chunk-6KONMXQ6.js";
45
46
  import "./chunk-22VGGA7S.js";
46
47
  import "./chunk-HN3F4WSW.js";
47
- import "./chunk-A24GPVLY.js";
48
- import "./chunk-AR34B6XR.js";
49
- import "./chunk-UWUIJTT4.js";
50
- import "./chunk-GUKKW7JI.js";
51
- import "./chunk-HTF2GIQC.js";
48
+ import "./chunk-V3OKHQUX.js";
49
+ import "./chunk-2I5QHYG6.js";
50
+ import "./chunk-CZTMGHUC.js";
51
+ import "./chunk-4WH6MFEW.js";
52
+ import "./chunk-GW6V4D43.js";
52
53
  import "./chunk-DOYGMNMK.js";
53
54
  import "./chunk-CQ4JURG7.js";
54
- import "./chunk-KABG5PG3.js";
55
- import "./chunk-S4NJJS5C.js";
56
- import "./chunk-PUNIMPMY.js";
57
- import "./chunk-NYVBXUGD.js";
55
+ import "./chunk-BBN4VCNK.js";
56
+ import "./chunk-5BTVJR7R.js";
57
+ import "./chunk-4KIHDIXZ.js";
58
+ import "./chunk-ZIBRVA3Y.js";
58
59
  import "./chunk-35WYTA3C.js";
59
60
  import "./chunk-UP2VWCW5.js";
60
61
  export {
@@ -77,4 +78,4 @@ export {
77
78
  statusCommand,
78
79
  voiceCommand
79
80
  };
80
- //# sourceMappingURL=discord-NKR3X4AV.js.map
81
+ //# sourceMappingURL=discord-6UQHCN27.js.map
@@ -13,7 +13,7 @@ import {
13
13
  queryKnowledgeBase,
14
14
  searchDocuments,
15
15
  updateDocumentMetadata
16
- } from "./chunk-FFV2SXFD.js";
16
+ } from "./chunk-ZVHG4KF2.js";
17
17
  import {
18
18
  extractPDFPages,
19
19
  getPDFMetadata,
@@ -37,12 +37,12 @@ import {
37
37
  estimateTokens,
38
38
  mergeSmallChunks
39
39
  } from "./chunk-ZIYTHUM5.js";
40
- import "./chunk-S4NJJS5C.js";
41
- import "./chunk-PUNIMPMY.js";
40
+ import "./chunk-5BTVJR7R.js";
41
+ import "./chunk-4KIHDIXZ.js";
42
42
  import {
43
43
  documentChunks,
44
44
  documents
45
- } from "./chunk-NYVBXUGD.js";
45
+ } from "./chunk-ZIBRVA3Y.js";
46
46
  import "./chunk-UP2VWCW5.js";
47
47
 
48
48
  // src/integrations/documents/index.ts
@@ -126,23 +126,23 @@ var documents_default = {
126
126
  chunkText: (await import("./chunker-K6WTR62A.js")).chunkText,
127
127
  estimateTokens: (await import("./chunker-K6WTR62A.js")).estimateTokens,
128
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,
129
+ ingestDocument: (await import("./knowledge-base-5SMMOGQJ.js")).ingestDocument,
130
+ ingestDocuments: (await import("./knowledge-base-5SMMOGQJ.js")).ingestDocuments,
131
+ queryKnowledgeBase: (await import("./knowledge-base-5SMMOGQJ.js")).queryKnowledgeBase,
132
+ searchDocuments: (await import("./knowledge-base-5SMMOGQJ.js")).searchDocuments,
133
+ getQueryContext: (await import("./knowledge-base-5SMMOGQJ.js")).getQueryContext,
134
+ listDocuments: (await import("./knowledge-base-5SMMOGQJ.js")).listDocuments,
135
+ getDocument: (await import("./knowledge-base-5SMMOGQJ.js")).getDocument,
136
+ deleteDocument: (await import("./knowledge-base-5SMMOGQJ.js")).deleteDocument,
137
+ deleteDocuments: (await import("./knowledge-base-5SMMOGQJ.js")).deleteDocuments,
138
+ updateDocumentMetadata: (await import("./knowledge-base-5SMMOGQJ.js")).updateDocumentMetadata,
139
+ getDocumentChunks: (await import("./knowledge-base-5SMMOGQJ.js")).getDocumentChunks,
140
+ getKnowledgeBaseStats: (await import("./knowledge-base-5SMMOGQJ.js")).getKnowledgeBaseStats,
141
141
  // Utilities
142
142
  isSupportedDocumentFormat,
143
143
  getSupportedDocumentFormats,
144
- generateEmbedding: (await import("./knowledge-base-J7PJ7MZ3.js")).generateEmbedding,
145
- generateEmbeddings: (await import("./knowledge-base-J7PJ7MZ3.js")).generateEmbeddings
144
+ generateEmbedding: (await import("./knowledge-base-5SMMOGQJ.js")).generateEmbedding,
145
+ generateEmbeddings: (await import("./knowledge-base-5SMMOGQJ.js")).generateEmbeddings
146
146
  };
147
147
  export {
148
148
  chunkText,
@@ -181,4 +181,4 @@ export {
181
181
  searchDocuments,
182
182
  updateDocumentMetadata
183
183
  };
184
- //# sourceMappingURL=documents-EYIYLZK2.js.map
184
+ //# sourceMappingURL=documents-PFHSK7SZ.js.map
@@ -17,7 +17,7 @@ import {
17
17
  suggestReplies,
18
18
  summarizeInbox,
19
19
  summarizeThread
20
- } from "./chunk-VKMFUIVA.js";
20
+ } from "./chunk-GBVJTRXS.js";
21
21
  import {
22
22
  ImapClient,
23
23
  SmtpClient,
@@ -27,10 +27,11 @@ import {
27
27
  init_imap_client,
28
28
  init_smtp_client,
29
29
  smtp_client_exports
30
- } from "./chunk-6JY4HNUH.js";
31
- import "./chunk-HKOPRRDJ.js";
32
- import "./chunk-6UZPE35A.js";
30
+ } from "./chunk-ZMML6T63.js";
31
+ import "./chunk-5JJTLWOR.js";
32
+ import "./chunk-QPY3WRVM.js";
33
33
  import "./chunk-ADTDYJO7.js";
34
+ import "./chunk-DTISLIMB.js";
34
35
  import "./chunk-CUPEENUY.js";
35
36
  import "./chunk-2WTKTG2C.js";
36
37
  import "./chunk-U2X2J3FI.js";
@@ -38,27 +39,27 @@ import "./chunk-X6Q3K3L2.js";
38
39
  import "./chunk-ODCFS5WD.js";
39
40
  import "./chunk-KM22GV7G.js";
40
41
  import "./chunk-P6QINGFL.js";
41
- import "./chunk-2RGPWU77.js";
42
+ import "./chunk-HJSEEFO3.js";
42
43
  import "./chunk-C6PELIHS.js";
43
44
  import "./chunk-7WQO5J2M.js";
44
- import "./chunk-643M3AP5.js";
45
- import "./chunk-6LTLIYAQ.js";
46
- import "./chunk-BMOUYXLX.js";
45
+ import "./chunk-WMFYI7XC.js";
46
+ import "./chunk-YEDEAX6Y.js";
47
+ import "./chunk-6ZNCY2GI.js";
47
48
  import "./chunk-WZAH34TG.js";
48
49
  import "./chunk-6KONMXQ6.js";
49
50
  import "./chunk-22VGGA7S.js";
50
51
  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";
52
+ import "./chunk-V3OKHQUX.js";
53
+ import "./chunk-2I5QHYG6.js";
54
+ import "./chunk-CZTMGHUC.js";
55
+ import "./chunk-4WH6MFEW.js";
56
+ import "./chunk-GW6V4D43.js";
56
57
  import "./chunk-DOYGMNMK.js";
57
58
  import "./chunk-CQ4JURG7.js";
58
- import "./chunk-KABG5PG3.js";
59
- import "./chunk-S4NJJS5C.js";
60
- import "./chunk-PUNIMPMY.js";
61
- import "./chunk-NYVBXUGD.js";
59
+ import "./chunk-BBN4VCNK.js";
60
+ import "./chunk-5BTVJR7R.js";
61
+ import "./chunk-4KIHDIXZ.js";
62
+ import "./chunk-ZIBRVA3Y.js";
62
63
  import "./chunk-35WYTA3C.js";
63
64
  import {
64
65
  __toCommonJS
@@ -144,7 +145,7 @@ var EmailClient = class {
144
145
  * Get inbox summary using AI
145
146
  */
146
147
  async getInboxSummary() {
147
- const { summarizeInbox: summarizeInbox2 } = await import("./inbox-summarizer-DKKRYXDR.js");
148
+ const { summarizeInbox: summarizeInbox2 } = await import("./inbox-summarizer-F2KAU72V.js");
148
149
  const emails = await this.fetchRecent(100);
149
150
  return summarizeInbox2(emails);
150
151
  }
@@ -152,7 +153,7 @@ var EmailClient = class {
152
153
  * Get action items from recent emails
153
154
  */
154
155
  async getActionItems() {
155
- const { extractActionItems: extractActionItems2, categorizeEmail: categorizeEmail2 } = await import("./inbox-summarizer-DKKRYXDR.js");
156
+ const { extractActionItems: extractActionItems2, categorizeEmail: categorizeEmail2 } = await import("./inbox-summarizer-F2KAU72V.js");
156
157
  const emails = await this.fetchRecent(50);
157
158
  const allActions = [];
158
159
  for (const email of emails) {
@@ -168,7 +169,7 @@ var EmailClient = class {
168
169
  * Generate daily digest
169
170
  */
170
171
  async generateDigest() {
171
- const { generateDailyDigest: generateDailyDigest2 } = await import("./inbox-summarizer-DKKRYXDR.js");
172
+ const { generateDailyDigest: generateDailyDigest2 } = await import("./inbox-summarizer-F2KAU72V.js");
172
173
  const emails = await this.fetchRecent(100);
173
174
  return generateDailyDigest2(emails);
174
175
  }
@@ -273,4 +274,4 @@ export {
273
274
  summarizeInbox,
274
275
  summarizeThread
275
276
  };
276
- //# sourceMappingURL=email-EAQNULVD.js.map
277
+ //# sourceMappingURL=email-6OIN4SYL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/integrations/email/index.ts"],"sourcesContent":["// IMAP Client - Reading emails\r\nexport {\r\n ImapClient,\r\n createImapClient,\r\n type EmailConfig,\r\n type EmailMessage,\r\n type EmailAddress,\r\n type EmailAttachment,\r\n type SearchOptions,\r\n type FolderInfo,\r\n} from \"./imap-client\";\r\n\r\n// SMTP Client - Sending emails\r\nexport {\r\n SmtpClient,\r\n createSmtpClient,\r\n type SmtpConfig,\r\n type EmailRecipient,\r\n type EmailAttachment as SmtpEmailAttachment,\r\n type SendEmailOptions,\r\n type ReplyOptions,\r\n type SendResult,\r\n} from \"./smtp-client\";\r\n\r\n// Email Parser - Content parsing and threading\r\nexport {\r\n parseEmail,\r\n parseAttachment,\r\n groupIntoThreads,\r\n cleanSubject,\r\n parseEmailBody,\r\n extractEmailAddresses,\r\n extractUrls,\r\n extractPhoneNumbers,\r\n getEmailSummary,\r\n calculateEmailSize,\r\n matchesFilter,\r\n type ParsedEmail,\r\n type ThreadInfo,\r\n type ParsedAttachment,\r\n type EmailMetadata,\r\n type EmailThread,\r\n type QuotedSection,\r\n type EmailBodyParts,\r\n} from \"./email-parser\";\r\n\r\n// Inbox Summarizer - AI-powered analysis\r\nexport {\r\n categorizeEmail,\r\n extractActionItems,\r\n summarizeThread,\r\n summarizeInbox,\r\n generateDailyDigest,\r\n suggestReplies,\r\n analyzeSentiment,\r\n type InboxSummary,\r\n type CategorySummary,\r\n type UrgentItem,\r\n type ActionItem,\r\n type EmailCategorization,\r\n type ThreadSummary,\r\n} from \"./inbox-summarizer\";\r\n\r\n/**\r\n * Email Integration for OpenSentinel\r\n *\r\n * This module provides comprehensive email functionality:\r\n *\r\n * ## Reading Emails (IMAP)\r\n * ```typescript\r\n * import { createImapClient } from './integrations/email';\r\n *\r\n * const imap = createImapClient('gmail', {\r\n * user: 'your@gmail.com',\r\n * password: 'your-app-password'\r\n * });\r\n *\r\n * await imap.connect();\r\n * const emails = await imap.fetchEmails('INBOX', { limit: 20 });\r\n * const unread = await imap.getUnreadCount();\r\n * await imap.disconnect();\r\n * ```\r\n *\r\n * ## Sending Emails (SMTP)\r\n * ```typescript\r\n * import { createSmtpClient } from './integrations/email';\r\n *\r\n * const smtp = createSmtpClient('gmail', {\r\n * user: 'your@gmail.com',\r\n * password: 'your-app-password'\r\n * });\r\n *\r\n * await smtp.send({\r\n * to: 'recipient@example.com',\r\n * subject: 'Hello',\r\n * text: 'This is a test email'\r\n * });\r\n * ```\r\n *\r\n * ## Parsing Emails\r\n * ```typescript\r\n * import { parseEmail, groupIntoThreads } from './integrations/email';\r\n *\r\n * const parsed = parseEmail(rawEmail);\r\n * const threads = groupIntoThreads(emails);\r\n * ```\r\n *\r\n * ## AI-Powered Features\r\n * ```typescript\r\n * import { summarizeInbox, extractActionItems } from './integrations/email';\r\n *\r\n * const summary = await summarizeInbox(emails);\r\n * const actions = await extractActionItems(email);\r\n * ```\r\n */\r\n\r\n// Convenience class that combines IMAP and SMTP\r\nexport class EmailClient {\r\n private imapClient: InstanceType<typeof import(\"./imap-client\").ImapClient>;\r\n private smtpClient: InstanceType<typeof import(\"./smtp-client\").SmtpClient>;\r\n\r\n constructor(config: {\r\n imap: import(\"./imap-client\").EmailConfig;\r\n smtp: import(\"./smtp-client\").SmtpConfig;\r\n }) {\r\n const { ImapClient } = require(\"./imap-client\");\r\n const { SmtpClient } = require(\"./smtp-client\");\r\n\r\n this.imapClient = new ImapClient(config.imap);\r\n this.smtpClient = new SmtpClient(config.smtp);\r\n }\r\n\r\n /**\r\n * Connect to the email server\r\n */\r\n async connect(): Promise<void> {\r\n await this.imapClient.connect();\r\n await this.smtpClient.verify();\r\n }\r\n\r\n /**\r\n * Disconnect from the email server\r\n */\r\n async disconnect(): Promise<void> {\r\n await this.imapClient.disconnect();\r\n await this.smtpClient.close();\r\n }\r\n\r\n /**\r\n * Get the IMAP client for reading emails\r\n */\r\n get imap() {\r\n return this.imapClient;\r\n }\r\n\r\n /**\r\n * Get the SMTP client for sending emails\r\n */\r\n get smtp() {\r\n return this.smtpClient;\r\n }\r\n\r\n /**\r\n * Fetch recent emails\r\n */\r\n async fetchRecent(limit: number = 20): Promise<import(\"./imap-client\").EmailMessage[]> {\r\n return this.imapClient.fetchEmails(\"INBOX\", { limit });\r\n }\r\n\r\n /**\r\n * Get unread count\r\n */\r\n async getUnreadCount(): Promise<number> {\r\n return this.imapClient.getUnreadCount();\r\n }\r\n\r\n /**\r\n * Send a simple text email\r\n */\r\n async sendText(\r\n to: string | string[],\r\n subject: string,\r\n text: string\r\n ): Promise<import(\"./smtp-client\").SendResult> {\r\n return this.smtpClient.sendText(to, subject, text);\r\n }\r\n\r\n /**\r\n * Send an HTML email\r\n */\r\n async sendHtml(\r\n to: string | string[],\r\n subject: string,\r\n html: string,\r\n text?: string\r\n ): Promise<import(\"./smtp-client\").SendResult> {\r\n return this.smtpClient.sendHtml(to, subject, html, text);\r\n }\r\n\r\n /**\r\n * Reply to an email\r\n */\r\n async reply(\r\n originalEmail: import(\"./imap-client\").EmailMessage,\r\n options: import(\"./smtp-client\").ReplyOptions\r\n ): Promise<import(\"./smtp-client\").SendResult> {\r\n return this.smtpClient.reply(originalEmail, options);\r\n }\r\n\r\n /**\r\n * Search for emails\r\n */\r\n async search(\r\n options: import(\"./imap-client\").SearchOptions\r\n ): Promise<import(\"./imap-client\").EmailMessage[]> {\r\n return this.imapClient.searchEmails(options);\r\n }\r\n\r\n /**\r\n * Get inbox summary using AI\r\n */\r\n async getInboxSummary(): Promise<import(\"./inbox-summarizer\").InboxSummary> {\r\n const { summarizeInbox } = await import(\"./inbox-summarizer\");\r\n const emails = await this.fetchRecent(100);\r\n return summarizeInbox(emails);\r\n }\r\n\r\n /**\r\n * Get action items from recent emails\r\n */\r\n async getActionItems(): Promise<import(\"./inbox-summarizer\").ActionItem[]> {\r\n const { extractActionItems, categorizeEmail } = await import(\"./inbox-summarizer\");\r\n const emails = await this.fetchRecent(50);\r\n\r\n const allActions: import(\"./inbox-summarizer\").ActionItem[] = [];\r\n\r\n for (const email of emails) {\r\n const category = await categorizeEmail(email);\r\n if (category.category === \"action_required\" || category.category === \"urgent\") {\r\n const actions = await extractActionItems(email);\r\n allActions.push(...actions);\r\n }\r\n }\r\n\r\n return allActions;\r\n }\r\n\r\n /**\r\n * Generate daily digest\r\n */\r\n async generateDigest(): Promise<string> {\r\n const { generateDailyDigest } = await import(\"./inbox-summarizer\");\r\n const emails = await this.fetchRecent(100);\r\n return generateDailyDigest(emails);\r\n }\r\n}\r\n\r\n/**\r\n * Create an email client with common provider presets\r\n */\r\nexport function createEmailClient(\r\n provider: \"gmail\" | \"outlook\" | \"yahoo\" | \"custom\",\r\n credentials: { user: string; password: string },\r\n customConfig?: {\r\n imap?: Partial<import(\"./imap-client\").EmailConfig>;\r\n smtp?: Partial<import(\"./smtp-client\").SmtpConfig>;\r\n }\r\n): EmailClient {\r\n const configs: Record<string, { imap: import(\"./imap-client\").EmailConfig; smtp: import(\"./smtp-client\").SmtpConfig }> = {\r\n gmail: {\r\n imap: {\r\n host: \"imap.gmail.com\",\r\n port: 993,\r\n secure: true,\r\n user: credentials.user,\r\n password: credentials.password,\r\n },\r\n smtp: {\r\n host: \"smtp.gmail.com\",\r\n port: 465,\r\n secure: true,\r\n auth: { user: credentials.user, pass: credentials.password },\r\n },\r\n },\r\n outlook: {\r\n imap: {\r\n host: \"outlook.office365.com\",\r\n port: 993,\r\n secure: true,\r\n user: credentials.user,\r\n password: credentials.password,\r\n },\r\n smtp: {\r\n host: \"smtp-mail.outlook.com\",\r\n port: 587,\r\n secure: false,\r\n auth: { user: credentials.user, pass: credentials.password },\r\n },\r\n },\r\n yahoo: {\r\n imap: {\r\n host: \"imap.mail.yahoo.com\",\r\n port: 993,\r\n secure: true,\r\n user: credentials.user,\r\n password: credentials.password,\r\n },\r\n smtp: {\r\n host: \"smtp.mail.yahoo.com\",\r\n port: 465,\r\n secure: true,\r\n auth: { user: credentials.user, pass: credentials.password },\r\n },\r\n },\r\n custom: {\r\n imap: {\r\n host: customConfig?.imap?.host || \"localhost\",\r\n port: customConfig?.imap?.port || 993,\r\n secure: customConfig?.imap?.secure ?? true,\r\n user: credentials.user,\r\n password: credentials.password,\r\n ...customConfig?.imap,\r\n },\r\n smtp: {\r\n host: customConfig?.smtp?.host || \"localhost\",\r\n port: customConfig?.smtp?.port || 587,\r\n secure: customConfig?.smtp?.secure ?? false,\r\n auth: { user: credentials.user, pass: credentials.password },\r\n ...customConfig?.smtp,\r\n },\r\n },\r\n };\r\n\r\n return new EmailClient(configs[provider]);\r\n}\r\n\r\n// Import factory functions for default export\r\nimport { createImapClient as _createImapClient } from \"./imap-client\";\r\nimport { createSmtpClient as _createSmtpClient } from \"./smtp-client\";\r\n\r\nexport default {\r\n EmailClient,\r\n createEmailClient,\r\n createImapClient: _createImapClient,\r\n createSmtpClient: _createSmtpClient,\r\n};\r\n"],"mappings":"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","names":["ImapClient","SmtpClient","summarizeInbox","extractActionItems","categorizeEmail","generateDailyDigest"]}
@@ -1,16 +1,17 @@
1
1
  import {
2
2
  generateEmbedding
3
- } from "./chunk-6UZPE35A.js";
3
+ } from "./chunk-QPY3WRVM.js";
4
+ import "./chunk-DTISLIMB.js";
4
5
  import {
5
6
  providerRegistry
6
- } from "./chunk-HTF2GIQC.js";
7
+ } from "./chunk-GW6V4D43.js";
7
8
  import {
8
9
  db
9
- } from "./chunk-S4NJJS5C.js";
10
+ } from "./chunk-5BTVJR7R.js";
10
11
  import {
11
12
  env
12
- } from "./chunk-PUNIMPMY.js";
13
- import "./chunk-NYVBXUGD.js";
13
+ } from "./chunk-4KIHDIXZ.js";
14
+ import "./chunk-ZIBRVA3Y.js";
14
15
  import "./chunk-35WYTA3C.js";
15
16
  import "./chunk-UP2VWCW5.js";
16
17
 
@@ -753,4 +754,4 @@ async function enhancedRetrieve(query, opts) {
753
754
  export {
754
755
  enhancedRetrieve
755
756
  };
756
- //# sourceMappingURL=enhanced-retrieval-OGHT6TS5.js.map
757
+ //# sourceMappingURL=enhanced-retrieval-JWX2HWU4.js.map