opensentinel 3.1.1 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/README.md +138 -83
  2. package/dist/agent-manager-JZ4IM7XI.js +39 -0
  3. package/dist/agent-processor-DDDHC2SO.js +281 -0
  4. package/dist/agent-processor-DDDHC2SO.js.map +1 -0
  5. package/dist/agent-types-2T4PXLFQ.js +12 -0
  6. package/dist/alerting-LK7VVYTX.js +699 -0
  7. package/dist/alerting-LK7VVYTX.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/analyzer-OTWE3ARE.js +22 -0
  11. package/dist/{archiver-AVNBYCKQ.js → archiver-FPGKRP6P.js} +2 -2
  12. package/dist/{audit-logger-OBPR7CRO.js → audit-logger-CI4WZQPD.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-VDHBGUVI.js +47 -0
  20. package/dist/brain-6QTXN4QP.js +66 -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-WRAKK6K6.js → chunk-2I5QHYG6.js} +5 -3
  24. package/dist/chunk-2I5QHYG6.js.map +1 -0
  25. package/dist/{chunk-TVEWKIK3.js → chunk-2WTKTG2C.js} +2 -2
  26. package/dist/chunk-3AWAWRWB.js +143 -0
  27. package/dist/chunk-3AWAWRWB.js.map +1 -0
  28. package/dist/{chunk-ZLZKF2PM.js → chunk-4KIHDIXZ.js} +43 -2
  29. package/dist/chunk-4KIHDIXZ.js.map +1 -0
  30. package/dist/{chunk-EVE7MIIY.js → chunk-4WH6MFEW.js} +15 -16
  31. package/dist/chunk-4WH6MFEW.js.map +1 -0
  32. package/dist/{chunk-I6BDYQIG.js → chunk-56UJS2LA.js} +6 -6
  33. package/dist/chunk-56UJS2LA.js.map +1 -0
  34. package/dist/chunk-5BTVJR7R.js +37 -0
  35. package/dist/chunk-5BTVJR7R.js.map +1 -0
  36. package/dist/chunk-5JJTLWOR.js +1021 -0
  37. package/dist/chunk-5JJTLWOR.js.map +1 -0
  38. package/dist/chunk-66SAOZPU.js +236 -0
  39. package/dist/chunk-66SAOZPU.js.map +1 -0
  40. package/dist/chunk-6HGMRR4J.js +113 -0
  41. package/dist/chunk-6HGMRR4J.js.map +1 -0
  42. package/dist/chunk-6W6PTJFT.js +181 -0
  43. package/dist/chunk-6W6PTJFT.js.map +1 -0
  44. package/dist/chunk-6ZNCY2GI.js +418 -0
  45. package/dist/chunk-6ZNCY2GI.js.map +1 -0
  46. package/dist/chunk-7BNFELEK.js +31 -0
  47. package/dist/chunk-7BNFELEK.js.map +1 -0
  48. package/dist/chunk-ADTDYJO7.js +265 -0
  49. package/dist/chunk-ADTDYJO7.js.map +1 -0
  50. package/dist/{chunk-OCVQGBJK.js → chunk-BBN4VCNK.js} +6 -4
  51. package/dist/chunk-BBN4VCNK.js.map +1 -0
  52. package/dist/{chunk-SJSUSJ47.js → chunk-BNZHWAZC.js} +2 -2
  53. package/dist/chunk-C6PELIHS.js +60 -0
  54. package/dist/chunk-C6PELIHS.js.map +1 -0
  55. package/dist/{chunk-MQJ2ECQT.js → chunk-CUPEENUY.js} +3 -3
  56. package/dist/{chunk-NHMBTUMW.js → chunk-CWT6CAE5.js} +2 -2
  57. package/dist/{chunk-4GLYY4NN.js → chunk-CZTMGHUC.js} +8 -2
  58. package/dist/chunk-CZTMGHUC.js.map +1 -0
  59. package/dist/{chunk-RZ4YESBG.js → chunk-DOYGMNMK.js} +1 -1
  60. package/dist/chunk-DOYGMNMK.js.map +1 -0
  61. package/dist/chunk-DTISLIMB.js +89 -0
  62. package/dist/chunk-DTISLIMB.js.map +1 -0
  63. package/dist/{chunk-SPPMCAKG.js → chunk-GBVJTRXS.js} +2 -2
  64. package/dist/chunk-GBVJTRXS.js.map +1 -0
  65. package/dist/{chunk-AYUKPTSM.js → chunk-GJETKBOY.js} +96 -218
  66. package/dist/chunk-GJETKBOY.js.map +1 -0
  67. package/dist/{chunk-BXZ6EA52.js → chunk-GW6V4D43.js} +57 -3
  68. package/dist/chunk-GW6V4D43.js.map +1 -0
  69. package/dist/{chunk-6PMVAAA7.js → chunk-HJSEEFO3.js} +3 -3
  70. package/dist/{chunk-TYAGMJNV.js → chunk-HQZQFEAX.js} +5 -5
  71. package/dist/{chunk-MXAPLSJ5.js → chunk-J4JW73TT.js} +2 -2
  72. package/dist/{chunk-VEHFVBLI.js → chunk-JHYYFPKX.js} +2 -2
  73. package/dist/chunk-LFDXEYYB.js +150 -0
  74. package/dist/chunk-LFDXEYYB.js.map +1 -0
  75. package/dist/chunk-MIC5IBQF.js +386 -0
  76. package/dist/chunk-MIC5IBQF.js.map +1 -0
  77. package/dist/chunk-ODCFS5WD.js +463 -0
  78. package/dist/chunk-ODCFS5WD.js.map +1 -0
  79. package/dist/{chunk-XMCVRVTF.js → chunk-P64EV4YY.js} +1 -1
  80. package/dist/chunk-P64EV4YY.js.map +1 -0
  81. package/dist/chunk-PBOCSGNL.js +84 -0
  82. package/dist/chunk-PBOCSGNL.js.map +1 -0
  83. package/dist/{chunk-66OJ3WB4.js → chunk-PD3CTDO6.js} +2 -2
  84. package/dist/chunk-QPY3WRVM.js +647 -0
  85. package/dist/chunk-QPY3WRVM.js.map +1 -0
  86. package/dist/chunk-S2EOIVF4.js +3907 -0
  87. package/dist/chunk-S2EOIVF4.js.map +1 -0
  88. package/dist/chunk-SDLOMKCW.js +213 -0
  89. package/dist/chunk-SDLOMKCW.js.map +1 -0
  90. package/dist/chunk-TKBVW7ZJ.js +162 -0
  91. package/dist/chunk-TKBVW7ZJ.js.map +1 -0
  92. package/dist/{chunk-BRBWNV65.js → chunk-U2X2J3FI.js} +3 -3
  93. package/dist/chunk-U2X2J3FI.js.map +1 -0
  94. package/dist/{chunk-PLDDJCW6.js → chunk-UP2VWCW5.js} +1 -12
  95. package/dist/{chunk-SVAPX2XN.js → chunk-V3OKHQUX.js} +9 -7
  96. package/dist/{chunk-SVAPX2XN.js.map → chunk-V3OKHQUX.js.map} +1 -1
  97. package/dist/{chunk-4UOE5TUZ.js → chunk-WMDVOWN6.js} +4 -4
  98. package/dist/chunk-WMFYI7XC.js +564 -0
  99. package/dist/chunk-WMFYI7XC.js.map +1 -0
  100. package/dist/chunk-WZAH34TG.js +129 -0
  101. package/dist/chunk-WZAH34TG.js.map +1 -0
  102. package/dist/{chunk-H5RQOFO2.js → chunk-X6Q3K3L2.js} +6 -6
  103. package/dist/chunk-X6Q3K3L2.js.map +1 -0
  104. package/dist/chunk-XTX7EK43.js +134 -0
  105. package/dist/chunk-XTX7EK43.js.map +1 -0
  106. package/dist/chunk-YEDEAX6Y.js +194 -0
  107. package/dist/chunk-YEDEAX6Y.js.map +1 -0
  108. package/dist/{chunk-XKYRH4FM.js → chunk-ZIBRVA3Y.js} +70 -30
  109. package/dist/chunk-ZIBRVA3Y.js.map +1 -0
  110. package/dist/chunk-ZIYTHUM5.js +457 -0
  111. package/dist/chunk-ZIYTHUM5.js.map +1 -0
  112. package/dist/{chunk-766ASQWE.js → chunk-ZMML6T63.js} +2711 -2329
  113. package/dist/chunk-ZMML6T63.js.map +1 -0
  114. package/dist/chunk-ZVHG4KF2.js +380 -0
  115. package/dist/chunk-ZVHG4KF2.js.map +1 -0
  116. package/dist/chunker-K6WTR62A.js +12 -0
  117. package/dist/cli.js +1 -1
  118. package/dist/cli.js.map +1 -1
  119. package/dist/{client-ZQSFPMOB.js → client-FOIYPOZQ.js} +5 -6
  120. package/dist/{clipboard-manager-TEO2GEDN.js → clipboard-manager-4SBNESGZ.js} +2 -2
  121. package/dist/coding-agent-DESSU3AC.js +233 -0
  122. package/dist/coding-agent-DESSU3AC.js.map +1 -0
  123. package/dist/commands/setup.js +2 -2
  124. package/dist/commands/start.js +3 -3
  125. package/dist/commands/status.js +2 -2
  126. package/dist/commands/stop.js +2 -2
  127. package/dist/commands/utils.js +2 -2
  128. package/dist/cost-tracker-KZQSTSE2.js +11 -0
  129. package/dist/{cron-explain-HHQKPD3M.js → cron-explain-UOOOYWZZ.js} +2 -2
  130. package/dist/{crypto-4AP47IKC.js → crypto-2VG3RJR2.js} +2 -2
  131. package/dist/{databases-37X4CI2Y.js → databases-XDPMG5AV.js} +4 -4
  132. package/dist/db-I7MNG6CL.js +83 -0
  133. package/dist/discord-6UQHCN27.js +81 -0
  134. package/dist/documents-PFHSK7SZ.js +184 -0
  135. package/dist/documents-PFHSK7SZ.js.map +1 -0
  136. package/dist/docx-parser-EXL4TN5E.js +16 -0
  137. package/dist/{email-K7LO2IPB.js → email-6OIN4SYL.js} +34 -25
  138. package/dist/email-6OIN4SYL.js.map +1 -0
  139. package/dist/{enhanced-retrieval-DNLLEM4Z.js → enhanced-retrieval-JWX2HWU4.js} +12 -8
  140. package/dist/{enhanced-retrieval-DNLLEM4Z.js.map → enhanced-retrieval-JWX2HWU4.js.map} +1 -1
  141. package/dist/enrichment-pipeline-7FE5R5ZI.js +14 -0
  142. package/dist/{entity-resolution-Y3IUWEAT.js → entity-resolution-7Z6STVXX.js} +6 -5
  143. package/dist/env-GN5VHI43.js +12 -0
  144. package/dist/error-tracker-64DEH3D7.js +32 -0
  145. package/dist/finnhub-X7ZMQSXF.js +178 -0
  146. package/dist/finnhub-X7ZMQSXF.js.map +1 -0
  147. package/dist/fred-TMUF3J2V.js +203 -0
  148. package/dist/fred-TMUF3J2V.js.map +1 -0
  149. package/dist/github-DUWSXCNP.js +833 -0
  150. package/dist/github-DUWSXCNP.js.map +1 -0
  151. package/dist/{google-workspace-DKWUVNGC.js → google-workspace-TSZPZK5G.js} +2 -2
  152. package/dist/graph-client-NB475AK5.js +17 -0
  153. package/dist/{hash-tool-ULQYD7B5.js → hash-tool-ENAB5LWH.js} +2 -2
  154. package/dist/{heartbeat-monitor-GCISLXI3.js → heartbeat-monitor-KRDYTDBF.js} +2 -2
  155. package/dist/hooks-N4MIFBVM.js +14 -0
  156. package/dist/{image-generation-OSU7FP6F.js → image-generation-MDE6AVQO.js} +2 -2
  157. package/dist/imessage-DSGSGUZS.js +44 -0
  158. package/dist/inbox-summarizer-F2KAU72V.js +56 -0
  159. package/dist/{incident-response-C5J7Q6DT.js → incident-response-E3UGMX5G.js} +8 -6
  160. package/dist/incident-response-E3UGMX5G.js.map +1 -0
  161. package/dist/{inventory-manager-352OHXWD.js → inventory-manager-C67BSZM6.js} +2 -2
  162. package/dist/{jira-GSGDBMIG.js → jira-PAGZWUBJ.js} +2 -2
  163. package/dist/{json-tool-QE2SYHEG.js → json-tool-4FK5RNER.js} +2 -2
  164. package/dist/{key-rotation-DPHU4ZTB.js → key-rotation-WCC5FOYS.js} +2 -2
  165. package/dist/knowledge-base-5SMMOGQJ.js +46 -0
  166. package/dist/lib.d.ts +94 -1
  167. package/dist/lib.js +83 -66
  168. package/dist/lib.js.map +1 -1
  169. package/dist/{mailchimp-KKNF6QJ7.js → mailchimp-ZFYDC44J.js} +2 -2
  170. package/dist/{matrix-QVHG76I7.js → matrix-WYGEOZL5.js} +30 -21
  171. package/dist/{matrix-QVHG76I7.js.map → matrix-WYGEOZL5.js.map} +1 -1
  172. package/dist/{mcp-3JI6W7ZE.js → mcp-DJ2QDA6A.js} +3 -3
  173. package/dist/metrics-BH3ZLGEV.js +25 -0
  174. package/dist/{microsoft365-UCBKJHNX.js → microsoft365-6G2IJMWC.js} +2 -2
  175. package/dist/multi-user-XAEMB244.js +411 -0
  176. package/dist/multi-user-XAEMB244.js.map +1 -0
  177. package/dist/oauth-UPJYFOVU.js +34 -0
  178. package/dist/{ocr-AC7NPX33.js → ocr-UONKTQU7.js} +6 -4
  179. package/dist/{ollama-BOAMSPLJ.js → ollama-J7CU45WT.js} +2 -2
  180. package/dist/osint-agent-RL5XPBRQ.js +189 -0
  181. package/dist/osint-agent-RL5XPBRQ.js.map +1 -0
  182. package/dist/{pages-MI523RB7.js → pages-XDE7JRCA.js} +5 -5
  183. package/dist/{pair-JDFTERIK.js → pair-YZJFQUU5.js} +2 -2
  184. package/dist/{pairing-IFQYCPNS.js → pairing-77N47RAT.js} +2 -2
  185. package/dist/{pdf-ALQVOEJR.js → pdf-67HGXCFJ.js} +3 -3
  186. package/dist/pdf-parser-YLMTTYHL.js +14 -0
  187. package/dist/{presentations-DSV5IHG5.js → presentations-UOET2FVZ.js} +3 -3
  188. package/dist/presentations-UOET2FVZ.js.map +1 -0
  189. package/dist/{prometheus-JNT2BD4L.js → prometheus-YETCZO4I.js} +2 -2
  190. package/dist/prometheus-YETCZO4I.js.map +1 -0
  191. package/dist/{providers-J4LYPHDR.js → providers-2YQ6E3IF.js} +6 -4
  192. package/dist/providers-2YQ6E3IF.js.map +1 -0
  193. package/dist/{qr-code-WIX4PB4U.js → qr-code-6WZJHRKL.js} +2 -2
  194. package/dist/qr-code-6WZJHRKL.js.map +1 -0
  195. package/dist/{quickbooks-XB4NII2S.js → quickbooks-N675W7IK.js} +2 -2
  196. package/dist/{regex-tool-W4ABRKGK.js → regex-tool-6Q63LQ7B.js} +2 -2
  197. package/dist/regex-tool-6Q63LQ7B.js.map +1 -0
  198. package/dist/research-agent-WCRSY3UZ.js +168 -0
  199. package/dist/research-agent-WCRSY3UZ.js.map +1 -0
  200. package/dist/risk-engine-YKCPT5D5.js +10 -0
  201. package/dist/risk-engine-YKCPT5D5.js.map +1 -0
  202. package/dist/scheduler-6PLLAQI7.js +74 -0
  203. package/dist/scheduler-6PLLAQI7.js.map +1 -0
  204. package/dist/schema-ETY7L2VA.js +78 -0
  205. package/dist/schema-ETY7L2VA.js.map +1 -0
  206. package/dist/{search-BCLBO5E3.js → search-GMLKBHSW.js} +4 -4
  207. package/dist/search-GMLKBHSW.js.map +1 -0
  208. package/dist/{sendgrid-RNXCAFKM.js → sendgrid-QGJIVPWV.js} +2 -2
  209. package/dist/sharepoint-V5P4Q62L.js +30 -0
  210. package/dist/sharepoint-V5P4Q62L.js.map +1 -0
  211. package/dist/{shopify-NCXYJB4R.js → shopify-ON2PAU27.js} +2 -2
  212. package/dist/signal-7D5EPGVL.js +44 -0
  213. package/dist/signal-7D5EPGVL.js.map +1 -0
  214. package/dist/slack-KSS6YK5Z.js +86 -0
  215. package/dist/slack-KSS6YK5Z.js.map +1 -0
  216. package/dist/{sms-M3JIOTCW.js → sms-CSUCC7HL.js} +4 -4
  217. package/dist/sms-CSUCC7HL.js.map +1 -0
  218. package/dist/{src-VYUE6LRA.js → src-GO7GGW7O.js} +190 -52
  219. package/dist/src-GO7GGW7O.js.map +1 -0
  220. package/dist/{stocks-XXWBPOCU.js → stocks-4M4HZWZS.js} +2 -2
  221. package/dist/stocks-4M4HZWZS.js.map +1 -0
  222. package/dist/text-extractor-OAUBAW5P.js +12 -0
  223. package/dist/text-extractor-OAUBAW5P.js.map +1 -0
  224. package/dist/{text-transform-6SGUA5Z4.js → text-transform-HCLCUDFZ.js} +2 -2
  225. package/dist/text-transform-HCLCUDFZ.js.map +1 -0
  226. package/dist/token-store-SEWRX6RE.js +20 -0
  227. package/dist/token-store-SEWRX6RE.js.map +1 -0
  228. package/dist/tools-PJZ6RI4P.js +47 -0
  229. package/dist/tools-PJZ6RI4P.js.map +1 -0
  230. package/dist/{tunnel-IWMXUML4.js → tunnel-XOUVVRAK.js} +4 -2
  231. package/dist/tunnel-XOUVVRAK.js.map +1 -0
  232. package/dist/{twilio-53GEW5JT.js → twilio-3L7DUNYQ.js} +2 -2
  233. package/dist/{unit-converter-ZYXMEZOE.js → unit-converter-LYPAHU64.js} +2 -2
  234. package/dist/unit-converter-LYPAHU64.js.map +1 -0
  235. package/dist/whatsapp-DWXK25V2.js +44 -0
  236. package/dist/whatsapp-DWXK25V2.js.map +1 -0
  237. package/dist/{word-document-7B6SJMAY.js → word-document-AV3YB4L2.js} +4 -4
  238. package/dist/word-document-AV3YB4L2.js.map +1 -0
  239. package/dist/workflow-store-5Y56GUP7.js +373 -0
  240. package/dist/workflow-store-5Y56GUP7.js.map +1 -0
  241. package/dist/writing-agent-VDGLNOGO.js +243 -0
  242. package/dist/writing-agent-VDGLNOGO.js.map +1 -0
  243. package/dist/{xero-QYO66D45.js → xero-UHAHVYSD.js} +2 -2
  244. package/dist/{zapier-webhook-TBZ5YF2A.js → zapier-webhook-NIELLTXR.js} +2 -2
  245. package/drizzle/0002_mushy_master_mold.sql +139 -139
  246. package/drizzle/0003_overjoyed_rhodey.sql +46 -0
  247. package/drizzle/meta/0002_snapshot.json +3636 -3636
  248. package/drizzle/meta/0003_snapshot.json +3946 -0
  249. package/drizzle/meta/_journal.json +7 -0
  250. package/package.json +110 -100
  251. package/dist/autonomy-ZXDBDQUJ.js.map +0 -1
  252. package/dist/bot-QRARP4UN.js +0 -36
  253. package/dist/brain-7XLLM3KC.js +0 -56
  254. package/dist/chunk-4GLYY4NN.js.map +0 -1
  255. package/dist/chunk-766ASQWE.js.map +0 -1
  256. package/dist/chunk-AYUKPTSM.js.map +0 -1
  257. package/dist/chunk-BRBWNV65.js.map +0 -1
  258. package/dist/chunk-BXZ6EA52.js.map +0 -1
  259. package/dist/chunk-EVE7MIIY.js.map +0 -1
  260. package/dist/chunk-H5RQOFO2.js.map +0 -1
  261. package/dist/chunk-I6BDYQIG.js.map +0 -1
  262. package/dist/chunk-IZJMVV7O.js +0 -347
  263. package/dist/chunk-IZJMVV7O.js.map +0 -1
  264. package/dist/chunk-O7IH7JTI.js +0 -1898
  265. package/dist/chunk-O7IH7JTI.js.map +0 -1
  266. package/dist/chunk-OCVQGBJK.js.map +0 -1
  267. package/dist/chunk-RZ4YESBG.js.map +0 -1
  268. package/dist/chunk-SPPMCAKG.js.map +0 -1
  269. package/dist/chunk-VRD5CYRL.js +0 -1568
  270. package/dist/chunk-VRD5CYRL.js.map +0 -1
  271. package/dist/chunk-WRAKK6K6.js.map +0 -1
  272. package/dist/chunk-XKYRH4FM.js.map +0 -1
  273. package/dist/chunk-XMCVRVTF.js.map +0 -1
  274. package/dist/chunk-ZLZKF2PM.js.map +0 -1
  275. package/dist/discord-B3HUPGQ6.js +0 -70
  276. package/dist/dist-UISMLMFN.js +0 -21847
  277. package/dist/dist-UISMLMFN.js.map +0 -1
  278. package/dist/email-K7LO2IPB.js.map +0 -1
  279. package/dist/enrichment-pipeline-MNHNW65K.js +0 -13
  280. package/dist/env-IWXUVTCB.js +0 -12
  281. package/dist/imessage-NGA2XF2V.js +0 -35
  282. package/dist/inbox-summarizer-NRI4S7IF.js +0 -47
  283. package/dist/incident-response-C5J7Q6DT.js.map +0 -1
  284. package/dist/presentations-DSV5IHG5.js.map +0 -1
  285. package/dist/scheduler-VK4WFERV.js +0 -63
  286. package/dist/signal-6CGDFYL2.js +0 -35
  287. package/dist/slack-IZQWIKOH.js +0 -75
  288. package/dist/src-VYUE6LRA.js.map +0 -1
  289. package/dist/tools-2RLEI2N6.js +0 -38
  290. package/dist/tunnel-IWMXUML4.js.map +0 -1
  291. package/dist/whatsapp-LFX6YKCM.js +0 -35
  292. package/dist/word-document-7B6SJMAY.js.map +0 -1
  293. /package/dist/{audit-logger-OBPR7CRO.js.map → agent-manager-JZ4IM7XI.js.map} +0 -0
  294. /package/dist/{auth-UOX5K2BE.js.map → agent-types-2T4PXLFQ.js.map} +0 -0
  295. /package/dist/{backup-restore-PZ7CYYB7.js.map → analyzer-OTWE3ARE.js.map} +0 -0
  296. /package/dist/{archiver-AVNBYCKQ.js.map → archiver-FPGKRP6P.js.map} +0 -0
  297. /package/dist/{blocks-R3PODY47.js.map → audit-logger-CI4WZQPD.js.map} +0 -0
  298. /package/dist/{bot-QRARP4UN.js.map → auth-PH5IHISW.js.map} +0 -0
  299. /package/dist/{aws-s3-Q4LLZZPD.js.map → aws-s3-QZMURYXB.js.map} +0 -0
  300. /package/dist/{brain-7XLLM3KC.js.map → backup-restore-72OQTZO3.js.map} +0 -0
  301. /package/dist/{chunk-PLDDJCW6.js.map → blocks-YOWOESDD.js.map} +0 -0
  302. /package/dist/{client-ZQSFPMOB.js.map → bot-VDHBGUVI.js.map} +0 -0
  303. /package/dist/{clipboard-manager-TEO2GEDN.js.map → brain-6QTXN4QP.js.map} +0 -0
  304. /package/dist/{camera-monitor-M5CYKUU4.js.map → camera-monitor-LHTUWHEL.js.map} +0 -0
  305. /package/dist/{charts-V7ARZNKF.js.map → charts-FJ32GQK7.js.map} +0 -0
  306. /package/dist/{chunk-TVEWKIK3.js.map → chunk-2WTKTG2C.js.map} +0 -0
  307. /package/dist/{chunk-SJSUSJ47.js.map → chunk-BNZHWAZC.js.map} +0 -0
  308. /package/dist/{chunk-MQJ2ECQT.js.map → chunk-CUPEENUY.js.map} +0 -0
  309. /package/dist/{chunk-NHMBTUMW.js.map → chunk-CWT6CAE5.js.map} +0 -0
  310. /package/dist/{chunk-6PMVAAA7.js.map → chunk-HJSEEFO3.js.map} +0 -0
  311. /package/dist/{chunk-TYAGMJNV.js.map → chunk-HQZQFEAX.js.map} +0 -0
  312. /package/dist/{chunk-MXAPLSJ5.js.map → chunk-J4JW73TT.js.map} +0 -0
  313. /package/dist/{chunk-VEHFVBLI.js.map → chunk-JHYYFPKX.js.map} +0 -0
  314. /package/dist/{chunk-66OJ3WB4.js.map → chunk-PD3CTDO6.js.map} +0 -0
  315. /package/dist/{cron-explain-HHQKPD3M.js.map → chunk-UP2VWCW5.js.map} +0 -0
  316. /package/dist/{chunk-4UOE5TUZ.js.map → chunk-WMDVOWN6.js.map} +0 -0
  317. /package/dist/{crypto-4AP47IKC.js.map → chunker-K6WTR62A.js.map} +0 -0
  318. /package/dist/{databases-37X4CI2Y.js.map → client-FOIYPOZQ.js.map} +0 -0
  319. /package/dist/{discord-B3HUPGQ6.js.map → clipboard-manager-4SBNESGZ.js.map} +0 -0
  320. /package/dist/{enrichment-pipeline-MNHNW65K.js.map → cost-tracker-KZQSTSE2.js.map} +0 -0
  321. /package/dist/{entity-resolution-Y3IUWEAT.js.map → cron-explain-UOOOYWZZ.js.map} +0 -0
  322. /package/dist/{env-IWXUVTCB.js.map → crypto-2VG3RJR2.js.map} +0 -0
  323. /package/dist/{hash-tool-ULQYD7B5.js.map → databases-XDPMG5AV.js.map} +0 -0
  324. /package/dist/{heartbeat-monitor-GCISLXI3.js.map → db-I7MNG6CL.js.map} +0 -0
  325. /package/dist/{imessage-NGA2XF2V.js.map → discord-6UQHCN27.js.map} +0 -0
  326. /package/dist/{inbox-summarizer-NRI4S7IF.js.map → docx-parser-EXL4TN5E.js.map} +0 -0
  327. /package/dist/{inventory-manager-352OHXWD.js.map → enrichment-pipeline-7FE5R5ZI.js.map} +0 -0
  328. /package/dist/{json-tool-QE2SYHEG.js.map → entity-resolution-7Z6STVXX.js.map} +0 -0
  329. /package/dist/{key-rotation-DPHU4ZTB.js.map → env-GN5VHI43.js.map} +0 -0
  330. /package/dist/{mcp-3JI6W7ZE.js.map → error-tracker-64DEH3D7.js.map} +0 -0
  331. /package/dist/{google-workspace-DKWUVNGC.js.map → google-workspace-TSZPZK5G.js.map} +0 -0
  332. /package/dist/{ocr-AC7NPX33.js.map → graph-client-NB475AK5.js.map} +0 -0
  333. /package/dist/{ollama-BOAMSPLJ.js.map → hash-tool-ENAB5LWH.js.map} +0 -0
  334. /package/dist/{pages-MI523RB7.js.map → heartbeat-monitor-KRDYTDBF.js.map} +0 -0
  335. /package/dist/{pairing-IFQYCPNS.js.map → hooks-N4MIFBVM.js.map} +0 -0
  336. /package/dist/{image-generation-OSU7FP6F.js.map → image-generation-MDE6AVQO.js.map} +0 -0
  337. /package/dist/{pdf-ALQVOEJR.js.map → imessage-DSGSGUZS.js.map} +0 -0
  338. /package/dist/{prometheus-JNT2BD4L.js.map → inbox-summarizer-F2KAU72V.js.map} +0 -0
  339. /package/dist/{providers-J4LYPHDR.js.map → inventory-manager-C67BSZM6.js.map} +0 -0
  340. /package/dist/{jira-GSGDBMIG.js.map → jira-PAGZWUBJ.js.map} +0 -0
  341. /package/dist/{qr-code-WIX4PB4U.js.map → json-tool-4FK5RNER.js.map} +0 -0
  342. /package/dist/{regex-tool-W4ABRKGK.js.map → key-rotation-WCC5FOYS.js.map} +0 -0
  343. /package/dist/{scheduler-VK4WFERV.js.map → knowledge-base-5SMMOGQJ.js.map} +0 -0
  344. /package/dist/{mailchimp-KKNF6QJ7.js.map → mailchimp-ZFYDC44J.js.map} +0 -0
  345. /package/dist/{search-BCLBO5E3.js.map → mcp-DJ2QDA6A.js.map} +0 -0
  346. /package/dist/{signal-6CGDFYL2.js.map → metrics-BH3ZLGEV.js.map} +0 -0
  347. /package/dist/{microsoft365-UCBKJHNX.js.map → microsoft365-6G2IJMWC.js.map} +0 -0
  348. /package/dist/{slack-IZQWIKOH.js.map → oauth-UPJYFOVU.js.map} +0 -0
  349. /package/dist/{sms-M3JIOTCW.js.map → ocr-UONKTQU7.js.map} +0 -0
  350. /package/dist/{stocks-XXWBPOCU.js.map → ollama-J7CU45WT.js.map} +0 -0
  351. /package/dist/{text-transform-6SGUA5Z4.js.map → pages-XDE7JRCA.js.map} +0 -0
  352. /package/dist/{pair-JDFTERIK.js.map → pair-YZJFQUU5.js.map} +0 -0
  353. /package/dist/{tools-2RLEI2N6.js.map → pairing-77N47RAT.js.map} +0 -0
  354. /package/dist/{unit-converter-ZYXMEZOE.js.map → pdf-67HGXCFJ.js.map} +0 -0
  355. /package/dist/{whatsapp-LFX6YKCM.js.map → pdf-parser-YLMTTYHL.js.map} +0 -0
  356. /package/dist/{quickbooks-XB4NII2S.js.map → quickbooks-N675W7IK.js.map} +0 -0
  357. /package/dist/{sendgrid-RNXCAFKM.js.map → sendgrid-QGJIVPWV.js.map} +0 -0
  358. /package/dist/{shopify-NCXYJB4R.js.map → shopify-ON2PAU27.js.map} +0 -0
  359. /package/dist/{twilio-53GEW5JT.js.map → twilio-3L7DUNYQ.js.map} +0 -0
  360. /package/dist/{xero-QYO66D45.js.map → xero-UHAHVYSD.js.map} +0 -0
  361. /package/dist/{zapier-webhook-TBZ5YF2A.js.map → zapier-webhook-NIELLTXR.js.map} +0 -0
package/dist/lib.d.ts CHANGED
@@ -65,12 +65,18 @@ declare const envSchema: z.ZodObject<{
65
65
  TENOR_API_KEY: z.ZodOptional<z.ZodString>;
66
66
  GIPHY_API_KEY: z.ZodOptional<z.ZodString>;
67
67
  ALPHA_VANTAGE_API_KEY: z.ZodOptional<z.ZodString>;
68
+ FRED_API_KEY: z.ZodOptional<z.ZodString>;
69
+ FINNHUB_API_KEY: z.ZodOptional<z.ZodString>;
68
70
  COINBASE_API_KEY: z.ZodOptional<z.ZodString>;
69
71
  COINBASE_PRIVATE_KEY: z.ZodOptional<z.ZodString>;
70
72
  BINANCE_API_KEY: z.ZodOptional<z.ZodString>;
71
73
  BINANCE_API_SECRET: z.ZodOptional<z.ZodString>;
72
74
  BINANCE_TESTNET: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
73
75
  EXCHANGE_REQUIRE_CONFIRMATION: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
76
+ EXCHANGE_MAX_TRADE_SIZE: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
77
+ EXCHANGE_MAX_DAILY_SPEND: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
78
+ EXCHANGE_MAX_TRADES_PER_HOUR: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
79
+ EXCHANGE_AGENT_TRADING_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
74
80
  DEFILLAMA_API_KEY: z.ZodOptional<z.ZodString>;
75
81
  ETHERSCAN_API_KEY: z.ZodOptional<z.ZodString>;
76
82
  ALCHEMY_API_KEY: z.ZodOptional<z.ZodString>;
@@ -93,6 +99,13 @@ declare const envSchema: z.ZodObject<{
93
99
  OUTLOOK_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
94
100
  OUTLOOK_REDIRECT_URI: z.ZodOptional<z.ZodString>;
95
101
  OUTLOOK_REFRESH_TOKEN: z.ZodOptional<z.ZodString>;
102
+ M365_CLIENT_ID: z.ZodOptional<z.ZodString>;
103
+ M365_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
104
+ M365_TENANT_ID: z.ZodDefault<z.ZodOptional<z.ZodString>>;
105
+ M365_REDIRECT_URI: z.ZodOptional<z.ZodString>;
106
+ M365_GRAPH_SCOPES: z.ZodDefault<z.ZodOptional<z.ZodString>>;
107
+ M365_ANALYZE_RATE_LIMIT: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
108
+ M365_ANALYZE_RATE_REFILL: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
96
109
  DROPBOX_CLIENT_ID: z.ZodOptional<z.ZodString>;
97
110
  DROPBOX_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
98
111
  DROPBOX_REDIRECT_URI: z.ZodOptional<z.ZodString>;
@@ -107,6 +120,10 @@ declare const envSchema: z.ZodObject<{
107
120
  OPENAI_COMPATIBLE_API_KEY: z.ZodOptional<z.ZodString>;
108
121
  OPENAI_COMPATIBLE_BASE_URL: z.ZodOptional<z.ZodString>;
109
122
  OPENAI_COMPATIBLE_MODEL: z.ZodOptional<z.ZodString>;
123
+ XAI_API_KEY: z.ZodOptional<z.ZodString>;
124
+ XAI_DEFAULT_MODEL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
125
+ GEMINI_API_KEY: z.ZodOptional<z.ZodString>;
126
+ GEMINI_DEFAULT_MODEL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
110
127
  OLLAMA_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
111
128
  OLLAMA_BASE_URL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
112
129
  OLLAMA_DEFAULT_MODEL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
@@ -174,6 +191,18 @@ declare const envSchema: z.ZodObject<{
174
191
  MULTISTEP_MAX_STEPS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
175
192
  RETRIEVAL_CACHE_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
176
193
  CONTEXTUAL_QUERY_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
194
+ TOOL_CLASSIFIER_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
195
+ TOOL_CLASSIFIER_TIMEOUT_MS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
196
+ TOOL_CLASSIFIER_MAX_CATEGORIES: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
197
+ AUTO_MEMORY_EXTRACT_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
198
+ AUTO_MEMORY_EXTRACT_DEDUP_THRESHOLD: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
199
+ AUTO_MEMORY_SEARCH_THRESHOLD: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
200
+ AGENTIC_PIPELINE_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
201
+ AGENTIC_PRE_EXECUTION_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
202
+ AGENTIC_PRE_EXECUTION_TIMEOUT_MS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
203
+ AGENT_PROCESSOR_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
204
+ AGENT_PROCESSOR_CONCURRENCY: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
205
+ AGENT_MAX_TURNS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
177
206
  ENCRYPTION_MASTER_KEY: z.ZodOptional<z.ZodString>;
178
207
  AUDIT_SIGNING_KEY: z.ZodOptional<z.ZodString>;
179
208
  PORT: z.ZodDefault<z.ZodNumber>;
@@ -199,11 +228,21 @@ declare const envSchema: z.ZodObject<{
199
228
  EMAIL_LOCAL_SMTP_PORT: number;
200
229
  BINANCE_TESTNET: boolean;
201
230
  EXCHANGE_REQUIRE_CONFIRMATION: boolean;
231
+ EXCHANGE_MAX_TRADE_SIZE: number;
232
+ EXCHANGE_MAX_DAILY_SPEND: number;
233
+ EXCHANGE_MAX_TRADES_PER_HOUR: number;
234
+ EXCHANGE_AGENT_TRADING_ENABLED: boolean;
202
235
  ALCHEMY_NETWORK: string;
236
+ M365_TENANT_ID: string;
237
+ M365_GRAPH_SCOPES: string;
238
+ M365_ANALYZE_RATE_LIMIT: number;
239
+ M365_ANALYZE_RATE_REFILL: number;
203
240
  MCP_ENABLED: boolean;
204
241
  MCP_CONFIG_PATH: string;
205
242
  LLM_PROVIDER: string;
206
243
  OPENAI_LLM_ENABLED: boolean;
244
+ XAI_DEFAULT_MODEL: string;
245
+ GEMINI_DEFAULT_MODEL: string;
207
246
  OLLAMA_ENABLED: boolean;
208
247
  OLLAMA_BASE_URL: string;
209
248
  OLLAMA_DEFAULT_MODEL: string;
@@ -256,6 +295,18 @@ declare const envSchema: z.ZodObject<{
256
295
  MULTISTEP_MAX_STEPS: number;
257
296
  RETRIEVAL_CACHE_ENABLED: boolean;
258
297
  CONTEXTUAL_QUERY_ENABLED: boolean;
298
+ TOOL_CLASSIFIER_ENABLED: boolean;
299
+ TOOL_CLASSIFIER_TIMEOUT_MS: number;
300
+ TOOL_CLASSIFIER_MAX_CATEGORIES: number;
301
+ AUTO_MEMORY_EXTRACT_ENABLED: boolean;
302
+ AUTO_MEMORY_EXTRACT_DEDUP_THRESHOLD: number;
303
+ AUTO_MEMORY_SEARCH_THRESHOLD: number;
304
+ AGENTIC_PIPELINE_ENABLED: boolean;
305
+ AGENTIC_PRE_EXECUTION_ENABLED: boolean;
306
+ AGENTIC_PRE_EXECUTION_TIMEOUT_MS: number;
307
+ AGENT_PROCESSOR_ENABLED: boolean;
308
+ AGENT_PROCESSOR_CONCURRENCY: number;
309
+ AGENT_MAX_TURNS: number;
259
310
  PORT: number;
260
311
  NODE_ENV: "development" | "production" | "test";
261
312
  DISCORD_BOT_TOKEN?: string | undefined;
@@ -294,6 +345,8 @@ declare const envSchema: z.ZodObject<{
294
345
  TENOR_API_KEY?: string | undefined;
295
346
  GIPHY_API_KEY?: string | undefined;
296
347
  ALPHA_VANTAGE_API_KEY?: string | undefined;
348
+ FRED_API_KEY?: string | undefined;
349
+ FINNHUB_API_KEY?: string | undefined;
297
350
  COINBASE_API_KEY?: string | undefined;
298
351
  COINBASE_PRIVATE_KEY?: string | undefined;
299
352
  BINANCE_API_KEY?: string | undefined;
@@ -319,6 +372,9 @@ declare const envSchema: z.ZodObject<{
319
372
  OUTLOOK_CLIENT_SECRET?: string | undefined;
320
373
  OUTLOOK_REDIRECT_URI?: string | undefined;
321
374
  OUTLOOK_REFRESH_TOKEN?: string | undefined;
375
+ M365_CLIENT_ID?: string | undefined;
376
+ M365_CLIENT_SECRET?: string | undefined;
377
+ M365_REDIRECT_URI?: string | undefined;
322
378
  DROPBOX_CLIENT_ID?: string | undefined;
323
379
  DROPBOX_CLIENT_SECRET?: string | undefined;
324
380
  DROPBOX_REDIRECT_URI?: string | undefined;
@@ -329,6 +385,8 @@ declare const envSchema: z.ZodObject<{
329
385
  OPENAI_COMPATIBLE_API_KEY?: string | undefined;
330
386
  OPENAI_COMPATIBLE_BASE_URL?: string | undefined;
331
387
  OPENAI_COMPATIBLE_MODEL?: string | undefined;
388
+ XAI_API_KEY?: string | undefined;
389
+ GEMINI_API_KEY?: string | undefined;
332
390
  WHATSAPP_ALLOWED_NUMBERS?: string | undefined;
333
391
  SIGNAL_PHONE_NUMBER?: string | undefined;
334
392
  SIGNAL_ALLOWED_NUMBERS?: string | undefined;
@@ -401,12 +459,18 @@ declare const envSchema: z.ZodObject<{
401
459
  TENOR_API_KEY?: string | undefined;
402
460
  GIPHY_API_KEY?: string | undefined;
403
461
  ALPHA_VANTAGE_API_KEY?: string | undefined;
462
+ FRED_API_KEY?: string | undefined;
463
+ FINNHUB_API_KEY?: string | undefined;
404
464
  COINBASE_API_KEY?: string | undefined;
405
465
  COINBASE_PRIVATE_KEY?: string | undefined;
406
466
  BINANCE_API_KEY?: string | undefined;
407
467
  BINANCE_API_SECRET?: string | undefined;
408
468
  BINANCE_TESTNET?: boolean | undefined;
409
469
  EXCHANGE_REQUIRE_CONFIRMATION?: boolean | undefined;
470
+ EXCHANGE_MAX_TRADE_SIZE?: number | undefined;
471
+ EXCHANGE_MAX_DAILY_SPEND?: number | undefined;
472
+ EXCHANGE_MAX_TRADES_PER_HOUR?: number | undefined;
473
+ EXCHANGE_AGENT_TRADING_ENABLED?: boolean | undefined;
410
474
  DEFILLAMA_API_KEY?: string | undefined;
411
475
  ETHERSCAN_API_KEY?: string | undefined;
412
476
  ALCHEMY_API_KEY?: string | undefined;
@@ -429,6 +493,13 @@ declare const envSchema: z.ZodObject<{
429
493
  OUTLOOK_CLIENT_SECRET?: string | undefined;
430
494
  OUTLOOK_REDIRECT_URI?: string | undefined;
431
495
  OUTLOOK_REFRESH_TOKEN?: string | undefined;
496
+ M365_CLIENT_ID?: string | undefined;
497
+ M365_CLIENT_SECRET?: string | undefined;
498
+ M365_TENANT_ID?: string | undefined;
499
+ M365_REDIRECT_URI?: string | undefined;
500
+ M365_GRAPH_SCOPES?: string | undefined;
501
+ M365_ANALYZE_RATE_LIMIT?: number | undefined;
502
+ M365_ANALYZE_RATE_REFILL?: number | undefined;
432
503
  DROPBOX_CLIENT_ID?: string | undefined;
433
504
  DROPBOX_CLIENT_SECRET?: string | undefined;
434
505
  DROPBOX_REDIRECT_URI?: string | undefined;
@@ -443,6 +514,10 @@ declare const envSchema: z.ZodObject<{
443
514
  OPENAI_COMPATIBLE_API_KEY?: string | undefined;
444
515
  OPENAI_COMPATIBLE_BASE_URL?: string | undefined;
445
516
  OPENAI_COMPATIBLE_MODEL?: string | undefined;
517
+ XAI_API_KEY?: string | undefined;
518
+ XAI_DEFAULT_MODEL?: string | undefined;
519
+ GEMINI_API_KEY?: string | undefined;
520
+ GEMINI_DEFAULT_MODEL?: string | undefined;
446
521
  OLLAMA_ENABLED?: boolean | undefined;
447
522
  OLLAMA_BASE_URL?: string | undefined;
448
523
  OLLAMA_DEFAULT_MODEL?: string | undefined;
@@ -510,6 +585,18 @@ declare const envSchema: z.ZodObject<{
510
585
  MULTISTEP_MAX_STEPS?: number | undefined;
511
586
  RETRIEVAL_CACHE_ENABLED?: boolean | undefined;
512
587
  CONTEXTUAL_QUERY_ENABLED?: boolean | undefined;
588
+ TOOL_CLASSIFIER_ENABLED?: boolean | undefined;
589
+ TOOL_CLASSIFIER_TIMEOUT_MS?: number | undefined;
590
+ TOOL_CLASSIFIER_MAX_CATEGORIES?: number | undefined;
591
+ AUTO_MEMORY_EXTRACT_ENABLED?: boolean | undefined;
592
+ AUTO_MEMORY_EXTRACT_DEDUP_THRESHOLD?: number | undefined;
593
+ AUTO_MEMORY_SEARCH_THRESHOLD?: number | undefined;
594
+ AGENTIC_PIPELINE_ENABLED?: boolean | undefined;
595
+ AGENTIC_PRE_EXECUTION_ENABLED?: boolean | undefined;
596
+ AGENTIC_PRE_EXECUTION_TIMEOUT_MS?: number | undefined;
597
+ AGENT_PROCESSOR_ENABLED?: boolean | undefined;
598
+ AGENT_PROCESSOR_CONCURRENCY?: number | undefined;
599
+ AGENT_MAX_TURNS?: number | undefined;
513
600
  ENCRYPTION_MASTER_KEY?: string | undefined;
514
601
  AUDIT_SIGNING_KEY?: string | undefined;
515
602
  PORT?: number | undefined;
@@ -541,10 +628,16 @@ declare const env: Env;
541
628
  */
542
629
  declare function initializeProviders(): Promise<void>;
543
630
 
544
- declare const SYSTEM_PROMPT = "You are OpenSentinel, a personal AI assistant with a JARVIS-like personality. You are helpful, efficient, and have a subtle sense of humor. You speak in a professional yet friendly manner.\n\nYou have access to 120+ tools spanning many domains. ALWAYS check your available tools before telling the user you cannot do something. Key capabilities include:\n\n**System & Productivity**\n- Execute shell commands, manage files, browse the web, search for information\n- Remember facts about the user, spawn background agents for complex tasks\n- Generate documents, spreadsheets, charts, diagrams, reports\n- Analyze images, take screenshots, OCR\n\n**Communication & Social**\n- Send/read Telegram, Discord, Slack, WhatsApp, Signal, iMessage, Matrix messages\n- Send/read emails (Gmail, IMAP/SMTP), SMS/phone calls via Twilio\n\n**Entertainment & Media**\n- Control Spotify playback (play, pause, skip, volume, queue, search, playlists, recommendations)\n- Search for GIFs (Tenor, Giphy, web fallback)\n- Generate images, text-to-speech, speech-to-text\n\n**Smart Home & Location**\n- Control Home Assistant devices (lights, switches, climate, cameras)\n- Search places, geocode addresses, find nearby POIs, get driving directions\n- Camera capture from webcams, RTSP streams, and HA cameras\n\n**Google Workspace**\n- Gmail (list, read, send, search, reply emails)\n- Google Calendar (list, create, update, delete events)\n- Google Drive (list, search, upload, download, share files)\n\n**Finance & Data**\n- Cryptocurrency prices, stock data, currency conversion\n- OSINT research, web scraping\n\n**DevOps & Code**\n- GitHub (repos, issues, PRs, code search)\n- Notion (pages, databases, search)\n- Terminal command execution (local or remote via WebSocket bridge)\n- Token usage dashboard with cost tracking\n\nIMPORTANT: When the user asks you to do something, USE YOUR TOOLS. Do not say \"I cannot do that\" if a matching tool exists. If a tool requires credentials that are not configured, tell the user what credentials are needed rather than refusing outright.\n\nAlways be concise but thorough. When executing tasks, explain what you're doing briefly. If you encounter errors, suggest solutions.\n\nThe user is your principal. Assist them with whatever they need while being mindful of security and privacy.";
631
+ declare const SYSTEM_PROMPT = "You are OpenSentinel, a personal AI assistant with a JARVIS-like personality. You are helpful, efficient, and have a subtle sense of humor. You speak in a professional yet friendly manner.\n\nYou have access to 120+ tools spanning many domains. ALWAYS check your available tools before telling the user you cannot do something. Key capabilities include:\n\n**System & Productivity**\n- Execute shell commands, manage files, browse the web, search for information\n- Remember facts about the user, spawn background agents for complex tasks\n- Generate documents, spreadsheets, charts, diagrams, reports\n- Analyze images, take screenshots, OCR\n\n**Communication & Social**\n- Send/read Telegram, Discord, Slack, WhatsApp, Signal, iMessage, Matrix messages\n- Send/read emails (Gmail, IMAP/SMTP), SMS/phone calls via Twilio\n\n**Entertainment & Media**\n- Control Spotify playback (play, pause, skip, volume, queue, search, playlists, recommendations)\n- Search for GIFs (Tenor, Giphy, web fallback)\n- Generate images, text-to-speech, speech-to-text\n\n**Smart Home & Location**\n- Control Home Assistant devices (lights, switches, climate, cameras)\n- Search places, geocode addresses, find nearby POIs, get driving directions\n- Camera capture from webcams, RTSP streams, and HA cameras\n\n**Google Workspace**\n- Gmail (list, read, send, search, reply emails)\n- Google Calendar (list, create, update, delete events)\n- Google Drive (list, search, upload, download, share files)\n\n**Finance & Data**\n- Cryptocurrency prices, stock data, currency conversion\n- OSINT research, web scraping\n\n**DevOps & Code**\n- GitHub (repos, issues, PRs, code search)\n- Notion (pages, databases, search)\n- Terminal command execution (local or remote via WebSocket bridge)\n- Token usage dashboard with cost tracking\n\nIMPORTANT: When the user asks you to do something, USE YOUR TOOLS. Do not say \"I cannot do that\" if a matching tool exists. If a tool requires credentials that are not configured, tell the user what credentials are needed rather than refusing outright.\n\nAlways be concise but thorough. When executing tasks, explain what you're doing briefly. If you encounter errors, suggest solutions.\n\nWhen a file-generation tool returns a `downloadUrl`, include a markdown link like `[Download filename](downloadUrl)` so the user can download the file.\n\nWhen the user uploads a document (PDF, DOCX, etc.), use the parse_document tool to extract its contents before responding.\n\nThe user is your principal. Assist them with whatever they need while being mindful of security and privacy.";
632
+ interface MessageAttachment {
633
+ name: string;
634
+ type: string;
635
+ data: string;
636
+ }
545
637
  interface Message {
546
638
  role: "user" | "assistant";
547
639
  content: string;
640
+ attachments?: MessageAttachment[];
548
641
  }
549
642
  interface BrainResponse {
550
643
  content: string;
package/dist/lib.js CHANGED
@@ -1,32 +1,34 @@
1
1
  import {
2
2
  app
3
- } from "./chunk-O7IH7JTI.js";
4
- import {
5
- SignalBot
6
- } from "./chunk-VEHFVBLI.js";
7
- import {
8
- iMessageBot
9
- } from "./chunk-NHMBTUMW.js";
3
+ } from "./chunk-S2EOIVF4.js";
10
4
  import {
11
5
  createBot
12
- } from "./chunk-I6BDYQIG.js";
6
+ } from "./chunk-56UJS2LA.js";
13
7
  import {
14
8
  DiscordBot
15
- } from "./chunk-TYAGMJNV.js";
16
- import "./chunk-MXAPLSJ5.js";
9
+ } from "./chunk-HQZQFEAX.js";
10
+ import "./chunk-J4JW73TT.js";
17
11
  import {
18
12
  SlackBot
19
- } from "./chunk-4UOE5TUZ.js";
20
- import "./chunk-SJSUSJ47.js";
13
+ } from "./chunk-WMDVOWN6.js";
14
+ import "./chunk-BNZHWAZC.js";
21
15
  import {
22
16
  cancelTask,
23
17
  generateBriefing,
24
18
  scheduleReminder,
25
19
  scheduleTask
26
- } from "./chunk-AYUKPTSM.js";
20
+ } from "./chunk-GJETKBOY.js";
27
21
  import {
28
22
  WhatsAppBot
29
- } from "./chunk-66OJ3WB4.js";
23
+ } from "./chunk-PD3CTDO6.js";
24
+ import {
25
+ SignalBot
26
+ } from "./chunk-JHYYFPKX.js";
27
+ import {
28
+ iMessageBot
29
+ } from "./chunk-CWT6CAE5.js";
30
+ import "./chunk-SDLOMKCW.js";
31
+ import "./chunk-66SAOZPU.js";
30
32
  import {
31
33
  SYSTEM_PROMPT,
32
34
  TOOLS,
@@ -35,35 +37,18 @@ import {
35
37
  executeTool,
36
38
  streamChat,
37
39
  streamChatWithTools
38
- } from "./chunk-766ASQWE.js";
40
+ } from "./chunk-ZMML6T63.js";
41
+ import "./chunk-5JJTLWOR.js";
39
42
  import {
40
43
  buildMemoryContext,
41
44
  extractMemories,
42
45
  generateEmbedding,
43
46
  searchMemories,
44
47
  storeMemory
45
- } from "./chunk-IZJMVV7O.js";
46
- import {
47
- changeCase,
48
- countText,
49
- detectLanguage,
50
- extractKeywords,
51
- transformText
52
- } from "./chunk-PTGTGXV2.js";
53
- import {
54
- diffJson,
55
- flattenJson,
56
- formatJson,
57
- jsonTool,
58
- queryJson,
59
- validateJson
60
- } from "./chunk-F3TTNID2.js";
61
- import {
62
- cronTool,
63
- explainCron,
64
- getNextRuns,
65
- validateCron
66
- } from "./chunk-APHSRMBS.js";
48
+ } from "./chunk-QPY3WRVM.js";
49
+ import "./chunk-ADTDYJO7.js";
50
+ import "./chunk-LFDXEYYB.js";
51
+ import "./chunk-TKBVW7ZJ.js";
67
52
  import {
68
53
  compareHashes,
69
54
  generateToken,
@@ -87,6 +72,11 @@ import {
87
72
  import {
88
73
  clipboardTool
89
74
  } from "./chunk-MGFBLVR7.js";
75
+ import "./chunk-6HGMRR4J.js";
76
+ import "./chunk-DTISLIMB.js";
77
+ import "./chunk-3AWAWRWB.js";
78
+ import "./chunk-PBOCSGNL.js";
79
+ import "./chunk-7BNFELEK.js";
90
80
  import {
91
81
  generateEncryptionKey,
92
82
  getRotationInfo,
@@ -103,38 +93,65 @@ import {
103
93
  recordBeat,
104
94
  registerService
105
95
  } from "./chunk-SAX5MHK4.js";
106
- import "./chunk-6PMVAAA7.js";
107
- import "./chunk-MQJ2ECQT.js";
108
- import "./chunk-TVEWKIK3.js";
109
- import "./chunk-BRBWNV65.js";
110
- import "./chunk-H5RQOFO2.js";
111
- import "./chunk-VRD5CYRL.js";
96
+ import {
97
+ changeCase,
98
+ countText,
99
+ detectLanguage,
100
+ extractKeywords,
101
+ transformText
102
+ } from "./chunk-PTGTGXV2.js";
103
+ import {
104
+ diffJson,
105
+ flattenJson,
106
+ formatJson,
107
+ jsonTool,
108
+ queryJson,
109
+ validateJson
110
+ } from "./chunk-F3TTNID2.js";
111
+ import {
112
+ cronTool,
113
+ explainCron,
114
+ getNextRuns,
115
+ validateCron
116
+ } from "./chunk-APHSRMBS.js";
117
+ import "./chunk-CUPEENUY.js";
118
+ import "./chunk-2WTKTG2C.js";
119
+ import "./chunk-U2X2J3FI.js";
120
+ import "./chunk-X6Q3K3L2.js";
121
+ import "./chunk-ODCFS5WD.js";
112
122
  import "./chunk-KM22GV7G.js";
113
123
  import "./chunk-P6QINGFL.js";
114
- import "./chunk-HN3F4WSW.js";
115
- import "./chunk-SVAPX2XN.js";
116
- import "./chunk-WRAKK6K6.js";
124
+ import "./chunk-HJSEEFO3.js";
125
+ import "./chunk-C6PELIHS.js";
117
126
  import "./chunk-7WQO5J2M.js";
127
+ import "./chunk-WMFYI7XC.js";
128
+ import "./chunk-YEDEAX6Y.js";
129
+ import "./chunk-6ZNCY2GI.js";
130
+ import "./chunk-WZAH34TG.js";
131
+ import "./chunk-6KONMXQ6.js";
132
+ import "./chunk-22VGGA7S.js";
133
+ import "./chunk-HN3F4WSW.js";
134
+ import "./chunk-V3OKHQUX.js";
135
+ import "./chunk-2I5QHYG6.js";
136
+ import "./chunk-CZTMGHUC.js";
137
+ import "./chunk-4WH6MFEW.js";
118
138
  import {
119
139
  initializeProviders
120
- } from "./chunk-BXZ6EA52.js";
121
- import "./chunk-4GLYY4NN.js";
122
- import "./chunk-EVE7MIIY.js";
123
- import "./chunk-RZ4YESBG.js";
140
+ } from "./chunk-GW6V4D43.js";
141
+ import "./chunk-DOYGMNMK.js";
124
142
  import "./chunk-CQ4JURG7.js";
125
- import "./chunk-OCVQGBJK.js";
143
+ import "./chunk-BBN4VCNK.js";
126
144
  import {
127
145
  db
128
- } from "./chunk-XKYRH4FM.js";
146
+ } from "./chunk-5BTVJR7R.js";
129
147
  import {
130
148
  configure,
131
149
  env,
132
150
  ready
133
- } from "./chunk-ZLZKF2PM.js";
134
- import "./chunk-6KONMXQ6.js";
135
- import "./chunk-22VGGA7S.js";
151
+ } from "./chunk-4KIHDIXZ.js";
152
+ import "./chunk-ZIBRVA3Y.js";
136
153
  import "./chunk-35WYTA3C.js";
137
- import "./chunk-PLDDJCW6.js";
154
+ import "./chunk-UP2VWCW5.js";
138
155
 
139
156
  // src/app.ts
140
157
  var OpenSentinel = class {
@@ -152,7 +169,7 @@ var OpenSentinel = class {
152
169
  if (this._running) return;
153
170
  const services = this.config.services || {};
154
171
  if (services.telegram && env.TELEGRAM_BOT_TOKEN) {
155
- const { createBot: createBot2 } = await import("./bot-QRARP4UN.js");
172
+ const { createBot: createBot2 } = await import("./bot-VDHBGUVI.js");
156
173
  this._services.telegramBot = createBot2();
157
174
  this._services.telegramBot.start({
158
175
  onStart: (botInfo) => {
@@ -162,7 +179,7 @@ var OpenSentinel = class {
162
179
  }
163
180
  if (services.scheduler) {
164
181
  try {
165
- const { startWorker } = await import("./scheduler-VK4WFERV.js");
182
+ const { startWorker } = await import("./scheduler-6PLLAQI7.js");
166
183
  startWorker(async (task) => {
167
184
  console.log(`[Scheduler] Executing task: ${task.type}`);
168
185
  if (task.chatId && task.message && this._services.telegramBot) {
@@ -182,8 +199,8 @@ var OpenSentinel = class {
182
199
  }
183
200
  if (services.mcp !== false && env.MCP_ENABLED) {
184
201
  try {
185
- const { initMCPRegistry, getMCPToolSummary } = await import("./mcp-3JI6W7ZE.js");
186
- const { setMCPRegistry } = await import("./tools-2RLEI2N6.js");
202
+ const { initMCPRegistry, getMCPToolSummary } = await import("./mcp-DJ2QDA6A.js");
203
+ const { setMCPRegistry } = await import("./tools-PJZ6RI4P.js");
187
204
  this._services.mcpRegistry = await initMCPRegistry(env.MCP_CONFIG_PATH);
188
205
  setMCPRegistry(this._services.mcpRegistry);
189
206
  if (this._services.mcpRegistry.connectedCount > 0) {
@@ -199,7 +216,7 @@ var OpenSentinel = class {
199
216
  }
200
217
  if (services.discord && env.DISCORD_BOT_TOKEN) {
201
218
  try {
202
- const { DiscordBot: DiscordBot2 } = await import("./discord-B3HUPGQ6.js");
219
+ const { DiscordBot: DiscordBot2 } = await import("./discord-6UQHCN27.js");
203
220
  this._services.discordBot = new DiscordBot2({
204
221
  token: env.DISCORD_BOT_TOKEN,
205
222
  clientId: env.DISCORD_CLIENT_ID || "",
@@ -216,7 +233,7 @@ var OpenSentinel = class {
216
233
  }
217
234
  if (services.slack && env.SLACK_BOT_TOKEN && env.SLACK_SIGNING_SECRET) {
218
235
  try {
219
- const { SlackBot: SlackBot2 } = await import("./slack-IZQWIKOH.js");
236
+ const { SlackBot: SlackBot2 } = await import("./slack-KSS6YK5Z.js");
220
237
  this._services.slackBot = new SlackBot2({
221
238
  token: env.SLACK_BOT_TOKEN,
222
239
  signingSecret: env.SLACK_SIGNING_SECRET,
@@ -235,7 +252,7 @@ var OpenSentinel = class {
235
252
  }
236
253
  if (services.whatsapp && env.WHATSAPP_ENABLED) {
237
254
  try {
238
- const { WhatsAppBot: WhatsAppBot2 } = await import("./whatsapp-LFX6YKCM.js");
255
+ const { WhatsAppBot: WhatsAppBot2 } = await import("./whatsapp-DWXK25V2.js");
239
256
  this._services.whatsappBot = new WhatsAppBot2({
240
257
  authDir: env.WHATSAPP_AUTH_DIR,
241
258
  allowedNumbers: env.WHATSAPP_ALLOWED_NUMBERS?.split(",").filter(Boolean) || [],
@@ -250,7 +267,7 @@ var OpenSentinel = class {
250
267
  }
251
268
  if (services.signal && env.SIGNAL_ENABLED && env.SIGNAL_PHONE_NUMBER) {
252
269
  try {
253
- const { SignalBot: SignalBot2 } = await import("./signal-6CGDFYL2.js");
270
+ const { SignalBot: SignalBot2 } = await import("./signal-7D5EPGVL.js");
254
271
  this._services.signalBot = new SignalBot2({
255
272
  phoneNumber: env.SIGNAL_PHONE_NUMBER,
256
273
  signalCliPath: env.SIGNAL_CLI_PATH,
@@ -265,7 +282,7 @@ var OpenSentinel = class {
265
282
  }
266
283
  if (services.imessage && env.IMESSAGE_ENABLED) {
267
284
  try {
268
- const { iMessageBot: iMessageBot2 } = await import("./imessage-NGA2XF2V.js");
285
+ const { iMessageBot: iMessageBot2 } = await import("./imessage-DSGSGUZS.js");
269
286
  this._services.imessageBot = new iMessageBot2({
270
287
  mode: env.IMESSAGE_MODE,
271
288
  serverUrl: env.IMESSAGE_BLUEBUBBLES_URL,
@@ -284,7 +301,7 @@ var OpenSentinel = class {
284
301
  async stop() {
285
302
  if (!this._running) return;
286
303
  console.log("Shutting down OpenSentinel...");
287
- const { stopWorker } = await import("./scheduler-VK4WFERV.js");
304
+ const { stopWorker } = await import("./scheduler-6PLLAQI7.js");
288
305
  stopWorker();
289
306
  if (this._services.mcpRegistry) {
290
307
  await this._services.mcpRegistry.shutdown();
package/dist/lib.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/app.ts"],"sourcesContent":["/**\n * OpenSentinel - Programmatic API\n *\n * Usage:\n * import { OpenSentinel } from 'opensentinel';\n *\n * const sentinel = new OpenSentinel({\n * claudeApiKey: 'sk-ant-...',\n * env: { DATABASE_URL: 'postgresql://...', TELEGRAM_BOT_TOKEN: '...' },\n * services: { telegram: true, api: true },\n * });\n *\n * await sentinel.start();\n */\n\nimport { configure, env, type Env } from \"./config/env\";\nimport { chat, chatWithTools, type Message, type BrainResponse } from \"./core/brain\";\n\nexport interface OpenSentinelConfig {\n /** Required: your Claude API key */\n claudeApiKey: string;\n /** All other env vars as optional overrides */\n env?: Partial<Env>;\n /** Which services to start (all default to false except api) */\n services?: {\n telegram?: boolean;\n discord?: boolean;\n slack?: boolean;\n whatsapp?: boolean;\n signal?: boolean;\n imessage?: boolean;\n api?: boolean;\n scheduler?: boolean;\n mcp?: boolean;\n websocket?: boolean;\n };\n}\n\nexport class OpenSentinel {\n private config: OpenSentinelConfig;\n private _running = false;\n private _services: {\n telegramBot?: any;\n discordBot?: any;\n slackBot?: any;\n whatsappBot?: any;\n signalBot?: any;\n imessageBot?: any;\n mcpRegistry?: any;\n server?: any;\n } = {};\n\n constructor(config: OpenSentinelConfig) {\n this.config = config;\n\n // Configure the env singleton\n configure({\n CLAUDE_API_KEY: config.claudeApiKey,\n ...(config.env || {}),\n } as Partial<Env> & { CLAUDE_API_KEY: string });\n }\n\n async start(): Promise<void> {\n if (this._running) return;\n\n const services = this.config.services || {};\n\n // Start Telegram bot\n if (services.telegram && env.TELEGRAM_BOT_TOKEN) {\n const { createBot } = await import(\"./inputs/telegram/bot\");\n this._services.telegramBot = createBot();\n this._services.telegramBot.start({\n onStart: (botInfo: any) => {\n console.log(`[Telegram] Bot started as @${botInfo.username}`);\n },\n });\n }\n\n // Start scheduler\n if (services.scheduler) {\n try {\n const { startWorker } = await import(\"./core/scheduler\");\n startWorker(async (task: any) => {\n console.log(`[Scheduler] Executing task: ${task.type}`);\n if (task.chatId && task.message && this._services.telegramBot) {\n try {\n await this._services.telegramBot.api.sendMessage(\n task.chatId,\n `Reminder: ${task.message}`\n );\n } catch (err) {\n console.error(\"[Scheduler] Failed to send reminder:\", err);\n }\n }\n });\n } catch (err) {\n console.warn(\"[Scheduler] Could not start worker:\", err);\n }\n }\n\n // Initialize MCP\n if (services.mcp !== false && env.MCP_ENABLED) {\n try {\n const { initMCPRegistry, getMCPToolSummary } = await import(\"./core/mcp\");\n const { setMCPRegistry } = await import(\"./tools\");\n this._services.mcpRegistry = await initMCPRegistry(env.MCP_CONFIG_PATH);\n setMCPRegistry(this._services.mcpRegistry);\n\n if (this._services.mcpRegistry.connectedCount > 0) {\n console.log(\n `[MCP] Connected to ${this._services.mcpRegistry.connectedCount} server(s), ${this._services.mcpRegistry.totalToolCount} tools available`\n );\n console.log(getMCPToolSummary(this._services.mcpRegistry));\n }\n } catch (err) {\n console.warn(\"[MCP] Failed to initialize:\", err);\n this._services.mcpRegistry = null;\n }\n }\n\n // Start Discord bot\n if (services.discord && env.DISCORD_BOT_TOKEN) {\n try {\n const { DiscordBot } = await import(\"./inputs/discord\");\n this._services.discordBot = new DiscordBot({\n token: env.DISCORD_BOT_TOKEN,\n clientId: env.DISCORD_CLIENT_ID || \"\",\n guildId: env.DISCORD_GUILD_ID,\n allowedUserIds: env.DISCORD_ALLOWED_USER_IDS?.split(\",\") || [],\n allowedRoleIds: env.DISCORD_ALLOWED_ROLE_IDS?.split(\",\") || [],\n });\n await this._services.discordBot.start();\n console.log(\"[Discord] Bot started\");\n } catch (err: any) {\n console.warn(\"[Discord] Failed to start bot:\", err.message);\n this._services.discordBot = null;\n }\n }\n\n // Start Slack bot\n if (services.slack && env.SLACK_BOT_TOKEN && env.SLACK_SIGNING_SECRET) {\n try {\n const { SlackBot } = await import(\"./inputs/slack\");\n this._services.slackBot = new SlackBot({\n token: env.SLACK_BOT_TOKEN,\n signingSecret: env.SLACK_SIGNING_SECRET,\n appToken: env.SLACK_APP_TOKEN,\n socketMode: env.SLACK_SOCKET_MODE,\n port: parseInt(String(env.SLACK_PORT) || \"3000\"),\n allowedUserIds: env.SLACK_ALLOWED_USER_IDS?.split(\",\") || [],\n allowedChannelIds: env.SLACK_ALLOWED_CHANNEL_IDS?.split(\",\") || [],\n });\n await this._services.slackBot.start();\n console.log(\"[Slack] Bot started\");\n } catch (err: any) {\n console.warn(\"[Slack] Failed to start bot:\", err.message);\n this._services.slackBot = null;\n }\n }\n\n // Start WhatsApp bot\n if (services.whatsapp && env.WHATSAPP_ENABLED) {\n try {\n const { WhatsAppBot } = await import(\"./inputs/whatsapp\");\n this._services.whatsappBot = new WhatsAppBot({\n authDir: env.WHATSAPP_AUTH_DIR,\n allowedNumbers:\n env.WHATSAPP_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n printQR: true,\n });\n await this._services.whatsappBot.start();\n console.log(\"[WhatsApp] Bot started\");\n } catch (err: any) {\n console.warn(\"[WhatsApp] Failed to start bot:\", err.message);\n this._services.whatsappBot = null;\n }\n }\n\n // Start Signal bot\n if (services.signal && env.SIGNAL_ENABLED && env.SIGNAL_PHONE_NUMBER) {\n try {\n const { SignalBot } = await import(\"./inputs/signal\");\n this._services.signalBot = new SignalBot({\n phoneNumber: env.SIGNAL_PHONE_NUMBER,\n signalCliPath: env.SIGNAL_CLI_PATH,\n allowedNumbers:\n env.SIGNAL_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n });\n await this._services.signalBot.start();\n console.log(\"[Signal] Bot started\");\n } catch (err: any) {\n console.warn(\"[Signal] Failed to start bot:\", err.message);\n this._services.signalBot = null;\n }\n }\n\n // Start iMessage bot\n if (services.imessage && env.IMESSAGE_ENABLED) {\n try {\n const { iMessageBot } = await import(\"./inputs/imessage\");\n this._services.imessageBot = new iMessageBot({\n mode: env.IMESSAGE_MODE as \"bluebubbles\" | \"applescript\",\n serverUrl: env.IMESSAGE_BLUEBUBBLES_URL,\n password: env.IMESSAGE_BLUEBUBBLES_PASSWORD,\n allowedNumbers:\n env.IMESSAGE_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n });\n await this._services.imessageBot.start();\n console.log(\"[iMessage] Bot started\");\n } catch (err: any) {\n console.warn(\"[iMessage] Failed to start bot:\", err.message);\n this._services.imessageBot = null;\n }\n }\n\n this._running = true;\n }\n\n async stop(): Promise<void> {\n if (!this._running) return;\n\n console.log(\"Shutting down OpenSentinel...\");\n\n const { stopWorker } = await import(\"./core/scheduler\");\n stopWorker();\n\n if (this._services.mcpRegistry) {\n await this._services.mcpRegistry.shutdown();\n }\n if (this._services.telegramBot) {\n await this._services.telegramBot.stop();\n }\n if (this._services.discordBot) {\n await this._services.discordBot.stop();\n }\n if (this._services.slackBot) {\n await this._services.slackBot.stop();\n }\n if (this._services.whatsappBot) {\n await this._services.whatsappBot.stop();\n }\n if (this._services.signalBot) {\n await this._services.signalBot.stop();\n }\n if (this._services.imessageBot) {\n await this._services.imessageBot.stop();\n }\n if (this._services.server) {\n this._services.server.stop();\n }\n\n this._running = false;\n console.log(\"OpenSentinel stopped.\");\n }\n\n /** Send a simple chat message (no tools) */\n async chat(\n messages: Message[],\n systemPrompt?: string\n ): Promise<BrainResponse> {\n return chat(messages, systemPrompt);\n }\n\n /** Send a chat message with tool execution */\n async chatWithTools(\n messages: Message[],\n userId?: string,\n onToolUse?: (toolName: string, input: unknown) => void\n ): Promise<BrainResponse> {\n return chatWithTools(messages, userId, onToolUse);\n }\n\n get running(): boolean {\n return this._running;\n }\n\n get services() {\n return { ...this._services };\n }\n}\n"],"mappings":"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","names":["createBot","DiscordBot","SlackBot","WhatsAppBot","SignalBot","iMessageBot"]}
1
+ {"version":3,"sources":["../src/app.ts"],"sourcesContent":["/**\n * OpenSentinel - Programmatic API\n *\n * Usage:\n * import { OpenSentinel } from 'opensentinel';\n *\n * const sentinel = new OpenSentinel({\n * claudeApiKey: 'sk-ant-...',\n * env: { DATABASE_URL: 'postgresql://...', TELEGRAM_BOT_TOKEN: '...' },\n * services: { telegram: true, api: true },\n * });\n *\n * await sentinel.start();\n */\n\nimport { configure, env, type Env } from \"./config/env\";\nimport { chat, chatWithTools, type Message, type BrainResponse } from \"./core/brain\";\n\nexport interface OpenSentinelConfig {\n /** Required: your Claude API key */\n claudeApiKey: string;\n /** All other env vars as optional overrides */\n env?: Partial<Env>;\n /** Which services to start (all default to false except api) */\n services?: {\n telegram?: boolean;\n discord?: boolean;\n slack?: boolean;\n whatsapp?: boolean;\n signal?: boolean;\n imessage?: boolean;\n api?: boolean;\n scheduler?: boolean;\n mcp?: boolean;\n websocket?: boolean;\n };\n}\n\nexport class OpenSentinel {\n private config: OpenSentinelConfig;\n private _running = false;\n private _services: {\n telegramBot?: any;\n discordBot?: any;\n slackBot?: any;\n whatsappBot?: any;\n signalBot?: any;\n imessageBot?: any;\n mcpRegistry?: any;\n server?: any;\n } = {};\n\n constructor(config: OpenSentinelConfig) {\n this.config = config;\n\n // Configure the env singleton\n configure({\n CLAUDE_API_KEY: config.claudeApiKey,\n ...(config.env || {}),\n } as Partial<Env> & { CLAUDE_API_KEY: string });\n }\n\n async start(): Promise<void> {\n if (this._running) return;\n\n const services = this.config.services || {};\n\n // Start Telegram bot\n if (services.telegram && env.TELEGRAM_BOT_TOKEN) {\n const { createBot } = await import(\"./inputs/telegram/bot\");\n this._services.telegramBot = createBot();\n this._services.telegramBot.start({\n onStart: (botInfo: any) => {\n console.log(`[Telegram] Bot started as @${botInfo.username}`);\n },\n });\n }\n\n // Start scheduler\n if (services.scheduler) {\n try {\n const { startWorker } = await import(\"./core/scheduler\");\n startWorker(async (task: any) => {\n console.log(`[Scheduler] Executing task: ${task.type}`);\n if (task.chatId && task.message && this._services.telegramBot) {\n try {\n await this._services.telegramBot.api.sendMessage(\n task.chatId,\n `Reminder: ${task.message}`\n );\n } catch (err) {\n console.error(\"[Scheduler] Failed to send reminder:\", err);\n }\n }\n });\n } catch (err) {\n console.warn(\"[Scheduler] Could not start worker:\", err);\n }\n }\n\n // Initialize MCP\n if (services.mcp !== false && env.MCP_ENABLED) {\n try {\n const { initMCPRegistry, getMCPToolSummary } = await import(\"./core/mcp\");\n const { setMCPRegistry } = await import(\"./tools\");\n this._services.mcpRegistry = await initMCPRegistry(env.MCP_CONFIG_PATH);\n setMCPRegistry(this._services.mcpRegistry);\n\n if (this._services.mcpRegistry.connectedCount > 0) {\n console.log(\n `[MCP] Connected to ${this._services.mcpRegistry.connectedCount} server(s), ${this._services.mcpRegistry.totalToolCount} tools available`\n );\n console.log(getMCPToolSummary(this._services.mcpRegistry));\n }\n } catch (err) {\n console.warn(\"[MCP] Failed to initialize:\", err);\n this._services.mcpRegistry = null;\n }\n }\n\n // Start Discord bot\n if (services.discord && env.DISCORD_BOT_TOKEN) {\n try {\n const { DiscordBot } = await import(\"./inputs/discord\");\n this._services.discordBot = new DiscordBot({\n token: env.DISCORD_BOT_TOKEN,\n clientId: env.DISCORD_CLIENT_ID || \"\",\n guildId: env.DISCORD_GUILD_ID,\n allowedUserIds: env.DISCORD_ALLOWED_USER_IDS?.split(\",\") || [],\n allowedRoleIds: env.DISCORD_ALLOWED_ROLE_IDS?.split(\",\") || [],\n });\n await this._services.discordBot.start();\n console.log(\"[Discord] Bot started\");\n } catch (err: any) {\n console.warn(\"[Discord] Failed to start bot:\", err.message);\n this._services.discordBot = null;\n }\n }\n\n // Start Slack bot\n if (services.slack && env.SLACK_BOT_TOKEN && env.SLACK_SIGNING_SECRET) {\n try {\n const { SlackBot } = await import(\"./inputs/slack\");\n this._services.slackBot = new SlackBot({\n token: env.SLACK_BOT_TOKEN,\n signingSecret: env.SLACK_SIGNING_SECRET,\n appToken: env.SLACK_APP_TOKEN,\n socketMode: env.SLACK_SOCKET_MODE,\n port: parseInt(String(env.SLACK_PORT) || \"3000\"),\n allowedUserIds: env.SLACK_ALLOWED_USER_IDS?.split(\",\") || [],\n allowedChannelIds: env.SLACK_ALLOWED_CHANNEL_IDS?.split(\",\") || [],\n });\n await this._services.slackBot.start();\n console.log(\"[Slack] Bot started\");\n } catch (err: any) {\n console.warn(\"[Slack] Failed to start bot:\", err.message);\n this._services.slackBot = null;\n }\n }\n\n // Start WhatsApp bot\n if (services.whatsapp && env.WHATSAPP_ENABLED) {\n try {\n const { WhatsAppBot } = await import(\"./inputs/whatsapp\");\n this._services.whatsappBot = new WhatsAppBot({\n authDir: env.WHATSAPP_AUTH_DIR,\n allowedNumbers:\n env.WHATSAPP_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n printQR: true,\n });\n await this._services.whatsappBot.start();\n console.log(\"[WhatsApp] Bot started\");\n } catch (err: any) {\n console.warn(\"[WhatsApp] Failed to start bot:\", err.message);\n this._services.whatsappBot = null;\n }\n }\n\n // Start Signal bot\n if (services.signal && env.SIGNAL_ENABLED && env.SIGNAL_PHONE_NUMBER) {\n try {\n const { SignalBot } = await import(\"./inputs/signal\");\n this._services.signalBot = new SignalBot({\n phoneNumber: env.SIGNAL_PHONE_NUMBER,\n signalCliPath: env.SIGNAL_CLI_PATH,\n allowedNumbers:\n env.SIGNAL_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n });\n await this._services.signalBot.start();\n console.log(\"[Signal] Bot started\");\n } catch (err: any) {\n console.warn(\"[Signal] Failed to start bot:\", err.message);\n this._services.signalBot = null;\n }\n }\n\n // Start iMessage bot\n if (services.imessage && env.IMESSAGE_ENABLED) {\n try {\n const { iMessageBot } = await import(\"./inputs/imessage\");\n this._services.imessageBot = new iMessageBot({\n mode: env.IMESSAGE_MODE as \"bluebubbles\" | \"applescript\",\n serverUrl: env.IMESSAGE_BLUEBUBBLES_URL,\n password: env.IMESSAGE_BLUEBUBBLES_PASSWORD,\n allowedNumbers:\n env.IMESSAGE_ALLOWED_NUMBERS?.split(\",\").filter(Boolean) || [],\n });\n await this._services.imessageBot.start();\n console.log(\"[iMessage] Bot started\");\n } catch (err: any) {\n console.warn(\"[iMessage] Failed to start bot:\", err.message);\n this._services.imessageBot = null;\n }\n }\n\n this._running = true;\n }\n\n async stop(): Promise<void> {\n if (!this._running) return;\n\n console.log(\"Shutting down OpenSentinel...\");\n\n const { stopWorker } = await import(\"./core/scheduler\");\n stopWorker();\n\n if (this._services.mcpRegistry) {\n await this._services.mcpRegistry.shutdown();\n }\n if (this._services.telegramBot) {\n await this._services.telegramBot.stop();\n }\n if (this._services.discordBot) {\n await this._services.discordBot.stop();\n }\n if (this._services.slackBot) {\n await this._services.slackBot.stop();\n }\n if (this._services.whatsappBot) {\n await this._services.whatsappBot.stop();\n }\n if (this._services.signalBot) {\n await this._services.signalBot.stop();\n }\n if (this._services.imessageBot) {\n await this._services.imessageBot.stop();\n }\n if (this._services.server) {\n this._services.server.stop();\n }\n\n this._running = false;\n console.log(\"OpenSentinel stopped.\");\n }\n\n /** Send a simple chat message (no tools) */\n async chat(\n messages: Message[],\n systemPrompt?: string\n ): Promise<BrainResponse> {\n return chat(messages, systemPrompt);\n }\n\n /** Send a chat message with tool execution */\n async chatWithTools(\n messages: Message[],\n userId?: string,\n onToolUse?: (toolName: string, input: unknown) => void\n ): Promise<BrainResponse> {\n return chatWithTools(messages, userId, onToolUse);\n }\n\n get running(): boolean {\n return this._running;\n }\n\n get services() {\n return { ...this._services };\n }\n}\n"],"mappings":"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","names":["createBot","DiscordBot","SlackBot","WhatsAppBot","SignalBot","iMessageBot"]}
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  BaseAdapter
3
3
  } from "./chunk-7WQO5J2M.js";
4
- import "./chunk-PLDDJCW6.js";
4
+ import "./chunk-UP2VWCW5.js";
5
5
 
6
6
  // src/core/adapters/adapters/mailchimp.ts
7
7
  import { z } from "zod";
@@ -149,4 +149,4 @@ var MailchimpAdapter = class extends BaseAdapter {
149
149
  export {
150
150
  MailchimpAdapter
151
151
  };
152
- //# sourceMappingURL=mailchimp-KKNF6QJ7.js.map
152
+ //# sourceMappingURL=mailchimp-ZFYDC44J.js.map
@@ -1,31 +1,40 @@
1
1
  import {
2
2
  chatWithTools
3
- } from "./chunk-766ASQWE.js";
4
- import "./chunk-IZJMVV7O.js";
5
- import "./chunk-6PMVAAA7.js";
6
- import "./chunk-MQJ2ECQT.js";
7
- import "./chunk-TVEWKIK3.js";
8
- import "./chunk-BRBWNV65.js";
9
- import "./chunk-H5RQOFO2.js";
10
- import "./chunk-VRD5CYRL.js";
3
+ } from "./chunk-ZMML6T63.js";
4
+ import "./chunk-5JJTLWOR.js";
5
+ import "./chunk-QPY3WRVM.js";
6
+ import "./chunk-ADTDYJO7.js";
7
+ import "./chunk-DTISLIMB.js";
8
+ import "./chunk-CUPEENUY.js";
9
+ import "./chunk-2WTKTG2C.js";
10
+ import "./chunk-U2X2J3FI.js";
11
+ import "./chunk-X6Q3K3L2.js";
12
+ import "./chunk-ODCFS5WD.js";
11
13
  import "./chunk-KM22GV7G.js";
12
14
  import "./chunk-P6QINGFL.js";
13
- import "./chunk-HN3F4WSW.js";
14
- import "./chunk-SVAPX2XN.js";
15
- import "./chunk-WRAKK6K6.js";
15
+ import "./chunk-HJSEEFO3.js";
16
+ import "./chunk-C6PELIHS.js";
16
17
  import "./chunk-7WQO5J2M.js";
17
- import "./chunk-BXZ6EA52.js";
18
- import "./chunk-4GLYY4NN.js";
19
- import "./chunk-EVE7MIIY.js";
20
- import "./chunk-RZ4YESBG.js";
21
- import "./chunk-CQ4JURG7.js";
22
- import "./chunk-OCVQGBJK.js";
23
- import "./chunk-XKYRH4FM.js";
24
- import "./chunk-ZLZKF2PM.js";
18
+ import "./chunk-WMFYI7XC.js";
19
+ import "./chunk-YEDEAX6Y.js";
20
+ import "./chunk-6ZNCY2GI.js";
21
+ import "./chunk-WZAH34TG.js";
25
22
  import "./chunk-6KONMXQ6.js";
26
23
  import "./chunk-22VGGA7S.js";
24
+ import "./chunk-HN3F4WSW.js";
25
+ import "./chunk-V3OKHQUX.js";
26
+ import "./chunk-2I5QHYG6.js";
27
+ import "./chunk-CZTMGHUC.js";
28
+ import "./chunk-4WH6MFEW.js";
29
+ import "./chunk-GW6V4D43.js";
30
+ import "./chunk-DOYGMNMK.js";
31
+ import "./chunk-CQ4JURG7.js";
32
+ import "./chunk-BBN4VCNK.js";
33
+ import "./chunk-5BTVJR7R.js";
34
+ import "./chunk-4KIHDIXZ.js";
35
+ import "./chunk-ZIBRVA3Y.js";
27
36
  import "./chunk-35WYTA3C.js";
28
- import "./chunk-PLDDJCW6.js";
37
+ import "./chunk-UP2VWCW5.js";
29
38
 
30
39
  // src/inputs/matrix/index.ts
31
40
  import sdk from "matrix-js-sdk";
@@ -276,4 +285,4 @@ export {
276
285
  createMatrixBot,
277
286
  matrix_default as default
278
287
  };
279
- //# sourceMappingURL=matrix-QVHG76I7.js.map
288
+ //# sourceMappingURL=matrix-WYGEOZL5.js.map