@axiom-lattice/gateway 4.1.7 → 4.2.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.
- package/dist/{A2AAuthService-DK5X6VIL.mjs → A2AAuthService-7UGQ7GMW.mjs} +3 -2
- package/dist/{WechatChannelAdapter-WSDKR4OA.mjs → WechatChannelAdapter-7WHE5UGY.mjs} +2 -1
- package/dist/{WechatChannelAdapter-WSDKR4OA.mjs.map → WechatChannelAdapter-7WHE5UGY.mjs.map} +1 -1
- package/dist/{a2a-7N3WDAOP.mjs → a2a-FGYX2HH3.mjs} +71 -32
- package/dist/a2a-FGYX2HH3.mjs.map +1 -0
- package/dist/{a2a-standard-WC2BSOFV.mjs → a2a-standard-VEQBXBMM.mjs} +93 -115
- package/dist/a2a-standard-VEQBXBMM.mjs.map +1 -0
- package/dist/agentProvider-X4FVQPKW.mjs +88 -0
- package/dist/agentProvider-X4FVQPKW.mjs.map +1 -0
- package/dist/chunk-2POW27EI.mjs +27 -0
- package/dist/chunk-2POW27EI.mjs.map +1 -0
- package/dist/chunk-52SUWMOX.mjs +121 -0
- package/dist/chunk-52SUWMOX.mjs.map +1 -0
- package/dist/chunk-GF4GGTWJ.mjs +164 -0
- package/dist/chunk-GF4GGTWJ.mjs.map +1 -0
- package/dist/{chunk-2HOCF46L.mjs → chunk-GPHOYR3X.mjs} +33 -11
- package/dist/chunk-GPHOYR3X.mjs.map +1 -0
- package/dist/chunk-K32XEQLH.mjs +28 -0
- package/dist/chunk-K32XEQLH.mjs.map +1 -0
- package/dist/chunk-NFEGQTCC.mjs +27 -0
- package/dist/chunk-PWHUWFXL.mjs +173 -0
- package/dist/chunk-PWHUWFXL.mjs.map +1 -0
- package/dist/{chunk-K4XELOSO.mjs → chunk-QKPZWWHH.mjs} +3 -2
- package/dist/{chunk-K4XELOSO.mjs.map → chunk-QKPZWWHH.mjs.map} +1 -1
- package/dist/chunk-QUT2DS4R.mjs +50 -0
- package/dist/chunk-QUT2DS4R.mjs.map +1 -0
- package/dist/chunk-TJAUXMYJ.mjs +109 -0
- package/dist/chunk-TJAUXMYJ.mjs.map +1 -0
- package/dist/chunk-WKNZ7GBC.mjs +56 -0
- package/dist/chunk-WKNZ7GBC.mjs.map +1 -0
- package/dist/collection_service-RTRJEQFL.mjs +8 -0
- package/dist/collection_service-RTRJEQFL.mjs.map +1 -0
- package/dist/embed/agent-chat-loader.js +1 -0
- package/dist/embed/embed-page-1c-75E4QIWF.js +1 -0
- package/dist/embed/embed-page-AgentDetailSideApp-KGYKTMZR.js +1 -0
- package/dist/embed/embed-page-AgentDetailSideApp-O6G4NJ7I.css +1 -0
- package/dist/embed/embed-page-AgentGovernanceWorkbench-F42AJH77.js +5 -0
- package/dist/embed/embed-page-AgentGovernanceWorkbench-SFZNVMUH.css +1 -0
- package/dist/embed/embed-page-MessageGraph-ACHQORG7.js +6 -0
- package/dist/embed/embed-page-MessageGraph-TYOOATYV.css +1 -0
- package/dist/embed/embed-page-ReactChart-FGUHXBED.js +1 -0
- package/dist/embed/embed-page-ReactChart-VBM467ER.css +1 -0
- package/dist/embed/embed-page-ReactInfographic-IABAC7DO.js +574 -0
- package/dist/embed/embed-page-SkillFlow-SFZ5HLMK.js +1 -0
- package/dist/embed/embed-page-SkillFlow-VDPP5DFL.css +1 -0
- package/dist/embed/embed-page-TasksSideApp-4GY5YBTN.js +241 -0
- package/dist/embed/embed-page-TasksSideApp-F4XUHPTG.css +1 -0
- package/dist/embed/embed-page-TeamWorkspace-DXKGNQ3C.css +1 -0
- package/dist/embed/embed-page-TeamWorkspace-YWE6ZTLB.js +748 -0
- package/dist/embed/embed-page-TopologyRuntimeView-2NQ3OOYI.css +1 -0
- package/dist/embed/embed-page-TopologyRuntimeView-MKFPCHT3.js +6 -0
- package/dist/embed/embed-page-WorkflowAutomationView-MAYS27YJ.css +1 -0
- package/dist/embed/embed-page-WorkflowAutomationView-WT6VH5HD.js +3 -0
- package/dist/embed/embed-page-abap-QKV7XZRP.js +1 -0
- package/dist/embed/embed-page-abnf-534KGIL5.js +1 -0
- package/dist/embed/embed-page-abnf-NNWX7KPS.js +1 -0
- package/dist/embed/embed-page-accesslog-K5DAETBI.js +1 -0
- package/dist/embed/embed-page-actionscript-MLTGVDIY.js +1 -0
- package/dist/embed/embed-page-actionscript-YXZSI3FP.js +1 -0
- package/dist/embed/embed-page-ada-SMIJQ6T7.js +1 -0
- package/dist/embed/embed-page-ada-Z5BYNU6B.js +1 -0
- package/dist/embed/embed-page-agda-WCRTGDJB.js +1 -0
- package/dist/embed/embed-page-al-2LSX2G2U.js +1 -0
- package/dist/embed/embed-page-all-RTJLYZHS.js +1 -0
- package/dist/embed/embed-page-angelscript-4S3XC2EJ.js +1 -0
- package/dist/embed/embed-page-antlr4-OLOPZLHD.js +1 -0
- package/dist/embed/embed-page-apache-RGO2UM6T.js +1 -0
- package/dist/embed/embed-page-apacheconf-EKQ6F4ZQ.js +1 -0
- package/dist/embed/embed-page-apex-ZJTOIW4M.js +1 -0
- package/dist/embed/embed-page-apl-W7YETB5L.js +1 -0
- package/dist/embed/embed-page-applescript-I4PV6U4X.js +1 -0
- package/dist/embed/embed-page-applescript-M2D2KKDY.js +1 -0
- package/dist/embed/embed-page-aql-V6TCDQAH.js +1 -0
- package/dist/embed/embed-page-arcade-TSPLEDM5.js +1 -0
- package/dist/embed/embed-page-architecture-U656AL7Q-55BYHO3H.js +1 -0
- package/dist/embed/embed-page-architectureDiagram-VXUJARFQ-GDHKRBZH.js +36 -0
- package/dist/embed/embed-page-arduino-7N264XVW.js +1 -0
- package/dist/embed/embed-page-arduino-XUEUIP7S.js +1 -0
- package/dist/embed/embed-page-arff-M7PKJV7Y.js +1 -0
- package/dist/embed/embed-page-armasm-OAQGLAMS.js +1 -0
- package/dist/embed/embed-page-armasm-PTMJUNBD.js +1 -0
- package/dist/embed/embed-page-arturo-VYVR5YRA.js +1 -0
- package/dist/embed/embed-page-asciidoc-6GDV5NP4.js +1 -0
- package/dist/embed/embed-page-asciidoc-PDLRDQNM.js +1 -0
- package/dist/embed/embed-page-asm6502-LVC7KLV5.js +1 -0
- package/dist/embed/embed-page-asmatmel-B4D7TBZY.js +1 -0
- package/dist/embed/embed-page-aspectj-QZFNA4MK.js +1 -0
- package/dist/embed/embed-page-aspnet-4JJQ3PPT.js +1 -0
- package/dist/embed/embed-page-autohotkey-4QUCSDML.js +1 -0
- package/dist/embed/embed-page-autohotkey-SVPZNOL7.js +1 -0
- package/dist/embed/embed-page-autoit-IXYC6T6A.js +1 -0
- package/dist/embed/embed-page-autoit-PFZZYGX5.js +1 -0
- package/dist/embed/embed-page-avisynth-MVQJIFSP.js +1 -0
- package/dist/embed/embed-page-avrasm-XYNKWFKC.js +1 -0
- package/dist/embed/embed-page-avro-idl-4AA2QRRU.js +1 -0
- package/dist/embed/embed-page-awk-JNS3RERS.js +1 -0
- package/dist/embed/embed-page-awk-RMGF56MA.js +1 -0
- package/dist/embed/embed-page-axapta-6U5QN2JT.js +1 -0
- package/dist/embed/embed-page-bash-UJJ4GKW6.js +1 -0
- package/dist/embed/embed-page-bash-VYDNQBY7.js +1 -0
- package/dist/embed/embed-page-basic-6KLN4O27.js +1 -0
- package/dist/embed/embed-page-basic-EJRJ7W4E.js +1 -0
- package/dist/embed/embed-page-batch-AJOBLMJ2.js +1 -0
- package/dist/embed/embed-page-bbcode-CIP6MR7G.js +1 -0
- package/dist/embed/embed-page-bbj-OPFURIS3.js +1 -0
- package/dist/embed/embed-page-bicep-7BI3OTK4.js +1 -0
- package/dist/embed/embed-page-birb-LWSJQUWN.js +1 -0
- package/dist/embed/embed-page-bison-HDVOA2OF.js +1 -0
- package/dist/embed/embed-page-blockDiagram-VD42YOAC-6GQBPG3N.js +122 -0
- package/dist/embed/embed-page-bnf-7O24GKM6.js +1 -0
- package/dist/embed/embed-page-bnf-TCLPD45L.js +1 -0
- package/dist/embed/embed-page-bqn-LADFOREK.js +1 -0
- package/dist/embed/embed-page-brainfuck-B2QDW5Y5.js +1 -0
- package/dist/embed/embed-page-brainfuck-HUZY5LJA.js +1 -0
- package/dist/embed/embed-page-brightscript-4E54PL3L.js +1 -0
- package/dist/embed/embed-page-bro-DEBMJONL.js +1 -0
- package/dist/embed/embed-page-bsl-5HTEKAYP.js +1 -0
- package/dist/embed/embed-page-c-LFRMHVS4.js +1 -0
- package/dist/embed/embed-page-c-X5PJHL4T.js +1 -0
- package/dist/embed/embed-page-c-like-UPVRYRH5.js +1 -0
- package/dist/embed/embed-page-c4Diagram-YG6GDRKO-UBUOGTT3.js +10 -0
- package/dist/embed/embed-page-cal-MS5NKCDW.js +1 -0
- package/dist/embed/embed-page-capnproto-VVJPMDQX.js +1 -0
- package/dist/embed/embed-page-ceylon-TOPAPEAZ.js +1 -0
- package/dist/embed/embed-page-cfscript-P3X63VSB.js +1 -0
- package/dist/embed/embed-page-chaiscript-QZLDHGV3.js +1 -0
- package/dist/embed/embed-page-chunk-2AUFZBHG.js +1 -0
- package/dist/embed/embed-page-chunk-2AX46B4A.js +1 -0
- package/dist/embed/embed-page-chunk-2BEHY2KL.js +1 -0
- package/dist/embed/embed-page-chunk-2CM5KQAO.js +1 -0
- package/dist/embed/embed-page-chunk-2DKYYWQC.js +1 -0
- package/dist/embed/embed-page-chunk-2GFIRW6Z.js +1 -0
- package/dist/embed/embed-page-chunk-2GGHQJ6Z.js +1 -0
- package/dist/embed/embed-page-chunk-2IURSVR2.js +7 -0
- package/dist/embed/embed-page-chunk-2NLG2PBF.js +1 -0
- package/dist/embed/embed-page-chunk-2REOJOLY.js +1 -0
- package/dist/embed/embed-page-chunk-2SKSDKSN.js +1 -0
- package/dist/embed/embed-page-chunk-2V6IHON2.js +1 -0
- package/dist/embed/embed-page-chunk-2VJ7T35I.js +1 -0
- package/dist/embed/embed-page-chunk-2WL6TSEG.js +1 -0
- package/dist/embed/embed-page-chunk-2XLPEIWW.js +1 -0
- package/dist/embed/embed-page-chunk-2YRVPZIU.js +1 -0
- package/dist/embed/embed-page-chunk-33GTW5LX.js +1 -0
- package/dist/embed/embed-page-chunk-33LYY5FY.js +1 -0
- package/dist/embed/embed-page-chunk-342GWWY6.js +1 -0
- package/dist/embed/embed-page-chunk-34RH2U7Z.js +1 -0
- package/dist/embed/embed-page-chunk-37BFU4NL.js +1 -0
- package/dist/embed/embed-page-chunk-3C32LJTO.js +1 -0
- package/dist/embed/embed-page-chunk-3D3RUB6Q.js +1 -0
- package/dist/embed/embed-page-chunk-3DDNDQND.js +1 -0
- package/dist/embed/embed-page-chunk-3FQ3EELN.js +1 -0
- package/dist/embed/embed-page-chunk-3GRDXHWH.js +1 -0
- package/dist/embed/embed-page-chunk-3GTSDITA.js +1 -0
- package/dist/embed/embed-page-chunk-3IP6ESHH.js +1 -0
- package/dist/embed/embed-page-chunk-3J7LPOGR.js +1 -0
- package/dist/embed/embed-page-chunk-3KBA5YLX.js +1 -0
- package/dist/embed/embed-page-chunk-3MESXVLG.js +1 -0
- package/dist/embed/embed-page-chunk-3PY2YGBU.js +153 -0
- package/dist/embed/embed-page-chunk-3QOIYWK3.js +1 -0
- package/dist/embed/embed-page-chunk-3WBHNFJP.js +1 -0
- package/dist/embed/embed-page-chunk-3WXEO6CG.js +245 -0
- package/dist/embed/embed-page-chunk-3YID7Y73.js +1 -0
- package/dist/embed/embed-page-chunk-42S7N5Y5.js +4084 -0
- package/dist/embed/embed-page-chunk-43APLD2U.js +1 -0
- package/dist/embed/embed-page-chunk-447KJWVF.js +1 -0
- package/dist/embed/embed-page-chunk-47OYOFAD.js +1 -0
- package/dist/embed/embed-page-chunk-4APB7U5B.js +1 -0
- package/dist/embed/embed-page-chunk-4BKXE5ON.js +14 -0
- package/dist/embed/embed-page-chunk-4BRWUEYH.js +1 -0
- package/dist/embed/embed-page-chunk-4C2ZTZLC.js +1 -0
- package/dist/embed/embed-page-chunk-4DT3DP4G.js +3 -0
- package/dist/embed/embed-page-chunk-4FS42IYM.js +1 -0
- package/dist/embed/embed-page-chunk-4JZFQLML.js +1 -0
- package/dist/embed/embed-page-chunk-4LC4UT4R.js +1 -0
- package/dist/embed/embed-page-chunk-4MNX7JDW.js +2 -0
- package/dist/embed/embed-page-chunk-4NIWV5BC.js +1 -0
- package/dist/embed/embed-page-chunk-4O7YNJLI.js +1 -0
- package/dist/embed/embed-page-chunk-4OTU4CRR.js +1 -0
- package/dist/embed/embed-page-chunk-4PR66FMJ.js +1 -0
- package/dist/embed/embed-page-chunk-4R5F5OQK.js +1 -0
- package/dist/embed/embed-page-chunk-4SGVKO3D.js +1 -0
- package/dist/embed/embed-page-chunk-4TEJCUD5.js +1 -0
- package/dist/embed/embed-page-chunk-4WOTSHAW.js +1 -0
- package/dist/embed/embed-page-chunk-4XVBSVFM.js +1 -0
- package/dist/embed/embed-page-chunk-4ZIJQUGM.js +1 -0
- package/dist/embed/embed-page-chunk-53PYTL4U.js +1 -0
- package/dist/embed/embed-page-chunk-53QS4RRO.js +1 -0
- package/dist/embed/embed-page-chunk-54DGJLXZ.js +1 -0
- package/dist/embed/embed-page-chunk-57BJJSAV.js +1 -0
- package/dist/embed/embed-page-chunk-5DAOHO64.js +1 -0
- package/dist/embed/embed-page-chunk-5HA2MCVW.js +1 -0
- package/dist/embed/embed-page-chunk-5HNRARTT.js +1 -0
- package/dist/embed/embed-page-chunk-5IG7MZQF.js +1 -0
- package/dist/embed/embed-page-chunk-5JDQ456X.js +7 -0
- package/dist/embed/embed-page-chunk-5LKQWBUZ.js +339 -0
- package/dist/embed/embed-page-chunk-5LZHM64O.js +1 -0
- package/dist/embed/embed-page-chunk-5OTSEOBG.js +1 -0
- package/dist/embed/embed-page-chunk-5WMGNRUZ.js +79 -0
- package/dist/embed/embed-page-chunk-5YNTYDFR.js +1 -0
- package/dist/embed/embed-page-chunk-62XZFSLM.js +1 -0
- package/dist/embed/embed-page-chunk-6433URSF.js +1 -0
- package/dist/embed/embed-page-chunk-6633JIZI.js +1 -0
- package/dist/embed/embed-page-chunk-664ZGB66.js +1 -0
- package/dist/embed/embed-page-chunk-66JWK64A.js +1 -0
- package/dist/embed/embed-page-chunk-66PSFC5S.js +1 -0
- package/dist/embed/embed-page-chunk-67RFPBNS.js +1 -0
- package/dist/embed/embed-page-chunk-67U2KZFL.js +467 -0
- package/dist/embed/embed-page-chunk-6A6HYD7S.js +1 -0
- package/dist/embed/embed-page-chunk-6AF3OC6E.js +1 -0
- package/dist/embed/embed-page-chunk-6BL2XYV2.js +1 -0
- package/dist/embed/embed-page-chunk-6BUDTOPG.js +54 -0
- package/dist/embed/embed-page-chunk-6D23MLVG.js +1 -0
- package/dist/embed/embed-page-chunk-6DD7CBYV.js +1 -0
- package/dist/embed/embed-page-chunk-6DYN2PCR.js +1 -0
- package/dist/embed/embed-page-chunk-6E33CLHM.js +1 -0
- package/dist/embed/embed-page-chunk-6FFWZNBJ.js +1 -0
- package/dist/embed/embed-page-chunk-6G24DMH3.js +1 -0
- package/dist/embed/embed-page-chunk-6JFHQ7NQ.js +1 -0
- package/dist/embed/embed-page-chunk-6NWENUQ7.js +1 -0
- package/dist/embed/embed-page-chunk-6OKUWTCF.js +1 -0
- package/dist/embed/embed-page-chunk-6QTEF2NW.js +1 -0
- package/dist/embed/embed-page-chunk-6SFPT5PF.js +1 -0
- package/dist/embed/embed-page-chunk-6VRE3UPC.js +1 -0
- package/dist/embed/embed-page-chunk-6XNKALVC.js +1 -0
- package/dist/embed/embed-page-chunk-6XZZ6A3N.js +1 -0
- package/dist/embed/embed-page-chunk-6Y3UYJ6Z.js +1 -0
- package/dist/embed/embed-page-chunk-6ZXRL3VU.js +1 -0
- package/dist/embed/embed-page-chunk-72JNWX43.js +1 -0
- package/dist/embed/embed-page-chunk-734LUAPQ.js +1 -0
- package/dist/embed/embed-page-chunk-74BPRLSV.js +5 -0
- package/dist/embed/embed-page-chunk-74YMVV5T.js +1 -0
- package/dist/embed/embed-page-chunk-75BP54HX.js +1 -0
- package/dist/embed/embed-page-chunk-76S2KVCN.js +1 -0
- package/dist/embed/embed-page-chunk-77SKWVKH.js +1 -0
- package/dist/embed/embed-page-chunk-7AKQRM6L.js +1 -0
- package/dist/embed/embed-page-chunk-7ASML425.js +1 -0
- package/dist/embed/embed-page-chunk-7BEP247X.js +1 -0
- package/dist/embed/embed-page-chunk-7CW4T6JX.js +1 -0
- package/dist/embed/embed-page-chunk-7GLQRV3J.js +1 -0
- package/dist/embed/embed-page-chunk-7I5CUKLE.js +1 -0
- package/dist/embed/embed-page-chunk-7IYYKQJE.js +1 -0
- package/dist/embed/embed-page-chunk-7JBDPIC6.js +1 -0
- package/dist/embed/embed-page-chunk-7KSOII2E.js +1 -0
- package/dist/embed/embed-page-chunk-7MYHMZR7.js +1 -0
- package/dist/embed/embed-page-chunk-7OYMAA4V.js +1 -0
- package/dist/embed/embed-page-chunk-7Q3EEWYO.js +1 -0
- package/dist/embed/embed-page-chunk-7RPAJAU7.js +1 -0
- package/dist/embed/embed-page-chunk-7TH7FFVA.js +1 -0
- package/dist/embed/embed-page-chunk-7TMVQS3E.js +1 -0
- package/dist/embed/embed-page-chunk-7TY2R7O2.js +1 -0
- package/dist/embed/embed-page-chunk-7XMMIQFH.js +1 -0
- package/dist/embed/embed-page-chunk-A2QFCP3F.js +1 -0
- package/dist/embed/embed-page-chunk-A2XJ36CA.js +1 -0
- package/dist/embed/embed-page-chunk-A3QFY3IA.js +1 -0
- package/dist/embed/embed-page-chunk-A5CPK26D.js +1 -0
- package/dist/embed/embed-page-chunk-AAU4RSSU.js +1 -0
- package/dist/embed/embed-page-chunk-AB3Q2HOO.js +1 -0
- package/dist/embed/embed-page-chunk-ABFWMLOR.js +1 -0
- package/dist/embed/embed-page-chunk-ABIN3BPL.js +1 -0
- package/dist/embed/embed-page-chunk-AC6X2XRH.js +31 -0
- package/dist/embed/embed-page-chunk-ACIRZYZQ.js +1 -0
- package/dist/embed/embed-page-chunk-AEGLPY52.js +1 -0
- package/dist/embed/embed-page-chunk-AJPIJ5Q6.js +1 -0
- package/dist/embed/embed-page-chunk-AKPA6XS3.js +2 -0
- package/dist/embed/embed-page-chunk-ANZXYPYQ.js +1 -0
- package/dist/embed/embed-page-chunk-AO6KUNOD.js +1 -0
- package/dist/embed/embed-page-chunk-APIN6IE2.js +1 -0
- package/dist/embed/embed-page-chunk-AQ7P7MPQ.js +1 -0
- package/dist/embed/embed-page-chunk-AQLFD3FB.js +1 -0
- package/dist/embed/embed-page-chunk-AQTLXHTW.js +1 -0
- package/dist/embed/embed-page-chunk-ARHDAWDT.js +1 -0
- package/dist/embed/embed-page-chunk-ARM7QQNJ.js +1 -0
- package/dist/embed/embed-page-chunk-ARRA262W.js +1 -0
- package/dist/embed/embed-page-chunk-AWTS5ZYY.js +1 -0
- package/dist/embed/embed-page-chunk-B43OSKKN.js +1 -0
- package/dist/embed/embed-page-chunk-B537QK4H.js +1 -0
- package/dist/embed/embed-page-chunk-B6767LVL.js +1 -0
- package/dist/embed/embed-page-chunk-BBSIPZIJ.js +2 -0
- package/dist/embed/embed-page-chunk-BDE6VTZO.js +1 -0
- package/dist/embed/embed-page-chunk-BDR2AV4C.js +1 -0
- package/dist/embed/embed-page-chunk-BEZUVEQG.js +1 -0
- package/dist/embed/embed-page-chunk-BHFBNKCC.js +1 -0
- package/dist/embed/embed-page-chunk-BIXWOREM.js +1 -0
- package/dist/embed/embed-page-chunk-BO56ESC4.js +1 -0
- package/dist/embed/embed-page-chunk-BOBSU3BS.js +1 -0
- package/dist/embed/embed-page-chunk-BOEM7RR2.js +1 -0
- package/dist/embed/embed-page-chunk-BOGY5UJK.js +1 -0
- package/dist/embed/embed-page-chunk-BOQ4YJRC.js +1 -0
- package/dist/embed/embed-page-chunk-BR7RHIPR.js +1 -0
- package/dist/embed/embed-page-chunk-BRF3QA4U.js +1 -0
- package/dist/embed/embed-page-chunk-BSHGJSTY.js +1 -0
- package/dist/embed/embed-page-chunk-BTZ6QKA5.js +1 -0
- package/dist/embed/embed-page-chunk-BXUFKFRH.js +1 -0
- package/dist/embed/embed-page-chunk-BYGKM25Z.js +1 -0
- package/dist/embed/embed-page-chunk-CADGB443.js +1 -0
- package/dist/embed/embed-page-chunk-CCNLQNKX.js +1 -0
- package/dist/embed/embed-page-chunk-CDFDSWNI.js +1 -0
- package/dist/embed/embed-page-chunk-CGMYXHWK.js +1 -0
- package/dist/embed/embed-page-chunk-CIVBRTV6.js +1 -0
- package/dist/embed/embed-page-chunk-CN3CMET4.js +1 -0
- package/dist/embed/embed-page-chunk-CT5EIC3O.js +1 -0
- package/dist/embed/embed-page-chunk-CTA4NVOR.js +1 -0
- package/dist/embed/embed-page-chunk-CTC4RKCL.js +1 -0
- package/dist/embed/embed-page-chunk-CUEEKFI2.js +1 -0
- package/dist/embed/embed-page-chunk-CUHPLIQJ.js +1 -0
- package/dist/embed/embed-page-chunk-CV7IET55.js +1 -0
- package/dist/embed/embed-page-chunk-CYZTUSN2.js +1 -0
- package/dist/embed/embed-page-chunk-CZBGTBTK.js +1 -0
- package/dist/embed/embed-page-chunk-CZXPKAAI.js +1 -0
- package/dist/embed/embed-page-chunk-D2R2NSRR.js +1 -0
- package/dist/embed/embed-page-chunk-D5AJQJD5.js +2 -0
- package/dist/embed/embed-page-chunk-D63UWHSO.js +1 -0
- package/dist/embed/embed-page-chunk-D6DA3A6A.js +1 -0
- package/dist/embed/embed-page-chunk-D73UXOFT.js +1 -0
- package/dist/embed/embed-page-chunk-DCS7FNFS.js +1 -0
- package/dist/embed/embed-page-chunk-DDTPPBJY.js +1 -0
- package/dist/embed/embed-page-chunk-DE7BGENS.js +1 -0
- package/dist/embed/embed-page-chunk-DEHJLLKN.js +1 -0
- package/dist/embed/embed-page-chunk-DHGHAGLL.js +1 -0
- package/dist/embed/embed-page-chunk-DIE6AVGX.js +1 -0
- package/dist/embed/embed-page-chunk-DM5ESF6C.js +1 -0
- package/dist/embed/embed-page-chunk-DQ4UEELI.js +1 -0
- package/dist/embed/embed-page-chunk-DWJV4T7Q.js +1 -0
- package/dist/embed/embed-page-chunk-DXVMFTPC.js +1 -0
- package/dist/embed/embed-page-chunk-DYBQVRXS.js +1 -0
- package/dist/embed/embed-page-chunk-DYPHXOEP.js +1 -0
- package/dist/embed/embed-page-chunk-DZRJEWQO.js +1 -0
- package/dist/embed/embed-page-chunk-E4OFRMJJ.js +1 -0
- package/dist/embed/embed-page-chunk-E7ECPW5G.js +1 -0
- package/dist/embed/embed-page-chunk-E7MYEYS3.js +1 -0
- package/dist/embed/embed-page-chunk-EAFE4NIS.js +1 -0
- package/dist/embed/embed-page-chunk-EAUQPBSN.js +1 -0
- package/dist/embed/embed-page-chunk-EBXTVXZF.js +1 -0
- package/dist/embed/embed-page-chunk-EG5CLCWE.js +1 -0
- package/dist/embed/embed-page-chunk-EGTJFOFF.js +1 -0
- package/dist/embed/embed-page-chunk-EKYNYNIX.js +1 -0
- package/dist/embed/embed-page-chunk-ER4O2WLO.js +1 -0
- package/dist/embed/embed-page-chunk-ESAZNCCX.js +1 -0
- package/dist/embed/embed-page-chunk-ESCA5JCS.js +1 -0
- package/dist/embed/embed-page-chunk-ESJEHJ5L.js +140 -0
- package/dist/embed/embed-page-chunk-ETP6AXEM.js +1 -0
- package/dist/embed/embed-page-chunk-ETY7U4DI.js +1 -0
- package/dist/embed/embed-page-chunk-EUOOO2LS.js +1 -0
- package/dist/embed/embed-page-chunk-EWKLGZMO.js +1 -0
- package/dist/embed/embed-page-chunk-EY64QEHF.js +1 -0
- package/dist/embed/embed-page-chunk-EY7WOIDX.js +1 -0
- package/dist/embed/embed-page-chunk-EYRF75EG.js +1 -0
- package/dist/embed/embed-page-chunk-EYZS7M3F.js +1 -0
- package/dist/embed/embed-page-chunk-F45LQ3RS.js +1 -0
- package/dist/embed/embed-page-chunk-F7IBVBXT.js +1 -0
- package/dist/embed/embed-page-chunk-FBXKGHOH.js +1 -0
- package/dist/embed/embed-page-chunk-FDID7LZP.js +3 -0
- package/dist/embed/embed-page-chunk-FEEJAFK4.js +1 -0
- package/dist/embed/embed-page-chunk-FEOK4OPE.js +1 -0
- package/dist/embed/embed-page-chunk-FJ3EESJB.js +1 -0
- package/dist/embed/embed-page-chunk-FM5K6PQS.js +1 -0
- package/dist/embed/embed-page-chunk-FMMAQPSK.js +1 -0
- package/dist/embed/embed-page-chunk-FSDLV5QO.js +1 -0
- package/dist/embed/embed-page-chunk-FTXNVWT5.js +1 -0
- package/dist/embed/embed-page-chunk-FU2KMTSK.js +1 -0
- package/dist/embed/embed-page-chunk-FUIKRW55.js +1 -0
- package/dist/embed/embed-page-chunk-FVK265KY.js +1 -0
- package/dist/embed/embed-page-chunk-FWTICTEC.js +1 -0
- package/dist/embed/embed-page-chunk-FWXSX2W4.js +1 -0
- package/dist/embed/embed-page-chunk-FYBEULVS.js +1 -0
- package/dist/embed/embed-page-chunk-G5HXFDFC.js +1 -0
- package/dist/embed/embed-page-chunk-G5KW2SOV.js +1 -0
- package/dist/embed/embed-page-chunk-GAF3UVZE.js +1 -0
- package/dist/embed/embed-page-chunk-GFOWXZE5.js +1 -0
- package/dist/embed/embed-page-chunk-GH22I3LG.js +1 -0
- package/dist/embed/embed-page-chunk-GJCMO4YN.js +1 -0
- package/dist/embed/embed-page-chunk-GKA7H24K.js +1 -0
- package/dist/embed/embed-page-chunk-GL7A7IDD.js +1 -0
- package/dist/embed/embed-page-chunk-GNEIDEFX.js +1 -0
- package/dist/embed/embed-page-chunk-GPISFLXW.js +1 -0
- package/dist/embed/embed-page-chunk-GSWEZJ66.js +1 -0
- package/dist/embed/embed-page-chunk-GU7JLLYO.js +1 -0
- package/dist/embed/embed-page-chunk-GVZMVAXF.js +70 -0
- package/dist/embed/embed-page-chunk-GZBFDD4Y.js +1 -0
- package/dist/embed/embed-page-chunk-H3HFE6RK.js +1 -0
- package/dist/embed/embed-page-chunk-H3NYTZT4.js +3 -0
- package/dist/embed/embed-page-chunk-H7CZ6EXN.js +1 -0
- package/dist/embed/embed-page-chunk-H7HZ35QN.js +1 -0
- package/dist/embed/embed-page-chunk-H7XTOBKB.js +1 -0
- package/dist/embed/embed-page-chunk-HD5CA5Q2.js +1 -0
- package/dist/embed/embed-page-chunk-HDAHRUIT.js +1 -0
- package/dist/embed/embed-page-chunk-HGSQ4AUI.js +1 -0
- package/dist/embed/embed-page-chunk-HJJHFV6J.js +1 -0
- package/dist/embed/embed-page-chunk-HK4QMNL5.js +1 -0
- package/dist/embed/embed-page-chunk-HNWETJWB.js +1 -0
- package/dist/embed/embed-page-chunk-HQCMCYUS.js +1 -0
- package/dist/embed/embed-page-chunk-HQUXJKTG.js +1 -0
- package/dist/embed/embed-page-chunk-HS5VQFWH.js +37 -0
- package/dist/embed/embed-page-chunk-HTEALTO4.js +1 -0
- package/dist/embed/embed-page-chunk-HUKTQVZB.js +1 -0
- package/dist/embed/embed-page-chunk-HVN56UNP.js +1 -0
- package/dist/embed/embed-page-chunk-HVTV25TI.js +1 -0
- package/dist/embed/embed-page-chunk-HWNFA7PS.js +1 -0
- package/dist/embed/embed-page-chunk-I2JNPKJK.js +1 -0
- package/dist/embed/embed-page-chunk-I4BCBOUA.js +1 -0
- package/dist/embed/embed-page-chunk-I55FBKLU.js +3 -0
- package/dist/embed/embed-page-chunk-I5KTSZJX.js +1 -0
- package/dist/embed/embed-page-chunk-I7YQ2TGZ.js +1 -0
- package/dist/embed/embed-page-chunk-ICJOJGQ6.js +1 -0
- package/dist/embed/embed-page-chunk-IDJWNYLR.js +1 -0
- package/dist/embed/embed-page-chunk-IE6O7ZMQ.js +15 -0
- package/dist/embed/embed-page-chunk-IFCJLAOB.js +1 -0
- package/dist/embed/embed-page-chunk-IFEQPNI2.js +1 -0
- package/dist/embed/embed-page-chunk-IGBRMGDS.js +1 -0
- package/dist/embed/embed-page-chunk-IGIFLYCQ.js +1 -0
- package/dist/embed/embed-page-chunk-IGOT476M.js +1 -0
- package/dist/embed/embed-page-chunk-IHNNPY3P.js +1 -0
- package/dist/embed/embed-page-chunk-II6ODJLE.js +1 -0
- package/dist/embed/embed-page-chunk-IIIA5HUO.js +1 -0
- package/dist/embed/embed-page-chunk-IIYOOZDE.js +1 -0
- package/dist/embed/embed-page-chunk-IJPRKD63.js +1 -0
- package/dist/embed/embed-page-chunk-IK2TPQVX.js +1 -0
- package/dist/embed/embed-page-chunk-INGZ5SYE.js +1 -0
- package/dist/embed/embed-page-chunk-INUQ73SI.js +1 -0
- package/dist/embed/embed-page-chunk-IPI53MN3.js +1 -0
- package/dist/embed/embed-page-chunk-IPMWXKCK.js +1 -0
- package/dist/embed/embed-page-chunk-IRP2UOPH.js +1 -0
- package/dist/embed/embed-page-chunk-ISY7S7N6.js +1 -0
- package/dist/embed/embed-page-chunk-IT5VM3N7.js +1 -0
- package/dist/embed/embed-page-chunk-IV5C4DYL.js +5 -0
- package/dist/embed/embed-page-chunk-IX4WLWCY.js +28 -0
- package/dist/embed/embed-page-chunk-IYK5VAB3.js +1 -0
- package/dist/embed/embed-page-chunk-IZ6ZGFSG.js +1 -0
- package/dist/embed/embed-page-chunk-J4VBM2JB.js +1 -0
- package/dist/embed/embed-page-chunk-J7KNZGPV.js +1 -0
- package/dist/embed/embed-page-chunk-JADTV5YD.js +1 -0
- package/dist/embed/embed-page-chunk-JEW2Y2ED.js +1 -0
- package/dist/embed/embed-page-chunk-JFK56NZW.js +1 -0
- package/dist/embed/embed-page-chunk-JNXBKMN6.js +1 -0
- package/dist/embed/embed-page-chunk-JOJ4VSO5.js +1 -0
- package/dist/embed/embed-page-chunk-JQQ6C3ST.js +1 -0
- package/dist/embed/embed-page-chunk-JUZFORQA.js +1 -0
- package/dist/embed/embed-page-chunk-JYEMOI5G.js +1 -0
- package/dist/embed/embed-page-chunk-JYQTTU7F.js +1 -0
- package/dist/embed/embed-page-chunk-K2NBNWDK.js +1 -0
- package/dist/embed/embed-page-chunk-K7I5Z2RN.js +1 -0
- package/dist/embed/embed-page-chunk-K7JAB46X.js +1 -0
- package/dist/embed/embed-page-chunk-KE32OJIP.js +1 -0
- package/dist/embed/embed-page-chunk-KEKB3BUG.js +1 -0
- package/dist/embed/embed-page-chunk-KEL6XU6R.js +1 -0
- package/dist/embed/embed-page-chunk-KGP2RGEC.js +1 -0
- package/dist/embed/embed-page-chunk-KM5NL7BL.js +1 -0
- package/dist/embed/embed-page-chunk-KQNRWZKR.js +1 -0
- package/dist/embed/embed-page-chunk-KUTM5AGJ.js +1 -0
- package/dist/embed/embed-page-chunk-KW44NUT4.js +1 -0
- package/dist/embed/embed-page-chunk-KWRAXHKX.js +1 -0
- package/dist/embed/embed-page-chunk-KZWWYO7Z.js +1 -0
- package/dist/embed/embed-page-chunk-L2QFIJ4P.js +1 -0
- package/dist/embed/embed-page-chunk-L3RQ76LD.js +1 -0
- package/dist/embed/embed-page-chunk-L6GX525D.js +1 -0
- package/dist/embed/embed-page-chunk-LDFGGZC6.js +1 -0
- package/dist/embed/embed-page-chunk-LEAHYMKH.js +1 -0
- package/dist/embed/embed-page-chunk-LH2NUQ2C.js +1 -0
- package/dist/embed/embed-page-chunk-LIJVWBYO.js +1 -0
- package/dist/embed/embed-page-chunk-LJBLK3MD.js +1 -0
- package/dist/embed/embed-page-chunk-LJJJJZT7.js +1 -0
- package/dist/embed/embed-page-chunk-LJZ2VDC6.js +1 -0
- package/dist/embed/embed-page-chunk-LKBECLX2.js +1 -0
- package/dist/embed/embed-page-chunk-LL4XKLOG.js +1 -0
- package/dist/embed/embed-page-chunk-LLFEIUVK.js +1 -0
- package/dist/embed/embed-page-chunk-LMLHHN2B.js +1 -0
- package/dist/embed/embed-page-chunk-LOLMAI3V.js +1 -0
- package/dist/embed/embed-page-chunk-LPXAKW7Q.js +1 -0
- package/dist/embed/embed-page-chunk-LRB5IXLV.js +1 -0
- package/dist/embed/embed-page-chunk-LW3LUJEG.js +1 -0
- package/dist/embed/embed-page-chunk-LWERP7BS.js +1 -0
- package/dist/embed/embed-page-chunk-M4ACA43K.js +1 -0
- package/dist/embed/embed-page-chunk-M5HO3OG6.js +1 -0
- package/dist/embed/embed-page-chunk-M7F46E23.js +1 -0
- package/dist/embed/embed-page-chunk-MASNBRHM.js +1 -0
- package/dist/embed/embed-page-chunk-MB65DZAX.js +14 -0
- package/dist/embed/embed-page-chunk-MB77ZI4D.js +1 -0
- package/dist/embed/embed-page-chunk-MEC3JUW7.js +1 -0
- package/dist/embed/embed-page-chunk-MG5LALIS.js +1 -0
- package/dist/embed/embed-page-chunk-MGZK7ELC.js +2192 -0
- package/dist/embed/embed-page-chunk-MHSEFTKR.js +1 -0
- package/dist/embed/embed-page-chunk-MKV2QNSI.js +1 -0
- package/dist/embed/embed-page-chunk-MMHCEL7E.js +1 -0
- package/dist/embed/embed-page-chunk-MMXDBRLY.js +1 -0
- package/dist/embed/embed-page-chunk-MSYFW3OJ.js +1 -0
- package/dist/embed/embed-page-chunk-MVLHDASB.js +1 -0
- package/dist/embed/embed-page-chunk-N252QSMT.js +1 -0
- package/dist/embed/embed-page-chunk-N46WJ2FS.js +1 -0
- package/dist/embed/embed-page-chunk-N7NXBLSR.js +1 -0
- package/dist/embed/embed-page-chunk-NBNJGF7O.js +1 -0
- package/dist/embed/embed-page-chunk-NG7LKEPN.js +1 -0
- package/dist/embed/embed-page-chunk-NHOBB2JQ.js +1 -0
- package/dist/embed/embed-page-chunk-NIFSD4XH.js +1 -0
- package/dist/embed/embed-page-chunk-NJP7LGPJ.js +1 -0
- package/dist/embed/embed-page-chunk-NLMEH7HI.js +1 -0
- package/dist/embed/embed-page-chunk-NLZ6F3ON.js +1 -0
- package/dist/embed/embed-page-chunk-NMUKLFBY.js +1 -0
- package/dist/embed/embed-page-chunk-NMZP7U6I.js +1 -0
- package/dist/embed/embed-page-chunk-NN7VEJ2G.js +1 -0
- package/dist/embed/embed-page-chunk-NNNI4647.js +1 -0
- package/dist/embed/embed-page-chunk-NNZA747K.js +1 -0
- package/dist/embed/embed-page-chunk-NOMBKADH.js +1 -0
- package/dist/embed/embed-page-chunk-NQRVVPLU.js +1 -0
- package/dist/embed/embed-page-chunk-O2YMBFJK.js +1 -0
- package/dist/embed/embed-page-chunk-O4QK5LWZ.js +525 -0
- package/dist/embed/embed-page-chunk-O6DJHMEC.js +1 -0
- package/dist/embed/embed-page-chunk-OAUK7LXS.js +1 -0
- package/dist/embed/embed-page-chunk-OCFVEAMV.js +1 -0
- package/dist/embed/embed-page-chunk-OEC4EWNI.js +1 -0
- package/dist/embed/embed-page-chunk-OF6SGGWX.js +1 -0
- package/dist/embed/embed-page-chunk-OJ7436DP.js +1 -0
- package/dist/embed/embed-page-chunk-OK6DC5YX.js +1 -0
- package/dist/embed/embed-page-chunk-ONZ74YHS.js +1 -0
- package/dist/embed/embed-page-chunk-OOZDPBUK.js +69 -0
- package/dist/embed/embed-page-chunk-OPME5GF2.js +1 -0
- package/dist/embed/embed-page-chunk-ORPDSJ5S.js +1 -0
- package/dist/embed/embed-page-chunk-ORPUVSKY.js +1 -0
- package/dist/embed/embed-page-chunk-OWTE7YMF.js +1 -0
- package/dist/embed/embed-page-chunk-OZKVHTL6.js +1 -0
- package/dist/embed/embed-page-chunk-OZUIA6GJ.js +1 -0
- package/dist/embed/embed-page-chunk-P4MXODKA.js +1 -0
- package/dist/embed/embed-page-chunk-P56KTNVT.js +1 -0
- package/dist/embed/embed-page-chunk-PADSMXWH.js +3 -0
- package/dist/embed/embed-page-chunk-PEFXE5Y4.js +1 -0
- package/dist/embed/embed-page-chunk-PHVA2KHO.js +1 -0
- package/dist/embed/embed-page-chunk-PJJPSDVD.js +1 -0
- package/dist/embed/embed-page-chunk-PKNTJERD.js +1 -0
- package/dist/embed/embed-page-chunk-PLAF2Q2L.js +1 -0
- package/dist/embed/embed-page-chunk-PLNJRORR.js +1 -0
- package/dist/embed/embed-page-chunk-PO2WVZC2.js +1 -0
- package/dist/embed/embed-page-chunk-PRYNHKKK.js +1 -0
- package/dist/embed/embed-page-chunk-PSTS2K7H.js +1 -0
- package/dist/embed/embed-page-chunk-PVL27S2O.js +1 -0
- package/dist/embed/embed-page-chunk-PVOA7ARZ.js +1 -0
- package/dist/embed/embed-page-chunk-PXADN2PY.js +1 -0
- package/dist/embed/embed-page-chunk-Q2HL7S3R.js +41 -0
- package/dist/embed/embed-page-chunk-Q2LWO44N.js +1 -0
- package/dist/embed/embed-page-chunk-Q2YEQQJF.js +1 -0
- package/dist/embed/embed-page-chunk-Q3AOMIJ7.js +1 -0
- package/dist/embed/embed-page-chunk-Q4NFAO5G.js +1 -0
- package/dist/embed/embed-page-chunk-Q6ZPKMOZ.js +1 -0
- package/dist/embed/embed-page-chunk-QA2R2R55.js +165 -0
- package/dist/embed/embed-page-chunk-QANF3D34.js +1 -0
- package/dist/embed/embed-page-chunk-QBSFVKIB.js +1 -0
- package/dist/embed/embed-page-chunk-QCLLEPYT.js +1 -0
- package/dist/embed/embed-page-chunk-QDBK4ZDE.js +1 -0
- package/dist/embed/embed-page-chunk-QENDQ7H3.js +1 -0
- package/dist/embed/embed-page-chunk-QF7NBK3B.js +1 -0
- package/dist/embed/embed-page-chunk-QFTY233A.js +1 -0
- package/dist/embed/embed-page-chunk-QHV7PE5D.js +3 -0
- package/dist/embed/embed-page-chunk-QIJBDPZP.js +1 -0
- package/dist/embed/embed-page-chunk-QLA2XU73.js +1 -0
- package/dist/embed/embed-page-chunk-QNIB3Q7U.js +1 -0
- package/dist/embed/embed-page-chunk-QQLF4AV6.js +1 -0
- package/dist/embed/embed-page-chunk-QQUV5KZD.js +1 -0
- package/dist/embed/embed-page-chunk-QRKEL65F.js +1 -0
- package/dist/embed/embed-page-chunk-QRPDJVB7.js +1 -0
- package/dist/embed/embed-page-chunk-QVHTN5HT.js +1 -0
- package/dist/embed/embed-page-chunk-R2BGZIR7.js +1 -0
- package/dist/embed/embed-page-chunk-R2K4OIQO.js +1 -0
- package/dist/embed/embed-page-chunk-R4FTAO2H.js +1 -0
- package/dist/embed/embed-page-chunk-R54S6SKK.js +1 -0
- package/dist/embed/embed-page-chunk-R5I2GTYT.js +1 -0
- package/dist/embed/embed-page-chunk-R672RZXS.js +1 -0
- package/dist/embed/embed-page-chunk-RABAC5H3.js +1 -0
- package/dist/embed/embed-page-chunk-RG3BI65W.js +1 -0
- package/dist/embed/embed-page-chunk-RKPK7MLC.js +1 -0
- package/dist/embed/embed-page-chunk-RN7JLKLZ.js +1 -0
- package/dist/embed/embed-page-chunk-RNOETEGH.js +1 -0
- package/dist/embed/embed-page-chunk-RPK5SOLP.js +1 -0
- package/dist/embed/embed-page-chunk-RUOFG3OD.js +1 -0
- package/dist/embed/embed-page-chunk-RV2IAP52.js +1 -0
- package/dist/embed/embed-page-chunk-RXLB27EG.js +1 -0
- package/dist/embed/embed-page-chunk-S4XZPBRM.js +1 -0
- package/dist/embed/embed-page-chunk-SAML73QO.js +1 -0
- package/dist/embed/embed-page-chunk-SEH5ZYHX.js +1 -0
- package/dist/embed/embed-page-chunk-SL4X4KPS.js +1 -0
- package/dist/embed/embed-page-chunk-SMMEMIZS.js +1 -0
- package/dist/embed/embed-page-chunk-SMZUIXFD.js +1 -0
- package/dist/embed/embed-page-chunk-SQ4GANYE.js +1 -0
- package/dist/embed/embed-page-chunk-SRW4AAQ4.js +1 -0
- package/dist/embed/embed-page-chunk-SV2BM3WO.js +1 -0
- package/dist/embed/embed-page-chunk-SWGBMELE.js +1 -0
- package/dist/embed/embed-page-chunk-SYAPUMNM.js +1 -0
- package/dist/embed/embed-page-chunk-T4AZ556W.js +1 -0
- package/dist/embed/embed-page-chunk-T6QXBMXO.js +1 -0
- package/dist/embed/embed-page-chunk-TAOVZBLV.js +1 -0
- package/dist/embed/embed-page-chunk-TBRAGK3D.js +1 -0
- package/dist/embed/embed-page-chunk-TENLHB44.js +1 -0
- package/dist/embed/embed-page-chunk-TFSDCDJS.js +1 -0
- package/dist/embed/embed-page-chunk-TIGSOALR.js +1 -0
- package/dist/embed/embed-page-chunk-TKOSVUN2.js +1 -0
- package/dist/embed/embed-page-chunk-TLWGSINF.js +1 -0
- package/dist/embed/embed-page-chunk-TMUCZ7XO.js +1 -0
- package/dist/embed/embed-page-chunk-TP7772GL.js +1 -0
- package/dist/embed/embed-page-chunk-TPCI3CNJ.js +1 -0
- package/dist/embed/embed-page-chunk-TPGW6RUI.js +1 -0
- package/dist/embed/embed-page-chunk-TPQGFG2C.js +1 -0
- package/dist/embed/embed-page-chunk-TSZIWR3X.js +1 -0
- package/dist/embed/embed-page-chunk-TUFYJMMA.js +1 -0
- package/dist/embed/embed-page-chunk-TWDJUUXZ.js +1 -0
- package/dist/embed/embed-page-chunk-TWNAGURL.js +4 -0
- package/dist/embed/embed-page-chunk-TWU6UJLL.js +1 -0
- package/dist/embed/embed-page-chunk-TYA3PYZB.js +1 -0
- package/dist/embed/embed-page-chunk-U32PAI3Y.js +1 -0
- package/dist/embed/embed-page-chunk-U3B5KKSV.js +1 -0
- package/dist/embed/embed-page-chunk-U3YIXQYB.js +1 -0
- package/dist/embed/embed-page-chunk-U7OC25B3.js +1 -0
- package/dist/embed/embed-page-chunk-UBWHZLJN.js +1 -0
- package/dist/embed/embed-page-chunk-UCGT4CTV.js +1 -0
- package/dist/embed/embed-page-chunk-UCR4ZILJ.js +1 -0
- package/dist/embed/embed-page-chunk-UGBSF5HI.js +1 -0
- package/dist/embed/embed-page-chunk-UGCW7PZD.js +1 -0
- package/dist/embed/embed-page-chunk-UIZLGSJE.js +1 -0
- package/dist/embed/embed-page-chunk-UJODN4PG.js +1 -0
- package/dist/embed/embed-page-chunk-UPUUWWBK.js +1 -0
- package/dist/embed/embed-page-chunk-UR5VOXA3.js +1 -0
- package/dist/embed/embed-page-chunk-UZNSI2X3.js +1 -0
- package/dist/embed/embed-page-chunk-UZW2LQZV.js +1 -0
- package/dist/embed/embed-page-chunk-V2V73RFB.js +1 -0
- package/dist/embed/embed-page-chunk-V7R2Y72J.js +14 -0
- package/dist/embed/embed-page-chunk-VEYJHY36.js +1 -0
- package/dist/embed/embed-page-chunk-VNK6MED4.js +1 -0
- package/dist/embed/embed-page-chunk-VP2J7NES.js +1 -0
- package/dist/embed/embed-page-chunk-VRDH6A7Z.js +1 -0
- package/dist/embed/embed-page-chunk-VTUD3VPX.js +1 -0
- package/dist/embed/embed-page-chunk-VULBATQG.js +1 -0
- package/dist/embed/embed-page-chunk-VUOXEXHU.js +1 -0
- package/dist/embed/embed-page-chunk-VVTZ23LK.js +1 -0
- package/dist/embed/embed-page-chunk-VW3NF5NT.js +1 -0
- package/dist/embed/embed-page-chunk-VY6MAPHR.js +1 -0
- package/dist/embed/embed-page-chunk-WAANDEAQ.js +1 -0
- package/dist/embed/embed-page-chunk-WCKHIRD5.js +1 -0
- package/dist/embed/embed-page-chunk-WDS66MAN.js +1 -0
- package/dist/embed/embed-page-chunk-WLZW4FEZ.js +1 -0
- package/dist/embed/embed-page-chunk-WNEY2A2R.js +1 -0
- package/dist/embed/embed-page-chunk-WQOZWRIS.js +1 -0
- package/dist/embed/embed-page-chunk-WUYZIBLV.js +1 -0
- package/dist/embed/embed-page-chunk-WYJNNBFP.js +1 -0
- package/dist/embed/embed-page-chunk-X55NDWBH.js +1 -0
- package/dist/embed/embed-page-chunk-XA4KNRQW.js +1 -0
- package/dist/embed/embed-page-chunk-XAJFFWM3.js +1 -0
- package/dist/embed/embed-page-chunk-XIJHCNBW.js +1 -0
- package/dist/embed/embed-page-chunk-XNZ46IEF.js +1 -0
- package/dist/embed/embed-page-chunk-XO5WZF3D.js +1 -0
- package/dist/embed/embed-page-chunk-XPDEOKHX.js +1 -0
- package/dist/embed/embed-page-chunk-XQNO7AN3.js +1 -0
- package/dist/embed/embed-page-chunk-XR3Q4GDZ.js +1 -0
- package/dist/embed/embed-page-chunk-XRRCORI5.js +1 -0
- package/dist/embed/embed-page-chunk-XTMDFHMJ.js +1 -0
- package/dist/embed/embed-page-chunk-XUZKZF3V.js +1 -0
- package/dist/embed/embed-page-chunk-XWAJRAFC.js +1 -0
- package/dist/embed/embed-page-chunk-XWRBMESB.js +1 -0
- package/dist/embed/embed-page-chunk-XXT7RMBT.js +220 -0
- package/dist/embed/embed-page-chunk-XY5NGMFT.js +1 -0
- package/dist/embed/embed-page-chunk-XYCU2ZON.js +1 -0
- package/dist/embed/embed-page-chunk-XZ6CLWS2.js +1 -0
- package/dist/embed/embed-page-chunk-XZYJX7MY.js +1 -0
- package/dist/embed/embed-page-chunk-Y2JWLZJF.js +1 -0
- package/dist/embed/embed-page-chunk-Y4KTS6EE.js +1 -0
- package/dist/embed/embed-page-chunk-YBPVSBMU.js +1 -0
- package/dist/embed/embed-page-chunk-YEHTVTMO.js +1 -0
- package/dist/embed/embed-page-chunk-YFEUMUCL.js +1 -0
- package/dist/embed/embed-page-chunk-YFWCKZW7.js +1 -0
- package/dist/embed/embed-page-chunk-YHEFVON2.js +1 -0
- package/dist/embed/embed-page-chunk-YJBX3AFL.js +1 -0
- package/dist/embed/embed-page-chunk-YJZJFCLP.js +1 -0
- package/dist/embed/embed-page-chunk-YLUGLAWD.js +1 -0
- package/dist/embed/embed-page-chunk-YMMUR7L6.js +1 -0
- package/dist/embed/embed-page-chunk-YNIEMXW5.js +1 -0
- package/dist/embed/embed-page-chunk-YPK6G5D7.js +1 -0
- package/dist/embed/embed-page-chunk-Z26BSJ5Y.js +1 -0
- package/dist/embed/embed-page-chunk-Z2GE34ES.js +1 -0
- package/dist/embed/embed-page-chunk-Z6N3GKM5.js +1 -0
- package/dist/embed/embed-page-chunk-Z6PDLQOB.js +1 -0
- package/dist/embed/embed-page-chunk-Z7USDLHI.js +60 -0
- package/dist/embed/embed-page-chunk-ZESVZCWO.js +1 -0
- package/dist/embed/embed-page-chunk-ZITVGQ52.js +1 -0
- package/dist/embed/embed-page-chunk-ZNWEXQQ4.js +1 -0
- package/dist/embed/embed-page-chunk-ZQ6WYVOD.js +1 -0
- package/dist/embed/embed-page-chunk-ZR7ZLGLV.js +1 -0
- package/dist/embed/embed-page-chunk-ZT2EZUXI.js +1 -0
- package/dist/embed/embed-page-chunk-ZZCMWB6F.js +1 -0
- package/dist/embed/embed-page-cil-ZQIVHSN6.js +1 -0
- package/dist/embed/embed-page-cilkc-AJET62TW.js +1 -0
- package/dist/embed/embed-page-cilkcpp-FRBVBYEF.js +1 -0
- package/dist/embed/embed-page-classDiagram-2ON5EDUG-S5GEC2UC.js +1 -0
- package/dist/embed/embed-page-classDiagram-v2-WZHVMYZB-NL3HKXC3.js +1 -0
- package/dist/embed/embed-page-clean-OPHY52MY.js +1 -0
- package/dist/embed/embed-page-clike-5NRFTOCK.js +1 -0
- package/dist/embed/embed-page-clojure-4GC77VYK.js +1 -0
- package/dist/embed/embed-page-clojure-7B3FI7TH.js +1 -0
- package/dist/embed/embed-page-clojure-repl-56WG27Z3.js +1 -0
- package/dist/embed/embed-page-cmake-F3SKZMUJ.js +1 -0
- package/dist/embed/embed-page-cmake-UIBPQIVG.js +1 -0
- package/dist/embed/embed-page-cobol-7TW6OZHG.js +1 -0
- package/dist/embed/embed-page-code-highlighter-Y6CQA4CN.js +1 -0
- package/dist/embed/embed-page-coffeescript-BCKZ4N2E.js +1 -0
- package/dist/embed/embed-page-coffeescript-N2ENFNNR.js +1 -0
- package/dist/embed/embed-page-concurnas-MCN7VYPE.js +1 -0
- package/dist/embed/embed-page-cooklang-JSLOQBDM.js +1 -0
- package/dist/embed/embed-page-coq-WH3J7SKF.js +1 -0
- package/dist/embed/embed-page-coq-XRXAXI5X.js +1 -0
- package/dist/embed/embed-page-core-Q6IGWM4Q.js +1 -0
- package/dist/embed/embed-page-core-TQNBW2MM.js +1 -0
- package/dist/embed/embed-page-cos-MP7YM5FO.js +1 -0
- package/dist/embed/embed-page-cose-bilkent-S5V4N54A-KJMAAFJL.js +1 -0
- package/dist/embed/embed-page-cpp-FFAXKUCJ.js +1 -0
- package/dist/embed/embed-page-cpp-PRCT5QAC.js +1 -0
- package/dist/embed/embed-page-crmsh-PF5MF5PC.js +1 -0
- package/dist/embed/embed-page-crystal-GYFU35L2.js +1 -0
- package/dist/embed/embed-page-crystal-W2TOACW4.js +1 -0
- package/dist/embed/embed-page-csharp-DHR2XRZW.js +1 -0
- package/dist/embed/embed-page-csharp-UNF62ZBO.js +1 -0
- package/dist/embed/embed-page-cshtml-G7ML4LE3.js +1 -0
- package/dist/embed/embed-page-csp-UDQUZUZW.js +1 -0
- package/dist/embed/embed-page-csp-YPF3N7BE.js +1 -0
- package/dist/embed/embed-page-css-774MOM42.js +1 -0
- package/dist/embed/embed-page-css-EHGZALYG.js +1 -0
- package/dist/embed/embed-page-css-extras-SI7Q5IJ6.js +1 -0
- package/dist/embed/embed-page-csv-MT4GPPO7.js +1 -0
- package/dist/embed/embed-page-cue-BMTFVAKL.js +1 -0
- package/dist/embed/embed-page-cypher-QDHM3LFO.js +1 -0
- package/dist/embed/embed-page-d-KHBJT5ZU.js +1 -0
- package/dist/embed/embed-page-d-VF7XFFMN.js +1 -0
- package/dist/embed/embed-page-dagre-6UL2VRFP-QSIK5LGS.js +4 -0
- package/dist/embed/embed-page-dart-3L3U2DJ3.js +1 -0
- package/dist/embed/embed-page-dart-6AOCMAXR.js +1 -0
- package/dist/embed/embed-page-dataweave-LNNDNKWG.js +1 -0
- package/dist/embed/embed-page-dax-J2FYUNXR.js +1 -0
- package/dist/embed/embed-page-delphi-T3RKZ33G.js +1 -0
- package/dist/embed/embed-page-dhall-MGZ2X6D6.js +1 -0
- package/dist/embed/embed-page-diagram-PSM6KHXK-PLOM5KG7.js +24 -0
- package/dist/embed/embed-page-diagram-QEK2KX5R-RUNGK25X.js +43 -0
- package/dist/embed/embed-page-diagram-S2PKOQOG-LWDHM5TL.js +24 -0
- package/dist/embed/embed-page-diff-AZNWSOQ3.js +1 -0
- package/dist/embed/embed-page-diff-BYMKQAM5.js +1 -0
- package/dist/embed/embed-page-django-5BVMXLOO.js +1 -0
- package/dist/embed/embed-page-django-OLTKKRJC.js +1 -0
- package/dist/embed/embed-page-dns-LKEA7NVQ.js +1 -0
- package/dist/embed/embed-page-dns-zone-file-MLDJYBWW.js +1 -0
- package/dist/embed/embed-page-docker-7ZWVGIHF.js +1 -0
- package/dist/embed/embed-page-dockerfile-YJABIQ3Q.js +1 -0
- package/dist/embed/embed-page-dos-CZOUXBDN.js +1 -0
- package/dist/embed/embed-page-dot-USOBKZIN.js +1 -0
- package/dist/embed/embed-page-dsconfig-5E37MQM4.js +1 -0
- package/dist/embed/embed-page-dts-DPBFPVA5.js +1 -0
- package/dist/embed/embed-page-dust-OAZ4NEIP.js +1 -0
- package/dist/embed/embed-page-ebnf-XFC6NV6I.js +1 -0
- package/dist/embed/embed-page-ebnf-XSYP4JUB.js +1 -0
- package/dist/embed/embed-page-echarts-7KZDMH4F.js +1 -0
- package/dist/embed/embed-page-editorconfig-FQHUYGTR.js +1 -0
- package/dist/embed/embed-page-eiffel-Z22STSPG.js +1 -0
- package/dist/embed/embed-page-ejs-VHHMOK6Y.js +1 -0
- package/dist/embed/embed-page-elixir-BGO72I74.js +1 -0
- package/dist/embed/embed-page-elixir-H3KPRECP.js +1 -0
- package/dist/embed/embed-page-elm-HZWFYFUN.js +1 -0
- package/dist/embed/embed-page-elm-IZAWNYFC.js +1 -0
- package/dist/embed/embed-page-erDiagram-Q2GNP2WA-C6CZYEPF.js +60 -0
- package/dist/embed/embed-page-erb-AK646PXX.js +1 -0
- package/dist/embed/embed-page-erb-YBV2NO4W.js +1 -0
- package/dist/embed/embed-page-erlang-6LMYF4BN.js +1 -0
- package/dist/embed/embed-page-erlang-PXGHX7XB.js +1 -0
- package/dist/embed/embed-page-erlang-repl-UJPNMOCE.js +1 -0
- package/dist/embed/embed-page-etlua-XNKJ7UTQ.js +1 -0
- package/dist/embed/embed-page-excel-PCWQ5ZDK.js +1 -0
- package/dist/embed/embed-page-excel-formula-CEZ7KVDN.js +1 -0
- package/dist/embed/embed-page-factor-3PZO4CCJ.js +1 -0
- package/dist/embed/embed-page-false-OX3DNOF4.js +1 -0
- package/dist/embed/embed-page-firestore-security-rules-IQBOB7PZ.js +1 -0
- package/dist/embed/embed-page-fix-Q3F7Z2HQ.js +1 -0
- package/dist/embed/embed-page-flix-LVDGNPRS.js +1 -0
- package/dist/embed/embed-page-flow-4UPRJEF2.js +1 -0
- package/dist/embed/embed-page-flowDiagram-NV44I4VS-DLT3KEOP.js +162 -0
- package/dist/embed/embed-page-fortran-65P3TPQ7.js +1 -0
- package/dist/embed/embed-page-fortran-LWYFHCCB.js +1 -0
- package/dist/embed/embed-page-fsharp-BSA736XP.js +1 -0
- package/dist/embed/embed-page-fsharp-GDIVPYAB.js +1 -0
- package/dist/embed/embed-page-ftl-27Y3T2XT.js +1 -0
- package/dist/embed/embed-page-gams-7UM23CTD.js +1 -0
- package/dist/embed/embed-page-ganttDiagram-JELNMOA3-YXTLQI5X.js +267 -0
- package/dist/embed/embed-page-gap-JNDMTZYG.js +1 -0
- package/dist/embed/embed-page-gauss-4OCQQOQQ.js +1 -0
- package/dist/embed/embed-page-gcode-7ZDB2FDS.js +1 -0
- package/dist/embed/embed-page-gcode-U2UWK2IF.js +1 -0
- package/dist/embed/embed-page-gdscript-UOAGAMMO.js +1 -0
- package/dist/embed/embed-page-gedcom-WSTJUY6R.js +1 -0
- package/dist/embed/embed-page-gettext-BNGNGT6W.js +1 -0
- package/dist/embed/embed-page-gherkin-CPRNYA24.js +1 -0
- package/dist/embed/embed-page-gherkin-IVS5YUAH.js +1 -0
- package/dist/embed/embed-page-git-WWKMYMUR.js +1 -0
- package/dist/embed/embed-page-gitGraph-F6HP7TQM-AT36TKLZ.js +1 -0
- package/dist/embed/embed-page-gitGraphDiagram-NY62KEGX-U36ULO4Y.js +65 -0
- package/dist/embed/embed-page-glsl-2QJTMF6X.js +1 -0
- package/dist/embed/embed-page-glsl-6C6F26XK.js +1 -0
- package/dist/embed/embed-page-gml-67HHHYLB.js +1 -0
- package/dist/embed/embed-page-gml-ZFY32X23.js +1 -0
- package/dist/embed/embed-page-gn-KO2XPJDA.js +1 -0
- package/dist/embed/embed-page-go-HAQ77N2R.js +1 -0
- package/dist/embed/embed-page-go-SYFPAV4X.js +1 -0
- package/dist/embed/embed-page-go-module-XICPRQ5N.js +1 -0
- package/dist/embed/embed-page-golo-KQZ2PQG7.js +1 -0
- package/dist/embed/embed-page-gradle-7PN7DUJT.js +1 -0
- package/dist/embed/embed-page-gradle-GN34ZONG.js +1 -0
- package/dist/embed/embed-page-graphql-CVSK5MA2.js +1 -0
- package/dist/embed/embed-page-groovy-3R2X7GQD.js +1 -0
- package/dist/embed/embed-page-groovy-YCAJV7XB.js +1 -0
- package/dist/embed/embed-page-haml-6VEPXH2O.js +1 -0
- package/dist/embed/embed-page-haml-TYLXIXHD.js +1 -0
- package/dist/embed/embed-page-handlebars-7Y74ECRG.js +1 -0
- package/dist/embed/embed-page-handlebars-WVRARLIY.js +1 -0
- package/dist/embed/embed-page-haskell-7U743UEW.js +1 -0
- package/dist/embed/embed-page-haskell-BATAJHBH.js +1 -0
- package/dist/embed/embed-page-haxe-C234CZTQ.js +1 -0
- package/dist/embed/embed-page-haxe-PYBC3T4M.js +1 -0
- package/dist/embed/embed-page-hcl-BITT4ESF.js +1 -0
- package/dist/embed/embed-page-hlsl-KYOSJMB5.js +1 -0
- package/dist/embed/embed-page-hoon-NTFQ2YYJ.js +1 -0
- package/dist/embed/embed-page-hpkp-KN6XKLGI.js +1 -0
- package/dist/embed/embed-page-hsp-QFZDPSDA.js +1 -0
- package/dist/embed/embed-page-hsts-5COZ5S32.js +1 -0
- package/dist/embed/embed-page-html2canvas-HMTC4TFR.js +1 -0
- package/dist/embed/embed-page-htmlbars-L7NSSG62.js +1 -0
- package/dist/embed/embed-page-http-ALSJXSOJ.js +1 -0
- package/dist/embed/embed-page-http-E4UEITFW.js +1 -0
- package/dist/embed/embed-page-hy-5ROLZHNZ.js +1 -0
- package/dist/embed/embed-page-ichigojam-T6UG6OA7.js +1 -0
- package/dist/embed/embed-page-icon-74CJY73I.js +1 -0
- package/dist/embed/embed-page-icu-message-format-2RX6DV2B.js +1 -0
- package/dist/embed/embed-page-idris-OH6VYNRJ.js +1 -0
- package/dist/embed/embed-page-iecst-SJFFJ4PC.js +1 -0
- package/dist/embed/embed-page-ignore-QLXHF7QX.js +1 -0
- package/dist/embed/embed-page-index.es-N6YIYNKZ.js +23 -0
- package/dist/embed/embed-page-info-NVLQJR56-2XLQRFF4.js +1 -0
- package/dist/embed/embed-page-infoDiagram-WHAUD3N6-2U2VIHJP.js +2 -0
- package/dist/embed/embed-page-inform7-6Y7MAAME.js +1 -0
- package/dist/embed/embed-page-inform7-HZB3RNF4.js +1 -0
- package/dist/embed/embed-page-ini-7C2L4IDF.js +1 -0
- package/dist/embed/embed-page-ini-TMKFFGPD.js +1 -0
- package/dist/embed/embed-page-io-X5SCSO5G.js +1 -0
- package/dist/embed/embed-page-irpf90-A5FIGB26.js +1 -0
- package/dist/embed/embed-page-isbl-Q77V4FXF.js +1 -0
- package/dist/embed/embed-page-j-MA6BTTGA.js +1 -0
- package/dist/embed/embed-page-java-CYPVO64F.js +1 -0
- package/dist/embed/embed-page-java-O37XO6YL.js +1 -0
- package/dist/embed/embed-page-javadoc-LWLUAHHX.js +1 -0
- package/dist/embed/embed-page-javadoclike-BMEJGG2H.js +1 -0
- package/dist/embed/embed-page-javascript-GU26522Z.js +1 -0
- package/dist/embed/embed-page-javascript-M37PIZZC.js +1 -0
- package/dist/embed/embed-page-javastacktrace-ENINDMIF.js +1 -0
- package/dist/embed/embed-page-jboss-cli-Q2WN2KZS.js +1 -0
- package/dist/embed/embed-page-jexl-EU2C4LRG.js +1 -0
- package/dist/embed/embed-page-jolie-WJIQVPRR.js +1 -0
- package/dist/embed/embed-page-journeyDiagram-XKPGCS4Q-D4A2GN62.js +139 -0
- package/dist/embed/embed-page-jq-BRF5PIAN.js +1 -0
- package/dist/embed/embed-page-js-extras-WQMVOPIZ.js +1 -0
- package/dist/embed/embed-page-js-templates-YO6IJU6R.js +1 -0
- package/dist/embed/embed-page-jsdoc-ZKI7O6VF.js +1 -0
- package/dist/embed/embed-page-json-MRFYB7NT.js +1 -0
- package/dist/embed/embed-page-json-PSHSOWQY.js +1 -0
- package/dist/embed/embed-page-json5-VQKDKRNE.js +1 -0
- package/dist/embed/embed-page-jsonp-ANEJBBKD.js +1 -0
- package/dist/embed/embed-page-jsstacktrace-XYAXX4Z3.js +1 -0
- package/dist/embed/embed-page-jsx-FZEE3QI5.js +1 -0
- package/dist/embed/embed-page-julia-5W6JANPT.js +1 -0
- package/dist/embed/embed-page-julia-EY2DW2U2.js +1 -0
- package/dist/embed/embed-page-julia-repl-O5XO6CSL.js +1 -0
- package/dist/embed/embed-page-kanban-definition-3W4ZIXB7-5JTDNV4G.js +89 -0
- package/dist/embed/embed-page-katex-BO63LHUI.js +261 -0
- package/dist/embed/embed-page-keepalived-OPG3P3WJ.js +1 -0
- package/dist/embed/embed-page-keyman-CXJENJBT.js +1 -0
- package/dist/embed/embed-page-kotlin-62Q32YH3.js +1 -0
- package/dist/embed/embed-page-kotlin-V4IBLBDP.js +1 -0
- package/dist/embed/embed-page-kumir-TIJGTYC3.js +1 -0
- package/dist/embed/embed-page-kusto-BXI53DND.js +1 -0
- package/dist/embed/embed-page-lasso-2CPND7XH.js +1 -0
- package/dist/embed/embed-page-latex-F3X5K6QF.js +1 -0
- package/dist/embed/embed-page-latex-MVG52AHA.js +1 -0
- package/dist/embed/embed-page-latte-J3LVOB6S.js +1 -0
- package/dist/embed/embed-page-ldif-5OWTENAQ.js +1 -0
- package/dist/embed/embed-page-leaf-EYR425IG.js +1 -0
- package/dist/embed/embed-page-less-S6CBMQQZ.js +1 -0
- package/dist/embed/embed-page-less-WDPLNQ5B.js +1 -0
- package/dist/embed/embed-page-lilypond-IJV67NKP.js +1 -0
- package/dist/embed/embed-page-linker-script-MIX3HOEH.js +1 -0
- package/dist/embed/embed-page-liquid-CFWS6T2J.js +1 -0
- package/dist/embed/embed-page-lisp-C6XPBZ5U.js +1 -0
- package/dist/embed/embed-page-lisp-IM4ILKS7.js +1 -0
- package/dist/embed/embed-page-livecodeserver-6F3SUK5W.js +1 -0
- package/dist/embed/embed-page-livescript-GNIYPIHH.js +1 -0
- package/dist/embed/embed-page-livescript-HOLSYBIG.js +1 -0
- package/dist/embed/embed-page-llvm-IWL5DLNH.js +1 -0
- package/dist/embed/embed-page-llvm-K2USHCCC.js +1 -0
- package/dist/embed/embed-page-log-BLJX5RSC.js +1 -0
- package/dist/embed/embed-page-lolcode-6COIIRQ6.js +1 -0
- package/dist/embed/embed-page-lsl-KDZSWM6S.js +1 -0
- package/dist/embed/embed-page-lua-5KEV5KHK.js +1 -0
- package/dist/embed/embed-page-lua-F7VBLUI5.js +1 -0
- package/dist/embed/embed-page-magma-TTQUX26J.js +1 -0
- package/dist/embed/embed-page-makefile-4VQZE7FW.js +1 -0
- package/dist/embed/embed-page-makefile-LDN5QGHW.js +1 -0
- package/dist/embed/embed-page-markdown-GU3NFA6A.js +1 -0
- package/dist/embed/embed-page-markdown-ODPEZXUU.js +1 -0
- package/dist/embed/embed-page-markup-W6JMQ64H.js +1 -0
- package/dist/embed/embed-page-markup-templating-RYGNVTG7.js +1 -0
- package/dist/embed/embed-page-mata-D4O4BNGS.js +1 -0
- package/dist/embed/embed-page-mathematica-YSU2VUX4.js +1 -0
- package/dist/embed/embed-page-matlab-6TYO6LKK.js +1 -0
- package/dist/embed/embed-page-matlab-DCIHZIZM.js +1 -0
- package/dist/embed/embed-page-maxima-K2VWPGLA.js +1 -0
- package/dist/embed/embed-page-maxscript-3ARRWLS6.js +1 -0
- package/dist/embed/embed-page-mel-E3F6H7ZF.js +1 -0
- package/dist/embed/embed-page-mel-YGI273IY.js +1 -0
- package/dist/embed/embed-page-mercury-LXCDDOJN.js +1 -0
- package/dist/embed/embed-page-mermaid-4FMYB3TJ.js +1 -0
- package/dist/embed/embed-page-mermaid-CW4QCAH3.js +18 -0
- package/dist/embed/embed-page-metafont-33QDNLJC.js +1 -0
- package/dist/embed/embed-page-mindmap-definition-VGOIOE7T-LVIRJQDW.js +68 -0
- package/dist/embed/embed-page-mipsasm-HSMSNEPP.js +1 -0
- package/dist/embed/embed-page-mizar-OTR4FHWG.js +1 -0
- package/dist/embed/embed-page-mizar-ZDNSLX4H.js +1 -0
- package/dist/embed/embed-page-mojolicious-2VJDUL4M.js +1 -0
- package/dist/embed/embed-page-mongodb-E62Y62DN.js +1 -0
- package/dist/embed/embed-page-monkey-KOVSP7SE.js +1 -0
- package/dist/embed/embed-page-monkey-MWSXB6DH.js +1 -0
- package/dist/embed/embed-page-moonscript-7DWCIDI5.js +1 -0
- package/dist/embed/embed-page-moonscript-AIMMMW7W.js +1 -0
- package/dist/embed/embed-page-n1ql-TKR2PAQ4.js +1 -0
- package/dist/embed/embed-page-n1ql-VSPMFQEE.js +1 -0
- package/dist/embed/embed-page-n4js-VQSAFSQG.js +1 -0
- package/dist/embed/embed-page-nand2tetris-hdl-ZN4LQDMB.js +1 -0
- package/dist/embed/embed-page-naniscript-FX42SAZY.js +1 -0
- package/dist/embed/embed-page-nasm-FGR3ELJL.js +1 -0
- package/dist/embed/embed-page-neon-4JXYQJP3.js +1 -0
- package/dist/embed/embed-page-nevod-2EHVRC32.js +1 -0
- package/dist/embed/embed-page-nginx-3W4BPZZB.js +1 -0
- package/dist/embed/embed-page-nginx-672JEBEN.js +1 -0
- package/dist/embed/embed-page-nim-CNSA5KTJ.js +1 -0
- package/dist/embed/embed-page-nim-CS7GVCRH.js +1 -0
- package/dist/embed/embed-page-nix-H37VR2HL.js +1 -0
- package/dist/embed/embed-page-nix-ODG6AI37.js +1 -0
- package/dist/embed/embed-page-node-repl-F5RCYIN3.js +1 -0
- package/dist/embed/embed-page-nsis-LEW5NHHS.js +1 -0
- package/dist/embed/embed-page-nsis-P73IQUMW.js +1 -0
- package/dist/embed/embed-page-objectivec-GOD2BEHI.js +1 -0
- package/dist/embed/embed-page-objectivec-UO34JBT5.js +1 -0
- package/dist/embed/embed-page-ocaml-ODOKMPKS.js +1 -0
- package/dist/embed/embed-page-ocaml-PW67TSNU.js +1 -0
- package/dist/embed/embed-page-odin-42BCJRMU.js +1 -0
- package/dist/embed/embed-page-opencl-FWU2AVTW.js +1 -0
- package/dist/embed/embed-page-openqasm-D2QQCO47.js +1 -0
- package/dist/embed/embed-page-openscad-LZPRFY2W.js +1 -0
- package/dist/embed/embed-page-oxygene-HZG7OO7G.js +1 -0
- package/dist/embed/embed-page-oz-MQNQCKRU.js +1 -0
- package/dist/embed/embed-page-packet-BFZMPI3H-JUHAABU6.js +1 -0
- package/dist/embed/embed-page-parigp-MAX3X22G.js +1 -0
- package/dist/embed/embed-page-parser-2WFCRGYE.js +1 -0
- package/dist/embed/embed-page-parser3-C3KVU5ZC.js +1 -0
- package/dist/embed/embed-page-pascal-LVXMXCNE.js +1 -0
- package/dist/embed/embed-page-pascaligo-6RIW5OHU.js +1 -0
- package/dist/embed/embed-page-pcaxis-ZO5S5UAO.js +1 -0
- package/dist/embed/embed-page-peoplecode-EAE6M4AF.js +1 -0
- package/dist/embed/embed-page-perl-CAUIKKUT.js +1 -0
- package/dist/embed/embed-page-perl-NCR5YMVT.js +1 -0
- package/dist/embed/embed-page-pf-TXMTVH7H.js +1 -0
- package/dist/embed/embed-page-pgsql-M7L7YRCD.js +1 -0
- package/dist/embed/embed-page-php-IE2N3QI4.js +1 -0
- package/dist/embed/embed-page-php-QCBSAYIC.js +1 -0
- package/dist/embed/embed-page-php-extras-VRZO47SA.js +1 -0
- package/dist/embed/embed-page-php-template-U54UCRKN.js +1 -0
- package/dist/embed/embed-page-phpdoc-ZQWB2OXG.js +1 -0
- package/dist/embed/embed-page-pie-7BOR55EZ-GU56BHQJ.js +1 -0
- package/dist/embed/embed-page-pieDiagram-ADFJNKIX-JXFHXEAJ.js +30 -0
- package/dist/embed/embed-page-plaintext-OINTKMAM.js +1 -0
- package/dist/embed/embed-page-plant-uml-3RVWLPWM.js +1 -0
- package/dist/embed/embed-page-plsql-XQEBXO73.js +1 -0
- package/dist/embed/embed-page-pony-UEK5X7OI.js +1 -0
- package/dist/embed/embed-page-powerquery-DEKKCZY7.js +1 -0
- package/dist/embed/embed-page-powershell-EBW7RZTN.js +1 -0
- package/dist/embed/embed-page-powershell-UMB53SPC.js +1 -0
- package/dist/embed/embed-page-processing-56OIROQG.js +1 -0
- package/dist/embed/embed-page-processing-ZIDQ7SB3.js +1 -0
- package/dist/embed/embed-page-profile-6SSPU7PG.js +1 -0
- package/dist/embed/embed-page-prolog-7JA2UBRP.js +1 -0
- package/dist/embed/embed-page-prolog-L55HYSKT.js +1 -0
- package/dist/embed/embed-page-promql-L4YBO3EF.js +1 -0
- package/dist/embed/embed-page-properties-O3BOEJXJ.js +1 -0
- package/dist/embed/embed-page-properties-VGZTUJ5E.js +1 -0
- package/dist/embed/embed-page-protobuf-F7X2PLJJ.js +1 -0
- package/dist/embed/embed-page-protobuf-GS5HMEMS.js +1 -0
- package/dist/embed/embed-page-psl-HLKSMRWT.js +1 -0
- package/dist/embed/embed-page-pug-MI7HPGUX.js +1 -0
- package/dist/embed/embed-page-puppet-2HD3DPH2.js +1 -0
- package/dist/embed/embed-page-puppet-BRWZHTKL.js +1 -0
- package/dist/embed/embed-page-pure-FVSDVQ2B.js +1 -0
- package/dist/embed/embed-page-purebasic-PPHAGMQH.js +1 -0
- package/dist/embed/embed-page-purebasic-UVZDR2HE.js +1 -0
- package/dist/embed/embed-page-purescript-Q3TGKQZY.js +1 -0
- package/dist/embed/embed-page-purify-QTVE4GEG.js +8 -0
- package/dist/embed/embed-page-python-NO3SIOCK.js +1 -0
- package/dist/embed/embed-page-python-YAPGCWHR.js +1 -0
- package/dist/embed/embed-page-python-repl-EIGKWV4T.js +1 -0
- package/dist/embed/embed-page-q-5YCCZLRO.js +1 -0
- package/dist/embed/embed-page-q-FWJ5L5RH.js +1 -0
- package/dist/embed/embed-page-qml-PNZK27ST.js +1 -0
- package/dist/embed/embed-page-qml-YVZULPLY.js +1 -0
- package/dist/embed/embed-page-qore-QU7W2FQD.js +1 -0
- package/dist/embed/embed-page-qsharp-FNGNB3PK.js +1 -0
- package/dist/embed/embed-page-quadrantDiagram-AYHSOK5B-4BXTDPJ4.js +7 -0
- package/dist/embed/embed-page-r-52DQANKK.js +1 -0
- package/dist/embed/embed-page-r-B2QMYOFX.js +1 -0
- package/dist/embed/embed-page-racket-OA22GPFB.js +1 -0
- package/dist/embed/embed-page-radar-NHE76QYJ-A7QQXLRI.js +1 -0
- package/dist/embed/embed-page-reason-QQ4RYUQI.js +1 -0
- package/dist/embed/embed-page-reasonml-CQAWSREB.js +1 -0
- package/dist/embed/embed-page-regex-5JJLL4V6.js +1 -0
- package/dist/embed/embed-page-rego-OLGGN4OK.js +1 -0
- package/dist/embed/embed-page-renpy-72F6BTO6.js +1 -0
- package/dist/embed/embed-page-requirementDiagram-UZGBJVZJ-WA3XXOP7.js +64 -0
- package/dist/embed/embed-page-rescript-VYN4PAG7.js +1 -0
- package/dist/embed/embed-page-rest-YZNSQW6O.js +1 -0
- package/dist/embed/embed-page-rib-U4ELGIV2.js +1 -0
- package/dist/embed/embed-page-rip-ZA4CVYFN.js +1 -0
- package/dist/embed/embed-page-roboconf-5IGYRDNH.js +1 -0
- package/dist/embed/embed-page-roboconf-HKSGWVI6.js +1 -0
- package/dist/embed/embed-page-robotframework-ARNA4YNR.js +1 -0
- package/dist/embed/embed-page-routeros-DKQKHPKR.js +1 -0
- package/dist/embed/embed-page-rsl-WZYNFUWJ.js +1 -0
- package/dist/embed/embed-page-ruby-DLLZKK7A.js +1 -0
- package/dist/embed/embed-page-ruby-TKJZO362.js +1 -0
- package/dist/embed/embed-page-ruleslanguage-7CSB4CWD.js +1 -0
- package/dist/embed/embed-page-rust-6JUJCSHC.js +1 -0
- package/dist/embed/embed-page-rust-ZZUD5RKM.js +1 -0
- package/dist/embed/embed-page-sankeyDiagram-TZEHDZUN-SAVUI2Q4.js +10 -0
- package/dist/embed/embed-page-sas-6H3LYHVP.js +1 -0
- package/dist/embed/embed-page-sas-EUBD2V4Z.js +1 -0
- package/dist/embed/embed-page-sass-U6G7R7AZ.js +1 -0
- package/dist/embed/embed-page-scala-HFYNBK2U.js +1 -0
- package/dist/embed/embed-page-scala-OJM3677P.js +1 -0
- package/dist/embed/embed-page-scheme-KBT7Z3ND.js +1 -0
- package/dist/embed/embed-page-scheme-QQ2VPTFQ.js +1 -0
- package/dist/embed/embed-page-scilab-LA3HLVKQ.js +1 -0
- package/dist/embed/embed-page-scss-FDEUPWYR.js +1 -0
- package/dist/embed/embed-page-scss-IH2AODYU.js +1 -0
- package/dist/embed/embed-page-sequenceDiagram-WL72ISMW-C2QRTOTL.js +145 -0
- package/dist/embed/embed-page-shell-O7OU7Y7F.js +1 -0
- package/dist/embed/embed-page-shell-session-CPCKA76Q.js +1 -0
- package/dist/embed/embed-page-smali-3HHDEBNE.js +1 -0
- package/dist/embed/embed-page-smali-L7H7BQUY.js +1 -0
- package/dist/embed/embed-page-smalltalk-KQLA6XRI.js +1 -0
- package/dist/embed/embed-page-smalltalk-WMM37MR4.js +1 -0
- package/dist/embed/embed-page-smarty-AF5LZRHA.js +1 -0
- package/dist/embed/embed-page-sml-4ARWLXZU.js +1 -0
- package/dist/embed/embed-page-sml-6BNN3PMR.js +1 -0
- package/dist/embed/embed-page-solidity-5WL56MR7.js +1 -0
- package/dist/embed/embed-page-solution-file-FJJU2R2L.js +1 -0
- package/dist/embed/embed-page-soy-54PPSPCO.js +1 -0
- package/dist/embed/embed-page-sparql-AC7LG2EE.js +1 -0
- package/dist/embed/embed-page-splunk-spl-YBP24JOS.js +1 -0
- package/dist/embed/embed-page-sqf-4E5P576B.js +1 -0
- package/dist/embed/embed-page-sqf-CSHANDQB.js +1 -0
- package/dist/embed/embed-page-sql-MGWNK6FE.js +1 -0
- package/dist/embed/embed-page-sql-ZOJORZUC.js +1 -0
- package/dist/embed/embed-page-sql_more-NACOUKSZ.js +1 -0
- package/dist/embed/embed-page-squirrel-XG35KUR2.js +1 -0
- package/dist/embed/embed-page-stan-GDB32LYB.js +1 -0
- package/dist/embed/embed-page-stan-UJ7WCNJT.js +1 -0
- package/dist/embed/embed-page-stata-DEQ57OIC.js +1 -0
- package/dist/embed/embed-page-stata-WJUFDMUW.js +1 -0
- package/dist/embed/embed-page-stateDiagram-FKZM4ZOC-6LDVHEHS.js +1 -0
- package/dist/embed/embed-page-stateDiagram-v2-4FDKWEC3-UJYGEYF5.js +1 -0
- package/dist/embed/embed-page-step21-6AYDKM5N.js +1 -0
- package/dist/embed/embed-page-stylus-CFL6FZN3.js +1 -0
- package/dist/embed/embed-page-stylus-MLEF22IY.js +1 -0
- package/dist/embed/embed-page-subunit-OZQ2HNNA.js +1 -0
- package/dist/embed/embed-page-supercollider-ZK2ECEDQ.js +1 -0
- package/dist/embed/embed-page-swift-MNLMKF5F.js +1 -0
- package/dist/embed/embed-page-swift-UJP2CPA4.js +1 -0
- package/dist/embed/embed-page-systemd-DQXTIGWD.js +1 -0
- package/dist/embed/embed-page-t4-cs-ZPHNHWPR.js +1 -0
- package/dist/embed/embed-page-t4-templating-OA7FNPXM.js +1 -0
- package/dist/embed/embed-page-t4-vb-XBX2HBI5.js +1 -0
- package/dist/embed/embed-page-taggerscript-XVALJYA3.js +1 -0
- package/dist/embed/embed-page-tap-EMOHKH5F.js +1 -0
- package/dist/embed/embed-page-tap-HZHER7FY.js +1 -0
- package/dist/embed/embed-page-tcl-GN4WSRHR.js +1 -0
- package/dist/embed/embed-page-tcl-T3WWKS3Q.js +1 -0
- package/dist/embed/embed-page-textile-OXFYF2DV.js +1 -0
- package/dist/embed/embed-page-thrift-Q26IKVBC.js +1 -0
- package/dist/embed/embed-page-timeline-definition-IT6M3QCI-OF6FTGVN.js +61 -0
- package/dist/embed/embed-page-toml-ZVNI7WJB.js +1 -0
- package/dist/embed/embed-page-tp-24NWOAQZ.js +1 -0
- package/dist/embed/embed-page-treemap-KMMF4GRG-HPTV3SYE.js +1 -0
- package/dist/embed/embed-page-tremor-443PBNWC.js +1 -0
- package/dist/embed/embed-page-tsx-PX2Z4GDU.js +1 -0
- package/dist/embed/embed-page-tt2-L43LNTGL.js +1 -0
- package/dist/embed/embed-page-turtle-IXYYTHLU.js +1 -0
- package/dist/embed/embed-page-twig-MZBQAWRC.js +1 -0
- package/dist/embed/embed-page-twig-WSAAZNH3.js +1 -0
- package/dist/embed/embed-page-typescript-5UWO3Y3K.js +1 -0
- package/dist/embed/embed-page-typescript-BPIRCQG7.js +1 -0
- package/dist/embed/embed-page-typoscript-UUKPTXPH.js +1 -0
- package/dist/embed/embed-page-unrealscript-G2VHZRFN.js +1 -0
- package/dist/embed/embed-page-uorazor-WYGVL7PT.js +1 -0
- package/dist/embed/embed-page-uri-NRWWZBB7.js +1 -0
- package/dist/embed/embed-page-v-LKVTPKDV.js +1 -0
- package/dist/embed/embed-page-vala-EL5BNKYD.js +1 -0
- package/dist/embed/embed-page-vala-MLIRE3PS.js +1 -0
- package/dist/embed/embed-page-vbnet-5JKSIZ56.js +1 -0
- package/dist/embed/embed-page-vbnet-KOGX2JTL.js +1 -0
- package/dist/embed/embed-page-vbscript-637T6GXI.js +1 -0
- package/dist/embed/embed-page-vbscript-html-YKWMMXG4.js +1 -0
- package/dist/embed/embed-page-velocity-7Q63BBW2.js +1 -0
- package/dist/embed/embed-page-verilog-B6EWQWMJ.js +1 -0
- package/dist/embed/embed-page-verilog-G566LGG4.js +1 -0
- package/dist/embed/embed-page-vhdl-R5JIOJNH.js +1 -0
- package/dist/embed/embed-page-vhdl-RMOYZXLG.js +1 -0
- package/dist/embed/embed-page-vim-47Q56RS4.js +1 -0
- package/dist/embed/embed-page-vim-KBCAYMER.js +1 -0
- package/dist/embed/embed-page-visual-basic-ZYE5FD6G.js +1 -0
- package/dist/embed/embed-page-warpscript-65UOMFFU.js +1 -0
- package/dist/embed/embed-page-wasm-MSBGNWUM.js +1 -0
- package/dist/embed/embed-page-web-idl-7WW5RGOI.js +1 -0
- package/dist/embed/embed-page-wgsl-FG3PI6M7.js +1 -0
- package/dist/embed/embed-page-wiki-DGVS4GPN.js +1 -0
- package/dist/embed/embed-page-wolfram-MOURXWVE.js +1 -0
- package/dist/embed/embed-page-wren-PYL5ZRVR.js +1 -0
- package/dist/embed/embed-page-x86asm-WQ6M3VHZ.js +1 -0
- package/dist/embed/embed-page-xeora-JSPZIDKL.js +1 -0
- package/dist/embed/embed-page-xl-DTY4E7YS.js +1 -0
- package/dist/embed/embed-page-xml-P5QA5BKM.js +1 -0
- package/dist/embed/embed-page-xml-doc-VAJOIYSW.js +1 -0
- package/dist/embed/embed-page-xojo-L2PDU7MC.js +1 -0
- package/dist/embed/embed-page-xquery-EWBQ7NVP.js +1 -0
- package/dist/embed/embed-page-xquery-RUKMMBO2.js +1 -0
- package/dist/embed/embed-page-xychartDiagram-PRI3JC2R-EWLR5Z3I.js +7 -0
- package/dist/embed/embed-page-yaml-76KRB6BP.js +1 -0
- package/dist/embed/embed-page-yaml-RR5MLWRK.js +1 -0
- package/dist/embed/embed-page-yang-J62Y5RPD.js +1 -0
- package/dist/embed/embed-page-zephir-OIOOQGNI.js +1 -0
- package/dist/embed/embed-page-zig-75SL5ZWR.js +1 -0
- package/dist/embed/embed-page.css +1 -0
- package/dist/embed/embed-page.js +6 -0
- package/dist/index.d.mts +19 -40
- package/dist/index.d.ts +19 -40
- package/dist/index.js +3605 -1694
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1125 -900
- package/dist/index.mjs.map +1 -1
- package/dist/kbProvider-2D6DZ34N.mjs +50 -0
- package/dist/kbProvider-2D6DZ34N.mjs.map +1 -0
- package/dist/{mcp-configs-SHRMQHIL.mjs → mcp-configs-WCY5EXCW.mjs} +3 -2
- package/dist/mcp-configs-WCY5EXCW.mjs.map +1 -0
- package/dist/mcpTransportRegistry-VXUVJKBC.mjs +14 -0
- package/dist/mcpTransportRegistry-VXUVJKBC.mjs.map +1 -0
- package/dist/open-HH7RKGML.mjs +260 -0
- package/dist/open-HH7RKGML.mjs.map +1 -0
- package/dist/open-audit-UJ3NXCGW.mjs +32 -0
- package/dist/open-audit-UJ3NXCGW.mjs.map +1 -0
- package/dist/open-catalog-WYS2AENM.mjs +59 -0
- package/dist/open-catalog-WYS2AENM.mjs.map +1 -0
- package/dist/open-exposure-FK4G6O6L.mjs +67 -0
- package/dist/open-exposure-FK4G6O6L.mjs.map +1 -0
- package/dist/open-files-GVRMK5PL.mjs +146 -0
- package/dist/open-files-GVRMK5PL.mjs.map +1 -0
- package/dist/open-session-3VN65PRR.mjs +53 -0
- package/dist/open-session-3VN65PRR.mjs.map +1 -0
- package/dist/openLattice-GAAGQJST.mjs +16 -0
- package/dist/openLattice-GAAGQJST.mjs.map +1 -0
- package/dist/registerExposedPlugins-63EUF4VS.mjs +99 -0
- package/dist/registerExposedPlugins-63EUF4VS.mjs.map +1 -0
- package/dist/{resources-VA7LSDKN.mjs → resources-SRQRKW5G.mjs} +47 -4
- package/dist/resources-SRQRKW5G.mjs.map +1 -0
- package/dist/sandboxProvider-I3P66VXT.mjs +10 -0
- package/dist/sandboxProvider-I3P66VXT.mjs.map +1 -0
- package/dist/{sender-PX32VSHB.mjs → sender-PLDU5EZ3.mjs} +3 -1
- package/dist/{sender-PX32VSHB.mjs.map → sender-PLDU5EZ3.mjs.map} +1 -1
- package/package.json +11 -8
- package/dist/a2a-7N3WDAOP.mjs.map +0 -1
- package/dist/a2a-standard-WC2BSOFV.mjs.map +0 -1
- package/dist/chunk-2HOCF46L.mjs.map +0 -1
- package/dist/resources-VA7LSDKN.mjs.map +0 -1
- /package/dist/{A2AAuthService-DK5X6VIL.mjs.map → A2AAuthService-7UGQ7GMW.mjs.map} +0 -0
- /package/dist/{mcp-configs-SHRMQHIL.mjs.map → chunk-NFEGQTCC.mjs.map} +0 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
2
|
+
|
|
3
|
+
// src/services/open/providers/kbProvider.ts
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
function createKbProvider(collectionService) {
|
|
6
|
+
return {
|
|
7
|
+
domain: "kb",
|
|
8
|
+
label: "Knowledge Base",
|
|
9
|
+
source: "builtin",
|
|
10
|
+
scopeKind: "tenant",
|
|
11
|
+
actions: [
|
|
12
|
+
{
|
|
13
|
+
name: "search",
|
|
14
|
+
label: "Search collections",
|
|
15
|
+
description: "Search a knowledge base collection. Returns matched entries with content, metadata and similarity score.",
|
|
16
|
+
schema: {
|
|
17
|
+
collection: z.string().min(1),
|
|
18
|
+
query: z.string().min(1),
|
|
19
|
+
limit: z.number().int().min(1).max(50).optional()
|
|
20
|
+
},
|
|
21
|
+
annotations: { readOnlyHint: true, destructiveHint: false }
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
execute: async (action, args, ctx) => {
|
|
25
|
+
if (action !== "search") {
|
|
26
|
+
return {
|
|
27
|
+
content: [{ type: "text", text: `Unknown kb action: ${action}` }],
|
|
28
|
+
isError: true
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
const { collection, query, limit } = args;
|
|
32
|
+
const req = {
|
|
33
|
+
user: { tenantId: ctx.tenantId },
|
|
34
|
+
headers: {}
|
|
35
|
+
};
|
|
36
|
+
const entries = await collectionService.searchEntries(
|
|
37
|
+
req,
|
|
38
|
+
collection,
|
|
39
|
+
{ query, top_k: limit ?? 5 }
|
|
40
|
+
);
|
|
41
|
+
return {
|
|
42
|
+
content: [{ type: "text", text: JSON.stringify(entries, null, 2) }]
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
createKbProvider
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=kbProvider-2D6DZ34N.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/services/open/providers/kbProvider.ts"],"sourcesContent":["/**\n * Built-in kb provider for the Open surface: knowledge-base search.\n *\n * Delegates to CollectionService (business code, zero changes) with a\n * synthesized minimal request — collection_service's getTenantId reads\n * user.tenantId, and the Open context always carries the credential-derived\n * tenant (never a caller-supplied header).\n */\n\nimport { z } from \"zod\";\nimport type { FastifyRequest } from \"fastify\";\nimport type {\n OpenExecutionContext,\n OpenExecutionResult,\n} from \"@axiom-lattice/protocols\";\nimport { CollectionService } from \"../../../services/collection_service\";\nimport type { OpenProviderDeclaration } from \"../openLattice\";\n\nexport function createKbProvider(\n collectionService: CollectionService,\n): OpenProviderDeclaration {\n return {\n domain: \"kb\",\n label: \"Knowledge Base\",\n source: \"builtin\",\n scopeKind: \"tenant\",\n actions: [\n {\n name: \"search\",\n label: \"Search collections\",\n description:\n \"Search a knowledge base collection. Returns matched entries with content, metadata and similarity score.\",\n schema: {\n collection: z.string().min(1),\n query: z.string().min(1),\n limit: z.number().int().min(1).max(50).optional(),\n },\n annotations: { readOnlyHint: true, destructiveHint: false },\n },\n ],\n execute: async (\n action: string,\n args: unknown,\n ctx: OpenExecutionContext,\n ): Promise<OpenExecutionResult> => {\n if (action !== \"search\") {\n return {\n content: [{ type: \"text\", text: `Unknown kb action: ${action}` }],\n isError: true,\n };\n }\n const { collection, query, limit } = args as {\n collection: string;\n query: string;\n limit?: number;\n };\n const req = {\n user: { tenantId: ctx.tenantId },\n headers: {},\n } as unknown as FastifyRequest;\n const entries = await collectionService.searchEntries(\n req,\n collection,\n { query, top_k: limit ?? 5 },\n );\n return {\n content: [{ type: \"text\", text: JSON.stringify(entries, null, 2) }],\n };\n },\n };\n}\n"],"mappings":";;;AASA,SAAS,SAAS;AASX,SAAS,iBACd,mBACyB;AACzB,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,SAAS;AAAA,MACP;AAAA,QACE,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aACE;AAAA,QACF,QAAQ;AAAA,UACN,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,UAC5B,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;AAAA,UACvB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,SAAS;AAAA,QAClD;AAAA,QACA,aAAa,EAAE,cAAc,MAAM,iBAAiB,MAAM;AAAA,MAC5D;AAAA,IACF;AAAA,IACA,SAAS,OACP,QACA,MACA,QACiC;AACjC,UAAI,WAAW,UAAU;AACvB,eAAO;AAAA,UACL,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,sBAAsB,MAAM,GAAG,CAAC;AAAA,UAChE,SAAS;AAAA,QACX;AAAA,MACF;AACA,YAAM,EAAE,YAAY,OAAO,MAAM,IAAI;AAKrC,YAAM,MAAM;AAAA,QACV,MAAM,EAAE,UAAU,IAAI,SAAS;AAAA,QAC/B,SAAS,CAAC;AAAA,MACZ;AACA,YAAM,UAAU,MAAM,kBAAkB;AAAA,QACtC;AAAA,QACA;AAAA,QACA,EAAE,OAAO,OAAO,SAAS,EAAE;AAAA,MAC7B;AACA,aAAO;AAAA,QACL,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,KAAK,UAAU,SAAS,MAAM,CAAC,EAAE,CAAC;AAAA,MACpE;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
|
|
@@ -11,7 +11,8 @@ import {
|
|
|
11
11
|
testMcpServerConnection,
|
|
12
12
|
testMcpServerTools,
|
|
13
13
|
updateMcpServerConfig
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-QKPZWWHH.mjs";
|
|
15
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
15
16
|
export {
|
|
16
17
|
connectMcpServer,
|
|
17
18
|
convertToConnection,
|
|
@@ -26,4 +27,4 @@ export {
|
|
|
26
27
|
testMcpServerTools,
|
|
27
28
|
updateMcpServerConfig
|
|
28
29
|
};
|
|
29
|
-
//# sourceMappingURL=mcp-configs-
|
|
30
|
+
//# sourceMappingURL=mcp-configs-WCY5EXCW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import {
|
|
2
|
+
clearSessions,
|
|
3
|
+
deleteSession,
|
|
4
|
+
getSession,
|
|
5
|
+
registerSession
|
|
6
|
+
} from "./chunk-K32XEQLH.mjs";
|
|
7
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
8
|
+
export {
|
|
9
|
+
clearSessions,
|
|
10
|
+
deleteSession,
|
|
11
|
+
getSession,
|
|
12
|
+
registerSession
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=mcpTransportRegistry-VXUVJKBC.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import {
|
|
2
|
+
deleteSession,
|
|
3
|
+
getSession,
|
|
4
|
+
registerSession
|
|
5
|
+
} from "./chunk-K32XEQLH.mjs";
|
|
6
|
+
import {
|
|
7
|
+
OpenAuditService,
|
|
8
|
+
OpenCredentialService
|
|
9
|
+
} from "./chunk-52SUWMOX.mjs";
|
|
10
|
+
import {
|
|
11
|
+
ActionNotFoundError,
|
|
12
|
+
GrantDeniedError,
|
|
13
|
+
ValidationError,
|
|
14
|
+
openLattice
|
|
15
|
+
} from "./chunk-GF4GGTWJ.mjs";
|
|
16
|
+
import "./chunk-WKNZ7GBC.mjs";
|
|
17
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
18
|
+
|
|
19
|
+
// src/routes/open.ts
|
|
20
|
+
import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
|
|
21
|
+
import { getStoreLattice } from "@axiom-lattice/core";
|
|
22
|
+
|
|
23
|
+
// src/services/open/openRateLimiter.ts
|
|
24
|
+
var OpenRateLimiter = class {
|
|
25
|
+
constructor(options = {}) {
|
|
26
|
+
this.buckets = /* @__PURE__ */ new Map();
|
|
27
|
+
this.defaultPerMinute = options.defaultPerMinute ?? 60;
|
|
28
|
+
this.agentPerMinute = options.agentPerMinute ?? 10;
|
|
29
|
+
}
|
|
30
|
+
bucketClass(domain) {
|
|
31
|
+
return domain === "agent" ? "agent" : "default";
|
|
32
|
+
}
|
|
33
|
+
limitFor(domain) {
|
|
34
|
+
return domain === "agent" ? this.agentPerMinute : this.defaultPerMinute;
|
|
35
|
+
}
|
|
36
|
+
/** Consume one token; denied calls report how long to wait. */
|
|
37
|
+
check(credentialId, domain) {
|
|
38
|
+
const limit = this.limitFor(domain);
|
|
39
|
+
const key = `${this.bucketClass(domain)}:${credentialId}`;
|
|
40
|
+
const now = Date.now();
|
|
41
|
+
const bucket = this.buckets.get(key) ?? { tokens: limit, updatedAt: now };
|
|
42
|
+
const refillPerMs = limit / 6e4;
|
|
43
|
+
const elapsed = now - bucket.updatedAt;
|
|
44
|
+
bucket.tokens = Math.min(limit, bucket.tokens + elapsed * refillPerMs);
|
|
45
|
+
bucket.updatedAt = now;
|
|
46
|
+
if (bucket.tokens >= 1) {
|
|
47
|
+
bucket.tokens -= 1;
|
|
48
|
+
this.buckets.set(key, bucket);
|
|
49
|
+
return { allowed: true };
|
|
50
|
+
}
|
|
51
|
+
this.buckets.set(key, bucket);
|
|
52
|
+
const deficit = 1 - bucket.tokens;
|
|
53
|
+
return { allowed: false, retryAfterMs: Math.ceil(deficit / refillPerMs) };
|
|
54
|
+
}
|
|
55
|
+
/** Test helper. */
|
|
56
|
+
reset() {
|
|
57
|
+
this.buckets.clear();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
// src/services/open/openMcpServer.ts
|
|
62
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
63
|
+
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
64
|
+
import { randomUUID } from "crypto";
|
|
65
|
+
var OPEN_MCP_SERVER_INFO = {
|
|
66
|
+
name: "axiom-open",
|
|
67
|
+
version: "0.1.0"
|
|
68
|
+
};
|
|
69
|
+
async function buildSessionServer(options) {
|
|
70
|
+
const { credential, grants, catalog, invoke } = options;
|
|
71
|
+
const server = new McpServer(OPEN_MCP_SERVER_INFO);
|
|
72
|
+
for (const tool of catalog) {
|
|
73
|
+
server.registerTool(
|
|
74
|
+
tool.toolName,
|
|
75
|
+
{
|
|
76
|
+
description: tool.description,
|
|
77
|
+
inputSchema: tool.schema,
|
|
78
|
+
annotations: {
|
|
79
|
+
readOnlyHint: tool.annotations.readOnlyHint,
|
|
80
|
+
destructiveHint: tool.annotations.destructiveHint
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
async (args) => {
|
|
84
|
+
const result = await invoke(tool.toolName, args);
|
|
85
|
+
return { content: result.content, isError: result.isError };
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
}
|
|
89
|
+
const transport = new StreamableHTTPServerTransport({
|
|
90
|
+
sessionIdGenerator: () => {
|
|
91
|
+
const sessionId = randomUUID();
|
|
92
|
+
void registerSession(
|
|
93
|
+
sessionId,
|
|
94
|
+
{ credentialId: credential.credentialId, kind: credential.kind },
|
|
95
|
+
{ server, transport }
|
|
96
|
+
);
|
|
97
|
+
return sessionId;
|
|
98
|
+
},
|
|
99
|
+
enableJsonResponse: true,
|
|
100
|
+
onsessionclosed: (closedId) => {
|
|
101
|
+
void import("./mcpTransportRegistry-VXUVJKBC.mjs").then(
|
|
102
|
+
({ deleteSession: deleteSession2 }) => deleteSession2(closedId)
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
await server.connect(transport);
|
|
107
|
+
return { server, transport, tools: catalog };
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// src/routes/open.ts
|
|
111
|
+
function extractBearer(request) {
|
|
112
|
+
const header = request.headers.authorization;
|
|
113
|
+
if (!header?.startsWith("Bearer ")) return void 0;
|
|
114
|
+
return header.slice("Bearer ".length).trim() || void 0;
|
|
115
|
+
}
|
|
116
|
+
function readSessionId(request) {
|
|
117
|
+
const raw = request.headers["mcp-session-id"];
|
|
118
|
+
const value = Array.isArray(raw) ? raw[0] : raw;
|
|
119
|
+
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
120
|
+
}
|
|
121
|
+
var RPC_ERROR = {
|
|
122
|
+
GRANT_DENIED: -32001,
|
|
123
|
+
ACTION_NOT_FOUND: -32002,
|
|
124
|
+
VALIDATION_FAILED: -32003,
|
|
125
|
+
EXECUTION_ERROR: -32004,
|
|
126
|
+
RATE_LIMITED: -32005
|
|
127
|
+
};
|
|
128
|
+
function registerOpenRoutes(app, deps = {}) {
|
|
129
|
+
const openAuth = deps.openAuth ?? new OpenCredentialService(
|
|
130
|
+
getStoreLattice("default", "a2aApiKey").store,
|
|
131
|
+
getStoreLattice("default", "project").store
|
|
132
|
+
);
|
|
133
|
+
const grantsSource = deps.grantsSource ?? ((ctx) => ctx.grants);
|
|
134
|
+
const audit = deps.audit ?? (() => {
|
|
135
|
+
try {
|
|
136
|
+
const store = getStoreLattice("default", "openAudit").store;
|
|
137
|
+
return new OpenAuditService(store);
|
|
138
|
+
} catch {
|
|
139
|
+
return void 0;
|
|
140
|
+
}
|
|
141
|
+
})();
|
|
142
|
+
const rateLimiter = deps.rateLimiter ?? new OpenRateLimiter();
|
|
143
|
+
app.post("/open/mcp", async (request, reply) => {
|
|
144
|
+
const context = await openAuth.resolve(extractBearer(request));
|
|
145
|
+
if (!context) {
|
|
146
|
+
return reply.status(401).send({ error: "AUTH_FAILED" });
|
|
147
|
+
}
|
|
148
|
+
const body = request.body;
|
|
149
|
+
const sessionId = readSessionId(request);
|
|
150
|
+
if (sessionId) {
|
|
151
|
+
const session = await getSession(sessionId);
|
|
152
|
+
if (!session || session.credential.credentialId !== context.credentialId) {
|
|
153
|
+
return reply.status(404).send({ error: "SESSION_NOT_FOUND" });
|
|
154
|
+
}
|
|
155
|
+
reply.hijack();
|
|
156
|
+
await session.transport.handleRequest(request.raw, reply.raw, body);
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (!isInitializeRequest(body)) {
|
|
160
|
+
return reply.status(400).send({ error: "SESSION_REQUIRED" });
|
|
161
|
+
}
|
|
162
|
+
const grants = grantsSource(context);
|
|
163
|
+
const catalog = await openLattice.catalogFor(grants, { tenantId: context.tenantId });
|
|
164
|
+
const built = await buildSessionServer({
|
|
165
|
+
credential: { credentialId: context.credentialId, kind: context.kind },
|
|
166
|
+
grants,
|
|
167
|
+
catalog,
|
|
168
|
+
invoke: async (toolName, args) => {
|
|
169
|
+
const startedAt = Date.now();
|
|
170
|
+
const sep = toolName.indexOf("_");
|
|
171
|
+
const auditDomain = sep > 0 ? toolName.slice(0, sep) : toolName;
|
|
172
|
+
const auditAction = sep > 0 ? toolName.slice(sep + 1) : "";
|
|
173
|
+
const decision = rateLimiter.check(context.credentialId, auditDomain);
|
|
174
|
+
if (!decision.allowed) {
|
|
175
|
+
await audit?.record({
|
|
176
|
+
tenantId: context.tenantId,
|
|
177
|
+
credentialId: context.credentialId,
|
|
178
|
+
credentialKind: context.kind,
|
|
179
|
+
projectId: context.projectId,
|
|
180
|
+
domain: auditDomain,
|
|
181
|
+
action: auditAction,
|
|
182
|
+
args,
|
|
183
|
+
status: "error",
|
|
184
|
+
errorCode: "RATE_LIMITED",
|
|
185
|
+
durationMs: Date.now() - startedAt
|
|
186
|
+
});
|
|
187
|
+
throw Object.assign(
|
|
188
|
+
new Error(
|
|
189
|
+
`RATE_LIMITED: retry after ${decision.retryAfterMs ?? 1e3}ms`
|
|
190
|
+
),
|
|
191
|
+
{ rpcCode: RPC_ERROR.RATE_LIMITED }
|
|
192
|
+
);
|
|
193
|
+
}
|
|
194
|
+
try {
|
|
195
|
+
const result = await openLattice.invoke(
|
|
196
|
+
grants,
|
|
197
|
+
{
|
|
198
|
+
tenantId: context.tenantId,
|
|
199
|
+
projectId: context.projectId,
|
|
200
|
+
workspaceId: context.workspaceId,
|
|
201
|
+
runConfig: {
|
|
202
|
+
sandboxName: context.sandboxName,
|
|
203
|
+
credentialId: context.credentialId
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
toolName,
|
|
207
|
+
args
|
|
208
|
+
);
|
|
209
|
+
await audit?.record({
|
|
210
|
+
tenantId: context.tenantId,
|
|
211
|
+
credentialId: context.credentialId,
|
|
212
|
+
credentialKind: context.kind,
|
|
213
|
+
projectId: context.projectId,
|
|
214
|
+
domain: auditDomain,
|
|
215
|
+
action: auditAction,
|
|
216
|
+
args,
|
|
217
|
+
status: "ok",
|
|
218
|
+
durationMs: Date.now() - startedAt
|
|
219
|
+
});
|
|
220
|
+
return result;
|
|
221
|
+
} catch (err) {
|
|
222
|
+
const code = err instanceof GrantDeniedError ? RPC_ERROR.GRANT_DENIED : err instanceof ActionNotFoundError ? RPC_ERROR.ACTION_NOT_FOUND : err instanceof ValidationError ? RPC_ERROR.VALIDATION_FAILED : RPC_ERROR.EXECUTION_ERROR;
|
|
223
|
+
await audit?.record({
|
|
224
|
+
tenantId: context.tenantId,
|
|
225
|
+
credentialId: context.credentialId,
|
|
226
|
+
credentialKind: context.kind,
|
|
227
|
+
projectId: context.projectId,
|
|
228
|
+
domain: auditDomain,
|
|
229
|
+
action: auditAction,
|
|
230
|
+
args,
|
|
231
|
+
status: "error",
|
|
232
|
+
errorCode: err instanceof GrantDeniedError ? "GRANT_DENIED" : err instanceof ActionNotFoundError ? "ACTION_NOT_FOUND" : err instanceof ValidationError ? "VALIDATION_FAILED" : "EXECUTION_ERROR",
|
|
233
|
+
durationMs: Date.now() - startedAt
|
|
234
|
+
});
|
|
235
|
+
throw Object.assign(
|
|
236
|
+
new Error(err instanceof Error ? err.message : String(err)),
|
|
237
|
+
{ rpcCode: code }
|
|
238
|
+
);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
reply.hijack();
|
|
243
|
+
await built.transport.handleRequest(request.raw, reply.raw, body);
|
|
244
|
+
});
|
|
245
|
+
app.delete(
|
|
246
|
+
"/open/mcp",
|
|
247
|
+
async (request, reply) => {
|
|
248
|
+
const sessionId = readSessionId(request);
|
|
249
|
+
if (!sessionId) {
|
|
250
|
+
return reply.status(400).send({ error: "SESSION_REQUIRED" });
|
|
251
|
+
}
|
|
252
|
+
await deleteSession(sessionId);
|
|
253
|
+
return reply.status(204).send();
|
|
254
|
+
}
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
export {
|
|
258
|
+
registerOpenRoutes
|
|
259
|
+
};
|
|
260
|
+
//# sourceMappingURL=open-HH7RKGML.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/open.ts","../src/services/open/openRateLimiter.ts","../src/services/open/openMcpServer.ts"],"sourcesContent":["/**\n * Open API surface routes: POST/DELETE /open/mcp.\n *\n * The route is a thin shell — credential resolution (OpenAuthService),\n * catalog filtering and invocation (OpenLattice), and session lifecycle\n * (mcpTransportRegistry) live in services/open/*. The transport writes the\n * response itself, so the reply is hijacked (same precedent as the Project\n * Room SSE route).\n */\n\nimport type { FastifyInstance, FastifyReply, FastifyRequest } from \"fastify\";\nimport { isInitializeRequest } from \"@modelcontextprotocol/sdk/types.js\";\nimport { getStoreLattice } from \"@axiom-lattice/core\";\nimport type { A2AApiKeyStore, OpenAuditStore, OpenGrant, ProjectStore } from \"@axiom-lattice/protocols\";\nimport { OpenCredentialService } from \"../services/open/openCredentialService\";\nimport { OpenAuditService } from \"../services/open/openAuditService\";\nimport { OpenRateLimiter } from \"../services/open/openRateLimiter\";\nimport type { OpenCredential } from \"../services/open/openCredentialService\";\nimport {\n openLattice,\n ActionNotFoundError,\n GrantDeniedError,\n ValidationError,\n} from \"../services/open/openLattice\";\nimport { buildSessionServer } from \"../services/open/openMcpServer\";\nimport { getSession, deleteSession } from \"../services/open/mcpTransportRegistry\";\n\nexport interface OpenRouteDeps {\n openAuth?: OpenCredentialService;\n grantsSource?: (ctx: OpenCredential) => OpenGrant[];\n audit?: OpenAuditService;\n rateLimiter?: OpenRateLimiter;\n}\n\nfunction extractBearer(request: FastifyRequest): string | undefined {\n const header = request.headers.authorization;\n if (!header?.startsWith(\"Bearer \")) return undefined;\n return header.slice(\"Bearer \".length).trim() || undefined;\n}\n\nfunction readSessionId(request: FastifyRequest): string | undefined {\n const raw = request.headers[\"mcp-session-id\"];\n const value = Array.isArray(raw) ? raw[0] : raw;\n return typeof value === \"string\" && value.length > 0 ? value : undefined;\n}\n\n/** JSON-RPC error codes used on the Open surface. */\nconst RPC_ERROR = {\n GRANT_DENIED: -32001,\n ACTION_NOT_FOUND: -32002,\n VALIDATION_FAILED: -32003,\n EXECUTION_ERROR: -32004,\n RATE_LIMITED: -32005,\n} as const;\n\nexport function registerOpenRoutes(\n app: FastifyInstance,\n deps: OpenRouteDeps = {},\n): void {\n const openAuth =\n deps.openAuth ??\n new OpenCredentialService(\n getStoreLattice(\"default\", \"a2aApiKey\").store as A2AApiKeyStore,\n getStoreLattice(\"default\", \"project\").store as ProjectStore,\n );\n const grantsSource =\n deps.grantsSource ?? ((ctx: OpenCredential) => ctx.grants);\n const audit =\n deps.audit ??\n (() => {\n try {\n const store = getStoreLattice(\"default\", \"openAudit\").store as OpenAuditStore;\n return new OpenAuditService(store);\n } catch {\n return undefined;\n }\n })();\n\n const rateLimiter = deps.rateLimiter ?? new OpenRateLimiter();\n\n app.post(\"/open/mcp\", async (request: FastifyRequest, reply: FastifyReply) => {\n const context = await openAuth.resolve(extractBearer(request));\n if (!context) {\n return reply.status(401).send({ error: \"AUTH_FAILED\" });\n }\n\n const body: unknown = request.body;\n const sessionId = readSessionId(request);\n\n // Existing session: reuse its server/transport. Bearer must match the\n // session's credential — a session is not usable by another key.\n if (sessionId) {\n const session = await getSession(sessionId);\n if (\n !session ||\n session.credential.credentialId !== context.credentialId\n ) {\n return reply.status(404).send({ error: \"SESSION_NOT_FOUND\" });\n }\n reply.hijack();\n await session.transport.handleRequest(request.raw, reply.raw, body);\n return;\n }\n\n // New session: only initialize may create one. Registration into the\n // session registry happens inside sessionIdGenerator (see openMcpServer).\n if (!isInitializeRequest(body)) {\n return reply.status(400).send({ error: \"SESSION_REQUIRED\" });\n }\n\n const grants = grantsSource(context);\n const catalog = await openLattice.catalogFor(grants, { tenantId: context.tenantId });\n const built = await buildSessionServer({\n credential: { credentialId: context.credentialId, kind: context.kind },\n grants,\n catalog,\n invoke: async (toolName, args) => {\n const startedAt = Date.now();\n const sep = toolName.indexOf(\"_\");\n const auditDomain = sep > 0 ? toolName.slice(0, sep) : toolName;\n const auditAction = sep > 0 ? toolName.slice(sep + 1) : \"\";\n\n const decision = rateLimiter.check(context.credentialId, auditDomain);\n if (!decision.allowed) {\n await audit?.record({\n tenantId: context.tenantId,\n credentialId: context.credentialId,\n credentialKind: context.kind,\n projectId: context.projectId,\n domain: auditDomain,\n action: auditAction,\n args,\n status: \"error\",\n errorCode: \"RATE_LIMITED\",\n durationMs: Date.now() - startedAt,\n });\n throw Object.assign(\n new Error(\n `RATE_LIMITED: retry after ${decision.retryAfterMs ?? 1000}ms`,\n ),\n { rpcCode: RPC_ERROR.RATE_LIMITED },\n );\n }\n\n try {\n const result = await openLattice.invoke(\n grants,\n {\n tenantId: context.tenantId,\n projectId: context.projectId,\n workspaceId: context.workspaceId,\n runConfig: {\n sandboxName: context.sandboxName,\n credentialId: context.credentialId,\n },\n },\n toolName,\n args,\n );\n await audit?.record({\n tenantId: context.tenantId,\n credentialId: context.credentialId,\n credentialKind: context.kind,\n projectId: context.projectId,\n domain: auditDomain,\n action: auditAction,\n args,\n status: \"ok\",\n durationMs: Date.now() - startedAt,\n });\n return result;\n } catch (err) {\n const code =\n err instanceof GrantDeniedError\n ? RPC_ERROR.GRANT_DENIED\n : err instanceof ActionNotFoundError\n ? RPC_ERROR.ACTION_NOT_FOUND\n : err instanceof ValidationError\n ? RPC_ERROR.VALIDATION_FAILED\n : RPC_ERROR.EXECUTION_ERROR;\n await audit?.record({\n tenantId: context.tenantId,\n credentialId: context.credentialId,\n credentialKind: context.kind,\n projectId: context.projectId,\n domain: auditDomain,\n action: auditAction,\n args,\n status: \"error\",\n errorCode:\n err instanceof GrantDeniedError\n ? \"GRANT_DENIED\"\n : err instanceof ActionNotFoundError\n ? \"ACTION_NOT_FOUND\"\n : err instanceof ValidationError\n ? \"VALIDATION_FAILED\"\n : \"EXECUTION_ERROR\",\n durationMs: Date.now() - startedAt,\n });\n throw Object.assign(\n new Error(err instanceof Error ? err.message : String(err)),\n { rpcCode: code },\n );\n }\n },\n });\n reply.hijack();\n await built.transport.handleRequest(request.raw, reply.raw, body);\n });\n\n app.delete(\n \"/open/mcp\",\n async (request: FastifyRequest, reply: FastifyReply) => {\n const sessionId = readSessionId(request);\n if (!sessionId) {\n return reply.status(400).send({ error: \"SESSION_REQUIRED\" });\n }\n await deleteSession(sessionId);\n return reply.status(204).send();\n },\n );\n}\n","/**\n * In-memory per-credential rate limiter (token bucket). The agent domain gets\n * a stricter bucket because each call consumes LLM budget.\n *\n * Process-local by design (V1 single-gateway); a distributed limiter is V2.\n */\n\nexport interface RateLimitDecision {\n allowed: boolean;\n retryAfterMs?: number;\n}\n\ninterface Bucket {\n tokens: number;\n updatedAt: number;\n}\n\nexport interface OpenRateLimiterOptions {\n /** Default requests per minute per credential. */\n defaultPerMinute?: number;\n /** Stricter limit for the agent domain. */\n agentPerMinute?: number;\n}\n\nexport class OpenRateLimiter {\n private readonly buckets = new Map<string, Bucket>();\n private readonly defaultPerMinute: number;\n private readonly agentPerMinute: number;\n\n constructor(options: OpenRateLimiterOptions = {}) {\n this.defaultPerMinute = options.defaultPerMinute ?? 60;\n this.agentPerMinute = options.agentPerMinute ?? 10;\n }\n\n private bucketClass(domain: string): string {\n return domain === \"agent\" ? \"agent\" : \"default\";\n }\n\n private limitFor(domain: string): number {\n return domain === \"agent\" ? this.agentPerMinute : this.defaultPerMinute;\n }\n\n /** Consume one token; denied calls report how long to wait. */\n check(credentialId: string, domain: string): RateLimitDecision {\n const limit = this.limitFor(domain);\n const key = `${this.bucketClass(domain)}:${credentialId}`;\n const now = Date.now();\n const bucket = this.buckets.get(key) ?? { tokens: limit, updatedAt: now };\n\n const refillPerMs = limit / 60_000;\n const elapsed = now - bucket.updatedAt;\n bucket.tokens = Math.min(limit, bucket.tokens + elapsed * refillPerMs);\n bucket.updatedAt = now;\n\n if (bucket.tokens >= 1) {\n bucket.tokens -= 1;\n this.buckets.set(key, bucket);\n return { allowed: true };\n }\n\n this.buckets.set(key, bucket);\n const deficit = 1 - bucket.tokens;\n return { allowed: false, retryAfterMs: Math.ceil(deficit / refillPerMs) };\n }\n\n /** Test helper. */\n reset(): void {\n this.buckets.clear();\n }\n}\n","/**\n * Builds a per-session MCP server instance whose tool list is the\n * credential-filtered OpenLattice catalog. Per-session instances are what\n * make grant-filtered tools/list possible on the official SDK.\n *\n * Session registration happens inside sessionIdGenerator — the SDK invokes\n * it exactly once while handling initialize, which guarantees the registry\n * key equals the transport-generated id that the response header carries.\n *\n * Every tool executor routes through the OpenLattice invoke kernel, so\n * authorization is re-checked on each invocation (default-deny, live grants).\n */\n\nimport { McpServer } from \"@modelcontextprotocol/sdk/server/mcp.js\";\nimport { StreamableHTTPServerTransport } from \"@modelcontextprotocol/sdk/server/streamableHttp.js\";\nimport { randomUUID } from \"crypto\";\nimport type { OpenGrant } from \"@axiom-lattice/protocols\";\nimport type { OpenToolDescriptor } from \"./openLattice\";\nimport { registerSession } from \"./mcpTransportRegistry\";\n\nexport const OPEN_MCP_SERVER_INFO = {\n name: \"axiom-open\",\n version: \"0.1.0\",\n} as const;\n\nexport interface BuiltSession {\n server: McpServer;\n transport: StreamableHTTPServerTransport;\n tools: OpenToolDescriptor[];\n}\n\nexport async function buildSessionServer(options: {\n credential: { credentialId: string; kind: string };\n grants: OpenGrant[];\n catalog: OpenToolDescriptor[];\n invoke: (\n toolName: string,\n args: unknown,\n ) => Promise<{\n content: Array<{ type: \"text\"; text: string }>;\n isError?: boolean;\n }>;\n}): Promise<BuiltSession> {\n const { credential, grants, catalog, invoke } = options;\n const server = new McpServer(OPEN_MCP_SERVER_INFO);\n for (const tool of catalog) {\n server.registerTool(\n tool.toolName,\n {\n description: tool.description,\n inputSchema: tool.schema,\n annotations: {\n readOnlyHint: tool.annotations.readOnlyHint,\n destructiveHint: tool.annotations.destructiveHint,\n },\n },\n async (args: unknown) => {\n const result = await invoke(tool.toolName, args);\n return { content: result.content, isError: result.isError };\n },\n );\n }\n const transport = new StreamableHTTPServerTransport({\n sessionIdGenerator: () => {\n const sessionId = randomUUID();\n void registerSession(\n sessionId,\n { credentialId: credential.credentialId, kind: credential.kind },\n { server, transport },\n );\n return sessionId;\n },\n enableJsonResponse: true,\n onsessionclosed: (closedId: string) => {\n void import(\"./mcpTransportRegistry\").then(({ deleteSession }) =>\n deleteSession(closedId),\n );\n },\n });\n // Required: without connect the transport has no onmessage handler, the\n // initialize request is swallowed and handleRequest never resolves (hang).\n await server.connect(transport);\n return { server, transport, tools: catalog };\n}\n"],"mappings":"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","names":["deleteSession"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
2
|
+
|
|
3
|
+
// src/routes/open-audit.ts
|
|
4
|
+
import { getStoreLattice } from "@axiom-lattice/core";
|
|
5
|
+
function registerOpenAuditRoutes(app) {
|
|
6
|
+
app.get(
|
|
7
|
+
"/api/open/audit",
|
|
8
|
+
async (request, reply) => {
|
|
9
|
+
const tenantId = request.user?.tenantId;
|
|
10
|
+
if (!tenantId) {
|
|
11
|
+
return reply.status(401).send({ success: false, error: "Unauthorized" });
|
|
12
|
+
}
|
|
13
|
+
const status = request.query.status === "ok" || request.query.status === "error" ? request.query.status : void 0;
|
|
14
|
+
const store = getStoreLattice("default", "openAudit").store;
|
|
15
|
+
const records = await store.query({
|
|
16
|
+
tenantId,
|
|
17
|
+
credentialId: request.query.credentialId,
|
|
18
|
+
domain: request.query.domain,
|
|
19
|
+
status,
|
|
20
|
+
from: request.query.from,
|
|
21
|
+
to: request.query.to,
|
|
22
|
+
limit: request.query.limit ? parseInt(request.query.limit, 10) : void 0,
|
|
23
|
+
offset: request.query.offset ? parseInt(request.query.offset, 10) : void 0
|
|
24
|
+
});
|
|
25
|
+
return reply.status(200).send({ success: true, data: { records } });
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
export {
|
|
30
|
+
registerOpenAuditRoutes
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=open-audit-UJ3NXCGW.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/open-audit.ts"],"sourcesContent":["/**\n * Open audit query endpoint (console-session guarded, tenant-scoped).\n */\n\nimport type { FastifyInstance, FastifyReply, FastifyRequest } from \"fastify\";\nimport { getStoreLattice } from \"@axiom-lattice/core\";\nimport type { OpenAuditStore } from \"@axiom-lattice/protocols\";\n\ninterface RequestWithUser extends FastifyRequest {\n user?: { id: string; tenantId?: string };\n}\n\ninterface AuditQuerystring {\n credentialId?: string;\n domain?: string;\n status?: string;\n from?: string;\n to?: string;\n limit?: string;\n offset?: string;\n}\n\nexport function registerOpenAuditRoutes(app: FastifyInstance): void {\n app.get(\n \"/api/open/audit\",\n async (\n request: FastifyRequest<{ Querystring: AuditQuerystring }>,\n reply: FastifyReply,\n ) => {\n const tenantId = (request as RequestWithUser).user?.tenantId;\n if (!tenantId) {\n return reply.status(401).send({ success: false, error: \"Unauthorized\" });\n }\n const status =\n request.query.status === \"ok\" || request.query.status === \"error\"\n ? request.query.status\n : undefined;\n const store = getStoreLattice(\"default\", \"openAudit\").store as OpenAuditStore;\n const records = await store.query({\n tenantId,\n credentialId: request.query.credentialId,\n domain: request.query.domain,\n status,\n from: request.query.from,\n to: request.query.to,\n limit: request.query.limit ? parseInt(request.query.limit, 10) : undefined,\n offset: request.query.offset ? parseInt(request.query.offset, 10) : undefined,\n });\n return reply.status(200).send({ success: true, data: { records } });\n },\n );\n}\n"],"mappings":";;;AAKA,SAAS,uBAAuB;AAiBzB,SAAS,wBAAwB,KAA4B;AAClE,MAAI;AAAA,IACF;AAAA,IACA,OACE,SACA,UACG;AACH,YAAM,WAAY,QAA4B,MAAM;AACpD,UAAI,CAAC,UAAU;AACb,eAAO,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,OAAO,OAAO,eAAe,CAAC;AAAA,MACzE;AACA,YAAM,SACJ,QAAQ,MAAM,WAAW,QAAQ,QAAQ,MAAM,WAAW,UACtD,QAAQ,MAAM,SACd;AACN,YAAM,QAAQ,gBAAgB,WAAW,WAAW,EAAE;AACtD,YAAM,UAAU,MAAM,MAAM,MAAM;AAAA,QAChC;AAAA,QACA,cAAc,QAAQ,MAAM;AAAA,QAC5B,QAAQ,QAAQ,MAAM;AAAA,QACtB;AAAA,QACA,MAAM,QAAQ,MAAM;AAAA,QACpB,IAAI,QAAQ,MAAM;AAAA,QAClB,OAAO,QAAQ,MAAM,QAAQ,SAAS,QAAQ,MAAM,OAAO,EAAE,IAAI;AAAA,QACjE,QAAQ,QAAQ,MAAM,SAAS,SAAS,QAAQ,MAAM,QAAQ,EAAE,IAAI;AAAA,MACtE,CAAC;AACD,aAAO,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,MAAM,MAAM,EAAE,QAAQ,EAAE,CAAC;AAAA,IACpE;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import {
|
|
2
|
+
openLattice
|
|
3
|
+
} from "./chunk-GF4GGTWJ.mjs";
|
|
4
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
5
|
+
|
|
6
|
+
// src/routes/open-catalog.ts
|
|
7
|
+
import { getStoreLattice } from "@axiom-lattice/core";
|
|
8
|
+
|
|
9
|
+
// src/services/open/openCatalogService.ts
|
|
10
|
+
var OpenCatalogService = class {
|
|
11
|
+
constructor(assistantStore, lattice = openLattice) {
|
|
12
|
+
this.assistantStore = assistantStore;
|
|
13
|
+
this.lattice = lattice;
|
|
14
|
+
}
|
|
15
|
+
async buildForTenant(tenantId) {
|
|
16
|
+
const domains = this.lattice.describeCatalog();
|
|
17
|
+
const enriched = [];
|
|
18
|
+
for (const domain of domains) {
|
|
19
|
+
if (domain.domain === "agent" && domain.itemKind === "instance") {
|
|
20
|
+
let items = [];
|
|
21
|
+
try {
|
|
22
|
+
const assistants = await this.assistantStore.getAllAssistants(tenantId);
|
|
23
|
+
items = assistants.map((a) => ({
|
|
24
|
+
id: a.id,
|
|
25
|
+
toolName: `invoke_${a.id}`,
|
|
26
|
+
label: a.name || a.id
|
|
27
|
+
}));
|
|
28
|
+
} catch {
|
|
29
|
+
items = [];
|
|
30
|
+
}
|
|
31
|
+
enriched.push({ ...domain, items });
|
|
32
|
+
} else {
|
|
33
|
+
enriched.push(domain);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return { domains: enriched };
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// src/routes/open-catalog.ts
|
|
41
|
+
function tenantIdOf(request) {
|
|
42
|
+
return request.user?.tenantId;
|
|
43
|
+
}
|
|
44
|
+
function registerOpenCatalogRoutes(app) {
|
|
45
|
+
app.get("/api/open/catalog", async (request, reply) => {
|
|
46
|
+
const tenantId = tenantIdOf(request);
|
|
47
|
+
if (!tenantId) {
|
|
48
|
+
return reply.status(401).send({ success: false, error: "Unauthorized" });
|
|
49
|
+
}
|
|
50
|
+
const assistantStore = getStoreLattice("default", "assistant").store;
|
|
51
|
+
const service = new OpenCatalogService(assistantStore);
|
|
52
|
+
const catalog = await service.buildForTenant(tenantId);
|
|
53
|
+
return reply.status(200).send({ success: true, data: catalog });
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
export {
|
|
57
|
+
registerOpenCatalogRoutes
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=open-catalog-WYS2AENM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/open-catalog.ts","../src/services/open/openCatalogService.ts"],"sourcesContent":["/**\n * Open capability catalog endpoint (console-session guarded): returns the\n * grantable capabilities for the caller's tenant, driving the key picker.\n */\n\nimport type { FastifyInstance, FastifyReply, FastifyRequest } from \"fastify\";\nimport { getStoreLattice } from \"@axiom-lattice/core\";\nimport type { AssistantStore } from \"@axiom-lattice/protocols\";\nimport { OpenCatalogService } from \"../services/open/openCatalogService\";\n\ninterface RequestWithUser extends FastifyRequest {\n user?: { id: string; tenantId?: string };\n}\n\nfunction tenantIdOf(request: FastifyRequest): string | undefined {\n return (request as RequestWithUser).user?.tenantId;\n}\n\nexport function registerOpenCatalogRoutes(app: FastifyInstance): void {\n app.get(\"/api/open/catalog\", async (request: FastifyRequest, reply: FastifyReply) => {\n const tenantId = tenantIdOf(request);\n if (!tenantId) {\n return reply.status(401).send({ success: false, error: \"Unauthorized\" });\n }\n const assistantStore = getStoreLattice(\"default\", \"assistant\")\n .store as AssistantStore;\n const service = new OpenCatalogService(assistantStore);\n const catalog = await service.buildForTenant(tenantId);\n return reply.status(200).send({ success: true, data: catalog });\n });\n}\n","/**\n * OpenCatalogService — assembles the tenant-scoped grantable capability\n * catalog for the key-management picker: registry domains (built-in + plugin)\n * plus per-tenant agent instances.\n */\n\nimport type {\n AssistantStore,\n OpenCatalog,\n OpenCatalogDomain,\n} from \"@axiom-lattice/protocols\";\nimport { OpenLattice, openLattice } from \"./openLattice\";\n\nexport class OpenCatalogService {\n constructor(\n private readonly assistantStore: AssistantStore,\n private readonly lattice: OpenLattice = openLattice,\n ) {}\n\n async buildForTenant(tenantId: string): Promise<OpenCatalog> {\n const domains = this.lattice.describeCatalog();\n const enriched: OpenCatalogDomain[] = [];\n for (const domain of domains) {\n if (domain.domain === \"agent\" && domain.itemKind === \"instance\") {\n let items: OpenCatalogDomain[\"items\"] = [];\n try {\n const assistants = await this.assistantStore.getAllAssistants(tenantId);\n items = assistants.map((a) => ({\n id: a.id,\n toolName: `invoke_${a.id}`,\n label: a.name || a.id,\n }));\n } catch {\n items = [];\n }\n enriched.push({ ...domain, items });\n } else {\n enriched.push(domain);\n }\n }\n return { domains: enriched };\n }\n}\n"],"mappings":";;;;;;AAMA,SAAS,uBAAuB;;;ACOzB,IAAM,qBAAN,MAAyB;AAAA,EAC9B,YACmB,gBACA,UAAuB,aACxC;AAFiB;AACA;AAAA,EAChB;AAAA,EAEH,MAAM,eAAe,UAAwC;AAC3D,UAAM,UAAU,KAAK,QAAQ,gBAAgB;AAC7C,UAAM,WAAgC,CAAC;AACvC,eAAW,UAAU,SAAS;AAC5B,UAAI,OAAO,WAAW,WAAW,OAAO,aAAa,YAAY;AAC/D,YAAI,QAAoC,CAAC;AACzC,YAAI;AACF,gBAAM,aAAa,MAAM,KAAK,eAAe,iBAAiB,QAAQ;AACtE,kBAAQ,WAAW,IAAI,CAAC,OAAO;AAAA,YAC7B,IAAI,EAAE;AAAA,YACN,UAAU,UAAU,EAAE,EAAE;AAAA,YACxB,OAAO,EAAE,QAAQ,EAAE;AAAA,UACrB,EAAE;AAAA,QACJ,QAAQ;AACN,kBAAQ,CAAC;AAAA,QACX;AACA,iBAAS,KAAK,EAAE,GAAG,QAAQ,MAAM,CAAC;AAAA,MACpC,OAAO;AACL,iBAAS,KAAK,MAAM;AAAA,MACtB;AAAA,IACF;AACA,WAAO,EAAE,SAAS,SAAS;AAAA,EAC7B;AACF;;;AD5BA,SAAS,WAAW,SAA6C;AAC/D,SAAQ,QAA4B,MAAM;AAC5C;AAEO,SAAS,0BAA0B,KAA4B;AACpE,MAAI,IAAI,qBAAqB,OAAO,SAAyB,UAAwB;AACnF,UAAM,WAAW,WAAW,OAAO;AACnC,QAAI,CAAC,UAAU;AACb,aAAO,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,OAAO,OAAO,eAAe,CAAC;AAAA,IACzE;AACA,UAAM,iBAAiB,gBAAgB,WAAW,WAAW,EAC1D;AACH,UAAM,UAAU,IAAI,mBAAmB,cAAc;AACrD,UAAM,UAAU,MAAM,QAAQ,eAAe,QAAQ;AACrD,WAAO,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,MAAM,MAAM,QAAQ,CAAC;AAAA,EAChE,CAAC;AACH;","names":[]}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import {
|
|
2
|
+
openLattice
|
|
3
|
+
} from "./chunk-GF4GGTWJ.mjs";
|
|
4
|
+
import {
|
|
5
|
+
buildAgentCardForAssistant
|
|
6
|
+
} from "./chunk-QUT2DS4R.mjs";
|
|
7
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
8
|
+
|
|
9
|
+
// src/routes/open-exposure.ts
|
|
10
|
+
import { getStoreLattice } from "@axiom-lattice/core";
|
|
11
|
+
import { effectiveGrants } from "@axiom-lattice/protocols";
|
|
12
|
+
function registerOpenExposureRoutes(app) {
|
|
13
|
+
app.get(
|
|
14
|
+
"/api/keys/:id/exposure",
|
|
15
|
+
async (request, reply) => {
|
|
16
|
+
const tenantId = request.user?.tenantId;
|
|
17
|
+
if (!tenantId) {
|
|
18
|
+
return reply.status(401).send({ success: false, error: "Unauthorized" });
|
|
19
|
+
}
|
|
20
|
+
const keyStore = getStoreLattice("default", "a2aApiKey").store;
|
|
21
|
+
const record = await keyStore.findById(request.params.id);
|
|
22
|
+
if (!record || record.tenantId !== tenantId) {
|
|
23
|
+
return reply.status(404).send({ success: false, error: "Key not found" });
|
|
24
|
+
}
|
|
25
|
+
const grants = effectiveGrants(record);
|
|
26
|
+
const forwardedHost = request.headers["x-forwarded-host"];
|
|
27
|
+
const host = (Array.isArray(forwardedHost) ? forwardedHost[0] : forwardedHost) ?? (Array.isArray(request.headers.host) ? request.headers.host[0] : request.headers.host) ?? request.hostname;
|
|
28
|
+
const baseUrl = `${request.protocol}://${host}`;
|
|
29
|
+
const tools = (await openLattice.catalogFor(grants, { tenantId })).map((t) => ({
|
|
30
|
+
domain: t.domain,
|
|
31
|
+
toolName: t.toolName,
|
|
32
|
+
description: t.description,
|
|
33
|
+
annotations: t.annotations
|
|
34
|
+
}));
|
|
35
|
+
const agentGrant = grants.find((g) => g.domain === "agent");
|
|
36
|
+
const assistantStore = getStoreLattice("default", "assistant").store;
|
|
37
|
+
const agents = [];
|
|
38
|
+
for (const assistantId of agentGrant?.items ?? []) {
|
|
39
|
+
const assistant = await assistantStore.getAssistantById(
|
|
40
|
+
tenantId,
|
|
41
|
+
assistantId
|
|
42
|
+
);
|
|
43
|
+
if (!assistant) continue;
|
|
44
|
+
agents.push({
|
|
45
|
+
assistantId,
|
|
46
|
+
cardUrl: `${baseUrl}/api/a2a/agents/${assistantId}/.well-known/agent-card.json`,
|
|
47
|
+
jsonrpcUrl: `${baseUrl}/api/a2a/agents/${assistantId}/jsonrpc`,
|
|
48
|
+
card: buildAgentCardForAssistant({ assistant, baseUrl })
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return reply.status(200).send({
|
|
52
|
+
success: true,
|
|
53
|
+
data: {
|
|
54
|
+
tenantId,
|
|
55
|
+
projectId: record.projectId,
|
|
56
|
+
grants,
|
|
57
|
+
mcp: { endpoint: `${baseUrl}/open/mcp`, tools },
|
|
58
|
+
a2a: { agents }
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
export {
|
|
65
|
+
registerOpenExposureRoutes
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=open-exposure-FK4G6O6L.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/open-exposure.ts"],"sourcesContent":["/**\n * Key exposure endpoint: what a given API key exposes to external callers —\n * the MCP tools (per grants) and the A2A agent cards (for granted agents).\n * Console-session guarded and tenant-scoped.\n */\n\nimport type { FastifyInstance, FastifyReply, FastifyRequest } from \"fastify\";\nimport { getStoreLattice } from \"@axiom-lattice/core\";\nimport type {\n A2AApiKeyStore,\n AssistantStore,\n OpenGrant,\n} from \"@axiom-lattice/protocols\";\nimport { effectiveGrants } from \"@axiom-lattice/protocols\";\nimport { openLattice } from \"../services/open/openLattice\";\nimport { buildAgentCardForAssistant } from \"../services/a2a/A2AAgentCardBuilder\";\n\ninterface RequestWithUser extends FastifyRequest {\n user?: { id: string; tenantId?: string };\n}\n\nexport function registerOpenExposureRoutes(app: FastifyInstance): void {\n app.get<{ Params: { id: string } }>(\n \"/api/keys/:id/exposure\",\n async (\n request: FastifyRequest<{ Params: { id: string } }>,\n reply: FastifyReply,\n ) => {\n const tenantId = (request as RequestWithUser).user?.tenantId;\n if (!tenantId) {\n return reply.status(401).send({ success: false, error: \"Unauthorized\" });\n }\n\n const keyStore = getStoreLattice(\"default\", \"a2aApiKey\")\n .store as A2AApiKeyStore;\n const record = await keyStore.findById(request.params.id);\n if (!record || record.tenantId !== tenantId) {\n return reply.status(404).send({ success: false, error: \"Key not found\" });\n }\n\n const grants: OpenGrant[] = effectiveGrants(record);\n // Include the port: request.hostname strips it, request.headers.host keeps it.\n const forwardedHost = request.headers[\"x-forwarded-host\"];\n const host =\n (Array.isArray(forwardedHost) ? forwardedHost[0] : forwardedHost) ??\n (Array.isArray(request.headers.host) ? request.headers.host[0] : request.headers.host) ??\n request.hostname;\n const baseUrl = `${request.protocol}://${host}`;\n\n // MCP surface: the credential-filtered tool catalog.\n const tools = (await openLattice.catalogFor(grants, { tenantId })).map((t) => ({\n domain: t.domain,\n toolName: t.toolName,\n description: t.description,\n annotations: t.annotations,\n }));\n\n // A2A surface: one card per granted agent.\n const agentGrant = grants.find((g) => g.domain === \"agent\");\n const assistantStore = getStoreLattice(\"default\", \"assistant\")\n .store as AssistantStore;\n const agents: Array<{\n assistantId: string;\n cardUrl: string;\n jsonrpcUrl: string;\n card: unknown;\n }> = [];\n for (const assistantId of agentGrant?.items ?? []) {\n const assistant = await assistantStore.getAssistantById(\n tenantId,\n assistantId,\n );\n if (!assistant) continue;\n agents.push({\n assistantId,\n cardUrl: `${baseUrl}/api/a2a/agents/${assistantId}/.well-known/agent-card.json`,\n jsonrpcUrl: `${baseUrl}/api/a2a/agents/${assistantId}/jsonrpc`,\n card: buildAgentCardForAssistant({ assistant, baseUrl }),\n });\n }\n\n return reply.status(200).send({\n success: true,\n data: {\n tenantId,\n projectId: record.projectId,\n grants,\n mcp: { endpoint: `${baseUrl}/open/mcp`, tools },\n a2a: { agents },\n },\n });\n },\n );\n}\n"],"mappings":";;;;;;;;;AAOA,SAAS,uBAAuB;AAMhC,SAAS,uBAAuB;AAQzB,SAAS,2BAA2B,KAA4B;AACrE,MAAI;AAAA,IACF;AAAA,IACA,OACE,SACA,UACG;AACH,YAAM,WAAY,QAA4B,MAAM;AACpD,UAAI,CAAC,UAAU;AACb,eAAO,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,OAAO,OAAO,eAAe,CAAC;AAAA,MACzE;AAEA,YAAM,WAAW,gBAAgB,WAAW,WAAW,EACpD;AACH,YAAM,SAAS,MAAM,SAAS,SAAS,QAAQ,OAAO,EAAE;AACxD,UAAI,CAAC,UAAU,OAAO,aAAa,UAAU;AAC3C,eAAO,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,SAAS,OAAO,OAAO,gBAAgB,CAAC;AAAA,MAC1E;AAEA,YAAM,SAAsB,gBAAgB,MAAM;AAElD,YAAM,gBAAgB,QAAQ,QAAQ,kBAAkB;AACxD,YAAM,QACH,MAAM,QAAQ,aAAa,IAAI,cAAc,CAAC,IAAI,mBAClD,MAAM,QAAQ,QAAQ,QAAQ,IAAI,IAAI,QAAQ,QAAQ,KAAK,CAAC,IAAI,QAAQ,QAAQ,SACjF,QAAQ;AACV,YAAM,UAAU,GAAG,QAAQ,QAAQ,MAAM,IAAI;AAG7C,YAAM,SAAS,MAAM,YAAY,WAAW,QAAQ,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,OAAO;AAAA,QAC7E,QAAQ,EAAE;AAAA,QACV,UAAU,EAAE;AAAA,QACZ,aAAa,EAAE;AAAA,QACf,aAAa,EAAE;AAAA,MACjB,EAAE;AAGF,YAAM,aAAa,OAAO,KAAK,CAAC,MAAM,EAAE,WAAW,OAAO;AAC1D,YAAM,iBAAiB,gBAAgB,WAAW,WAAW,EAC1D;AACH,YAAM,SAKD,CAAC;AACN,iBAAW,eAAe,YAAY,SAAS,CAAC,GAAG;AACjD,cAAM,YAAY,MAAM,eAAe;AAAA,UACrC;AAAA,UACA;AAAA,QACF;AACA,YAAI,CAAC,UAAW;AAChB,eAAO,KAAK;AAAA,UACV;AAAA,UACA,SAAS,GAAG,OAAO,mBAAmB,WAAW;AAAA,UACjD,YAAY,GAAG,OAAO,mBAAmB,WAAW;AAAA,UACpD,MAAM,2BAA2B,EAAE,WAAW,QAAQ,CAAC;AAAA,QACzD,CAAC;AAAA,MACH;AAEA,aAAO,MAAM,OAAO,GAAG,EAAE,KAAK;AAAA,QAC5B,SAAS;AAAA,QACT,MAAM;AAAA,UACJ;AAAA,UACA,WAAW,OAAO;AAAA,UAClB;AAAA,UACA,KAAK,EAAE,UAAU,GAAG,OAAO,aAAa,MAAM;AAAA,UAC9C,KAAK,EAAE,OAAO;AAAA,QAChB;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
|