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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/integrations/github/repos.ts","../src/integrations/github/issues.ts","../src/integrations/github/webhooks.ts","../src/integrations/github/index.ts"],"sourcesContent":["/**\n * GitHub Repository Operations\n *\n * Provides functions for managing GitHub repositories.\n */\n\nimport { getOctokit, parseRepoString, type GitHubClientConfig } from \"./client\";\n\nexport interface Repository {\n id: number;\n name: string;\n fullName: string;\n description: string | null;\n private: boolean;\n htmlUrl: string;\n cloneUrl: string;\n sshUrl: string;\n defaultBranch: string;\n language: string | null;\n stargazersCount: number;\n forksCount: number;\n openIssuesCount: number;\n createdAt: string;\n updatedAt: string;\n pushedAt: string | null;\n topics: string[];\n archived: boolean;\n disabled: boolean;\n}\n\nexport interface CreateRepoOptions {\n name: string;\n description?: string;\n private?: boolean;\n autoInit?: boolean;\n gitignoreTemplate?: string;\n licenseTemplate?: string;\n hasIssues?: boolean;\n hasProjects?: boolean;\n hasWiki?: boolean;\n}\n\nexport interface ListReposOptions {\n type?: \"all\" | \"owner\" | \"public\" | \"private\" | \"member\";\n sort?: \"created\" | \"updated\" | \"pushed\" | \"full_name\";\n direction?: \"asc\" | \"desc\";\n perPage?: number;\n page?: number;\n}\n\nexport interface RepoContents {\n type: \"file\" | \"dir\" | \"symlink\" | \"submodule\";\n name: string;\n path: string;\n sha: string;\n size: number;\n url: string;\n htmlUrl: string | null;\n downloadUrl: string | null;\n content?: string;\n encoding?: string;\n}\n\nexport interface Branch {\n name: string;\n commit: {\n sha: string;\n url: string;\n };\n protected: boolean;\n}\n\n/**\n * List repositories for the authenticated user\n */\nexport async function listRepositories(\n options: ListReposOptions = {},\n config?: GitHubClientConfig\n): Promise<Repository[]> {\n const octokit = getOctokit(config);\n\n const { data } = await octokit.rest.repos.listForAuthenticatedUser({\n type: options.type || \"owner\",\n sort: options.sort || \"updated\",\n direction: options.direction || \"desc\",\n per_page: options.perPage || 30,\n page: options.page || 1,\n });\n\n return data.map(mapRepository);\n}\n\n/**\n * List repositories for an organization\n */\nexport async function listOrgRepositories(\n org: string,\n options: Omit<ListReposOptions, \"type\"> & { type?: \"all\" | \"public\" | \"private\" | \"forks\" | \"sources\" | \"member\" } = {},\n config?: GitHubClientConfig\n): Promise<Repository[]> {\n const octokit = getOctokit(config);\n\n const { data } = await octokit.rest.repos.listForOrg({\n org,\n type: options.type || \"all\",\n sort: options.sort || \"updated\",\n direction: options.direction || \"desc\",\n per_page: options.perPage || 30,\n page: options.page || 1,\n });\n\n return data.map(mapRepository);\n}\n\n/**\n * Get a specific repository\n */\nexport async function getRepository(\n repoString: string,\n config?: GitHubClientConfig\n): Promise<Repository> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.repos.get({ owner, repo });\n\n return mapRepository(data);\n}\n\n/**\n * Create a new repository\n */\nexport async function createRepository(\n options: CreateRepoOptions,\n config?: GitHubClientConfig\n): Promise<Repository> {\n const octokit = getOctokit(config);\n\n const { data } = await octokit.rest.repos.createForAuthenticatedUser({\n name: options.name,\n description: options.description,\n private: options.private ?? false,\n auto_init: options.autoInit ?? false,\n gitignore_template: options.gitignoreTemplate,\n license_template: options.licenseTemplate,\n has_issues: options.hasIssues ?? true,\n has_projects: options.hasProjects ?? true,\n has_wiki: options.hasWiki ?? true,\n });\n\n return mapRepository(data);\n}\n\n/**\n * Create a repository in an organization\n */\nexport async function createOrgRepository(\n org: string,\n options: CreateRepoOptions,\n config?: GitHubClientConfig\n): Promise<Repository> {\n const octokit = getOctokit(config);\n\n const { data } = await octokit.rest.repos.createInOrg({\n org,\n name: options.name,\n description: options.description,\n private: options.private ?? false,\n auto_init: options.autoInit ?? false,\n gitignore_template: options.gitignoreTemplate,\n license_template: options.licenseTemplate,\n has_issues: options.hasIssues ?? true,\n has_projects: options.hasProjects ?? true,\n has_wiki: options.hasWiki ?? true,\n });\n\n return mapRepository(data);\n}\n\n/**\n * Delete a repository\n */\nexport async function deleteRepository(\n repoString: string,\n config?: GitHubClientConfig\n): Promise<void> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n await octokit.rest.repos.delete({ owner, repo });\n}\n\n/**\n * Fork a repository\n */\nexport async function forkRepository(\n repoString: string,\n options?: { organization?: string; name?: string; defaultBranchOnly?: boolean },\n config?: GitHubClientConfig\n): Promise<Repository> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.repos.createFork({\n owner,\n repo,\n organization: options?.organization,\n name: options?.name,\n default_branch_only: options?.defaultBranchOnly,\n });\n\n return mapRepository(data);\n}\n\n/**\n * List branches for a repository\n */\nexport async function listBranches(\n repoString: string,\n options?: { protected?: boolean; perPage?: number; page?: number },\n config?: GitHubClientConfig\n): Promise<Branch[]> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.repos.listBranches({\n owner,\n repo,\n protected: options?.protected,\n per_page: options?.perPage || 30,\n page: options?.page || 1,\n });\n\n return data.map((branch) => ({\n name: branch.name,\n commit: {\n sha: branch.commit.sha,\n url: branch.commit.url,\n },\n protected: branch.protected,\n }));\n}\n\n/**\n * Get repository contents (file or directory)\n */\nexport async function getContents(\n repoString: string,\n path: string = \"\",\n options?: { ref?: string },\n config?: GitHubClientConfig\n): Promise<RepoContents | RepoContents[]> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.repos.getContent({\n owner,\n repo,\n path,\n ref: options?.ref,\n });\n\n if (Array.isArray(data)) {\n return data.map(mapContents);\n }\n\n return mapContents(data);\n}\n\n/**\n * Get clone information for a repository\n */\nexport async function getCloneInfo(\n repoString: string,\n config?: GitHubClientConfig\n): Promise<{\n httpsUrl: string;\n sshUrl: string;\n gitUrl: string;\n defaultBranch: string;\n size: number;\n}> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.repos.get({ owner, repo });\n\n return {\n httpsUrl: data.clone_url,\n sshUrl: data.ssh_url,\n gitUrl: data.git_url,\n defaultBranch: data.default_branch,\n size: data.size,\n };\n}\n\n/**\n * Search repositories\n */\nexport async function searchRepositories(\n query: string,\n options?: { sort?: \"stars\" | \"forks\" | \"help-wanted-issues\" | \"updated\"; order?: \"asc\" | \"desc\"; perPage?: number; page?: number },\n config?: GitHubClientConfig\n): Promise<{ totalCount: number; items: Repository[] }> {\n const octokit = getOctokit(config);\n\n const { data } = await octokit.rest.search.repos({\n q: query,\n sort: options?.sort,\n order: options?.order || \"desc\",\n per_page: options?.perPage || 30,\n page: options?.page || 1,\n });\n\n return {\n totalCount: data.total_count,\n items: data.items.map(mapRepository),\n };\n}\n\n/**\n * Get repository languages\n */\nexport async function getLanguages(\n repoString: string,\n config?: GitHubClientConfig\n): Promise<Record<string, number>> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.repos.listLanguages({ owner, repo });\n\n return data;\n}\n\n/**\n * Get repository contributors\n */\nexport async function getContributors(\n repoString: string,\n options?: { perPage?: number; page?: number },\n config?: GitHubClientConfig\n): Promise<Array<{ login: string; id: number; avatarUrl: string; contributions: number }>> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.repos.listContributors({\n owner,\n repo,\n per_page: options?.perPage || 30,\n page: options?.page || 1,\n });\n\n return data\n .filter((c): c is typeof c & { login: string } => c.login !== undefined)\n .map((contributor) => ({\n login: contributor.login,\n id: contributor.id!,\n avatarUrl: contributor.avatar_url!,\n contributions: contributor.contributions,\n }));\n}\n\n// Helper function to map API response to Repository interface\nfunction mapRepository(data: any): Repository {\n return {\n id: data.id,\n name: data.name,\n fullName: data.full_name,\n description: data.description,\n private: data.private,\n htmlUrl: data.html_url,\n cloneUrl: data.clone_url,\n sshUrl: data.ssh_url,\n defaultBranch: data.default_branch,\n language: data.language,\n stargazersCount: data.stargazers_count,\n forksCount: data.forks_count,\n openIssuesCount: data.open_issues_count,\n createdAt: data.created_at,\n updatedAt: data.updated_at,\n pushedAt: data.pushed_at,\n topics: data.topics || [],\n archived: data.archived,\n disabled: data.disabled,\n };\n}\n\n// Helper function to map contents response\nfunction mapContents(data: any): RepoContents {\n return {\n type: data.type,\n name: data.name,\n path: data.path,\n sha: data.sha,\n size: data.size,\n url: data.url,\n htmlUrl: data.html_url,\n downloadUrl: data.download_url,\n content: data.content,\n encoding: data.encoding,\n };\n}\n","/**\n * GitHub Issue Management\n *\n * Provides functions for creating, updating, and managing GitHub issues.\n */\n\nimport { getOctokit, parseRepoString, type GitHubClientConfig } from \"./client\";\n\nexport interface Issue {\n id: number;\n number: number;\n title: string;\n body: string | null;\n state: \"open\" | \"closed\";\n stateReason: \"completed\" | \"reopened\" | \"not_planned\" | null;\n htmlUrl: string;\n user: {\n login: string;\n id: number;\n avatarUrl: string;\n } | null;\n labels: Array<{\n id: number;\n name: string;\n color: string;\n description: string | null;\n }>;\n assignees: Array<{\n login: string;\n id: number;\n avatarUrl: string;\n }>;\n milestone: {\n id: number;\n number: number;\n title: string;\n state: string;\n } | null;\n comments: number;\n createdAt: string;\n updatedAt: string;\n closedAt: string | null;\n isPullRequest: boolean;\n}\n\nexport interface IssueComment {\n id: number;\n body: string;\n user: {\n login: string;\n id: number;\n avatarUrl: string;\n } | null;\n htmlUrl: string;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface CreateIssueOptions {\n title: string;\n body?: string;\n labels?: string[];\n assignees?: string[];\n milestone?: number;\n}\n\nexport interface UpdateIssueOptions {\n title?: string;\n body?: string;\n state?: \"open\" | \"closed\";\n stateReason?: \"completed\" | \"not_planned\" | \"reopened\";\n labels?: string[];\n assignees?: string[];\n milestone?: number | null;\n}\n\nexport interface ListIssuesOptions {\n state?: \"open\" | \"closed\" | \"all\";\n labels?: string[];\n sort?: \"created\" | \"updated\" | \"comments\";\n direction?: \"asc\" | \"desc\";\n since?: string;\n perPage?: number;\n page?: number;\n assignee?: string;\n creator?: string;\n mentioned?: string;\n milestone?: string | number;\n}\n\n/**\n * List issues for a repository\n */\nexport async function listIssues(\n repoString: string,\n options: ListIssuesOptions = {},\n config?: GitHubClientConfig\n): Promise<Issue[]> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.listForRepo({\n owner,\n repo,\n state: options.state || \"open\",\n labels: options.labels?.join(\",\"),\n sort: options.sort || \"created\",\n direction: options.direction || \"desc\",\n since: options.since,\n per_page: options.perPage || 30,\n page: options.page || 1,\n assignee: options.assignee,\n creator: options.creator,\n mentioned: options.mentioned,\n milestone: options.milestone?.toString(),\n });\n\n return data.map(mapIssue);\n}\n\n/**\n * Get a specific issue by number\n */\nexport async function getIssue(\n repoString: string,\n issueNumber: number,\n config?: GitHubClientConfig\n): Promise<Issue> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.get({\n owner,\n repo,\n issue_number: issueNumber,\n });\n\n return mapIssue(data);\n}\n\n/**\n * Create a new issue\n */\nexport async function createIssue(\n repoString: string,\n options: CreateIssueOptions,\n config?: GitHubClientConfig\n): Promise<Issue> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.create({\n owner,\n repo,\n title: options.title,\n body: options.body,\n labels: options.labels,\n assignees: options.assignees,\n milestone: options.milestone,\n });\n\n return mapIssue(data);\n}\n\n/**\n * Update an existing issue\n */\nexport async function updateIssue(\n repoString: string,\n issueNumber: number,\n options: UpdateIssueOptions,\n config?: GitHubClientConfig\n): Promise<Issue> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.update({\n owner,\n repo,\n issue_number: issueNumber,\n title: options.title,\n body: options.body,\n state: options.state,\n state_reason: options.stateReason,\n labels: options.labels,\n assignees: options.assignees,\n milestone: options.milestone,\n });\n\n return mapIssue(data);\n}\n\n/**\n * Close an issue\n */\nexport async function closeIssue(\n repoString: string,\n issueNumber: number,\n stateReason: \"completed\" | \"not_planned\" = \"completed\",\n config?: GitHubClientConfig\n): Promise<Issue> {\n return updateIssue(repoString, issueNumber, {\n state: \"closed\",\n stateReason,\n }, config);\n}\n\n/**\n * Reopen an issue\n */\nexport async function reopenIssue(\n repoString: string,\n issueNumber: number,\n config?: GitHubClientConfig\n): Promise<Issue> {\n return updateIssue(repoString, issueNumber, {\n state: \"open\",\n stateReason: \"reopened\",\n }, config);\n}\n\n/**\n * Add labels to an issue\n */\nexport async function addLabels(\n repoString: string,\n issueNumber: number,\n labels: string[],\n config?: GitHubClientConfig\n): Promise<Array<{ id: number; name: string; color: string; description: string | null }>> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.addLabels({\n owner,\n repo,\n issue_number: issueNumber,\n labels,\n });\n\n return data.map((label) => ({\n id: label.id,\n name: label.name,\n color: label.color,\n description: label.description,\n }));\n}\n\n/**\n * Remove a label from an issue\n */\nexport async function removeLabel(\n repoString: string,\n issueNumber: number,\n label: string,\n config?: GitHubClientConfig\n): Promise<void> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n await octokit.rest.issues.removeLabel({\n owner,\n repo,\n issue_number: issueNumber,\n name: label,\n });\n}\n\n/**\n * Set labels on an issue (replaces existing labels)\n */\nexport async function setLabels(\n repoString: string,\n issueNumber: number,\n labels: string[],\n config?: GitHubClientConfig\n): Promise<Array<{ id: number; name: string; color: string; description: string | null }>> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.setLabels({\n owner,\n repo,\n issue_number: issueNumber,\n labels,\n });\n\n return data.map((label) => ({\n id: label.id,\n name: label.name,\n color: label.color,\n description: label.description,\n }));\n}\n\n/**\n * Add assignees to an issue\n */\nexport async function addAssignees(\n repoString: string,\n issueNumber: number,\n assignees: string[],\n config?: GitHubClientConfig\n): Promise<Issue> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.addAssignees({\n owner,\n repo,\n issue_number: issueNumber,\n assignees,\n });\n\n return mapIssue(data);\n}\n\n/**\n * Remove assignees from an issue\n */\nexport async function removeAssignees(\n repoString: string,\n issueNumber: number,\n assignees: string[],\n config?: GitHubClientConfig\n): Promise<Issue> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.removeAssignees({\n owner,\n repo,\n issue_number: issueNumber,\n assignees,\n });\n\n return mapIssue(data);\n}\n\n/**\n * List comments on an issue\n */\nexport async function listComments(\n repoString: string,\n issueNumber: number,\n options?: { perPage?: number; page?: number; since?: string },\n config?: GitHubClientConfig\n): Promise<IssueComment[]> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.listComments({\n owner,\n repo,\n issue_number: issueNumber,\n per_page: options?.perPage || 30,\n page: options?.page || 1,\n since: options?.since,\n });\n\n return data.map(mapComment);\n}\n\n/**\n * Create a comment on an issue\n */\nexport async function createComment(\n repoString: string,\n issueNumber: number,\n body: string,\n config?: GitHubClientConfig\n): Promise<IssueComment> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.createComment({\n owner,\n repo,\n issue_number: issueNumber,\n body,\n });\n\n return mapComment(data);\n}\n\n/**\n * Update a comment\n */\nexport async function updateComment(\n repoString: string,\n commentId: number,\n body: string,\n config?: GitHubClientConfig\n): Promise<IssueComment> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n const { data } = await octokit.rest.issues.updateComment({\n owner,\n repo,\n comment_id: commentId,\n body,\n });\n\n return mapComment(data);\n}\n\n/**\n * Delete a comment\n */\nexport async function deleteComment(\n repoString: string,\n commentId: number,\n config?: GitHubClientConfig\n): Promise<void> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n await octokit.rest.issues.deleteComment({\n owner,\n repo,\n comment_id: commentId,\n });\n}\n\n/**\n * Lock an issue (prevents further comments)\n */\nexport async function lockIssue(\n repoString: string,\n issueNumber: number,\n lockReason?: \"off-topic\" | \"too heated\" | \"resolved\" | \"spam\",\n config?: GitHubClientConfig\n): Promise<void> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n await octokit.rest.issues.lock({\n owner,\n repo,\n issue_number: issueNumber,\n lock_reason: lockReason,\n });\n}\n\n/**\n * Unlock an issue\n */\nexport async function unlockIssue(\n repoString: string,\n issueNumber: number,\n config?: GitHubClientConfig\n): Promise<void> {\n const octokit = getOctokit(config);\n const { owner, repo } = parseRepoString(repoString);\n\n await octokit.rest.issues.unlock({\n owner,\n repo,\n issue_number: issueNumber,\n });\n}\n\n/**\n * Search issues and pull requests\n */\nexport async function searchIssues(\n query: string,\n options?: { sort?: \"comments\" | \"reactions\" | \"reactions-+1\" | \"reactions--1\" | \"reactions-smile\" | \"reactions-thinking_face\" | \"reactions-heart\" | \"reactions-tada\" | \"interactions\" | \"created\" | \"updated\"; order?: \"asc\" | \"desc\"; perPage?: number; page?: number },\n config?: GitHubClientConfig\n): Promise<{ totalCount: number; items: Issue[] }> {\n const octokit = getOctokit(config);\n\n const { data } = await octokit.rest.search.issuesAndPullRequests({\n q: query,\n sort: options?.sort,\n order: options?.order || \"desc\",\n per_page: options?.perPage || 30,\n page: options?.page || 1,\n });\n\n return {\n totalCount: data.total_count,\n items: data.items.map(mapIssue),\n };\n}\n\n// Helper function to map API response to Issue interface\nfunction mapIssue(data: any): Issue {\n return {\n id: data.id,\n number: data.number,\n title: data.title,\n body: data.body,\n state: data.state,\n stateReason: data.state_reason,\n htmlUrl: data.html_url,\n user: data.user\n ? {\n login: data.user.login,\n id: data.user.id,\n avatarUrl: data.user.avatar_url,\n }\n : null,\n labels: data.labels.map((label: any) => ({\n id: label.id,\n name: label.name,\n color: label.color,\n description: label.description,\n })),\n assignees: data.assignees?.map((assignee: any) => ({\n login: assignee.login,\n id: assignee.id,\n avatarUrl: assignee.avatar_url,\n })) || [],\n milestone: data.milestone\n ? {\n id: data.milestone.id,\n number: data.milestone.number,\n title: data.milestone.title,\n state: data.milestone.state,\n }\n : null,\n comments: data.comments,\n createdAt: data.created_at,\n updatedAt: data.updated_at,\n closedAt: data.closed_at,\n isPullRequest: !!data.pull_request,\n };\n}\n\n// Helper function to map API response to IssueComment interface\nfunction mapComment(data: any): IssueComment {\n return {\n id: data.id,\n body: data.body,\n user: data.user\n ? {\n login: data.user.login,\n id: data.user.id,\n avatarUrl: data.user.avatar_url,\n }\n : null,\n htmlUrl: data.html_url,\n createdAt: data.created_at,\n updatedAt: data.updated_at,\n };\n}\n","/**\n * GitHub Webhooks Handler\n *\n * Handles incoming GitHub webhook events and dispatches them to appropriate handlers.\n */\n\nimport { Webhooks, createNodeMiddleware } from \"@octokit/webhooks\";\nimport { env } from \"../../config/env\";\n\nexport interface WebhookConfig {\n /**\n * Webhook secret for signature verification\n */\n secret: string;\n\n /**\n * Path to mount the webhook endpoint (default: /api/github/webhooks)\n */\n path?: string;\n}\n\nexport interface WebhookEvent<T = unknown> {\n id: string;\n name: string;\n payload: T;\n signature: string;\n receivedAt: Date;\n}\n\nexport type WebhookEventHandler<T = unknown> = (event: WebhookEvent<T>) => Promise<void>;\n\n// Webhook event payloads (simplified types)\nexport interface PushEventPayload {\n ref: string;\n before: string;\n after: string;\n repository: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n };\n pusher: {\n name: string;\n email: string;\n };\n sender: {\n login: string;\n id: number;\n avatar_url: string;\n };\n commits: Array<{\n id: string;\n message: string;\n timestamp: string;\n url: string;\n author: {\n name: string;\n email: string;\n username?: string;\n };\n added: string[];\n removed: string[];\n modified: string[];\n }>;\n head_commit: {\n id: string;\n message: string;\n timestamp: string;\n url: string;\n author: {\n name: string;\n email: string;\n username?: string;\n };\n } | null;\n}\n\nexport interface PullRequestEventPayload {\n action: \"opened\" | \"edited\" | \"closed\" | \"reopened\" | \"synchronize\" | \"ready_for_review\" | \"converted_to_draft\" | \"locked\" | \"unlocked\" | \"review_requested\" | \"review_request_removed\" | \"labeled\" | \"unlabeled\" | \"assigned\" | \"unassigned\";\n number: number;\n pull_request: {\n id: number;\n number: number;\n title: string;\n body: string | null;\n state: \"open\" | \"closed\";\n draft: boolean;\n merged: boolean;\n html_url: string;\n user: {\n login: string;\n id: number;\n avatar_url: string;\n };\n head: {\n ref: string;\n sha: string;\n };\n base: {\n ref: string;\n sha: string;\n };\n additions: number;\n deletions: number;\n changed_files: number;\n };\n repository: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n };\n sender: {\n login: string;\n id: number;\n avatar_url: string;\n };\n}\n\nexport interface IssueEventPayload {\n action: \"opened\" | \"edited\" | \"deleted\" | \"closed\" | \"reopened\" | \"labeled\" | \"unlabeled\" | \"assigned\" | \"unassigned\" | \"locked\" | \"unlocked\" | \"transferred\" | \"milestoned\" | \"demilestoned\";\n issue: {\n id: number;\n number: number;\n title: string;\n body: string | null;\n state: \"open\" | \"closed\";\n html_url: string;\n user: {\n login: string;\n id: number;\n avatar_url: string;\n };\n labels: Array<{\n id: number;\n name: string;\n color: string;\n }>;\n assignees: Array<{\n login: string;\n id: number;\n avatar_url: string;\n }>;\n };\n repository: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n };\n sender: {\n login: string;\n id: number;\n avatar_url: string;\n };\n}\n\nexport interface IssueCommentEventPayload {\n action: \"created\" | \"edited\" | \"deleted\";\n issue: IssueEventPayload[\"issue\"];\n comment: {\n id: number;\n body: string;\n html_url: string;\n user: {\n login: string;\n id: number;\n avatar_url: string;\n };\n created_at: string;\n updated_at: string;\n };\n repository: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n };\n sender: {\n login: string;\n id: number;\n avatar_url: string;\n };\n}\n\nexport interface PullRequestReviewEventPayload {\n action: \"submitted\" | \"edited\" | \"dismissed\";\n pull_request: PullRequestEventPayload[\"pull_request\"];\n review: {\n id: number;\n body: string | null;\n state: \"approved\" | \"changes_requested\" | \"commented\" | \"dismissed\" | \"pending\";\n html_url: string;\n user: {\n login: string;\n id: number;\n avatar_url: string;\n };\n submitted_at: string;\n };\n repository: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n };\n sender: {\n login: string;\n id: number;\n avatar_url: string;\n };\n}\n\nexport interface WorkflowRunEventPayload {\n action: \"requested\" | \"completed\" | \"in_progress\";\n workflow_run: {\n id: number;\n name: string;\n head_branch: string;\n head_sha: string;\n status: \"queued\" | \"in_progress\" | \"completed\";\n conclusion: \"success\" | \"failure\" | \"neutral\" | \"cancelled\" | \"skipped\" | \"timed_out\" | \"action_required\" | null;\n html_url: string;\n created_at: string;\n updated_at: string;\n run_number: number;\n event: string;\n };\n workflow: {\n id: number;\n name: string;\n path: string;\n };\n repository: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n };\n sender: {\n login: string;\n id: number;\n avatar_url: string;\n };\n}\n\nexport interface CheckSuiteEventPayload {\n action: \"completed\" | \"requested\" | \"rerequested\";\n check_suite: {\n id: number;\n head_branch: string | null;\n head_sha: string;\n status: \"queued\" | \"in_progress\" | \"completed\";\n conclusion: \"success\" | \"failure\" | \"neutral\" | \"cancelled\" | \"skipped\" | \"timed_out\" | \"action_required\" | \"stale\" | null;\n url: string;\n before: string;\n after: string;\n };\n repository: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n };\n sender: {\n login: string;\n id: number;\n avatar_url: string;\n };\n}\n\nexport interface ReleaseEventPayload {\n action: \"published\" | \"unpublished\" | \"created\" | \"edited\" | \"deleted\" | \"prereleased\" | \"released\";\n release: {\n id: number;\n tag_name: string;\n name: string | null;\n body: string | null;\n draft: boolean;\n prerelease: boolean;\n html_url: string;\n author: {\n login: string;\n id: number;\n avatar_url: string;\n };\n created_at: string;\n published_at: string | null;\n };\n repository: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n };\n sender: {\n login: string;\n id: number;\n avatar_url: string;\n };\n}\n\nexport interface StarEventPayload {\n action: \"created\" | \"deleted\";\n starred_at: string | null;\n repository: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n stargazers_count: number;\n };\n sender: {\n login: string;\n id: number;\n avatar_url: string;\n };\n}\n\nexport interface ForkEventPayload {\n forkee: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n html_url: string;\n owner: {\n login: string;\n id: number;\n avatar_url: string;\n };\n };\n repository: {\n id: number;\n name: string;\n full_name: string;\n private: boolean;\n };\n sender: {\n login: string;\n id: number;\n avatar_url: string;\n };\n}\n\n/**\n * GitHub Webhook Handler class\n */\nexport class GitHubWebhooks {\n private webhooks: Webhooks;\n private handlers: Map<string, WebhookEventHandler[]> = new Map();\n private config: WebhookConfig;\n\n constructor(config: WebhookConfig) {\n this.config = {\n ...config,\n path: config.path || \"/api/github/webhooks\",\n };\n\n this.webhooks = new Webhooks({\n secret: config.secret,\n });\n\n this.setupInternalHandlers();\n }\n\n /**\n * Get the webhook path\n */\n get path(): string {\n return this.config.path!;\n }\n\n /**\n * Register a handler for a specific event\n */\n on<T = unknown>(event: string, handler: WebhookEventHandler<T>): void {\n const handlers = this.handlers.get(event) || [];\n handlers.push(handler as WebhookEventHandler);\n this.handlers.set(event, handlers);\n }\n\n /**\n * Register a handler for push events\n */\n onPush(handler: WebhookEventHandler<PushEventPayload>): void {\n this.on(\"push\", handler);\n }\n\n /**\n * Register a handler for pull request events\n */\n onPullRequest(handler: WebhookEventHandler<PullRequestEventPayload>): void {\n this.on(\"pull_request\", handler);\n }\n\n /**\n * Register a handler for issue events\n */\n onIssue(handler: WebhookEventHandler<IssueEventPayload>): void {\n this.on(\"issues\", handler);\n }\n\n /**\n * Register a handler for issue comment events\n */\n onIssueComment(handler: WebhookEventHandler<IssueCommentEventPayload>): void {\n this.on(\"issue_comment\", handler);\n }\n\n /**\n * Register a handler for pull request review events\n */\n onPullRequestReview(handler: WebhookEventHandler<PullRequestReviewEventPayload>): void {\n this.on(\"pull_request_review\", handler);\n }\n\n /**\n * Register a handler for workflow run events\n */\n onWorkflowRun(handler: WebhookEventHandler<WorkflowRunEventPayload>): void {\n this.on(\"workflow_run\", handler);\n }\n\n /**\n * Register a handler for check suite events\n */\n onCheckSuite(handler: WebhookEventHandler<CheckSuiteEventPayload>): void {\n this.on(\"check_suite\", handler);\n }\n\n /**\n * Register a handler for release events\n */\n onRelease(handler: WebhookEventHandler<ReleaseEventPayload>): void {\n this.on(\"release\", handler);\n }\n\n /**\n * Register a handler for star events\n */\n onStar(handler: WebhookEventHandler<StarEventPayload>): void {\n this.on(\"star\", handler);\n }\n\n /**\n * Register a handler for fork events\n */\n onFork(handler: WebhookEventHandler<ForkEventPayload>): void {\n this.on(\"fork\", handler);\n }\n\n /**\n * Handle an incoming webhook event\n */\n async handleEvent(\n eventName: string,\n eventId: string,\n payload: unknown,\n signature: string\n ): Promise<void> {\n const event: WebhookEvent = {\n id: eventId,\n name: eventName,\n payload,\n signature,\n receivedAt: new Date(),\n };\n\n const handlers = this.handlers.get(eventName) || [];\n\n // Also call \"all\" handlers\n const allHandlers = this.handlers.get(\"*\") || [];\n\n const allHandlersToRun = [...handlers, ...allHandlers];\n\n await Promise.all(allHandlersToRun.map((handler) => handler(event)));\n }\n\n /**\n * Verify webhook signature\n */\n async verifySignature(payload: string, signature: string): Promise<boolean> {\n try {\n return await this.webhooks.verify(payload, signature);\n } catch {\n return false;\n }\n }\n\n /**\n * Get Hono middleware for handling webhooks\n */\n getHonoMiddleware() {\n return async (c: any) => {\n const eventName = c.req.header(\"x-github-event\");\n const eventId = c.req.header(\"x-github-delivery\");\n const signature = c.req.header(\"x-hub-signature-256\") || \"\";\n\n if (!eventName || !eventId) {\n return c.json({ error: \"Missing required headers\" }, 400);\n }\n\n const payload = await c.req.text();\n\n // Verify signature\n const isValid = await this.verifySignature(payload, signature);\n if (!isValid) {\n return c.json({ error: \"Invalid signature\" }, 401);\n }\n\n try {\n const parsedPayload = JSON.parse(payload);\n await this.handleEvent(eventName, eventId, parsedPayload, signature);\n return c.json({ success: true });\n } catch (error) {\n console.error(\"Webhook handling error:\", error);\n return c.json({ error: \"Internal server error\" }, 500);\n }\n };\n }\n\n /**\n * Setup internal event handlers for logging/debugging\n */\n private setupInternalHandlers(): void {\n // Log all events for debugging\n this.on(\"*\", async (event) => {\n console.log(`[GitHub Webhook] ${event.name} (${event.id})`);\n });\n }\n}\n\n/**\n * Create a GitHub webhooks handler\n */\nexport function createWebhookHandler(config: WebhookConfig): GitHubWebhooks {\n return new GitHubWebhooks(config);\n}\n\n/**\n * Parse repository info from webhook payload\n */\nexport function parseRepoFromPayload(payload: {\n repository: { full_name: string; name: string; id: number };\n}): { owner: string; repo: string; id: number } {\n const [owner, repo] = payload.repository.full_name.split(\"/\");\n return { owner, repo, id: payload.repository.id };\n}\n\n/**\n * Format webhook event for notification\n */\nexport function formatEventNotification(event: WebhookEvent): string {\n const payload = event.payload as any;\n\n switch (event.name) {\n case \"push\": {\n const push = payload as PushEventPayload;\n const branch = push.ref.replace(\"refs/heads/\", \"\");\n const commits = push.commits?.length || 0;\n return `[${push.repository.full_name}] ${push.pusher.name} pushed ${commits} commit(s) to ${branch}`;\n }\n\n case \"pull_request\": {\n const pr = payload as PullRequestEventPayload;\n return `[${pr.repository.full_name}] PR #${pr.number} ${pr.action}: \"${pr.pull_request.title}\" by ${pr.sender.login}`;\n }\n\n case \"issues\": {\n const issue = payload as IssueEventPayload;\n return `[${issue.repository.full_name}] Issue #${issue.issue.number} ${issue.action}: \"${issue.issue.title}\" by ${issue.sender.login}`;\n }\n\n case \"issue_comment\": {\n const comment = payload as IssueCommentEventPayload;\n return `[${comment.repository.full_name}] Comment on #${comment.issue.number} by ${comment.sender.login}`;\n }\n\n case \"pull_request_review\": {\n const review = payload as PullRequestReviewEventPayload;\n return `[${review.repository.full_name}] PR #${review.pull_request.number} review ${review.review.state} by ${review.sender.login}`;\n }\n\n case \"workflow_run\": {\n const workflow = payload as WorkflowRunEventPayload;\n return `[${workflow.repository.full_name}] Workflow \"${workflow.workflow.name}\" ${workflow.action}: ${workflow.workflow_run.conclusion || workflow.workflow_run.status}`;\n }\n\n case \"release\": {\n const release = payload as ReleaseEventPayload;\n return `[${release.repository.full_name}] Release ${release.action}: ${release.release.tag_name}`;\n }\n\n case \"star\": {\n const star = payload as StarEventPayload;\n return `[${star.repository.full_name}] ${star.sender.login} ${star.action === \"created\" ? \"starred\" : \"unstarred\"} the repository`;\n }\n\n case \"fork\": {\n const fork = payload as ForkEventPayload;\n return `[${fork.repository.full_name}] ${fork.sender.login} forked to ${fork.forkee.full_name}`;\n }\n\n default:\n return `[GitHub] ${event.name} event received`;\n }\n}\n\n/**\n * Check if an event should trigger a notification based on action type\n */\nexport function shouldNotify(event: WebhookEvent, filter?: {\n actions?: string[];\n excludeActions?: string[];\n includeDraft?: boolean;\n}): boolean {\n const payload = event.payload as any;\n const action = payload.action;\n\n // Check action filter\n if (filter?.actions && action && !filter.actions.includes(action)) {\n return false;\n }\n\n if (filter?.excludeActions && action && filter.excludeActions.includes(action)) {\n return false;\n }\n\n // Check draft PRs\n if (event.name === \"pull_request\" && !filter?.includeDraft) {\n const pr = payload as PullRequestEventPayload;\n if (pr.pull_request.draft) {\n return false;\n }\n }\n\n return true;\n}\n","/**\n * GitHub Integration\n *\n * Provides comprehensive GitHub API integration for OpenSentinel,\n * including repository management, issues, pull requests,\n * AI-powered code review, and webhook handling.\n */\n\n// Import for default export\nimport * as clientModule from \"./client\";\nimport * as reposModule from \"./repos\";\nimport * as issuesModule from \"./issues\";\nimport * as prModule from \"./pull-requests\";\nimport * as codeReviewModule from \"./code-review\";\nimport * as webhooksModule from \"./webhooks\";\n\n// Client\nexport {\n getOctokit,\n createOctokit,\n getAuthenticatedUser,\n getRateLimit,\n parseRepoString,\n Octokit,\n type GitHubClientConfig,\n} from \"./client\";\n\n// Repositories\nexport {\n listRepositories,\n listOrgRepositories,\n getRepository,\n createRepository,\n createOrgRepository,\n deleteRepository,\n forkRepository,\n listBranches,\n getContents,\n getCloneInfo,\n searchRepositories,\n getLanguages,\n getContributors,\n type Repository,\n type CreateRepoOptions,\n type ListReposOptions,\n type RepoContents,\n type Branch,\n} from \"./repos\";\n\n// Issues\nexport {\n listIssues,\n getIssue,\n createIssue,\n updateIssue,\n closeIssue,\n reopenIssue,\n addLabels,\n removeLabel,\n setLabels,\n addAssignees,\n removeAssignees,\n listComments,\n createComment,\n updateComment,\n deleteComment,\n lockIssue,\n unlockIssue,\n searchIssues,\n type Issue,\n type IssueComment,\n type CreateIssueOptions,\n type UpdateIssueOptions,\n type ListIssuesOptions,\n} from \"./issues\";\n\n// Pull Requests\nexport {\n listPullRequests,\n getPullRequest,\n createPullRequest,\n updatePullRequest,\n closePullRequest,\n reopenPullRequest,\n markReadyForReview,\n convertToDraft,\n requestReviewers,\n removeReviewRequest,\n listReviews,\n createReview,\n approvePullRequest,\n requestChanges,\n submitReview,\n dismissReview,\n listReviewComments,\n createReviewComment,\n replyToReviewComment,\n listFiles,\n listCommits,\n checkMergeability,\n mergePullRequest,\n updateBranch,\n type PullRequest,\n type PullRequestReview,\n type ReviewComment,\n type PullRequestFile,\n type CreatePullRequestOptions,\n type UpdatePullRequestOptions,\n type ListPullRequestsOptions,\n type CreateReviewOptions,\n type MergeOptions,\n} from \"./pull-requests\";\n\n// Code Review\nexport {\n reviewPullRequest,\n reviewFile,\n summarizeChanges,\n securityScan,\n type CodeReviewOptions,\n type ReviewIssue,\n type CodeReviewResult,\n type DiffContext,\n} from \"./code-review\";\n\n// Webhooks\nexport {\n GitHubWebhooks,\n createWebhookHandler,\n parseRepoFromPayload,\n formatEventNotification,\n shouldNotify,\n type WebhookConfig,\n type WebhookEvent,\n type WebhookEventHandler,\n type PushEventPayload,\n type PullRequestEventPayload,\n type IssueEventPayload,\n type IssueCommentEventPayload,\n type PullRequestReviewEventPayload,\n type WorkflowRunEventPayload,\n type CheckSuiteEventPayload,\n type ReleaseEventPayload,\n type StarEventPayload,\n type ForkEventPayload,\n} from \"./webhooks\";\n\n// Default export with commonly used functions\nexport default {\n // Repository operations\n listRepositories: reposModule.listRepositories,\n getRepository: reposModule.getRepository,\n createRepository: reposModule.createRepository,\n forkRepository: reposModule.forkRepository,\n getCloneInfo: reposModule.getCloneInfo,\n\n // Issue operations\n listIssues: issuesModule.listIssues,\n getIssue: issuesModule.getIssue,\n createIssue: issuesModule.createIssue,\n updateIssue: issuesModule.updateIssue,\n closeIssue: issuesModule.closeIssue,\n createComment: issuesModule.createComment,\n\n // Pull request operations\n listPullRequests: prModule.listPullRequests,\n getPullRequest: prModule.getPullRequest,\n createPullRequest: prModule.createPullRequest,\n mergePullRequest: prModule.mergePullRequest,\n requestReviewers: prModule.requestReviewers,\n\n // Code review\n reviewPullRequest: codeReviewModule.reviewPullRequest,\n summarizeChanges: codeReviewModule.summarizeChanges,\n securityScan: codeReviewModule.securityScan,\n\n // Webhooks\n createWebhookHandler: webhooksModule.createWebhookHandler,\n\n // Utilities\n getAuthenticatedUser: clientModule.getAuthenticatedUser,\n getRateLimit: clientModule.getRateLimit,\n parseRepoString: clientModule.parseRepoString,\n};\n"],"mappings":"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","names":[]}
@@ -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/google-workspace.ts
7
7
  import { z } from "zod";
@@ -166,4 +166,4 @@ ${body}`).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/, "");
166
166
  export {
167
167
  GoogleWorkspaceAdapter
168
168
  };
169
- //# sourceMappingURL=google-workspace-DKWUVNGC.js.map
169
+ //# sourceMappingURL=google-workspace-TSZPZK5G.js.map
@@ -0,0 +1,17 @@
1
+ import {
2
+ GraphError,
3
+ getMe,
4
+ getMessage,
5
+ listMessages,
6
+ stripHtml
7
+ } from "./chunk-PBOCSGNL.js";
8
+ import "./chunk-7BNFELEK.js";
9
+ import "./chunk-UP2VWCW5.js";
10
+ export {
11
+ GraphError,
12
+ getMe,
13
+ getMessage,
14
+ listMessages,
15
+ stripHtml
16
+ };
17
+ //# sourceMappingURL=graph-client-NB475AK5.js.map
@@ -8,7 +8,7 @@ import {
8
8
  hashTool,
9
9
  hash_tool_default
10
10
  } from "./chunk-PHDZKPNE.js";
11
- import "./chunk-PLDDJCW6.js";
11
+ import "./chunk-UP2VWCW5.js";
12
12
  export {
13
13
  compareHashes,
14
14
  hash_tool_default as default,
@@ -19,4 +19,4 @@ export {
19
19
  hashString,
20
20
  hashTool
21
21
  };
22
- //# sourceMappingURL=hash-tool-ULQYD7B5.js.map
22
+ //# sourceMappingURL=hash-tool-ENAB5LWH.js.map
@@ -8,7 +8,7 @@ import {
8
8
  resetAll,
9
9
  unregisterService
10
10
  } from "./chunk-SAX5MHK4.js";
11
- import "./chunk-PLDDJCW6.js";
11
+ import "./chunk-UP2VWCW5.js";
12
12
  export {
13
13
  checkHeartbeats,
14
14
  heartbeat_monitor_default as default,
@@ -19,4 +19,4 @@ export {
19
19
  resetAll,
20
20
  unregisterService
21
21
  };
22
- //# sourceMappingURL=heartbeat-monitor-GCISLXI3.js.map
22
+ //# sourceMappingURL=heartbeat-monitor-KRDYTDBF.js.map
@@ -0,0 +1,14 @@
1
+ import {
2
+ HookManager,
3
+ SoulHookManager,
4
+ hookManager,
5
+ soulHookManager
6
+ } from "./chunk-ADTDYJO7.js";
7
+ import "./chunk-UP2VWCW5.js";
8
+ export {
9
+ HookManager,
10
+ SoulHookManager,
11
+ hookManager,
12
+ soulHookManager
13
+ };
14
+ //# sourceMappingURL=hooks-N4MIFBVM.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  isPathAllowed
3
3
  } from "./chunk-CQ4JURG7.js";
4
- import "./chunk-PLDDJCW6.js";
4
+ import "./chunk-UP2VWCW5.js";
5
5
 
6
6
  // src/tools/file-generation/image-generation.ts
7
7
  import { join } from "path";
@@ -483,4 +483,4 @@ export {
483
483
  generateMultipleImages,
484
484
  generatePlaceholderImage
485
485
  };
486
- //# sourceMappingURL=image-generation-OSU7FP6F.js.map
486
+ //# sourceMappingURL=image-generation-MDE6AVQO.js.map
@@ -0,0 +1,44 @@
1
+ import {
2
+ iMessageBot,
3
+ imessage_default
4
+ } from "./chunk-CWT6CAE5.js";
5
+ import "./chunk-ZMML6T63.js";
6
+ import "./chunk-5JJTLWOR.js";
7
+ import "./chunk-QPY3WRVM.js";
8
+ import "./chunk-ADTDYJO7.js";
9
+ import "./chunk-DTISLIMB.js";
10
+ import "./chunk-CUPEENUY.js";
11
+ import "./chunk-2WTKTG2C.js";
12
+ import "./chunk-U2X2J3FI.js";
13
+ import "./chunk-X6Q3K3L2.js";
14
+ import "./chunk-ODCFS5WD.js";
15
+ import "./chunk-KM22GV7G.js";
16
+ import "./chunk-P6QINGFL.js";
17
+ import "./chunk-HJSEEFO3.js";
18
+ import "./chunk-C6PELIHS.js";
19
+ import "./chunk-7WQO5J2M.js";
20
+ import "./chunk-WMFYI7XC.js";
21
+ import "./chunk-YEDEAX6Y.js";
22
+ import "./chunk-6ZNCY2GI.js";
23
+ import "./chunk-WZAH34TG.js";
24
+ import "./chunk-6KONMXQ6.js";
25
+ import "./chunk-22VGGA7S.js";
26
+ import "./chunk-HN3F4WSW.js";
27
+ import "./chunk-V3OKHQUX.js";
28
+ import "./chunk-2I5QHYG6.js";
29
+ import "./chunk-CZTMGHUC.js";
30
+ import "./chunk-4WH6MFEW.js";
31
+ import "./chunk-GW6V4D43.js";
32
+ import "./chunk-DOYGMNMK.js";
33
+ import "./chunk-CQ4JURG7.js";
34
+ import "./chunk-BBN4VCNK.js";
35
+ import "./chunk-5BTVJR7R.js";
36
+ import "./chunk-4KIHDIXZ.js";
37
+ import "./chunk-ZIBRVA3Y.js";
38
+ import "./chunk-35WYTA3C.js";
39
+ import "./chunk-UP2VWCW5.js";
40
+ export {
41
+ imessage_default as default,
42
+ iMessageBot
43
+ };
44
+ //# sourceMappingURL=imessage-DSGSGUZS.js.map
@@ -0,0 +1,56 @@
1
+ import {
2
+ analyzeSentiment,
3
+ categorizeEmail,
4
+ extractActionItems,
5
+ generateDailyDigest,
6
+ inbox_summarizer_default,
7
+ suggestReplies,
8
+ summarizeInbox,
9
+ summarizeThread
10
+ } from "./chunk-GBVJTRXS.js";
11
+ import "./chunk-ZMML6T63.js";
12
+ import "./chunk-5JJTLWOR.js";
13
+ import "./chunk-QPY3WRVM.js";
14
+ import "./chunk-ADTDYJO7.js";
15
+ import "./chunk-DTISLIMB.js";
16
+ import "./chunk-CUPEENUY.js";
17
+ import "./chunk-2WTKTG2C.js";
18
+ import "./chunk-U2X2J3FI.js";
19
+ import "./chunk-X6Q3K3L2.js";
20
+ import "./chunk-ODCFS5WD.js";
21
+ import "./chunk-KM22GV7G.js";
22
+ import "./chunk-P6QINGFL.js";
23
+ import "./chunk-HJSEEFO3.js";
24
+ import "./chunk-C6PELIHS.js";
25
+ import "./chunk-7WQO5J2M.js";
26
+ import "./chunk-WMFYI7XC.js";
27
+ import "./chunk-YEDEAX6Y.js";
28
+ import "./chunk-6ZNCY2GI.js";
29
+ import "./chunk-WZAH34TG.js";
30
+ import "./chunk-6KONMXQ6.js";
31
+ import "./chunk-22VGGA7S.js";
32
+ import "./chunk-HN3F4WSW.js";
33
+ import "./chunk-V3OKHQUX.js";
34
+ import "./chunk-2I5QHYG6.js";
35
+ import "./chunk-CZTMGHUC.js";
36
+ import "./chunk-4WH6MFEW.js";
37
+ import "./chunk-GW6V4D43.js";
38
+ import "./chunk-DOYGMNMK.js";
39
+ import "./chunk-CQ4JURG7.js";
40
+ import "./chunk-BBN4VCNK.js";
41
+ import "./chunk-5BTVJR7R.js";
42
+ import "./chunk-4KIHDIXZ.js";
43
+ import "./chunk-ZIBRVA3Y.js";
44
+ import "./chunk-35WYTA3C.js";
45
+ import "./chunk-UP2VWCW5.js";
46
+ export {
47
+ analyzeSentiment,
48
+ categorizeEmail,
49
+ inbox_summarizer_default as default,
50
+ extractActionItems,
51
+ generateDailyDigest,
52
+ suggestReplies,
53
+ summarizeInbox,
54
+ summarizeThread
55
+ };
56
+ //# sourceMappingURL=inbox-summarizer-F2KAU72V.js.map
@@ -1,13 +1,15 @@
1
1
  import {
2
2
  logAudit
3
- } from "./chunk-OCVQGBJK.js";
3
+ } from "./chunk-BBN4VCNK.js";
4
+ import {
5
+ db
6
+ } from "./chunk-5BTVJR7R.js";
7
+ import "./chunk-4KIHDIXZ.js";
4
8
  import {
5
- db,
6
9
  incidentTimeline,
7
10
  securityIncidents
8
- } from "./chunk-XKYRH4FM.js";
9
- import "./chunk-ZLZKF2PM.js";
10
- import "./chunk-PLDDJCW6.js";
11
+ } from "./chunk-ZIBRVA3Y.js";
12
+ import "./chunk-UP2VWCW5.js";
11
13
 
12
14
  // src/core/security/incident-response.ts
13
15
  import { eq, or, desc } from "drizzle-orm";
@@ -241,4 +243,4 @@ export {
241
243
  updateIncidentStatus,
242
244
  wireIncidentResponseToAuthMonitor
243
245
  };
244
- //# sourceMappingURL=incident-response-C5J7Q6DT.js.map
246
+ //# sourceMappingURL=incident-response-E3UGMX5G.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/security/incident-response.ts"],"sourcesContent":["// SOC 2 Incident Response System\r\n// Manages security incident lifecycle: creation, investigation, containment, resolution\r\n\r\nimport { db } from \"../../db\";\r\nimport { securityIncidents, incidentTimeline, users } from \"../../db/schema\";\r\nimport { eq, or, desc } from \"drizzle-orm\";\r\nimport { logAudit } from \"./audit-logger\";\r\n\r\n// ---------------------------------------------------------------------------\r\n// Type aliases (matching the schema column types)\r\n// ---------------------------------------------------------------------------\r\n\r\ntype IncidentType =\r\n | \"brute_force\"\r\n | \"unauthorized_access\"\r\n | \"data_breach\"\r\n | \"suspicious_activity\"\r\n | \"system_compromise\"\r\n | \"policy_violation\";\r\n\r\ntype IncidentSeverity = \"low\" | \"medium\" | \"high\" | \"critical\";\r\n\r\ntype IncidentStatus =\r\n | \"open\"\r\n | \"investigating\"\r\n | \"contained\"\r\n | \"resolved\"\r\n | \"closed\";\r\n\r\n// ---------------------------------------------------------------------------\r\n// Helpers\r\n// ---------------------------------------------------------------------------\r\n\r\n/**\r\n * Generate a unique incident number in the format INC-YYYYMMDD-XXXX\r\n * where XXXX is 4 random uppercase alphanumeric characters.\r\n */\r\nexport function generateIncidentNumber(): string {\r\n const now = new Date();\r\n const yyyy = now.getFullYear().toString();\r\n const mm = (now.getMonth() + 1).toString().padStart(2, \"0\");\r\n const dd = now.getDate().toString().padStart(2, \"0\");\r\n const chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";\r\n let suffix = \"\";\r\n for (let i = 0; i < 4; i++) {\r\n suffix += chars.charAt(Math.floor(Math.random() * chars.length));\r\n }\r\n return `INC-${yyyy}${mm}${dd}-${suffix}`;\r\n}\r\n\r\n/**\r\n * Map an anomaly type string (from AuthMonitor) to the corresponding\r\n * incident type and severity.\r\n */\r\nexport function mapAnomalyToIncident(anomalyType: string): {\r\n type: IncidentType;\r\n severity: IncidentSeverity;\r\n} {\r\n switch (anomalyType) {\r\n case \"brute_force\":\r\n return { type: \"brute_force\", severity: \"critical\" };\r\n case \"impossible_travel\":\r\n return { type: \"unauthorized_access\", severity: \"high\" };\r\n case \"new_device\":\r\n return { type: \"suspicious_activity\", severity: \"medium\" };\r\n case \"new_ip\":\r\n return { type: \"suspicious_activity\", severity: \"low\" };\r\n case \"rapid_session_switching\":\r\n return { type: \"suspicious_activity\", severity: \"medium\" };\r\n case \"unusual_time\":\r\n return { type: \"suspicious_activity\", severity: \"low\" };\r\n default:\r\n return { type: \"suspicious_activity\", severity: \"medium\" };\r\n }\r\n}\r\n\r\n// ---------------------------------------------------------------------------\r\n// Core CRUD\r\n// ---------------------------------------------------------------------------\r\n\r\n/**\r\n * Create a new security incident, add the initial \"created\" timeline event,\r\n * and emit an audit log entry.\r\n */\r\nexport async function createIncident(params: {\r\n title: string;\r\n description: string;\r\n type: IncidentType;\r\n severity: IncidentSeverity;\r\n userId?: string;\r\n source: string;\r\n sourceData?: unknown;\r\n assignedTo?: string;\r\n}) {\r\n const incidentNumber = generateIncidentNumber();\r\n\r\n const [incident] = await db\r\n .insert(securityIncidents)\r\n .values({\r\n incidentNumber,\r\n title: params.title,\r\n description: params.description,\r\n type: params.type,\r\n severity: params.severity,\r\n status: \"open\",\r\n userId: params.userId,\r\n assignedTo: params.assignedTo,\r\n source: params.source,\r\n sourceData: params.sourceData as any,\r\n })\r\n .returning();\r\n\r\n // Add \"created\" timeline event\r\n await addTimelineEvent({\r\n incidentId: incident.id,\r\n eventType: \"created\",\r\n description: `Incident ${incidentNumber} created: ${params.title}`,\r\n performedBy: params.userId,\r\n metadata: {\r\n type: params.type,\r\n severity: params.severity,\r\n source: params.source,\r\n },\r\n });\r\n\r\n // Audit log\r\n try {\r\n await logAudit({\r\n userId: params.userId,\r\n action: \"tool_use\" as any,\r\n resource: \"tool\" as any,\r\n resourceId: incident.id,\r\n details: {\r\n event: \"incident_created\",\r\n incidentNumber,\r\n type: params.type,\r\n severity: params.severity,\r\n source: params.source,\r\n },\r\n });\r\n } catch {\r\n // Audit logging should not block incident creation\r\n }\r\n\r\n return incident;\r\n}\r\n\r\n/**\r\n * Create an incident automatically from an AuthMonitor anomaly.\r\n */\r\nexport async function createIncidentFromAnomaly(\r\n userId: string,\r\n anomaly: {\r\n type: string;\r\n level: string;\r\n message: string;\r\n details?: unknown;\r\n timestamp: Date;\r\n }\r\n) {\r\n const { type, severity } = mapAnomalyToIncident(anomaly.type);\r\n\r\n return createIncident({\r\n title: `[Auto] ${anomaly.message}`,\r\n description: `Automatically created from ${anomaly.type} anomaly detected at ${anomaly.timestamp.toISOString()}.\\n\\nLevel: ${anomaly.level}\\nMessage: ${anomaly.message}`,\r\n type,\r\n severity,\r\n userId,\r\n source: \"auth_monitor\",\r\n sourceData: {\r\n anomalyType: anomaly.type,\r\n anomalyLevel: anomaly.level,\r\n details: anomaly.details,\r\n detectedAt: anomaly.timestamp.toISOString(),\r\n },\r\n });\r\n}\r\n\r\n// ---------------------------------------------------------------------------\r\n// Status management\r\n// ---------------------------------------------------------------------------\r\n\r\n/**\r\n * Transition an incident to a new status, updating the appropriate timestamp\r\n * field and recording a timeline event.\r\n */\r\nexport async function updateIncidentStatus(\r\n incidentId: string,\r\n newStatus: IncidentStatus,\r\n performedBy?: string,\r\n notes?: string\r\n) {\r\n const updateData: Record<string, unknown> = {\r\n status: newStatus,\r\n updatedAt: new Date(),\r\n };\r\n\r\n switch (newStatus) {\r\n case \"investigating\":\r\n updateData.investigatedAt = new Date();\r\n break;\r\n case \"contained\":\r\n updateData.containedAt = new Date();\r\n break;\r\n case \"resolved\":\r\n updateData.resolvedAt = new Date();\r\n if (notes) {\r\n updateData.resolutionNotes = notes;\r\n }\r\n break;\r\n case \"closed\":\r\n updateData.closedAt = new Date();\r\n break;\r\n }\r\n\r\n const [updated] = await db\r\n .update(securityIncidents)\r\n .set(updateData)\r\n .where(eq(securityIncidents.id, incidentId))\r\n .returning();\r\n\r\n // Timeline event\r\n await addTimelineEvent({\r\n incidentId,\r\n eventType: \"status_change\",\r\n description: `Status changed to ${newStatus}${notes ? `: ${notes}` : \"\"}`,\r\n performedBy,\r\n metadata: { newStatus, notes },\r\n });\r\n\r\n return updated;\r\n}\r\n\r\n/**\r\n * Assign an incident to a user and record the assignment in the timeline.\r\n */\r\nexport async function assignIncident(\r\n incidentId: string,\r\n assignedTo: string,\r\n performedBy?: string\r\n) {\r\n const [updated] = await db\r\n .update(securityIncidents)\r\n .set({ assignedTo, updatedAt: new Date() })\r\n .where(eq(securityIncidents.id, incidentId))\r\n .returning();\r\n\r\n await addTimelineEvent({\r\n incidentId,\r\n eventType: \"assignment\",\r\n description: `Incident assigned to ${assignedTo}`,\r\n performedBy,\r\n metadata: { assignedTo },\r\n });\r\n\r\n return updated;\r\n}\r\n\r\n/**\r\n * Add a timeline event to an incident.\r\n */\r\nexport async function addTimelineEvent(params: {\r\n incidentId: string;\r\n eventType: string;\r\n description: string;\r\n performedBy?: string;\r\n metadata?: unknown;\r\n}) {\r\n const [event] = await db\r\n .insert(incidentTimeline)\r\n .values({\r\n incidentId: params.incidentId,\r\n eventType: params.eventType as any,\r\n description: params.description,\r\n performedBy: params.performedBy,\r\n metadata: params.metadata as any,\r\n })\r\n .returning();\r\n\r\n return event;\r\n}\r\n\r\n/**\r\n * Convenience wrapper to resolve an incident with notes.\r\n */\r\nexport async function resolveIncident(\r\n incidentId: string,\r\n notes: string,\r\n performedBy?: string\r\n) {\r\n return updateIncidentStatus(incidentId, \"resolved\", performedBy, notes);\r\n}\r\n\r\n// ---------------------------------------------------------------------------\r\n// Queries\r\n// ---------------------------------------------------------------------------\r\n\r\n/**\r\n * Retrieve open incidents (status = open | investigating | contained),\r\n * optionally filtered by severity, type, userId, and limited.\r\n */\r\nexport async function getOpenIncidents(\r\n options: {\r\n severity?: IncidentSeverity;\r\n type?: IncidentType;\r\n userId?: string;\r\n limit?: number;\r\n } = {}\r\n) {\r\n const { severity, type, userId, limit = 50 } = options;\r\n\r\n let results = await db\r\n .select()\r\n .from(securityIncidents)\r\n .where(\r\n or(\r\n eq(securityIncidents.status, \"open\"),\r\n eq(securityIncidents.status, \"investigating\"),\r\n eq(securityIncidents.status, \"contained\")\r\n )\r\n )\r\n .orderBy(desc(securityIncidents.createdAt))\r\n .limit(limit);\r\n\r\n // Post-filter by optional criteria\r\n if (severity) {\r\n results = results.filter((inc) => inc.severity === severity);\r\n }\r\n if (type) {\r\n results = results.filter((inc) => inc.type === type);\r\n }\r\n if (userId) {\r\n results = results.filter((inc) => inc.userId === userId);\r\n }\r\n\r\n return results;\r\n}\r\n\r\n/**\r\n * Retrieve the full timeline for a specific incident, ordered chronologically.\r\n */\r\nexport async function getIncidentTimeline(incidentId: string) {\r\n return db\r\n .select()\r\n .from(incidentTimeline)\r\n .where(eq(incidentTimeline.incidentId, incidentId))\r\n .orderBy(desc(incidentTimeline.createdAt));\r\n}\r\n\r\n// ---------------------------------------------------------------------------\r\n// Reporting\r\n// ---------------------------------------------------------------------------\r\n\r\n/**\r\n * Generate a structured incident report with a markdown-formatted summary.\r\n */\r\nexport async function generateIncidentReport(incidentId: string) {\r\n const [incident] = await db\r\n .select()\r\n .from(securityIncidents)\r\n .where(eq(securityIncidents.id, incidentId))\r\n .limit(1);\r\n\r\n if (!incident) {\r\n throw new Error(`Incident not found: ${incidentId}`);\r\n }\r\n\r\n const timeline = await getIncidentTimeline(incidentId);\r\n\r\n const timelineEntries = timeline\r\n .map(\r\n (e) =>\r\n `- **${e.createdAt.toISOString()}** [${e.eventType}] ${e.description}`\r\n )\r\n .join(\"\\n\");\r\n\r\n const summary = `# Incident Report: ${incident.incidentNumber}\r\n\r\n## Overview\r\n- **Title**: ${incident.title}\r\n- **Type**: ${incident.type}\r\n- **Severity**: ${incident.severity}\r\n- **Status**: ${incident.status}\r\n- **Source**: ${incident.source}\r\n- **Created**: ${incident.createdAt.toISOString()}\r\n- **Updated**: ${incident.updatedAt.toISOString()}\r\n\r\n## Description\r\n${incident.description}\r\n\r\n## Impact Assessment\r\n${incident.impactAssessment ?? \"Not yet assessed.\"}\r\n\r\n## Resolution\r\n${incident.resolutionNotes ?? \"Not yet resolved.\"}\r\n\r\n## Timeline\r\n${timelineEntries || \"No timeline events recorded.\"}\r\n`;\r\n\r\n return { incident, timeline, summary };\r\n}\r\n\r\n// ---------------------------------------------------------------------------\r\n// Integration with AuthMonitor\r\n// ---------------------------------------------------------------------------\r\n\r\n/**\r\n * Wire the incident response system into an AuthMonitor instance so that\r\n * warning-level and critical-level anomalies automatically create incidents.\r\n */\r\nexport function wireIncidentResponseToAuthMonitor(authMonitor: {\r\n onAlert: (\r\n cb: (userId: string, anomaly: any) => void | Promise<void>\r\n ) => void;\r\n}) {\r\n authMonitor.onAlert(async (userId: string, anomaly: any) => {\r\n // Only create incidents for warning and critical anomalies\r\n if (anomaly.level === \"warning\" || anomaly.level === \"critical\") {\r\n try {\r\n await createIncidentFromAnomaly(userId, anomaly);\r\n } catch {\r\n // Incident creation failure should not crash the auth flow\r\n }\r\n }\r\n });\r\n}\r\n"],"mappings":"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","names":[]}
@@ -9,7 +9,7 @@ import {
9
9
  setQuantity,
10
10
  updateQuantity
11
11
  } from "./chunk-HN3F4WSW.js";
12
- import "./chunk-PLDDJCW6.js";
12
+ import "./chunk-UP2VWCW5.js";
13
13
  export {
14
14
  addItem,
15
15
  clearInventory,
@@ -21,4 +21,4 @@ export {
21
21
  setQuantity,
22
22
  updateQuantity
23
23
  };
24
- //# sourceMappingURL=inventory-manager-352OHXWD.js.map
24
+ //# sourceMappingURL=inventory-manager-C67BSZM6.js.map
@@ -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/jira.ts
7
7
  import { z } from "zod";
@@ -196,4 +196,4 @@ var JiraAdapter = class extends BaseAdapter {
196
196
  export {
197
197
  JiraAdapter
198
198
  };
199
- //# sourceMappingURL=jira-GSGDBMIG.js.map
199
+ //# sourceMappingURL=jira-PAGZWUBJ.js.map
@@ -10,7 +10,7 @@ import {
10
10
  unflattenJson,
11
11
  validateJson
12
12
  } from "./chunk-F3TTNID2.js";
13
- import "./chunk-PLDDJCW6.js";
13
+ import "./chunk-UP2VWCW5.js";
14
14
  export {
15
15
  json_tool_default as default,
16
16
  diffJson,
@@ -23,4 +23,4 @@ export {
23
23
  unflattenJson,
24
24
  validateJson
25
25
  };
26
- //# sourceMappingURL=json-tool-QE2SYHEG.js.map
26
+ //# sourceMappingURL=json-tool-4FK5RNER.js.map
@@ -6,7 +6,7 @@ import {
6
6
  reEncryptValue,
7
7
  rotateEncryptionKeys
8
8
  } from "./chunk-BIPYADGB.js";
9
- import "./chunk-PLDDJCW6.js";
9
+ import "./chunk-UP2VWCW5.js";
10
10
  export {
11
11
  key_rotation_default as default,
12
12
  generateEncryptionKey,
@@ -15,4 +15,4 @@ export {
15
15
  reEncryptValue,
16
16
  rotateEncryptionKeys
17
17
  };
18
- //# sourceMappingURL=key-rotation-DPHU4ZTB.js.map
18
+ //# sourceMappingURL=key-rotation-WCC5FOYS.js.map
@@ -0,0 +1,46 @@
1
+ import {
2
+ deleteDocument,
3
+ deleteDocuments,
4
+ generateEmbedding,
5
+ generateEmbeddings,
6
+ getDocument,
7
+ getDocumentChunks,
8
+ getKnowledgeBaseStats,
9
+ getQueryContext,
10
+ ingestDocument,
11
+ ingestDocuments,
12
+ listDocuments,
13
+ queryKnowledgeBase,
14
+ searchDocuments,
15
+ updateDocumentMetadata
16
+ } from "./chunk-ZVHG4KF2.js";
17
+ import "./chunk-XTX7EK43.js";
18
+ import "./chunk-6W6PTJFT.js";
19
+ import "./chunk-MIC5IBQF.js";
20
+ import "./chunk-ZIYTHUM5.js";
21
+ import "./chunk-5BTVJR7R.js";
22
+ import "./chunk-4KIHDIXZ.js";
23
+ import {
24
+ documentChunks,
25
+ documents
26
+ } from "./chunk-ZIBRVA3Y.js";
27
+ import "./chunk-UP2VWCW5.js";
28
+ export {
29
+ deleteDocument,
30
+ deleteDocuments,
31
+ documentChunks,
32
+ documents,
33
+ generateEmbedding,
34
+ generateEmbeddings,
35
+ getDocument,
36
+ getDocumentChunks,
37
+ getKnowledgeBaseStats,
38
+ getQueryContext,
39
+ ingestDocument,
40
+ ingestDocuments,
41
+ listDocuments,
42
+ queryKnowledgeBase,
43
+ searchDocuments,
44
+ updateDocumentMetadata
45
+ };
46
+ //# sourceMappingURL=knowledge-base-5SMMOGQJ.js.map