opensentinel 2.1.1 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (268) hide show
  1. package/README.md +354 -283
  2. package/dist/archiver-AVNBYCKQ.js +15340 -0
  3. package/dist/archiver-AVNBYCKQ.js.map +1 -0
  4. package/dist/audit-logger-OBPR7CRO.js +22 -0
  5. package/dist/auth-UOX5K2BE.js +18 -0
  6. package/dist/autonomy-ZXDBDQUJ.js +86 -0
  7. package/dist/autonomy-ZXDBDQUJ.js.map +1 -0
  8. package/dist/aws-s3-Q4LLZZPD.js +146 -0
  9. package/dist/aws-s3-Q4LLZZPD.js.map +1 -0
  10. package/dist/backup-restore-PZ7CYYB7.js +16 -0
  11. package/dist/blocks-R3PODY47.js +23 -0
  12. package/dist/bot-QRARP4UN.js +36 -0
  13. package/dist/brain-7XLLM3KC.js +56 -0
  14. package/dist/camera-monitor-M5CYKUU4.js +335 -0
  15. package/dist/camera-monitor-M5CYKUU4.js.map +1 -0
  16. package/dist/{charts-MMXM6BWW.js → charts-V7ARZNKF.js} +2 -2
  17. package/dist/chunk-22VGGA7S.js +330 -0
  18. package/dist/chunk-22VGGA7S.js.map +1 -0
  19. package/dist/chunk-35WYTA3C.js +382 -0
  20. package/dist/chunk-35WYTA3C.js.map +1 -0
  21. package/dist/chunk-3E2PSU2C.js +146 -0
  22. package/dist/chunk-3E2PSU2C.js.map +1 -0
  23. package/dist/{chunk-L3F43VPB.js → chunk-4GLYY4NN.js} +2 -2
  24. package/dist/{chunk-L3F43VPB.js.map → chunk-4GLYY4NN.js.map} +1 -1
  25. package/dist/{chunk-L3PDU3XN.js → chunk-4UOE5TUZ.js} +4 -4
  26. package/dist/{chunk-6SNHU3CY.js → chunk-66OJ3WB4.js} +2 -2
  27. package/dist/chunk-6KONMXQ6.js +297 -0
  28. package/dist/chunk-6KONMXQ6.js.map +1 -0
  29. package/dist/chunk-6PMVAAA7.js +196 -0
  30. package/dist/chunk-6PMVAAA7.js.map +1 -0
  31. package/dist/chunk-766ASQWE.js +32620 -0
  32. package/dist/chunk-766ASQWE.js.map +1 -0
  33. package/dist/chunk-7WQO5J2M.js +29 -0
  34. package/dist/chunk-7WQO5J2M.js.map +1 -0
  35. package/dist/chunk-APHSRMBS.js +148 -0
  36. package/dist/chunk-APHSRMBS.js.map +1 -0
  37. package/dist/{chunk-4LVWXUNC.js → chunk-AYUKPTSM.js} +57 -39
  38. package/dist/chunk-AYUKPTSM.js.map +1 -0
  39. package/dist/chunk-BIPYADGB.js +84 -0
  40. package/dist/chunk-BIPYADGB.js.map +1 -0
  41. package/dist/chunk-BRBWNV65.js +457 -0
  42. package/dist/chunk-BRBWNV65.js.map +1 -0
  43. package/dist/chunk-BXZ6EA52.js +382 -0
  44. package/dist/chunk-BXZ6EA52.js.map +1 -0
  45. package/dist/chunk-EVE7MIIY.js +290 -0
  46. package/dist/chunk-EVE7MIIY.js.map +1 -0
  47. package/dist/chunk-F3TTNID2.js +138 -0
  48. package/dist/chunk-F3TTNID2.js.map +1 -0
  49. package/dist/chunk-H5RQOFO2.js +190 -0
  50. package/dist/chunk-H5RQOFO2.js.map +1 -0
  51. package/dist/chunk-HN3F4WSW.js +145 -0
  52. package/dist/chunk-HN3F4WSW.js.map +1 -0
  53. package/dist/{chunk-6DRDKB45.js → chunk-I6BDYQIG.js} +20 -9
  54. package/dist/chunk-I6BDYQIG.js.map +1 -0
  55. package/dist/chunk-IZJMVV7O.js +347 -0
  56. package/dist/chunk-IZJMVV7O.js.map +1 -0
  57. package/dist/chunk-KM22GV7G.js +211 -0
  58. package/dist/chunk-KM22GV7G.js.map +1 -0
  59. package/dist/chunk-MGFBLVR7.js +103 -0
  60. package/dist/chunk-MGFBLVR7.js.map +1 -0
  61. package/dist/chunk-MQJ2ECQT.js +228 -0
  62. package/dist/chunk-MQJ2ECQT.js.map +1 -0
  63. package/dist/{chunk-F6QUZQGI.js → chunk-MXAPLSJ5.js} +2 -2
  64. package/dist/{chunk-GK3E2I7A.js → chunk-NHMBTUMW.js} +2 -2
  65. package/dist/chunk-NPRTSZIF.js +131 -0
  66. package/dist/chunk-NPRTSZIF.js.map +1 -0
  67. package/dist/chunk-O7IH7JTI.js +1898 -0
  68. package/dist/chunk-O7IH7JTI.js.map +1 -0
  69. package/dist/chunk-OCVQGBJK.js +293 -0
  70. package/dist/chunk-OCVQGBJK.js.map +1 -0
  71. package/dist/chunk-P6QINGFL.js +332 -0
  72. package/dist/chunk-P6QINGFL.js.map +1 -0
  73. package/dist/chunk-PHDZKPNE.js +91 -0
  74. package/dist/chunk-PHDZKPNE.js.map +1 -0
  75. package/dist/chunk-PLDDJCW6.js +49 -0
  76. package/dist/chunk-PTGTGXV2.js +164 -0
  77. package/dist/chunk-PTGTGXV2.js.map +1 -0
  78. package/dist/chunk-REMIY4U2.js +171 -0
  79. package/dist/chunk-REMIY4U2.js.map +1 -0
  80. package/dist/chunk-RZ4YESBG.js +141 -0
  81. package/dist/chunk-RZ4YESBG.js.map +1 -0
  82. package/dist/chunk-SAX5MHK4.js +111 -0
  83. package/dist/chunk-SAX5MHK4.js.map +1 -0
  84. package/dist/{chunk-GVJVEWHI.js → chunk-SJSUSJ47.js} +2 -2
  85. package/dist/chunk-SPPMCAKG.js +777 -0
  86. package/dist/chunk-SPPMCAKG.js.map +1 -0
  87. package/dist/chunk-SVAPX2XN.js +2441 -0
  88. package/dist/chunk-SVAPX2XN.js.map +1 -0
  89. package/dist/chunk-TVEWKIK3.js +452 -0
  90. package/dist/chunk-TVEWKIK3.js.map +1 -0
  91. package/dist/{chunk-HH2HBTQM.js → chunk-TYAGMJNV.js} +5 -5
  92. package/dist/{chunk-JXUP2X7V.js → chunk-VEHFVBLI.js} +2 -2
  93. package/dist/chunk-VNX5GMTN.js +128 -0
  94. package/dist/chunk-VNX5GMTN.js.map +1 -0
  95. package/dist/chunk-VRD5CYRL.js +1568 -0
  96. package/dist/chunk-VRD5CYRL.js.map +1 -0
  97. package/dist/chunk-WLUHNG6X.js +122 -0
  98. package/dist/chunk-WLUHNG6X.js.map +1 -0
  99. package/dist/chunk-WRAKK6K6.js +265 -0
  100. package/dist/chunk-WRAKK6K6.js.map +1 -0
  101. package/dist/chunk-XKYRH4FM.js +681 -0
  102. package/dist/chunk-XKYRH4FM.js.map +1 -0
  103. package/dist/{chunk-GUBEEYDW.js → chunk-XMCVRVTF.js} +2 -2
  104. package/dist/{chunk-GUBEEYDW.js.map → chunk-XMCVRVTF.js.map} +1 -1
  105. package/dist/chunk-ZLZKF2PM.js +310 -0
  106. package/dist/chunk-ZLZKF2PM.js.map +1 -0
  107. package/dist/cli.js +5 -1
  108. package/dist/cli.js.map +1 -1
  109. package/dist/client-ZQSFPMOB.js +21 -0
  110. package/dist/clipboard-manager-TEO2GEDN.js +24 -0
  111. package/dist/commands/setup.js +3 -3
  112. package/dist/commands/setup.js.map +1 -1
  113. package/dist/commands/start.js +3 -3
  114. package/dist/commands/status.js +2 -2
  115. package/dist/commands/stop.js +2 -2
  116. package/dist/commands/utils.js +2 -2
  117. package/dist/cron-explain-HHQKPD3M.js +16 -0
  118. package/dist/crypto-4AP47IKC.js +14 -0
  119. package/dist/crypto-4AP47IKC.js.map +1 -0
  120. package/dist/databases-37X4CI2Y.js +21 -0
  121. package/dist/databases-37X4CI2Y.js.map +1 -0
  122. package/dist/discord-B3HUPGQ6.js +70 -0
  123. package/dist/discord-B3HUPGQ6.js.map +1 -0
  124. package/dist/dist-UISMLMFN.js +21847 -0
  125. package/dist/dist-UISMLMFN.js.map +1 -0
  126. package/dist/email-K7LO2IPB.js +268 -0
  127. package/dist/email-K7LO2IPB.js.map +1 -0
  128. package/dist/enhanced-retrieval-DNLLEM4Z.js +753 -0
  129. package/dist/enhanced-retrieval-DNLLEM4Z.js.map +1 -0
  130. package/dist/enrichment-pipeline-MNHNW65K.js +13 -0
  131. package/dist/enrichment-pipeline-MNHNW65K.js.map +1 -0
  132. package/dist/entity-resolution-Y3IUWEAT.js +24 -0
  133. package/dist/entity-resolution-Y3IUWEAT.js.map +1 -0
  134. package/dist/env-IWXUVTCB.js +12 -0
  135. package/dist/env-IWXUVTCB.js.map +1 -0
  136. package/dist/google-workspace-DKWUVNGC.js +169 -0
  137. package/dist/google-workspace-DKWUVNGC.js.map +1 -0
  138. package/dist/hash-tool-ULQYD7B5.js +22 -0
  139. package/dist/hash-tool-ULQYD7B5.js.map +1 -0
  140. package/dist/heartbeat-monitor-GCISLXI3.js +22 -0
  141. package/dist/heartbeat-monitor-GCISLXI3.js.map +1 -0
  142. package/dist/image-generation-OSU7FP6F.js +486 -0
  143. package/dist/image-generation-OSU7FP6F.js.map +1 -0
  144. package/dist/imessage-NGA2XF2V.js +35 -0
  145. package/dist/imessage-NGA2XF2V.js.map +1 -0
  146. package/dist/inbox-summarizer-NRI4S7IF.js +47 -0
  147. package/dist/inbox-summarizer-NRI4S7IF.js.map +1 -0
  148. package/dist/incident-response-C5J7Q6DT.js +244 -0
  149. package/dist/incident-response-C5J7Q6DT.js.map +1 -0
  150. package/dist/inventory-manager-352OHXWD.js +24 -0
  151. package/dist/inventory-manager-352OHXWD.js.map +1 -0
  152. package/dist/jira-GSGDBMIG.js +199 -0
  153. package/dist/jira-GSGDBMIG.js.map +1 -0
  154. package/dist/json-tool-QE2SYHEG.js +26 -0
  155. package/dist/json-tool-QE2SYHEG.js.map +1 -0
  156. package/dist/key-rotation-DPHU4ZTB.js +18 -0
  157. package/dist/key-rotation-DPHU4ZTB.js.map +1 -0
  158. package/dist/lib.d.ts +603 -11
  159. package/dist/lib.js +161 -35
  160. package/dist/lib.js.map +1 -1
  161. package/dist/mailchimp-KKNF6QJ7.js +152 -0
  162. package/dist/mailchimp-KKNF6QJ7.js.map +1 -0
  163. package/dist/matrix-QVHG76I7.js +279 -0
  164. package/dist/matrix-QVHG76I7.js.map +1 -0
  165. package/dist/{mcp-LS7Q3Z5W.js → mcp-3JI6W7ZE.js} +3 -3
  166. package/dist/mcp-3JI6W7ZE.js.map +1 -0
  167. package/dist/microsoft365-UCBKJHNX.js +164 -0
  168. package/dist/microsoft365-UCBKJHNX.js.map +1 -0
  169. package/dist/ocr-AC7NPX33.js +22 -0
  170. package/dist/ocr-AC7NPX33.js.map +1 -0
  171. package/dist/ollama-BOAMSPLJ.js +8 -0
  172. package/dist/ollama-BOAMSPLJ.js.map +1 -0
  173. package/dist/pages-MI523RB7.js +26 -0
  174. package/dist/pages-MI523RB7.js.map +1 -0
  175. package/dist/pair-JDFTERIK.js +24 -0
  176. package/dist/pair-JDFTERIK.js.map +1 -0
  177. package/dist/pairing-IFQYCPNS.js +10 -0
  178. package/dist/pairing-IFQYCPNS.js.map +1 -0
  179. package/dist/pdf-ALQVOEJR.js +17 -0
  180. package/dist/pdf-ALQVOEJR.js.map +1 -0
  181. package/dist/presentations-DSV5IHG5.js +1002 -0
  182. package/dist/presentations-DSV5IHG5.js.map +1 -0
  183. package/dist/prometheus-JNT2BD4L.js +10 -0
  184. package/dist/prometheus-JNT2BD4L.js.map +1 -0
  185. package/dist/providers-J4LYPHDR.js +19 -0
  186. package/dist/providers-J4LYPHDR.js.map +1 -0
  187. package/dist/qr-code-WIX4PB4U.js +16 -0
  188. package/dist/qr-code-WIX4PB4U.js.map +1 -0
  189. package/dist/quickbooks-XB4NII2S.js +190 -0
  190. package/dist/quickbooks-XB4NII2S.js.map +1 -0
  191. package/dist/regex-tool-W4ABRKGK.js +24 -0
  192. package/dist/regex-tool-W4ABRKGK.js.map +1 -0
  193. package/dist/scheduler-VK4WFERV.js +63 -0
  194. package/dist/scheduler-VK4WFERV.js.map +1 -0
  195. package/dist/search-BCLBO5E3.js +25 -0
  196. package/dist/search-BCLBO5E3.js.map +1 -0
  197. package/dist/sendgrid-RNXCAFKM.js +152 -0
  198. package/dist/sendgrid-RNXCAFKM.js.map +1 -0
  199. package/dist/shopify-NCXYJB4R.js +171 -0
  200. package/dist/shopify-NCXYJB4R.js.map +1 -0
  201. package/dist/signal-6CGDFYL2.js +35 -0
  202. package/dist/signal-6CGDFYL2.js.map +1 -0
  203. package/dist/slack-IZQWIKOH.js +75 -0
  204. package/dist/slack-IZQWIKOH.js.map +1 -0
  205. package/dist/sms-M3JIOTCW.js +23 -0
  206. package/dist/sms-M3JIOTCW.js.map +1 -0
  207. package/dist/{src-K7GASHRH.js → src-VYUE6LRA.js} +138 -32
  208. package/dist/src-VYUE6LRA.js.map +1 -0
  209. package/dist/stocks-XXWBPOCU.js +14 -0
  210. package/dist/stocks-XXWBPOCU.js.map +1 -0
  211. package/dist/text-transform-6SGUA5Z4.js +22 -0
  212. package/dist/text-transform-6SGUA5Z4.js.map +1 -0
  213. package/dist/tools-2RLEI2N6.js +38 -0
  214. package/dist/tools-2RLEI2N6.js.map +1 -0
  215. package/dist/tunnel-IWMXUML4.js +301 -0
  216. package/dist/tunnel-IWMXUML4.js.map +1 -0
  217. package/dist/twilio-53GEW5JT.js +139 -0
  218. package/dist/twilio-53GEW5JT.js.map +1 -0
  219. package/dist/unit-converter-ZYXMEZOE.js +14 -0
  220. package/dist/unit-converter-ZYXMEZOE.js.map +1 -0
  221. package/dist/whatsapp-LFX6YKCM.js +35 -0
  222. package/dist/whatsapp-LFX6YKCM.js.map +1 -0
  223. package/dist/word-document-7B6SJMAY.js +902 -0
  224. package/dist/word-document-7B6SJMAY.js.map +1 -0
  225. package/dist/xero-QYO66D45.js +162 -0
  226. package/dist/xero-QYO66D45.js.map +1 -0
  227. package/dist/zapier-webhook-TBZ5YF2A.js +106 -0
  228. package/dist/zapier-webhook-TBZ5YF2A.js.map +1 -0
  229. package/drizzle/0002_mushy_master_mold.sql +140 -0
  230. package/drizzle/meta/0002_snapshot.json +3637 -0
  231. package/drizzle/meta/_journal.json +7 -0
  232. package/package.json +100 -98
  233. package/dist/bot-KJ26BG56.js +0 -15
  234. package/dist/chunk-4LVWXUNC.js.map +0 -1
  235. package/dist/chunk-4TG2IG5K.js +0 -5249
  236. package/dist/chunk-4TG2IG5K.js.map +0 -1
  237. package/dist/chunk-6DRDKB45.js.map +0 -1
  238. package/dist/chunk-CI6Q63MM.js +0 -1613
  239. package/dist/chunk-CI6Q63MM.js.map +0 -1
  240. package/dist/chunk-KHNYJY2Z.js +0 -178
  241. package/dist/chunk-KHNYJY2Z.js.map +0 -1
  242. package/dist/chunk-NSBPE2FW.js +0 -17
  243. package/dist/discord-ZOJFTVTB.js +0 -49
  244. package/dist/imessage-JFRB6EJ7.js +0 -14
  245. package/dist/scheduler-EZ7CZMCS.js +0 -42
  246. package/dist/signal-T3MCSULM.js +0 -14
  247. package/dist/slack-N2M4FHAJ.js +0 -54
  248. package/dist/src-K7GASHRH.js.map +0 -1
  249. package/dist/tools-24GZHYRF.js +0 -16
  250. package/dist/whatsapp-VCRUPAO5.js +0 -14
  251. /package/dist/{bot-KJ26BG56.js.map → audit-logger-OBPR7CRO.js.map} +0 -0
  252. /package/dist/{chunk-NSBPE2FW.js.map → auth-UOX5K2BE.js.map} +0 -0
  253. /package/dist/{discord-ZOJFTVTB.js.map → backup-restore-PZ7CYYB7.js.map} +0 -0
  254. /package/dist/{imessage-JFRB6EJ7.js.map → blocks-R3PODY47.js.map} +0 -0
  255. /package/dist/{mcp-LS7Q3Z5W.js.map → bot-QRARP4UN.js.map} +0 -0
  256. /package/dist/{scheduler-EZ7CZMCS.js.map → brain-7XLLM3KC.js.map} +0 -0
  257. /package/dist/{charts-MMXM6BWW.js.map → charts-V7ARZNKF.js.map} +0 -0
  258. /package/dist/{chunk-L3PDU3XN.js.map → chunk-4UOE5TUZ.js.map} +0 -0
  259. /package/dist/{chunk-6SNHU3CY.js.map → chunk-66OJ3WB4.js.map} +0 -0
  260. /package/dist/{chunk-F6QUZQGI.js.map → chunk-MXAPLSJ5.js.map} +0 -0
  261. /package/dist/{chunk-GK3E2I7A.js.map → chunk-NHMBTUMW.js.map} +0 -0
  262. /package/dist/{signal-T3MCSULM.js.map → chunk-PLDDJCW6.js.map} +0 -0
  263. /package/dist/{chunk-GVJVEWHI.js.map → chunk-SJSUSJ47.js.map} +0 -0
  264. /package/dist/{chunk-HH2HBTQM.js.map → chunk-TYAGMJNV.js.map} +0 -0
  265. /package/dist/{chunk-JXUP2X7V.js.map → chunk-VEHFVBLI.js.map} +0 -0
  266. /package/dist/{slack-N2M4FHAJ.js.map → client-ZQSFPMOB.js.map} +0 -0
  267. /package/dist/{tools-24GZHYRF.js.map → clipboard-manager-TEO2GEDN.js.map} +0 -0
  268. /package/dist/{whatsapp-VCRUPAO5.js.map → cron-explain-HHQKPD3M.js.map} +0 -0
package/dist/lib.d.ts CHANGED
@@ -42,8 +42,18 @@ declare const envSchema: z.ZodObject<{
42
42
  EMAIL_USER: z.ZodOptional<z.ZodString>;
43
43
  EMAIL_PASSWORD: z.ZodOptional<z.ZodString>;
44
44
  EMAIL_PROVIDER: z.ZodOptional<z.ZodEnum<["gmail", "outlook", "yahoo", "custom"]>>;
45
+ EMAIL_MASTER_USER: z.ZodOptional<z.ZodString>;
46
+ EMAIL_MASTER_PASSWORD: z.ZodOptional<z.ZodString>;
47
+ EMAIL_LOCAL_IMAP_HOST: z.ZodDefault<z.ZodOptional<z.ZodString>>;
48
+ EMAIL_LOCAL_IMAP_PORT: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
49
+ EMAIL_LOCAL_SMTP_HOST: z.ZodDefault<z.ZodOptional<z.ZodString>>;
50
+ EMAIL_LOCAL_SMTP_PORT: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
45
51
  GITHUB_TOKEN: z.ZodOptional<z.ZodString>;
46
52
  GITHUB_WEBHOOK_SECRET: z.ZodOptional<z.ZodString>;
53
+ GOOGLE_CLIENT_ID: z.ZodOptional<z.ZodString>;
54
+ GOOGLE_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
55
+ GOOGLE_REDIRECT_URI: z.ZodOptional<z.ZodString>;
56
+ GOOGLE_REFRESH_TOKEN: z.ZodOptional<z.ZodString>;
47
57
  GOOGLE_DRIVE_CLIENT_ID: z.ZodOptional<z.ZodString>;
48
58
  GOOGLE_DRIVE_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
49
59
  GOOGLE_DRIVE_REDIRECT_URI: z.ZodOptional<z.ZodString>;
@@ -52,7 +62,19 @@ declare const envSchema: z.ZodObject<{
52
62
  DROPBOX_APP_SECRET: z.ZodOptional<z.ZodString>;
53
63
  DROPBOX_ACCESS_TOKEN: z.ZodOptional<z.ZodString>;
54
64
  DROPBOX_REFRESH_TOKEN: z.ZodOptional<z.ZodString>;
65
+ TENOR_API_KEY: z.ZodOptional<z.ZodString>;
66
+ GIPHY_API_KEY: z.ZodOptional<z.ZodString>;
55
67
  ALPHA_VANTAGE_API_KEY: z.ZodOptional<z.ZodString>;
68
+ COINBASE_API_KEY: z.ZodOptional<z.ZodString>;
69
+ COINBASE_PRIVATE_KEY: z.ZodOptional<z.ZodString>;
70
+ BINANCE_API_KEY: z.ZodOptional<z.ZodString>;
71
+ BINANCE_API_SECRET: z.ZodOptional<z.ZodString>;
72
+ BINANCE_TESTNET: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
73
+ EXCHANGE_REQUIRE_CONFIRMATION: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
74
+ DEFILLAMA_API_KEY: z.ZodOptional<z.ZodString>;
75
+ ETHERSCAN_API_KEY: z.ZodOptional<z.ZodString>;
76
+ ALCHEMY_API_KEY: z.ZodOptional<z.ZodString>;
77
+ ALCHEMY_NETWORK: z.ZodDefault<z.ZodOptional<z.ZodString>>;
56
78
  HUGGINGFACE_ACCESS_TOKEN: z.ZodOptional<z.ZodString>;
57
79
  TWILIO_ACCOUNT_SID: z.ZodOptional<z.ZodString>;
58
80
  TWILIO_AUTH_TOKEN: z.ZodOptional<z.ZodString>;
@@ -62,8 +84,46 @@ declare const envSchema: z.ZodObject<{
62
84
  SPOTIFY_CLIENT_ID: z.ZodOptional<z.ZodString>;
63
85
  SPOTIFY_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
64
86
  SPOTIFY_REDIRECT_URI: z.ZodOptional<z.ZodString>;
87
+ SPOTIFY_REFRESH_TOKEN: z.ZodOptional<z.ZodString>;
88
+ GOOGLE_CALENDAR_CLIENT_ID: z.ZodOptional<z.ZodString>;
89
+ GOOGLE_CALENDAR_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
90
+ GOOGLE_CALENDAR_REDIRECT_URI: z.ZodOptional<z.ZodString>;
91
+ GOOGLE_CALENDAR_REFRESH_TOKEN: z.ZodOptional<z.ZodString>;
92
+ OUTLOOK_CLIENT_ID: z.ZodOptional<z.ZodString>;
93
+ OUTLOOK_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
94
+ OUTLOOK_REDIRECT_URI: z.ZodOptional<z.ZodString>;
95
+ OUTLOOK_REFRESH_TOKEN: z.ZodOptional<z.ZodString>;
96
+ DROPBOX_CLIENT_ID: z.ZodOptional<z.ZodString>;
97
+ DROPBOX_CLIENT_SECRET: z.ZodOptional<z.ZodString>;
98
+ DROPBOX_REDIRECT_URI: z.ZodOptional<z.ZodString>;
65
99
  MCP_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
66
100
  MCP_CONFIG_PATH: z.ZodDefault<z.ZodOptional<z.ZodString>>;
101
+ LLM_PROVIDER: z.ZodDefault<z.ZodOptional<z.ZodString>>;
102
+ OPENROUTER_API_KEY: z.ZodOptional<z.ZodString>;
103
+ OPENROUTER_BASE_URL: z.ZodOptional<z.ZodString>;
104
+ GROQ_API_KEY: z.ZodOptional<z.ZodString>;
105
+ MISTRAL_API_KEY: z.ZodOptional<z.ZodString>;
106
+ OPENAI_LLM_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
107
+ OPENAI_COMPATIBLE_API_KEY: z.ZodOptional<z.ZodString>;
108
+ OPENAI_COMPATIBLE_BASE_URL: z.ZodOptional<z.ZodString>;
109
+ OPENAI_COMPATIBLE_MODEL: z.ZodOptional<z.ZodString>;
110
+ OLLAMA_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
111
+ OLLAMA_BASE_URL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
112
+ OLLAMA_DEFAULT_MODEL: z.ZodDefault<z.ZodOptional<z.ZodString>>;
113
+ MODEL_ROUTING_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
114
+ MODEL_OPUS_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
115
+ COMPACTION_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
116
+ COMPACTION_TOKEN_THRESHOLD: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
117
+ COMPACTION_PRESERVE_RECENT: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
118
+ PROMPT_GUARD_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
119
+ PROMPT_GUARD_THRESHOLD: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
120
+ CIRCUIT_BREAKER_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
121
+ TOOL_SANDBOX_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
122
+ COST_TRACKING_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
123
+ QUALITY_SCORING_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
124
+ REQUEST_TRACING_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
125
+ LOCAL_INTENT_PARSER_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
126
+ UNIFIED_GATEWAY_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
67
127
  WHATSAPP_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
68
128
  WHATSAPP_AUTH_DIR: z.ZodDefault<z.ZodOptional<z.ZodString>>;
69
129
  WHATSAPP_ALLOWED_NUMBERS: z.ZodOptional<z.ZodString>;
@@ -76,6 +136,46 @@ declare const envSchema: z.ZodObject<{
76
136
  IMESSAGE_BLUEBUBBLES_URL: z.ZodOptional<z.ZodString>;
77
137
  IMESSAGE_BLUEBUBBLES_PASSWORD: z.ZodOptional<z.ZodString>;
78
138
  IMESSAGE_ALLOWED_NUMBERS: z.ZodOptional<z.ZodString>;
139
+ TUNNEL_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
140
+ TUNNEL_PROVIDER: z.ZodDefault<z.ZodOptional<z.ZodEnum<["cloudflare", "ngrok", "localtunnel"]>>>;
141
+ TUNNEL_SUBDOMAIN: z.ZodOptional<z.ZodString>;
142
+ TUNNEL_AUTH_TOKEN: z.ZodOptional<z.ZodString>;
143
+ AUTONOMY_LEVEL: z.ZodDefault<z.ZodOptional<z.ZodEnum<["readonly", "supervised", "autonomous"]>>>;
144
+ PROMETHEUS_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
145
+ PROMETHEUS_PATH: z.ZodDefault<z.ZodOptional<z.ZodString>>;
146
+ PAIRING_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
147
+ PAIRING_CODE_LIFETIME_MINUTES: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
148
+ GATEWAY_TOKEN: z.ZodOptional<z.ZodString>;
149
+ MATRIX_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
150
+ MATRIX_HOMESERVER_URL: z.ZodOptional<z.ZodString>;
151
+ MATRIX_ACCESS_TOKEN: z.ZodOptional<z.ZodString>;
152
+ MATRIX_USER_ID: z.ZodOptional<z.ZodString>;
153
+ MATRIX_ALLOWED_ROOM_IDS: z.ZodOptional<z.ZodString>;
154
+ MATRIX_AUTO_JOIN: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
155
+ MATRIX_E2E_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
156
+ NEO4J_URI: z.ZodDefault<z.ZodOptional<z.ZodString>>;
157
+ NEO4J_USER: z.ZodDefault<z.ZodOptional<z.ZodString>>;
158
+ NEO4J_PASSWORD: z.ZodDefault<z.ZodOptional<z.ZodString>>;
159
+ NEO4J_DATABASE: z.ZodDefault<z.ZodOptional<z.ZodString>>;
160
+ FEC_API_KEY: z.ZodDefault<z.ZodOptional<z.ZodString>>;
161
+ OPENCORPORATES_API_TOKEN: z.ZodDefault<z.ZodOptional<z.ZodString>>;
162
+ SEC_EDGAR_USER_AGENT: z.ZodDefault<z.ZodOptional<z.ZodString>>;
163
+ OSINT_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
164
+ OSINT_RATE_LIMIT_BUFFER_MS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
165
+ EMBEDDING_PROVIDER: z.ZodDefault<z.ZodOptional<z.ZodEnum<["openai", "huggingface", "tfidf"]>>>;
166
+ EMBEDDING_MODEL: z.ZodOptional<z.ZodString>;
167
+ EMBEDDING_DIMENSIONS: z.ZodOptional<z.ZodNumber>;
168
+ EMBEDDING_DB_DIMENSIONS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
169
+ EMBEDDING_BATCH_SIZE: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
170
+ HYDE_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
171
+ RERANK_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
172
+ RERANK_MIN_SCORE: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
173
+ MULTISTEP_RAG_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
174
+ MULTISTEP_MAX_STEPS: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
175
+ RETRIEVAL_CACHE_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
176
+ CONTEXTUAL_QUERY_ENABLED: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
177
+ ENCRYPTION_MASTER_KEY: z.ZodOptional<z.ZodString>;
178
+ AUDIT_SIGNING_KEY: z.ZodOptional<z.ZodString>;
79
179
  PORT: z.ZodDefault<z.ZodNumber>;
80
180
  NODE_ENV: z.ZodDefault<z.ZodEnum<["development", "production", "test"]>>;
81
181
  }, "strip", z.ZodTypeAny, {
@@ -93,14 +193,69 @@ declare const envSchema: z.ZodObject<{
93
193
  EMAIL_IMAP_SECURE: boolean;
94
194
  EMAIL_SMTP_PORT: number;
95
195
  EMAIL_SMTP_SECURE: boolean;
196
+ EMAIL_LOCAL_IMAP_HOST: string;
197
+ EMAIL_LOCAL_IMAP_PORT: number;
198
+ EMAIL_LOCAL_SMTP_HOST: string;
199
+ EMAIL_LOCAL_SMTP_PORT: number;
200
+ BINANCE_TESTNET: boolean;
201
+ EXCHANGE_REQUIRE_CONFIRMATION: boolean;
202
+ ALCHEMY_NETWORK: string;
96
203
  MCP_ENABLED: boolean;
97
204
  MCP_CONFIG_PATH: string;
205
+ LLM_PROVIDER: string;
206
+ OPENAI_LLM_ENABLED: boolean;
207
+ OLLAMA_ENABLED: boolean;
208
+ OLLAMA_BASE_URL: string;
209
+ OLLAMA_DEFAULT_MODEL: string;
210
+ MODEL_ROUTING_ENABLED: boolean;
211
+ MODEL_OPUS_ENABLED: boolean;
212
+ COMPACTION_ENABLED: boolean;
213
+ COMPACTION_TOKEN_THRESHOLD: number;
214
+ COMPACTION_PRESERVE_RECENT: number;
215
+ PROMPT_GUARD_ENABLED: boolean;
216
+ PROMPT_GUARD_THRESHOLD: number;
217
+ CIRCUIT_BREAKER_ENABLED: boolean;
218
+ TOOL_SANDBOX_ENABLED: boolean;
219
+ COST_TRACKING_ENABLED: boolean;
220
+ QUALITY_SCORING_ENABLED: boolean;
221
+ REQUEST_TRACING_ENABLED: boolean;
222
+ LOCAL_INTENT_PARSER_ENABLED: boolean;
223
+ UNIFIED_GATEWAY_ENABLED: boolean;
98
224
  WHATSAPP_ENABLED: boolean;
99
225
  WHATSAPP_AUTH_DIR: string;
100
226
  SIGNAL_ENABLED: boolean;
101
227
  SIGNAL_CLI_PATH: string;
102
228
  IMESSAGE_ENABLED: boolean;
103
229
  IMESSAGE_MODE: "bluebubbles" | "applescript";
230
+ TUNNEL_ENABLED: boolean;
231
+ TUNNEL_PROVIDER: "cloudflare" | "ngrok" | "localtunnel";
232
+ AUTONOMY_LEVEL: "readonly" | "supervised" | "autonomous";
233
+ PROMETHEUS_ENABLED: boolean;
234
+ PROMETHEUS_PATH: string;
235
+ PAIRING_ENABLED: boolean;
236
+ PAIRING_CODE_LIFETIME_MINUTES: number;
237
+ MATRIX_ENABLED: boolean;
238
+ MATRIX_AUTO_JOIN: boolean;
239
+ MATRIX_E2E_ENABLED: boolean;
240
+ NEO4J_URI: string;
241
+ NEO4J_USER: string;
242
+ NEO4J_PASSWORD: string;
243
+ NEO4J_DATABASE: string;
244
+ FEC_API_KEY: string;
245
+ OPENCORPORATES_API_TOKEN: string;
246
+ SEC_EDGAR_USER_AGENT: string;
247
+ OSINT_ENABLED: boolean;
248
+ OSINT_RATE_LIMIT_BUFFER_MS: number;
249
+ EMBEDDING_PROVIDER: "openai" | "huggingface" | "tfidf";
250
+ EMBEDDING_DB_DIMENSIONS: number;
251
+ EMBEDDING_BATCH_SIZE: number;
252
+ HYDE_ENABLED: boolean;
253
+ RERANK_ENABLED: boolean;
254
+ RERANK_MIN_SCORE: number;
255
+ MULTISTEP_RAG_ENABLED: boolean;
256
+ MULTISTEP_MAX_STEPS: number;
257
+ RETRIEVAL_CACHE_ENABLED: boolean;
258
+ CONTEXTUAL_QUERY_ENABLED: boolean;
104
259
  PORT: number;
105
260
  NODE_ENV: "development" | "production" | "test";
106
261
  DISCORD_BOT_TOKEN?: string | undefined;
@@ -120,8 +275,14 @@ declare const envSchema: z.ZodObject<{
120
275
  EMAIL_USER?: string | undefined;
121
276
  EMAIL_PASSWORD?: string | undefined;
122
277
  EMAIL_PROVIDER?: "gmail" | "outlook" | "yahoo" | "custom" | undefined;
278
+ EMAIL_MASTER_USER?: string | undefined;
279
+ EMAIL_MASTER_PASSWORD?: string | undefined;
123
280
  GITHUB_TOKEN?: string | undefined;
124
281
  GITHUB_WEBHOOK_SECRET?: string | undefined;
282
+ GOOGLE_CLIENT_ID?: string | undefined;
283
+ GOOGLE_CLIENT_SECRET?: string | undefined;
284
+ GOOGLE_REDIRECT_URI?: string | undefined;
285
+ GOOGLE_REFRESH_TOKEN?: string | undefined;
125
286
  GOOGLE_DRIVE_CLIENT_ID?: string | undefined;
126
287
  GOOGLE_DRIVE_CLIENT_SECRET?: string | undefined;
127
288
  GOOGLE_DRIVE_REDIRECT_URI?: string | undefined;
@@ -130,7 +291,16 @@ declare const envSchema: z.ZodObject<{
130
291
  DROPBOX_APP_SECRET?: string | undefined;
131
292
  DROPBOX_ACCESS_TOKEN?: string | undefined;
132
293
  DROPBOX_REFRESH_TOKEN?: string | undefined;
294
+ TENOR_API_KEY?: string | undefined;
295
+ GIPHY_API_KEY?: string | undefined;
133
296
  ALPHA_VANTAGE_API_KEY?: string | undefined;
297
+ COINBASE_API_KEY?: string | undefined;
298
+ COINBASE_PRIVATE_KEY?: string | undefined;
299
+ BINANCE_API_KEY?: string | undefined;
300
+ BINANCE_API_SECRET?: string | undefined;
301
+ DEFILLAMA_API_KEY?: string | undefined;
302
+ ETHERSCAN_API_KEY?: string | undefined;
303
+ ALCHEMY_API_KEY?: string | undefined;
134
304
  HUGGINGFACE_ACCESS_TOKEN?: string | undefined;
135
305
  TWILIO_ACCOUNT_SID?: string | undefined;
136
306
  TWILIO_AUTH_TOKEN?: string | undefined;
@@ -140,12 +310,42 @@ declare const envSchema: z.ZodObject<{
140
310
  SPOTIFY_CLIENT_ID?: string | undefined;
141
311
  SPOTIFY_CLIENT_SECRET?: string | undefined;
142
312
  SPOTIFY_REDIRECT_URI?: string | undefined;
313
+ SPOTIFY_REFRESH_TOKEN?: string | undefined;
314
+ GOOGLE_CALENDAR_CLIENT_ID?: string | undefined;
315
+ GOOGLE_CALENDAR_CLIENT_SECRET?: string | undefined;
316
+ GOOGLE_CALENDAR_REDIRECT_URI?: string | undefined;
317
+ GOOGLE_CALENDAR_REFRESH_TOKEN?: string | undefined;
318
+ OUTLOOK_CLIENT_ID?: string | undefined;
319
+ OUTLOOK_CLIENT_SECRET?: string | undefined;
320
+ OUTLOOK_REDIRECT_URI?: string | undefined;
321
+ OUTLOOK_REFRESH_TOKEN?: string | undefined;
322
+ DROPBOX_CLIENT_ID?: string | undefined;
323
+ DROPBOX_CLIENT_SECRET?: string | undefined;
324
+ DROPBOX_REDIRECT_URI?: string | undefined;
325
+ OPENROUTER_API_KEY?: string | undefined;
326
+ OPENROUTER_BASE_URL?: string | undefined;
327
+ GROQ_API_KEY?: string | undefined;
328
+ MISTRAL_API_KEY?: string | undefined;
329
+ OPENAI_COMPATIBLE_API_KEY?: string | undefined;
330
+ OPENAI_COMPATIBLE_BASE_URL?: string | undefined;
331
+ OPENAI_COMPATIBLE_MODEL?: string | undefined;
143
332
  WHATSAPP_ALLOWED_NUMBERS?: string | undefined;
144
333
  SIGNAL_PHONE_NUMBER?: string | undefined;
145
334
  SIGNAL_ALLOWED_NUMBERS?: string | undefined;
146
335
  IMESSAGE_BLUEBUBBLES_URL?: string | undefined;
147
336
  IMESSAGE_BLUEBUBBLES_PASSWORD?: string | undefined;
148
337
  IMESSAGE_ALLOWED_NUMBERS?: string | undefined;
338
+ TUNNEL_SUBDOMAIN?: string | undefined;
339
+ TUNNEL_AUTH_TOKEN?: string | undefined;
340
+ GATEWAY_TOKEN?: string | undefined;
341
+ MATRIX_HOMESERVER_URL?: string | undefined;
342
+ MATRIX_ACCESS_TOKEN?: string | undefined;
343
+ MATRIX_USER_ID?: string | undefined;
344
+ MATRIX_ALLOWED_ROOM_IDS?: string | undefined;
345
+ EMBEDDING_MODEL?: string | undefined;
346
+ EMBEDDING_DIMENSIONS?: number | undefined;
347
+ ENCRYPTION_MASTER_KEY?: string | undefined;
348
+ AUDIT_SIGNING_KEY?: string | undefined;
149
349
  }, {
150
350
  CLAUDE_API_KEY: string;
151
351
  TELEGRAM_BOT_TOKEN?: string | undefined;
@@ -178,8 +378,18 @@ declare const envSchema: z.ZodObject<{
178
378
  EMAIL_USER?: string | undefined;
179
379
  EMAIL_PASSWORD?: string | undefined;
180
380
  EMAIL_PROVIDER?: "gmail" | "outlook" | "yahoo" | "custom" | undefined;
381
+ EMAIL_MASTER_USER?: string | undefined;
382
+ EMAIL_MASTER_PASSWORD?: string | undefined;
383
+ EMAIL_LOCAL_IMAP_HOST?: string | undefined;
384
+ EMAIL_LOCAL_IMAP_PORT?: number | undefined;
385
+ EMAIL_LOCAL_SMTP_HOST?: string | undefined;
386
+ EMAIL_LOCAL_SMTP_PORT?: number | undefined;
181
387
  GITHUB_TOKEN?: string | undefined;
182
388
  GITHUB_WEBHOOK_SECRET?: string | undefined;
389
+ GOOGLE_CLIENT_ID?: string | undefined;
390
+ GOOGLE_CLIENT_SECRET?: string | undefined;
391
+ GOOGLE_REDIRECT_URI?: string | undefined;
392
+ GOOGLE_REFRESH_TOKEN?: string | undefined;
183
393
  GOOGLE_DRIVE_CLIENT_ID?: string | undefined;
184
394
  GOOGLE_DRIVE_CLIENT_SECRET?: string | undefined;
185
395
  GOOGLE_DRIVE_REDIRECT_URI?: string | undefined;
@@ -188,7 +398,19 @@ declare const envSchema: z.ZodObject<{
188
398
  DROPBOX_APP_SECRET?: string | undefined;
189
399
  DROPBOX_ACCESS_TOKEN?: string | undefined;
190
400
  DROPBOX_REFRESH_TOKEN?: string | undefined;
401
+ TENOR_API_KEY?: string | undefined;
402
+ GIPHY_API_KEY?: string | undefined;
191
403
  ALPHA_VANTAGE_API_KEY?: string | undefined;
404
+ COINBASE_API_KEY?: string | undefined;
405
+ COINBASE_PRIVATE_KEY?: string | undefined;
406
+ BINANCE_API_KEY?: string | undefined;
407
+ BINANCE_API_SECRET?: string | undefined;
408
+ BINANCE_TESTNET?: boolean | undefined;
409
+ EXCHANGE_REQUIRE_CONFIRMATION?: boolean | undefined;
410
+ DEFILLAMA_API_KEY?: string | undefined;
411
+ ETHERSCAN_API_KEY?: string | undefined;
412
+ ALCHEMY_API_KEY?: string | undefined;
413
+ ALCHEMY_NETWORK?: string | undefined;
192
414
  HUGGINGFACE_ACCESS_TOKEN?: string | undefined;
193
415
  TWILIO_ACCOUNT_SID?: string | undefined;
194
416
  TWILIO_AUTH_TOKEN?: string | undefined;
@@ -198,8 +420,46 @@ declare const envSchema: z.ZodObject<{
198
420
  SPOTIFY_CLIENT_ID?: string | undefined;
199
421
  SPOTIFY_CLIENT_SECRET?: string | undefined;
200
422
  SPOTIFY_REDIRECT_URI?: string | undefined;
423
+ SPOTIFY_REFRESH_TOKEN?: string | undefined;
424
+ GOOGLE_CALENDAR_CLIENT_ID?: string | undefined;
425
+ GOOGLE_CALENDAR_CLIENT_SECRET?: string | undefined;
426
+ GOOGLE_CALENDAR_REDIRECT_URI?: string | undefined;
427
+ GOOGLE_CALENDAR_REFRESH_TOKEN?: string | undefined;
428
+ OUTLOOK_CLIENT_ID?: string | undefined;
429
+ OUTLOOK_CLIENT_SECRET?: string | undefined;
430
+ OUTLOOK_REDIRECT_URI?: string | undefined;
431
+ OUTLOOK_REFRESH_TOKEN?: string | undefined;
432
+ DROPBOX_CLIENT_ID?: string | undefined;
433
+ DROPBOX_CLIENT_SECRET?: string | undefined;
434
+ DROPBOX_REDIRECT_URI?: string | undefined;
201
435
  MCP_ENABLED?: boolean | undefined;
202
436
  MCP_CONFIG_PATH?: string | undefined;
437
+ LLM_PROVIDER?: string | undefined;
438
+ OPENROUTER_API_KEY?: string | undefined;
439
+ OPENROUTER_BASE_URL?: string | undefined;
440
+ GROQ_API_KEY?: string | undefined;
441
+ MISTRAL_API_KEY?: string | undefined;
442
+ OPENAI_LLM_ENABLED?: boolean | undefined;
443
+ OPENAI_COMPATIBLE_API_KEY?: string | undefined;
444
+ OPENAI_COMPATIBLE_BASE_URL?: string | undefined;
445
+ OPENAI_COMPATIBLE_MODEL?: string | undefined;
446
+ OLLAMA_ENABLED?: boolean | undefined;
447
+ OLLAMA_BASE_URL?: string | undefined;
448
+ OLLAMA_DEFAULT_MODEL?: string | undefined;
449
+ MODEL_ROUTING_ENABLED?: boolean | undefined;
450
+ MODEL_OPUS_ENABLED?: boolean | undefined;
451
+ COMPACTION_ENABLED?: boolean | undefined;
452
+ COMPACTION_TOKEN_THRESHOLD?: number | undefined;
453
+ COMPACTION_PRESERVE_RECENT?: number | undefined;
454
+ PROMPT_GUARD_ENABLED?: boolean | undefined;
455
+ PROMPT_GUARD_THRESHOLD?: number | undefined;
456
+ CIRCUIT_BREAKER_ENABLED?: boolean | undefined;
457
+ TOOL_SANDBOX_ENABLED?: boolean | undefined;
458
+ COST_TRACKING_ENABLED?: boolean | undefined;
459
+ QUALITY_SCORING_ENABLED?: boolean | undefined;
460
+ REQUEST_TRACING_ENABLED?: boolean | undefined;
461
+ LOCAL_INTENT_PARSER_ENABLED?: boolean | undefined;
462
+ UNIFIED_GATEWAY_ENABLED?: boolean | undefined;
203
463
  WHATSAPP_ENABLED?: boolean | undefined;
204
464
  WHATSAPP_AUTH_DIR?: string | undefined;
205
465
  WHATSAPP_ALLOWED_NUMBERS?: string | undefined;
@@ -212,18 +472,58 @@ declare const envSchema: z.ZodObject<{
212
472
  IMESSAGE_BLUEBUBBLES_URL?: string | undefined;
213
473
  IMESSAGE_BLUEBUBBLES_PASSWORD?: string | undefined;
214
474
  IMESSAGE_ALLOWED_NUMBERS?: string | undefined;
475
+ TUNNEL_ENABLED?: boolean | undefined;
476
+ TUNNEL_PROVIDER?: "cloudflare" | "ngrok" | "localtunnel" | undefined;
477
+ TUNNEL_SUBDOMAIN?: string | undefined;
478
+ TUNNEL_AUTH_TOKEN?: string | undefined;
479
+ AUTONOMY_LEVEL?: "readonly" | "supervised" | "autonomous" | undefined;
480
+ PROMETHEUS_ENABLED?: boolean | undefined;
481
+ PROMETHEUS_PATH?: string | undefined;
482
+ PAIRING_ENABLED?: boolean | undefined;
483
+ PAIRING_CODE_LIFETIME_MINUTES?: number | undefined;
484
+ GATEWAY_TOKEN?: string | undefined;
485
+ MATRIX_ENABLED?: boolean | undefined;
486
+ MATRIX_HOMESERVER_URL?: string | undefined;
487
+ MATRIX_ACCESS_TOKEN?: string | undefined;
488
+ MATRIX_USER_ID?: string | undefined;
489
+ MATRIX_ALLOWED_ROOM_IDS?: string | undefined;
490
+ MATRIX_AUTO_JOIN?: boolean | undefined;
491
+ MATRIX_E2E_ENABLED?: boolean | undefined;
492
+ NEO4J_URI?: string | undefined;
493
+ NEO4J_USER?: string | undefined;
494
+ NEO4J_PASSWORD?: string | undefined;
495
+ NEO4J_DATABASE?: string | undefined;
496
+ FEC_API_KEY?: string | undefined;
497
+ OPENCORPORATES_API_TOKEN?: string | undefined;
498
+ SEC_EDGAR_USER_AGENT?: string | undefined;
499
+ OSINT_ENABLED?: boolean | undefined;
500
+ OSINT_RATE_LIMIT_BUFFER_MS?: number | undefined;
501
+ EMBEDDING_PROVIDER?: "openai" | "huggingface" | "tfidf" | undefined;
502
+ EMBEDDING_MODEL?: string | undefined;
503
+ EMBEDDING_DIMENSIONS?: number | undefined;
504
+ EMBEDDING_DB_DIMENSIONS?: number | undefined;
505
+ EMBEDDING_BATCH_SIZE?: number | undefined;
506
+ HYDE_ENABLED?: boolean | undefined;
507
+ RERANK_ENABLED?: boolean | undefined;
508
+ RERANK_MIN_SCORE?: number | undefined;
509
+ MULTISTEP_RAG_ENABLED?: boolean | undefined;
510
+ MULTISTEP_MAX_STEPS?: number | undefined;
511
+ RETRIEVAL_CACHE_ENABLED?: boolean | undefined;
512
+ CONTEXTUAL_QUERY_ENABLED?: boolean | undefined;
513
+ ENCRYPTION_MASTER_KEY?: string | undefined;
514
+ AUDIT_SIGNING_KEY?: string | undefined;
215
515
  PORT?: number | undefined;
216
516
  NODE_ENV?: "development" | "production" | "test" | undefined;
217
517
  }>;
218
518
  type Env = z.infer<typeof envSchema>;
219
- /**
220
- * Programmatic configuration for library use.
221
- * Call this before any module accesses `env`.
222
- * Config values are merged with process.env (config takes precedence).
223
- */
224
519
  declare function configure(config: Partial<Env> & {
225
520
  CLAUDE_API_KEY: string;
226
521
  }): Env;
522
+ /**
523
+ * Wait for provider initialization to complete.
524
+ * Call after configure() if you need providers ready before first API call.
525
+ */
526
+ declare function ready(): Promise<void>;
227
527
  /**
228
528
  * The env accessor. Lazy — loads from process.env on first access
229
529
  * if configure() was not called first.
@@ -232,7 +532,16 @@ declare function configure(config: Partial<Env> & {
232
532
  */
233
533
  declare const env: Env;
234
534
 
235
- 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 various tools and capabilities:\n- Execute shell commands on the user's system\n- Manage files (read, write, search)\n- Browse the web and search for information\n- Remember important facts about the user and their preferences\n- Spawn background agents for complex tasks\n- Generate documents, spreadsheets, charts, and diagrams\n- Analyze images and extract text with OCR\n- Take and analyze screenshots\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.";
535
+ /**
536
+ * Provider initialization and re-exports
537
+ */
538
+ /**
539
+ * Initialize all configured LLM providers from environment variables.
540
+ * Called once during application startup.
541
+ */
542
+ declare function initializeProviders(): Promise<void>;
543
+
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.";
236
545
  interface Message {
237
546
  role: "user" | "assistant";
238
547
  content: string;
@@ -244,7 +553,15 @@ interface BrainResponse {
244
553
  toolsUsed?: string[];
245
554
  }
246
555
  declare function chat(messages: Message[], systemPrompt?: string): Promise<BrainResponse>;
247
- declare function chatWithTools(messages: Message[], userId?: string, onToolUse?: (toolName: string, input: unknown) => void): Promise<BrainResponse>;
556
+ interface ChatOptions {
557
+ appType?: string;
558
+ }
559
+ type ExecuteToolOverride = (toolName: string, input: Record<string, unknown>) => Promise<{
560
+ success: boolean;
561
+ result?: unknown;
562
+ error?: string;
563
+ }>;
564
+ declare function chatWithTools(messages: Message[], userId?: string, onToolUse?: (toolName: string, input: unknown) => void, options?: ChatOptions, executeToolOverride?: ExecuteToolOverride): Promise<BrainResponse>;
248
565
  declare function streamChat(messages: Message[], systemPrompt?: string, onChunk?: (text: string) => void): Promise<BrainResponse>;
249
566
  interface StreamEvent {
250
567
  type: "chunk" | "tool_start" | "tool_result" | "complete" | "error";
@@ -260,7 +577,7 @@ interface StreamEvent {
260
577
  error?: string;
261
578
  };
262
579
  }
263
- declare function streamChatWithTools(messages: Message[], userId?: string): AsyncGenerator<StreamEvent, BrainResponse, undefined>;
580
+ declare function streamChatWithTools(messages: Message[], userId?: string, executeToolOverride?: ExecuteToolOverride): AsyncGenerator<StreamEvent, BrainResponse, undefined>;
264
581
 
265
582
  /**
266
583
  * OpenSentinel - Programmatic API
@@ -413,6 +730,25 @@ declare const memories: drizzle_orm_pg_core.PgTableWithColumns<{
413
730
  }, {}, {
414
731
  dimensions: 1536;
415
732
  }>;
733
+ searchVector: drizzle_orm_pg_core.PgColumn<{
734
+ name: "search_vector";
735
+ tableName: "memories";
736
+ dataType: "custom";
737
+ columnType: "PgCustomColumn";
738
+ data: string;
739
+ driverParam: unknown;
740
+ notNull: false;
741
+ hasDefault: false;
742
+ isPrimaryKey: false;
743
+ isAutoincrement: false;
744
+ hasRuntimeDefault: false;
745
+ enumValues: undefined;
746
+ baseColumn: never;
747
+ identity: undefined;
748
+ generated: undefined;
749
+ }, {}, {
750
+ pgColumnBuilderBrand: "PgCustomColumnBuilderBrand";
751
+ }>;
416
752
  importance: drizzle_orm_pg_core.PgColumn<{
417
753
  name: "importance";
418
754
  tableName: "memories";
@@ -447,6 +783,23 @@ declare const memories: drizzle_orm_pg_core.PgTableWithColumns<{
447
783
  identity: undefined;
448
784
  generated: undefined;
449
785
  }, {}, {}>;
786
+ provenance: drizzle_orm_pg_core.PgColumn<{
787
+ name: "provenance";
788
+ tableName: "memories";
789
+ dataType: "string";
790
+ columnType: "PgText";
791
+ data: string;
792
+ driverParam: string;
793
+ notNull: false;
794
+ hasDefault: false;
795
+ isPrimaryKey: false;
796
+ isAutoincrement: false;
797
+ hasRuntimeDefault: false;
798
+ enumValues: [string, ...string[]];
799
+ baseColumn: never;
800
+ identity: undefined;
801
+ generated: undefined;
802
+ }, {}, {}>;
450
803
  metadata: drizzle_orm_pg_core.PgColumn<{
451
804
  name: "metadata";
452
805
  tableName: "memories";
@@ -464,6 +817,23 @@ declare const memories: drizzle_orm_pg_core.PgTableWithColumns<{
464
817
  identity: undefined;
465
818
  generated: undefined;
466
819
  }, {}, {}>;
820
+ encrypted: drizzle_orm_pg_core.PgColumn<{
821
+ name: "encrypted";
822
+ tableName: "memories";
823
+ dataType: "boolean";
824
+ columnType: "PgBoolean";
825
+ data: boolean;
826
+ driverParam: boolean;
827
+ notNull: true;
828
+ hasDefault: true;
829
+ isPrimaryKey: false;
830
+ isAutoincrement: false;
831
+ hasRuntimeDefault: false;
832
+ enumValues: undefined;
833
+ baseColumn: never;
834
+ identity: undefined;
835
+ generated: undefined;
836
+ }, {}, {}>;
467
837
  lastAccessed: drizzle_orm_pg_core.PgColumn<{
468
838
  name: "last_accessed";
469
839
  tableName: "memories";
@@ -507,10 +877,13 @@ type NewMemory = typeof memories.$inferInsert;
507
877
  declare const db: ReturnType<typeof drizzle<typeof schema>>;
508
878
 
509
879
  declare function generateEmbedding(text: string): Promise<number[]>;
510
- declare function storeMemory(memory: Omit<NewMemory, "embedding">): Promise<Memory>;
880
+ declare function storeMemory(memory: Omit<NewMemory, "embedding" | "searchVector">): Promise<Memory>;
511
881
  declare function searchMemories(query: string, userId?: string, limit?: number): Promise<Memory[]>;
512
882
  declare function extractMemories(content: string, userId?: string): Promise<Memory[]>;
513
- declare function buildMemoryContext(query: string, userId?: string): Promise<string>;
883
+ declare function buildMemoryContext(query: string, userId?: string, conversationHistory?: Array<{
884
+ role: "user" | "assistant";
885
+ content: string;
886
+ }>): Promise<string>;
514
887
 
515
888
  declare const TOOLS: Tool[];
516
889
  declare function executeTool(name: string, input: Record<string, unknown>): Promise<{
@@ -852,4 +1225,223 @@ declare class iMessageBot {
852
1225
  get running(): boolean;
853
1226
  }
854
1227
 
855
- export { type BrainResponse, DiscordBot, type Env, type Message, OpenSentinel, type OpenSentinelConfig, SYSTEM_PROMPT, SignalBot, SlackBot, type StreamEvent, TOOLS, WhatsAppBot, app as apiApp, buildMemoryContext, cancelTask, chat, chatWithTools, configure, createBot as createTelegramBot, db, env, executeTool, extractMemories, generateBriefing, generateEmbedding, iMessageBot, scheduleReminder, scheduleTask, searchMemories, storeMemory, streamChat, streamChatWithTools };
1228
+ declare function generateEncryptionKey(): string;
1229
+ declare function reEncryptValue(encryptedData: string, oldKey: string, newKey: string): string;
1230
+ declare function getRotationInfo(): {
1231
+ hasEncryptionKey: boolean;
1232
+ hasAuditKey: boolean;
1233
+ keyHashPrefix: string | null;
1234
+ };
1235
+
1236
+ /**
1237
+ * Text Transform Tool
1238
+ * Text manipulation utilities: word count, language detection, keyword extraction, etc.
1239
+ */
1240
+ interface TextTransformResult {
1241
+ success: boolean;
1242
+ result?: unknown;
1243
+ error?: string;
1244
+ }
1245
+ declare function countText(text: string): {
1246
+ characters: number;
1247
+ words: number;
1248
+ sentences: number;
1249
+ paragraphs: number;
1250
+ lines: number;
1251
+ };
1252
+ declare function detectLanguage(text: string): string;
1253
+ declare function extractKeywords(text: string, count?: number): string[];
1254
+ declare function changeCase(text: string, targetCase: "upper" | "lower" | "title" | "sentence" | "camel" | "snake" | "kebab"): string;
1255
+ declare function transformText(text: string, action: string, options?: Record<string, unknown>): Promise<TextTransformResult>;
1256
+
1257
+ /**
1258
+ * JSON Tool
1259
+ * Validate, format, flatten, diff, query, and schema-validate JSON
1260
+ */
1261
+ interface JsonToolResult {
1262
+ success: boolean;
1263
+ result?: unknown;
1264
+ error?: string;
1265
+ }
1266
+ declare function validateJson(input: string): {
1267
+ valid: boolean;
1268
+ error?: string;
1269
+ };
1270
+ declare function formatJson(input: string | object, indent?: number): string;
1271
+ declare function flattenJson(obj: Record<string, unknown>, prefix?: string, separator?: string): Record<string, unknown>;
1272
+ declare function diffJson(a: unknown, b: unknown, path?: string): Array<{
1273
+ path: string;
1274
+ type: "added" | "removed" | "changed";
1275
+ oldValue?: unknown;
1276
+ newValue?: unknown;
1277
+ }>;
1278
+ declare function queryJson(obj: unknown, path: string): unknown;
1279
+ declare function jsonTool(action: string, input: string, options?: Record<string, unknown>): Promise<JsonToolResult>;
1280
+
1281
+ /**
1282
+ * Cron Explain Tool
1283
+ * Parse cron expressions to natural language and vice versa
1284
+ */
1285
+ interface CronResult {
1286
+ success: boolean;
1287
+ result?: unknown;
1288
+ error?: string;
1289
+ }
1290
+ declare function explainCron(expression: string): string;
1291
+ declare function getNextRuns(expression: string, count?: number, fromDate?: Date): Date[];
1292
+ declare function validateCron(expression: string): {
1293
+ valid: boolean;
1294
+ error?: string;
1295
+ };
1296
+ declare function cronTool(action: string, expression: string, options?: Record<string, unknown>): Promise<CronResult>;
1297
+
1298
+ /**
1299
+ * Hash Tool
1300
+ * Compute hashes, compare values, generate tokens
1301
+ */
1302
+ interface HashResult {
1303
+ success: boolean;
1304
+ result?: unknown;
1305
+ error?: string;
1306
+ }
1307
+ declare function hashString(input: string, algorithm?: "md5" | "sha1" | "sha256" | "sha512"): string;
1308
+ declare function compareHashes(hash1: string, hash2: string): boolean;
1309
+ declare function generateToken(length?: number, encoding?: "hex" | "base64" | "base64url"): string;
1310
+ declare function hashTool(action: string, input: string, options?: Record<string, unknown>): Promise<HashResult>;
1311
+
1312
+ /**
1313
+ * Regex Tool
1314
+ * Build, test, explain, and apply regular expressions
1315
+ */
1316
+ interface RegexResult {
1317
+ success: boolean;
1318
+ result?: unknown;
1319
+ error?: string;
1320
+ }
1321
+ declare function testRegex(pattern: string, text: string, flags?: string): {
1322
+ matches: Array<{
1323
+ match: string;
1324
+ index: number;
1325
+ groups?: Record<string, string>;
1326
+ }>;
1327
+ count: number;
1328
+ };
1329
+ declare function replaceWithRegex(pattern: string, text: string, replacement: string, flags?: string): {
1330
+ result: string;
1331
+ replacements: number;
1332
+ };
1333
+ declare function extractCaptures(pattern: string, text: string, flags?: string): string[][];
1334
+ declare function regexTool(action: string, pattern: string, text: string, options?: Record<string, unknown>): Promise<RegexResult>;
1335
+
1336
+ /**
1337
+ * Unit Converter Tool
1338
+ * Convert between units of measurement
1339
+ */
1340
+ interface ConversionResult {
1341
+ success: boolean;
1342
+ result?: {
1343
+ value: number;
1344
+ from: string;
1345
+ to: string;
1346
+ formatted: string;
1347
+ };
1348
+ error?: string;
1349
+ }
1350
+ declare function convert(value: number, from: string, to: string): ConversionResult;
1351
+ declare function unitConverter(action: string, value: number, from: string, to: string): Promise<ConversionResult>;
1352
+
1353
+ /**
1354
+ * QR Code Generator
1355
+ * Generate QR codes as SVG (no external dependencies)
1356
+ */
1357
+ interface QRResult {
1358
+ success: boolean;
1359
+ svg?: string;
1360
+ filePath?: string;
1361
+ error?: string;
1362
+ }
1363
+ declare function generateQRSvg(data: string, options?: {
1364
+ size?: number;
1365
+ margin?: number;
1366
+ darkColor?: string;
1367
+ lightColor?: string;
1368
+ }): string;
1369
+ declare function qrCodeTool(action: string, data: string, options?: Record<string, unknown>): Promise<QRResult>;
1370
+
1371
+ /**
1372
+ * Clipboard Manager
1373
+ * Named clipboard entries with history and search
1374
+ */
1375
+ interface ClipboardEntry {
1376
+ name: string;
1377
+ content: string;
1378
+ type: "text" | "code" | "url" | "json" | "other";
1379
+ createdAt: Date;
1380
+ accessCount: number;
1381
+ }
1382
+ interface ClipboardResult {
1383
+ success: boolean;
1384
+ entry?: ClipboardEntry;
1385
+ entries?: ClipboardEntry[];
1386
+ error?: string;
1387
+ }
1388
+ declare function clipboardTool(action: string, name: string, content?: string, options?: Record<string, unknown>): Promise<ClipboardResult>;
1389
+
1390
+ /**
1391
+ * Backup & Restore Module
1392
+ * Database backup, restore, and scheduling
1393
+ */
1394
+ interface BackupResult {
1395
+ success: boolean;
1396
+ filePath?: string;
1397
+ size?: number;
1398
+ timestamp?: string;
1399
+ error?: string;
1400
+ }
1401
+ interface BackupOptions {
1402
+ outputDir?: string;
1403
+ compress?: boolean;
1404
+ includeRedis?: boolean;
1405
+ maxBackups?: number;
1406
+ }
1407
+ interface BackupInfo {
1408
+ filename: string;
1409
+ path: string;
1410
+ size: number;
1411
+ created: Date;
1412
+ }
1413
+ declare function createDatabaseBackup(options?: BackupOptions): Promise<BackupResult>;
1414
+ declare function restoreDatabase(backupPath: string): Promise<BackupResult>;
1415
+ declare function listBackups(backupDir?: string): Promise<BackupInfo[]>;
1416
+
1417
+ /**
1418
+ * Heartbeat Monitor
1419
+ * Track service health with periodic heartbeats
1420
+ */
1421
+ interface HeartbeatService {
1422
+ id: string;
1423
+ name: string;
1424
+ intervalMs: number;
1425
+ lastBeat: number | null;
1426
+ status: "healthy" | "degraded" | "down" | "unknown";
1427
+ consecutiveMisses: number;
1428
+ metadata?: Record<string, unknown>;
1429
+ }
1430
+ interface HeartbeatResult {
1431
+ success: boolean;
1432
+ service?: HeartbeatService;
1433
+ services?: HeartbeatService[];
1434
+ error?: string;
1435
+ }
1436
+ declare function registerService(id: string, name: string, intervalMs?: number, metadata?: Record<string, unknown>): HeartbeatResult;
1437
+ declare function recordBeat(id: string): HeartbeatResult;
1438
+ declare function checkHeartbeats(): HeartbeatResult;
1439
+ declare function getHeartbeatSummary(): {
1440
+ total: number;
1441
+ healthy: number;
1442
+ degraded: number;
1443
+ down: number;
1444
+ unknown: number;
1445
+ };
1446
+
1447
+ export { type BrainResponse, DiscordBot, type Env, type Message, OpenSentinel, type OpenSentinelConfig, SYSTEM_PROMPT, SignalBot, SlackBot, type StreamEvent, TOOLS, WhatsAppBot, app as apiApp, buildMemoryContext, cancelTask, changeCase, chat, chatWithTools, checkHeartbeats, clipboardTool, compareHashes, configure, convert, countText, createDatabaseBackup, createBot as createTelegramBot, cronTool, db, detectLanguage, diffJson, env, executeTool, explainCron, extractCaptures, extractKeywords, extractMemories, flattenJson, formatJson, generateBriefing, generateEmbedding, generateEncryptionKey, generateQRSvg, generateToken, getHeartbeatSummary, getNextRuns, getRotationInfo, hashString, hashTool, iMessageBot, initializeProviders, jsonTool, listBackups, qrCodeTool, queryJson, reEncryptValue, ready, recordBeat, regexTool, registerService, replaceWithRegex, restoreDatabase, scheduleReminder, scheduleTask, searchMemories, storeMemory, streamChat, streamChatWithTools, testRegex, transformText, unitConverter, validateCron, validateJson };