@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,146 @@
|
|
|
1
|
+
import {
|
|
2
|
+
OpenAuditService,
|
|
3
|
+
OpenCredentialService
|
|
4
|
+
} from "./chunk-52SUWMOX.mjs";
|
|
5
|
+
import {
|
|
6
|
+
openLattice
|
|
7
|
+
} from "./chunk-GF4GGTWJ.mjs";
|
|
8
|
+
import {
|
|
9
|
+
resolveContextSandbox
|
|
10
|
+
} from "./chunk-TJAUXMYJ.mjs";
|
|
11
|
+
import "./chunk-WKNZ7GBC.mjs";
|
|
12
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
13
|
+
|
|
14
|
+
// src/routes/open-files.ts
|
|
15
|
+
import { getStoreLattice } from "@axiom-lattice/core";
|
|
16
|
+
function extractBearer(request) {
|
|
17
|
+
const header = request.headers.authorization;
|
|
18
|
+
if (!header?.startsWith("Bearer ")) return void 0;
|
|
19
|
+
return header.slice("Bearer ".length).trim() || void 0;
|
|
20
|
+
}
|
|
21
|
+
function safePath(raw) {
|
|
22
|
+
if (typeof raw !== "string" || raw.length === 0) return null;
|
|
23
|
+
if (raw.includes("..")) return null;
|
|
24
|
+
return raw.startsWith("/") ? raw : `/${raw}`;
|
|
25
|
+
}
|
|
26
|
+
function registerOpenFilesRoutes(app, deps = {}) {
|
|
27
|
+
const openAuth = deps.openAuth ?? new OpenCredentialService(
|
|
28
|
+
getStoreLattice("default", "a2aApiKey").store,
|
|
29
|
+
getStoreLattice("default", "project").store
|
|
30
|
+
);
|
|
31
|
+
const audit = deps.audit ?? (() => {
|
|
32
|
+
try {
|
|
33
|
+
const store = getStoreLattice("default", "openAudit").store;
|
|
34
|
+
return new OpenAuditService(store);
|
|
35
|
+
} catch {
|
|
36
|
+
return void 0;
|
|
37
|
+
}
|
|
38
|
+
})();
|
|
39
|
+
app.addContentTypeParser(
|
|
40
|
+
"application/octet-stream",
|
|
41
|
+
{ parseAs: "buffer" },
|
|
42
|
+
(_req, body, done) => done(null, body)
|
|
43
|
+
);
|
|
44
|
+
app.get("/open/sandbox/files/download", async (request, reply) => {
|
|
45
|
+
const context = await openAuth.resolve(extractBearer(request));
|
|
46
|
+
if (!context) return reply.status(401).send({ error: "AUTH_FAILED" });
|
|
47
|
+
const path = safePath(request.query.path);
|
|
48
|
+
if (!path) return reply.status(400).send({ error: "PATH_REQUIRED" });
|
|
49
|
+
if (!openLattice.isAllowed(context.grants, "sandbox_files_read")) {
|
|
50
|
+
return reply.status(403).send({ error: "GRANT_DENIED" });
|
|
51
|
+
}
|
|
52
|
+
const startedAt = Date.now();
|
|
53
|
+
try {
|
|
54
|
+
const sandbox = await resolveContextSandbox({
|
|
55
|
+
tenantId: context.tenantId,
|
|
56
|
+
projectId: context.projectId,
|
|
57
|
+
workspaceId: context.workspaceId,
|
|
58
|
+
runConfig: {}
|
|
59
|
+
});
|
|
60
|
+
const data = await sandbox.file.downloadFile({ file: path });
|
|
61
|
+
await audit?.record({
|
|
62
|
+
tenantId: context.tenantId,
|
|
63
|
+
credentialId: context.credentialId,
|
|
64
|
+
credentialKind: context.kind,
|
|
65
|
+
projectId: context.projectId,
|
|
66
|
+
domain: "sandbox",
|
|
67
|
+
action: "files_read",
|
|
68
|
+
args: { path },
|
|
69
|
+
status: "ok",
|
|
70
|
+
durationMs: Date.now() - startedAt
|
|
71
|
+
});
|
|
72
|
+
return reply.status(200).type("application/octet-stream").header("Content-Disposition", "attachment").send(data);
|
|
73
|
+
} catch (err) {
|
|
74
|
+
await audit?.record({
|
|
75
|
+
tenantId: context.tenantId,
|
|
76
|
+
credentialId: context.credentialId,
|
|
77
|
+
credentialKind: context.kind,
|
|
78
|
+
projectId: context.projectId,
|
|
79
|
+
domain: "sandbox",
|
|
80
|
+
action: "files_read",
|
|
81
|
+
args: { path },
|
|
82
|
+
status: "error",
|
|
83
|
+
errorCode: "EXECUTION_ERROR",
|
|
84
|
+
durationMs: Date.now() - startedAt
|
|
85
|
+
});
|
|
86
|
+
return reply.status(502).send({
|
|
87
|
+
error: err instanceof Error ? err.message : "SANDBOX_ERROR"
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
app.post("/open/sandbox/files/upload", async (request, reply) => {
|
|
92
|
+
const context = await openAuth.resolve(extractBearer(request));
|
|
93
|
+
if (!context) return reply.status(401).send({ error: "AUTH_FAILED" });
|
|
94
|
+
const path = safePath(request.query.path);
|
|
95
|
+
if (!path) return reply.status(400).send({ error: "PATH_REQUIRED" });
|
|
96
|
+
if (!openLattice.isAllowed(context.grants, "sandbox_files_write")) {
|
|
97
|
+
return reply.status(403).send({ error: "GRANT_DENIED" });
|
|
98
|
+
}
|
|
99
|
+
const body = request.body;
|
|
100
|
+
if (!Buffer.isBuffer(body)) {
|
|
101
|
+
return reply.status(400).send({ error: "BINARY_BODY_REQUIRED" });
|
|
102
|
+
}
|
|
103
|
+
const startedAt = Date.now();
|
|
104
|
+
try {
|
|
105
|
+
const sandbox = await resolveContextSandbox({
|
|
106
|
+
tenantId: context.tenantId,
|
|
107
|
+
projectId: context.projectId,
|
|
108
|
+
workspaceId: context.workspaceId,
|
|
109
|
+
runConfig: {}
|
|
110
|
+
});
|
|
111
|
+
await sandbox.file.uploadFile({ file: path, data: body });
|
|
112
|
+
await audit?.record({
|
|
113
|
+
tenantId: context.tenantId,
|
|
114
|
+
credentialId: context.credentialId,
|
|
115
|
+
credentialKind: context.kind,
|
|
116
|
+
projectId: context.projectId,
|
|
117
|
+
domain: "sandbox",
|
|
118
|
+
action: "files_write",
|
|
119
|
+
args: { path, bytes: body.length },
|
|
120
|
+
status: "ok",
|
|
121
|
+
durationMs: Date.now() - startedAt
|
|
122
|
+
});
|
|
123
|
+
return reply.status(200).send({ success: true, path });
|
|
124
|
+
} catch (err) {
|
|
125
|
+
await audit?.record({
|
|
126
|
+
tenantId: context.tenantId,
|
|
127
|
+
credentialId: context.credentialId,
|
|
128
|
+
credentialKind: context.kind,
|
|
129
|
+
projectId: context.projectId,
|
|
130
|
+
domain: "sandbox",
|
|
131
|
+
action: "files_write",
|
|
132
|
+
args: { path, bytes: body.length },
|
|
133
|
+
status: "error",
|
|
134
|
+
errorCode: "EXECUTION_ERROR",
|
|
135
|
+
durationMs: Date.now() - startedAt
|
|
136
|
+
});
|
|
137
|
+
return reply.status(502).send({
|
|
138
|
+
error: err instanceof Error ? err.message : "SANDBOX_ERROR"
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
export {
|
|
144
|
+
registerOpenFilesRoutes
|
|
145
|
+
};
|
|
146
|
+
//# sourceMappingURL=open-files-GVRMK5PL.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/open-files.ts"],"sourcesContent":["/**\n * Open sandbox file transfer (binary sugar): download/upload raw bytes.\n *\n * MCP is awkward for binary transfer, so these REST sugar endpoints exist\n * alongside /open/mcp. They share the same credential pipeline and\n * authorization kernel — only the transport differs.\n */\n\nimport type { FastifyInstance, FastifyReply, FastifyRequest } from \"fastify\";\nimport { getStoreLattice } from \"@axiom-lattice/core\";\nimport type { A2AApiKeyStore, OpenAuditStore, ProjectStore } from \"@axiom-lattice/protocols\";\nimport { OpenCredentialService } from \"../services/open/openCredentialService\";\nimport { openLattice } from \"../services/open/openLattice\";\nimport { resolveContextSandbox } from \"../services/open/providers/sandboxProvider\";\nimport { OpenAuditService } from \"../services/open/openAuditService\";\n\nexport interface OpenFilesRouteDeps {\n openAuth?: OpenCredentialService;\n audit?: OpenAuditService;\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 safePath(raw: unknown): string | null {\n if (typeof raw !== \"string\" || raw.length === 0) return null;\n if (raw.includes(\"..\")) return null;\n return raw.startsWith(\"/\") ? raw : `/${raw}`;\n}\n\nexport function registerOpenFilesRoutes(\n app: FastifyInstance,\n deps: OpenFilesRouteDeps = {},\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\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 // Buffer raw octet-stream bodies so upload can accept arbitrary bytes.\n app.addContentTypeParser(\n \"application/octet-stream\",\n { parseAs: \"buffer\" },\n (_req, body, done) => done(null, body),\n );\n\n app.get(\"/open/sandbox/files/download\", async (request: FastifyRequest, reply: FastifyReply) => {\n const context = await openAuth.resolve(extractBearer(request));\n if (!context) return reply.status(401).send({ error: \"AUTH_FAILED\" });\n const path = safePath((request.query as { path?: string }).path);\n if (!path) return reply.status(400).send({ error: \"PATH_REQUIRED\" });\n if (!openLattice.isAllowed(context.grants, \"sandbox_files_read\")) {\n return reply.status(403).send({ error: \"GRANT_DENIED\" });\n }\n const startedAt = Date.now();\n try {\n const sandbox = await resolveContextSandbox({\n tenantId: context.tenantId,\n projectId: context.projectId,\n workspaceId: context.workspaceId,\n runConfig: {},\n });\n const data = await sandbox.file.downloadFile({ file: path });\n await audit?.record({\n tenantId: context.tenantId,\n credentialId: context.credentialId,\n credentialKind: context.kind,\n projectId: context.projectId,\n domain: \"sandbox\",\n action: \"files_read\",\n args: { path },\n status: \"ok\",\n durationMs: Date.now() - startedAt,\n });\n return reply\n .status(200)\n .type(\"application/octet-stream\")\n .header(\"Content-Disposition\", \"attachment\")\n .send(data);\n } catch (err) {\n await audit?.record({\n tenantId: context.tenantId,\n credentialId: context.credentialId,\n credentialKind: context.kind,\n projectId: context.projectId,\n domain: \"sandbox\",\n action: \"files_read\",\n args: { path },\n status: \"error\",\n errorCode: \"EXECUTION_ERROR\",\n durationMs: Date.now() - startedAt,\n });\n return reply.status(502).send({\n error: err instanceof Error ? err.message : \"SANDBOX_ERROR\",\n });\n }\n });\n\n app.post(\"/open/sandbox/files/upload\", async (request: FastifyRequest, reply: FastifyReply) => {\n const context = await openAuth.resolve(extractBearer(request));\n if (!context) return reply.status(401).send({ error: \"AUTH_FAILED\" });\n const path = safePath((request.query as { path?: string }).path);\n if (!path) return reply.status(400).send({ error: \"PATH_REQUIRED\" });\n if (!openLattice.isAllowed(context.grants, \"sandbox_files_write\")) {\n return reply.status(403).send({ error: \"GRANT_DENIED\" });\n }\n const body = request.body;\n if (!Buffer.isBuffer(body)) {\n return reply.status(400).send({ error: \"BINARY_BODY_REQUIRED\" });\n }\n const startedAt = Date.now();\n try {\n const sandbox = await resolveContextSandbox({\n tenantId: context.tenantId,\n projectId: context.projectId,\n workspaceId: context.workspaceId,\n runConfig: {},\n });\n await sandbox.file.uploadFile({ file: path, data: body });\n await audit?.record({\n tenantId: context.tenantId,\n credentialId: context.credentialId,\n credentialKind: context.kind,\n projectId: context.projectId,\n domain: \"sandbox\",\n action: \"files_write\",\n args: { path, bytes: body.length },\n status: \"ok\",\n durationMs: Date.now() - startedAt,\n });\n return reply.status(200).send({ success: true, path });\n } catch (err) {\n await audit?.record({\n tenantId: context.tenantId,\n credentialId: context.credentialId,\n credentialKind: context.kind,\n projectId: context.projectId,\n domain: \"sandbox\",\n action: \"files_write\",\n args: { path, bytes: body.length },\n status: \"error\",\n errorCode: \"EXECUTION_ERROR\",\n durationMs: Date.now() - startedAt,\n });\n return reply.status(502).send({\n error: err instanceof Error ? err.message : \"SANDBOX_ERROR\",\n });\n }\n });\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import {
|
|
2
|
+
openLattice
|
|
3
|
+
} from "./chunk-GF4GGTWJ.mjs";
|
|
4
|
+
import {
|
|
5
|
+
BROWSER_GRANTS
|
|
6
|
+
} from "./chunk-2POW27EI.mjs";
|
|
7
|
+
import {
|
|
8
|
+
init_openToken,
|
|
9
|
+
signOpenToken
|
|
10
|
+
} from "./chunk-WKNZ7GBC.mjs";
|
|
11
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
12
|
+
|
|
13
|
+
// src/routes/open-session.ts
|
|
14
|
+
init_openToken();
|
|
15
|
+
import { getStoreLattice } from "@axiom-lattice/core";
|
|
16
|
+
function registerOpenSessionRoutes(app) {
|
|
17
|
+
app.post(
|
|
18
|
+
"/open/session",
|
|
19
|
+
async (request, reply) => {
|
|
20
|
+
const body = request.body ?? {};
|
|
21
|
+
const shareToken = body.shareToken;
|
|
22
|
+
if (typeof shareToken !== "string" || shareToken.length === 0) {
|
|
23
|
+
return reply.status(400).send({ error: "SHARE_TOKEN_REQUIRED" });
|
|
24
|
+
}
|
|
25
|
+
const store = getStoreLattice("default", "sharedResource").store;
|
|
26
|
+
const record = await store.findByToken(shareToken);
|
|
27
|
+
if (!record || record.revoked) {
|
|
28
|
+
return reply.status(404).send({ error: "SHARE_NOT_FOUND" });
|
|
29
|
+
}
|
|
30
|
+
if (record.expiresAt && new Date(record.expiresAt) < /* @__PURE__ */ new Date()) {
|
|
31
|
+
return reply.status(410).send({ error: "SHARE_EXPIRED" });
|
|
32
|
+
}
|
|
33
|
+
const grants = BROWSER_GRANTS;
|
|
34
|
+
const browserToken = signOpenToken({
|
|
35
|
+
kind: "browser_token",
|
|
36
|
+
tenantId: record.tenantId,
|
|
37
|
+
projectId: record.projectId,
|
|
38
|
+
shareId: record.token,
|
|
39
|
+
grants
|
|
40
|
+
});
|
|
41
|
+
const actions = await openLattice.catalogFor(grants, { tenantId: record.tenantId });
|
|
42
|
+
return reply.status(200).send({
|
|
43
|
+
browserToken,
|
|
44
|
+
expiresAt: Date.now() + 15 * 60 * 1e3,
|
|
45
|
+
actions: actions.map((a) => a.toolName)
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
export {
|
|
51
|
+
registerOpenSessionRoutes
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=open-session-3VN65PRR.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/open-session.ts"],"sourcesContent":["/**\n * Open session exchange: downgrades a share token into a short-lived browser\n * token scoped to the platform browser whitelist. The share link is the key;\n * grants come from the whitelist (V1: kb read-only), not the caller.\n */\n\nimport type { FastifyInstance, FastifyReply, FastifyRequest } from \"fastify\";\nimport { getStoreLattice } from \"@axiom-lattice/core\";\nimport type { SharedResourceStore } from \"@axiom-lattice/protocols\";\nimport { signOpenToken } from \"../services/open/openToken\";\nimport { BROWSER_GRANTS } from \"../services/open/previewToken\";\nimport type { OpenToolDescriptor } from \"../services/open/openLattice\";\nimport { openLattice } from \"../services/open/openLattice\";\n\nexport function registerOpenSessionRoutes(app: FastifyInstance): void {\n app.post(\n \"/open/session\",\n async (request: FastifyRequest, reply: FastifyReply) => {\n const body = (request.body ?? {}) as { shareToken?: string };\n const shareToken = body.shareToken;\n if (typeof shareToken !== \"string\" || shareToken.length === 0) {\n return reply.status(400).send({ error: \"SHARE_TOKEN_REQUIRED\" });\n }\n\n const store = getStoreLattice(\"default\", \"sharedResource\")\n .store as SharedResourceStore;\n const record = await store.findByToken(shareToken);\n if (!record || record.revoked) {\n return reply.status(404).send({ error: \"SHARE_NOT_FOUND\" });\n }\n if (record.expiresAt && new Date(record.expiresAt) < new Date()) {\n return reply.status(410).send({ error: \"SHARE_EXPIRED\" });\n }\n\n const grants = BROWSER_GRANTS;\n const browserToken = signOpenToken({\n kind: \"browser_token\",\n tenantId: record.tenantId,\n projectId: record.projectId,\n shareId: record.token,\n grants,\n });\n\n const actions: OpenToolDescriptor[] = await openLattice.catalogFor(grants, { tenantId: record.tenantId });\n\n return reply.status(200).send({\n browserToken,\n expiresAt: Date.now() + 15 * 60 * 1000,\n actions: actions.map((a) => a.toolName),\n });\n },\n );\n}\n"],"mappings":";;;;;;;;;;;;;AASA;AAFA,SAAS,uBAAuB;AAOzB,SAAS,0BAA0B,KAA4B;AACpE,MAAI;AAAA,IACF;AAAA,IACA,OAAO,SAAyB,UAAwB;AACtD,YAAM,OAAQ,QAAQ,QAAQ,CAAC;AAC/B,YAAM,aAAa,KAAK;AACxB,UAAI,OAAO,eAAe,YAAY,WAAW,WAAW,GAAG;AAC7D,eAAO,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,OAAO,uBAAuB,CAAC;AAAA,MACjE;AAEA,YAAM,QAAQ,gBAAgB,WAAW,gBAAgB,EACtD;AACH,YAAM,SAAS,MAAM,MAAM,YAAY,UAAU;AACjD,UAAI,CAAC,UAAU,OAAO,SAAS;AAC7B,eAAO,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,OAAO,kBAAkB,CAAC;AAAA,MAC5D;AACA,UAAI,OAAO,aAAa,IAAI,KAAK,OAAO,SAAS,IAAI,oBAAI,KAAK,GAAG;AAC/D,eAAO,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,OAAO,gBAAgB,CAAC;AAAA,MAC1D;AAEA,YAAM,SAAS;AACf,YAAM,eAAe,cAAc;AAAA,QACjC,MAAM;AAAA,QACN,UAAU,OAAO;AAAA,QACjB,WAAW,OAAO;AAAA,QAClB,SAAS,OAAO;AAAA,QAChB;AAAA,MACF,CAAC;AAED,YAAM,UAAgC,MAAM,YAAY,WAAW,QAAQ,EAAE,UAAU,OAAO,SAAS,CAAC;AAExG,aAAO,MAAM,OAAO,GAAG,EAAE,KAAK;AAAA,QAC5B;AAAA,QACA,WAAW,KAAK,IAAI,IAAI,KAAK,KAAK;AAAA,QAClC,SAAS,QAAQ,IAAI,CAAC,MAAM,EAAE,QAAQ;AAAA,MACxC,CAAC;AAAA,IACH;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ActionNotFoundError,
|
|
3
|
+
GrantDeniedError,
|
|
4
|
+
OpenLattice,
|
|
5
|
+
ValidationError,
|
|
6
|
+
openLattice
|
|
7
|
+
} from "./chunk-GF4GGTWJ.mjs";
|
|
8
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
9
|
+
export {
|
|
10
|
+
ActionNotFoundError,
|
|
11
|
+
GrantDeniedError,
|
|
12
|
+
OpenLattice,
|
|
13
|
+
ValidationError,
|
|
14
|
+
openLattice
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=openLattice-GAAGQJST.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import {
|
|
2
|
+
openLattice
|
|
3
|
+
} from "./chunk-GF4GGTWJ.mjs";
|
|
4
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
5
|
+
|
|
6
|
+
// src/services/open/registerExposedPlugins.ts
|
|
7
|
+
import { PluginRegistry } from "@axiom-lattice/core";
|
|
8
|
+
|
|
9
|
+
// src/services/open/pluginExposeAdapter.ts
|
|
10
|
+
import { z } from "zod";
|
|
11
|
+
function schemaOf(tool) {
|
|
12
|
+
return tool.lc_kwargs?.schema ?? tool.schema ?? z.object({}).passthrough();
|
|
13
|
+
}
|
|
14
|
+
function createPluginProvider(domain, tools, options = {}) {
|
|
15
|
+
function toAction(info) {
|
|
16
|
+
return {
|
|
17
|
+
name: info.name,
|
|
18
|
+
description: info.description || info.tool.description || `Plugin tool ${info.name}`,
|
|
19
|
+
schema: schemaOf(info.tool),
|
|
20
|
+
annotations: {
|
|
21
|
+
readOnlyHint: info.readOnly ?? false,
|
|
22
|
+
destructiveHint: info.destructive ?? false
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const actions = tools.map(toAction);
|
|
27
|
+
return {
|
|
28
|
+
domain,
|
|
29
|
+
label: options.label ?? domain,
|
|
30
|
+
source: "plugin",
|
|
31
|
+
scopeKind: "tenant",
|
|
32
|
+
actions,
|
|
33
|
+
execute: async (action, args, ctx) => {
|
|
34
|
+
const info = tools.find((t) => t.name === action);
|
|
35
|
+
if (!info) {
|
|
36
|
+
return {
|
|
37
|
+
content: [{ type: "text", text: `Unknown action: ${action}` }],
|
|
38
|
+
isError: true
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const exeConfig = {
|
|
42
|
+
configurable: {
|
|
43
|
+
runConfig: {
|
|
44
|
+
tenantId: ctx.tenantId,
|
|
45
|
+
_resolvedConnections: ctx.runConfig._resolvedConnections ?? []
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const output = await info.tool.invoke(args, exeConfig);
|
|
50
|
+
return { content: [{ type: "text", text: output }] };
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// src/services/open/registerExposedPlugins.ts
|
|
56
|
+
async function registerExposedPluginTools() {
|
|
57
|
+
for (const key of PluginRegistry.list()) {
|
|
58
|
+
const plugin = PluginRegistry.get(key);
|
|
59
|
+
if (!plugin?.middleware) continue;
|
|
60
|
+
const openExpose = plugin.meta.openExpose;
|
|
61
|
+
const exposed = openExpose ? openExpose.map(
|
|
62
|
+
(entry) => typeof entry === "string" ? { name: entry, description: "", expose: true } : {
|
|
63
|
+
name: entry.name,
|
|
64
|
+
description: "",
|
|
65
|
+
expose: true,
|
|
66
|
+
readOnly: entry.readOnly,
|
|
67
|
+
destructive: entry.destructive
|
|
68
|
+
}
|
|
69
|
+
) : plugin.meta.tools?.filter((t) => t.expose) ?? [];
|
|
70
|
+
if (exposed.length === 0) continue;
|
|
71
|
+
try {
|
|
72
|
+
const middleware = await plugin.middleware({
|
|
73
|
+
...plugin.meta.defaultConfig ?? {},
|
|
74
|
+
connectAll: true
|
|
75
|
+
});
|
|
76
|
+
const toolObjects = middleware.tools ?? [];
|
|
77
|
+
const matched = exposed.map((tm) => {
|
|
78
|
+
const tool = toolObjects.find((t) => t.name === tm.name);
|
|
79
|
+
if (!tool) return null;
|
|
80
|
+
const annotations = tm;
|
|
81
|
+
return {
|
|
82
|
+
name: tm.name,
|
|
83
|
+
description: tm.description,
|
|
84
|
+
tool,
|
|
85
|
+
readOnly: annotations.readOnly,
|
|
86
|
+
destructive: annotations.destructive
|
|
87
|
+
};
|
|
88
|
+
}).filter(Boolean);
|
|
89
|
+
if (matched.length === 0) continue;
|
|
90
|
+
const provider = createPluginProvider(key, matched, { label: plugin.meta.name });
|
|
91
|
+
openLattice.register(provider);
|
|
92
|
+
} catch {
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
export {
|
|
97
|
+
registerExposedPluginTools
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=registerExposedPlugins-63EUF4VS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/services/open/registerExposedPlugins.ts","../src/services/open/pluginExposeAdapter.ts"],"sourcesContent":["import { PluginRegistry } from \"@axiom-lattice/core\";\nimport { openLattice } from \"./openLattice\";\nimport { createPluginProvider } from \"./pluginExposeAdapter\";\n\n/** Walk PluginRegistry and register every exposed tool as an Open provider. */\nexport async function registerExposedPluginTools(): Promise<void> {\n for (const key of PluginRegistry.list()) {\n const plugin = PluginRegistry.get(key);\n if (!plugin?.middleware) continue;\n // Declaration source: meta.openExpose (preferred, standalone) or\n // meta.tools[].expose (per-tool flags).\n const openExpose = plugin.meta.openExpose;\n const exposed = openExpose\n ? openExpose.map((entry) =>\n typeof entry === \"string\"\n ? { name: entry, description: \"\", expose: true }\n : {\n name: entry.name,\n description: \"\",\n expose: true,\n readOnly: entry.readOnly,\n destructive: entry.destructive,\n },\n )\n : (plugin.meta.tools?.filter((t) => t.expose) ?? []);\n if (exposed.length === 0) continue;\n try {\n // Open-door semantics: resolve the tenant's connections at call time\n // (credential → tenant → tenant's own Connection Store entries).\n const middleware = await plugin.middleware({\n ...(plugin.meta.defaultConfig ?? {}),\n connectAll: true,\n });\n const toolObjects = (middleware as { tools?: Array<{ name: string; description: string; invoke: (input: unknown, config?: unknown) => Promise<string> }> }).tools ?? [];\n const matched = exposed\n .map((tm) => {\n const tool = toolObjects.find((t: { name: string }) => t.name === tm.name);\n if (!tool) return null;\n const annotations = tm as { readOnly?: boolean; destructive?: boolean };\n return {\n name: tm.name,\n description: tm.description,\n tool,\n readOnly: annotations.readOnly,\n destructive: annotations.destructive,\n };\n })\n .filter(Boolean) as Array<{\n name: string;\n description?: string;\n tool: { name: string; description: string; invoke: (input: unknown, config?: unknown) => Promise<string> };\n readOnly?: boolean;\n destructive?: boolean;\n }>;\n if (matched.length === 0) continue;\n const provider = createPluginProvider(key, matched, { label: plugin.meta.name });\n openLattice.register(provider);\n } catch {\n // skip plugins whose middleware fails to instantiate\n }\n }\n}","/**\n * Plugin expose adapter: converts a plugin's middleware-emitted tools into an\n * OpenProvider, so `expose: true` tools surface on the Open API catalog.\n *\n * The LangChain tool emits schema via .lc_kwargs.schema (ZodType) and runs via\n * .invoke(input, exeConfig). We synthesize the exeConfig the way the Agent\n * path would — injecting tenantId + _resolvedConnections into runConfig.\n */\n\nimport { z } from \"zod\";\nimport type { OpenExecutionContext, OpenGrant } from \"@axiom-lattice/protocols\";\nimport type { OpenProviderDeclaration, OpenActionDeclaration } from \"./openLattice\";\n\nexport interface PluginToolLike {\n name: string;\n description: string;\n invoke: (input: unknown, exeConfig?: unknown) => Promise<string>;\n lc_kwargs?: { schema?: z.ZodTypeAny };\n schema?: z.ZodTypeAny;\n}\n\nfunction schemaOf(tool: PluginToolLike): z.ZodTypeAny {\n return tool.lc_kwargs?.schema ?? tool.schema ?? z.object({}).passthrough();\n}\n\n/** Build an Open provider exposing the given plugin tools under a domain. */\nexport interface PluginExposedTool {\n name: string;\n description?: string;\n tool: PluginToolLike;\n /** MCP readOnlyHint (default false — conservative). */\n readOnly?: boolean;\n /** MCP destructiveHint (default false). */\n destructive?: boolean;\n}\n\nexport function createPluginProvider(\n domain: string,\n tools: PluginExposedTool[],\n options: { label?: string } = {},\n): OpenProviderDeclaration {\n function toAction(info: PluginExposedTool): OpenActionDeclaration {\n return {\n name: info.name,\n description:\n info.description || info.tool.description || `Plugin tool ${info.name}`,\n schema: schemaOf(info.tool),\n annotations: {\n readOnlyHint: info.readOnly ?? false,\n destructiveHint: info.destructive ?? false,\n },\n };\n }\n\n const actions = tools.map(toAction);\n return {\n domain,\n label: options.label ?? domain,\n source: \"plugin\",\n scopeKind: \"tenant\",\n actions,\n execute: async (action: string, args: unknown, ctx: OpenExecutionContext) => {\n const info = tools.find((t) => t.name === action);\n if (!info) {\n return {\n content: [{ type: \"text\", text: `Unknown action: ${action}` }],\n isError: true,\n };\n }\n const exeConfig = {\n configurable: {\n runConfig: {\n tenantId: ctx.tenantId,\n _resolvedConnections: ctx.runConfig._resolvedConnections ?? [],\n },\n },\n };\n const output = await info.tool.invoke(args, exeConfig);\n return { content: [{ type: \"text\", text: output }] };\n },\n };\n}"],"mappings":"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","names":[]}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getContentTypeFromFilename
|
|
3
3
|
} from "./chunk-LHQY46YB.mjs";
|
|
4
|
+
import {
|
|
5
|
+
init_openToken,
|
|
6
|
+
openToken_exports
|
|
7
|
+
} from "./chunk-WKNZ7GBC.mjs";
|
|
8
|
+
import {
|
|
9
|
+
__toCommonJS
|
|
10
|
+
} from "./chunk-NFEGQTCC.mjs";
|
|
4
11
|
|
|
5
12
|
// src/controllers/resources.ts
|
|
6
13
|
import bcrypt from "bcryptjs";
|
|
@@ -9,6 +16,23 @@ import {
|
|
|
9
16
|
createSharePayload,
|
|
10
17
|
buildNamedVolumeName
|
|
11
18
|
} from "@axiom-lattice/core";
|
|
19
|
+
|
|
20
|
+
// src/services/open/sandboxGrants.ts
|
|
21
|
+
var ALLOWED = {
|
|
22
|
+
kb: ["search", "entries_read"]
|
|
23
|
+
};
|
|
24
|
+
function sanitizeShareOpenGrants(grants) {
|
|
25
|
+
const out = [];
|
|
26
|
+
for (const grant of grants ?? []) {
|
|
27
|
+
const allowed = ALLOWED[grant.domain];
|
|
28
|
+
if (!allowed) continue;
|
|
29
|
+
const items = grant.items && grant.items.length > 0 ? grant.items.filter((item) => allowed.includes(item)) : allowed;
|
|
30
|
+
if (items.length > 0) out.push({ domain: grant.domain, items });
|
|
31
|
+
}
|
|
32
|
+
return out;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// src/controllers/resources.ts
|
|
12
36
|
var ResourceController = class {
|
|
13
37
|
constructor(deps) {
|
|
14
38
|
this.deps = deps;
|
|
@@ -293,7 +317,8 @@ var ResourceController = class {
|
|
|
293
317
|
workspaceId: record.workspaceId,
|
|
294
318
|
projectId: record.projectId,
|
|
295
319
|
assistantId: record.assistantId,
|
|
296
|
-
resourcePath: basePath + apiSubPath
|
|
320
|
+
resourcePath: basePath + apiSubPath,
|
|
321
|
+
openGrants: record.openGrants
|
|
297
322
|
}, apiSubPath, ext, request, reply);
|
|
298
323
|
}
|
|
299
324
|
async _execApiCore(config, apiSubPath, ext, request, reply) {
|
|
@@ -324,9 +349,10 @@ var ResourceController = class {
|
|
|
324
349
|
`export API_QUERY='${JSON.stringify(queryObj).replace(/'/g, "'\\''")}'`,
|
|
325
350
|
`export API_BODY='${bodyStr.replace(/'/g, "'\\''")}'`,
|
|
326
351
|
`export API_METHOD='${request.method}'`,
|
|
327
|
-
`export API_GATEWAY_URL='${request.protocol}://${request.hostname}'`,
|
|
352
|
+
`export API_GATEWAY_URL='${request.protocol}://${request.headers["x-forwarded-host"] ?? request.headers.host ?? request.hostname}'`,
|
|
328
353
|
`export API_TENANT_ID='${config.tenantId}'`,
|
|
329
|
-
`export API_ASSISTANT_ID='${config.assistantId || ""}'
|
|
354
|
+
`export API_ASSISTANT_ID='${config.assistantId || ""}'`,
|
|
355
|
+
`export OPEN_API_TOKEN='${this._mintSandboxToken(sandbox.name, config)}'`
|
|
330
356
|
].join(" && ");
|
|
331
357
|
const fullCmd = `${envVars} && ${cmd}`;
|
|
332
358
|
this.deps.logger.info("[api] exec", { scriptPath, cmd: cmd.substring(0, 80) });
|
|
@@ -354,8 +380,25 @@ var ResourceController = class {
|
|
|
354
380
|
_passwordPage(token) {
|
|
355
381
|
return `<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Password Protected</title><style>body{font-family:-apple-system,BlinkMacSystemFont,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;background:#f5f5f5}.card{background:#fff;padding:32px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);width:100%;max-width:360px;text-align:center}h2{margin:0 0 8px;font-size:20px}p{margin:0 0 20px;color:#666;font-size:14px}input{width:100%;padding:10px 12px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;box-sizing:border-box;margin-bottom:12px}button{width:100%;padding:10px;background:#6366f1;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer}.error{color:#ef4444;font-size:13px;margin-top:8px;display:none}</style></head><body><div class="card"><h2>Password Protected</h2><p>This share requires a password to access.</p><form id="f"><input type="password" id="p" placeholder="Enter password" required><button type="submit">Unlock</button><div class="error" id="e">Incorrect password</div></form></div><script>document.getElementById('f').onsubmit=async(e)=>{e.preventDefault();const r=await fetch('/s/${token}/unlock',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({password:document.getElementById('p').value})});if(r.ok)location.reload();else document.getElementById('e').style.display='block'}</script></body></html>`;
|
|
356
382
|
}
|
|
383
|
+
_mintSandboxToken(sandboxName, config) {
|
|
384
|
+
const { signOpenToken } = (init_openToken(), __toCommonJS(openToken_exports));
|
|
385
|
+
return signOpenToken({
|
|
386
|
+
kind: "sandbox_token",
|
|
387
|
+
tenantId: config.tenantId,
|
|
388
|
+
workspaceId: config.workspaceId,
|
|
389
|
+
projectId: config.projectId,
|
|
390
|
+
sandboxName,
|
|
391
|
+
grants: [
|
|
392
|
+
{
|
|
393
|
+
domain: "sandbox",
|
|
394
|
+
items: ["files_read", "files_list", "files_write", "shell_exec"]
|
|
395
|
+
},
|
|
396
|
+
...sanitizeShareOpenGrants(config.openGrants)
|
|
397
|
+
]
|
|
398
|
+
});
|
|
399
|
+
}
|
|
357
400
|
};
|
|
358
401
|
export {
|
|
359
402
|
ResourceController
|
|
360
403
|
};
|
|
361
|
-
//# sourceMappingURL=resources-
|
|
404
|
+
//# sourceMappingURL=resources-SRQRKW5G.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/controllers/resources.ts","../src/services/open/sandboxGrants.ts"],"sourcesContent":["import { FastifyRequest, FastifyReply } from \"fastify\";\nimport type { ResourceAddress, ShareRecord, SharedResourceStore } from \"@axiom-lattice/protocols\";\nimport bcrypt from \"bcryptjs\";\nimport {\n generateToken,\n createSharePayload,\n TokenCache,\n SandboxLatticeManager,\n buildNamedVolumeName,\n} from \"@axiom-lattice/core\";\nimport { getContentTypeFromFilename } from \"../utils/mime\";\nimport { sanitizeShareOpenGrants } from \"../services/open/sandboxGrants\";\n\ninterface ResourceControllerDeps {\n store: SharedResourceStore;\n sandboxManager: SandboxLatticeManager;\n cache: TokenCache;\n logger: { info: (msg: string, obj?: object) => void; warn: (msg: string, obj?: object) => void; error: (msg: string, obj?: object) => void };\n}\n\nexport class ResourceController {\n constructor(private deps: ResourceControllerDeps) {}\n\n async createShare(request: FastifyRequest, reply: FastifyReply) {\n const userId = (request as any).user\n ? (request as any).user.id ?? \"unknown\"\n : \"unknown\";\n const tenantId = (request.headers[\"x-tenant-id\"] as string) || \"default\";\n const workspaceId = request.headers[\"x-workspace-id\"] as string;\n const projectId = request.headers[\"x-project-id\"] as string;\n const body = request.body as any;\n\n if (!workspaceId || !projectId) {\n return reply.status(400).send({ error: \"x-workspace-id and x-project-id headers required\" });\n }\n\n const payload = createSharePayload(\n tenantId,\n workspaceId,\n projectId,\n userId as string,\n body,\n );\n const token = generateToken();\n\n try {\n await this.deps.store.create({ ...payload, token });\n this.deps.logger.info(\n \"[share] created\",\n { token, originalPath: body.resourcePath, normalizedPath: payload.address.resourcePath, volume: payload.address.volume, userId },\n );\n } catch {\n return reply.status(500).send({ error: \"Failed to create share\" });\n }\n\n return reply.status(201).send({ token, url: `/s/${token}` });\n }\n\n async listShares(request: FastifyRequest, reply: FastifyReply) {\n const userId = (request as any).user\n ? (request as any).user.id ?? \"unknown\"\n : \"unknown\";\n const tenantId = (request.headers[\"x-tenant-id\"] as string) || \"default\";\n const shares = await this.deps.store.listByUser(tenantId, userId as string);\n return reply.send(shares.filter((r: any) => (r as any).visibility !== \"internal\"));\n }\n\n async updateShare(request: FastifyRequest, reply: FastifyReply) {\n const { token } = request.params as unknown as { token: string };\n const userId = (request as any).user\n ? (request as any).user.id ?? \"unknown\"\n : \"unknown\";\n const patch = request.body as any;\n\n const record = await this.deps.store.findByToken(token);\n if (!record || record.createdBy !== userId) {\n return reply.status(404).send({ error: \"Share not found\" });\n }\n\n await this.deps.store.update(token, patch);\n\n if (patch.revoked) {\n this.deps.cache.invalidate(token);\n }\n\n return reply.send({ ok: true });\n }\n\n async revokeShare(request: FastifyRequest, reply: FastifyReply) {\n const { token } = request.params as unknown as { token: string };\n const userId = (request as any).user\n ? (request as any).user.id ?? \"unknown\"\n : \"unknown\";\n\n const record = await this.deps.store.findByToken(token);\n if (!record || record.createdBy !== userId) {\n return reply.status(404).send({ error: \"Share not found\" });\n }\n\n await this.deps.store.update(token, { revoked: true });\n this.deps.cache.invalidate(token);\n\n return reply.send({ ok: true });\n }\n\n async resolveResource(request: FastifyRequest, reply: FastifyReply) {\n const params = request.params as unknown as { token: string; \"*\"?: string };\n const { token } = params;\n const subPath = params[\"*\"] ?? \"\";\n\n this.deps.logger.info(\"[share] resolve start\", { token, subPath });\n\n const isApi = subPath && /(^|\\/)api\\//.test(subPath) && (subPath.endsWith(\".js\") || subPath.endsWith(\".py\"));\n\n // Only API paths accept non-GET methods\n if (request.method !== \"GET\" && !isApi) {\n return reply.status(405).send({ error: \"Method not allowed\" });\n }\n\n // API runtime — proxy to sandbox. Detected by /api/ anywhere in subPath.\n if (isApi) {\n const record = await this.deps.store.findByToken(token);\n if (!record || record.revoked) return reply.status(404).send(\"Not found\");\n if (record.expiresAt && new Date(record.expiresAt) < new Date()) {\n return reply.status(410).send(\"Expired\");\n }\n // Auth check for API calls (same as file access)\n if (!this._isInternalRequest(request)) {\n if (record.visibility === \"internal\") {\n return reply.status(401).send({ error: \"Internal access only\" });\n }\n if (record.visibility === \"password\") {\n if (!this._isUnlocked(request, token)) {\n return reply.status(401).send({ error: \"Password required\" });\n }\n }\n }\n const ext = subPath.endsWith(\".py\") ? \"py\" : \"js\";\n return this._execApi(record, subPath, ext, request, reply);\n }\n\n // 1. Check cache\n const cached = this.deps.cache.get(token);\n if (cached && !cached.requiresUnlock) {\n this.deps.logger.info(\"[share] cache hit\", { token, volume: cached.address.volume, resourcePath: cached.address.resourcePath });\n return this._serveFile(cached.address, token, subPath, cached.sandboxConfig ?? { tenantId: \"default\", workspaceId: \"\", projectId: \"\", assistantId: null }, reply);\n }\n this.deps.logger.info(\"[share] cache miss, querying DB\", { token });\n\n // 2. Single DB lookup\n const record = await this.deps.store.findByToken(token);\n if (!record || record.revoked) {\n this.deps.logger.warn(\"[share] token not found or revoked\", { token, found: !!record, revoked: record?.revoked });\n return reply.status(404).send(\"Not found\");\n }\n if (record.expiresAt && new Date(record.expiresAt) < new Date()) {\n this.deps.logger.info(\"[share] token expired\", { token, expiresAt: record.expiresAt });\n return reply.status(410).send(\"Expired\");\n }\n\n this.deps.logger.info(\"[share] record found\", {\n token,\n volume: record.address.volume,\n resourcePath: record.address.resourcePath,\n visibility: record.visibility,\n workspaceId: record.workspaceId,\n projectId: record.projectId,\n });\n\n // 3. Auth\n const isInternal = this._isInternalRequest(request);\n if (!isInternal) {\n // Internal shares: must be logged in\n if (record.visibility === \"internal\") {\n return reply.status(401).send({ error: \"Internal access only\" });\n }\n if (record.visibility === \"password\") {\n const unlocked = this._isUnlocked(request, token);\n if (!unlocked) {\n this.deps.logger.info(\"[share] password protected, returning password page\", { token });\n this.deps.cache.set(token, {\n address: record.address,\n requiresUnlock: true,\n sandboxConfig: { tenantId: record.tenantId, workspaceId: record.workspaceId, projectId: record.projectId, assistantId: record.assistantId },\n });\n return reply.type(\"text/html\").send(this._passwordPage(token));\n }\n this.deps.logger.info(\"[share] password unlocked\", { token });\n }\n }\n\n // 4. Access count\n if (record.maxAccess !== null) {\n const ok = await this.deps.store.atomicIncrementAccess(token);\n if (!ok) return reply.status(410).send(\"Access limit reached\");\n } else {\n this.deps.store.incrementAccess(token).catch(() => {});\n }\n\n // 5. Cache\n const sandboxConfig = { tenantId: record.tenantId, workspaceId: record.workspaceId, projectId: record.projectId, assistantId: record.assistantId };\n this.deps.cache.set(token, {\n address: record.address,\n requiresUnlock: record.visibility === \"password\" && !isInternal,\n sandboxConfig,\n });\n\n return this._serveFile(record.address, token, subPath, sandboxConfig, reply);\n }\n\n /**\n * Thin redirect: /f/{uuidHex3}/{path} → /s/{internal-token}/{path}\n * Decodes 3 UUIDs (no dashes, 96 hex chars), ensures internal share, 302 redirects.\n */\n async resolveDirectFile(request: FastifyRequest, reply: FastifyReply) {\n const params = request.params as unknown as { tid: string; wid: string; pid: string; \"*\"?: string };\n const tenantId = params.tid;\n const workspaceId = params.wid;\n const projectId = params.pid;\n const subPath = (params[\"*\"] ?? \"\");\n\n const isApi = subPath && /(^|\\/)api\\//.test(subPath) && (subPath.endsWith(\".js\") || subPath.endsWith(\".py\"));\n\n // Only API paths accept non-GET methods\n if (request.method !== \"GET\" && !isApi) {\n return reply.status(405).send({ error: \"Method not allowed\" });\n }\n\n // API runtime\n if (isApi) {\n const ext = subPath.endsWith(\".py\") ? \"py\" : \"js\";\n return this._execApiCore({\n tenantId, workspaceId, projectId, assistantId: \"\",\n resourcePath: subPath,\n }, subPath, ext, request, reply);\n }\n\n const volume = buildNamedVolumeName(\"p\", \"project\", tenantId, workspaceId, projectId);\n return this._resolveAndServe(volume, subPath, reply, `/f/${tenantId}/${workspaceId}/${projectId}`,\n { tenantId, workspaceId, projectId, assistantId: null },\n );\n }\n\n async unlockShare(request: FastifyRequest, reply: FastifyReply) {\n const { token } = request.params as unknown as { token: string };\n const { password } = request.body as unknown as { password: string };\n\n const record = await this.deps.store.findByToken(token);\n if (!record || !record.passwordHash) {\n return reply.status(404).send({ error: \"Invalid request\" });\n }\n\n const valid = await bcrypt.compare(password, record.passwordHash!);\n if (!valid) {\n return reply.status(401).send({ error: \"Incorrect password\" });\n }\n\n const cookieOpts = [\n `share_unlock_${token}=1`,\n \"Max-Age=86400\",\n `Path=/s/${token}`,\n \"SameSite=Lax\",\n \"HttpOnly\",\n ];\n if (request.protocol === \"https\") {\n cookieOpts.push(\"Secure\");\n }\n reply.header(\"Set-Cookie\", cookieOpts.join(\"; \"));\n return reply.send({ ok: true });\n }\n\n private _isInternalRequest(request: FastifyRequest): boolean {\n const user = (request as any).user;\n if (user && user.id) return true;\n // Fallback: same-origin browser request (iframe/img embed — no Auth header)\n const origin = request.headers.origin || request.headers.referer;\n if (origin) {\n try {\n const { hostname } = new URL(origin);\n if (hostname === request.hostname) return true;\n } catch { /* malformed */ }\n }\n return false;\n }\n\n private _isUnlocked(request: FastifyRequest, token: string): boolean {\n const cookie = request.headers.cookie ?? \"\";\n return cookie.includes(`share_unlock_${token}=1`);\n }\n\n /** Returns true if the path has a file extension indicating it's a file, not a directory */\n private _isFilePath(path: string): boolean {\n return /\\.[a-zA-Z0-9]+$/.test(path);\n }\n\n /**\n * Shared file resolution: directory → index.html, volume FS → sandbox, base tag, response.\n */\n private async _resolveAndServe(\n volume: string,\n resourcePath: string,\n reply: FastifyReply,\n baseTagPrefix: string,\n sandboxConfig?: { tenantId: string; workspaceId: string; projectId: string; assistantId: string | null },\n ) {\n const cleanPath = resourcePath.replace(/\\/+$/, \"\");\n const entryPath = !cleanPath\n ? \"index.html\"\n : this._isFilePath(cleanPath)\n ? cleanPath\n : `${cleanPath}/index.html`;\n\n const address: ResourceAddress = { volume, resourcePath: \"\" };\n\n let buf: Buffer;\n try {\n // Volume FS first\n const provider = this.deps.sandboxManager.getDefaultProvider();\n buf = await provider.getResourceResolver().resolve({ ...address, resourcePath: entryPath });\n } catch {\n // Sandbox fallback\n if (!sandboxConfig) return reply.status(404).send(\"File not found\");\n try {\n const sandbox = await this.deps.sandboxManager.getSandboxFromConfig({\n assistant_id: sandboxConfig.assistantId ?? \"\",\n thread_id: \"\",\n tenantId: sandboxConfig.tenantId,\n workspaceId: sandboxConfig.workspaceId,\n projectId: sandboxConfig.projectId,\n });\n buf = await sandbox.file.downloadFile({ file: `/project/${entryPath}` });\n } catch {\n return reply.status(404).send(\"File not found\");\n }\n }\n\n const filename = entryPath.split(\"/\").pop() || \"download\";\n const contentType = getContentTypeFromFilename(filename);\n\n // Inject base tag for HTML\n if (/\\.(html|htm)$/i.test(filename)) {\n const baseDir = cleanPath\n ? (this._isFilePath(cleanPath) ? cleanPath.replace(/[^/]+$/, \"\") : cleanPath)\n : \"\";\n const html = buf.toString(\"utf-8\");\n if (!/<base\\b/i.test(html)) {\n const baseTag = `<base href=\"${baseTagPrefix}${baseDir ? \"/\" + baseDir : \"\"}/\">`;\n buf = Buffer.from(\n html.includes(\"<head>\") ? html.replace(\"<head>\", `<head>${baseTag}`) : baseTag + html,\n \"utf-8\"\n );\n }\n }\n\n return reply\n .status(200)\n .type(contentType)\n .header(\"Content-Disposition\", `inline; filename*=UTF-8''${encodeURIComponent(filename)}`)\n .header(\"Access-Control-Allow-Origin\", \"*\")\n .send(buf);\n }\n\n private async _serveFile(\n address: ResourceAddress,\n token: string,\n subPath: string,\n sandboxConfig: { tenantId: string; workspaceId: string; projectId: string; assistantId: string | null },\n reply: FastifyReply,\n ) {\n const resourcePath = subPath\n ? this._resolveSafeSubPath(address.resourcePath, subPath)\n : address.resourcePath;\n return this._resolveAndServe(\n address.volume,\n resourcePath,\n reply,\n `/s/${token}`,\n sandboxConfig,\n );\n }\n\n private async _execApi(\n record: ShareRecord,\n apiSubPath: string,\n ext: \"js\" | \"py\",\n request: FastifyRequest,\n reply: FastifyReply,\n ) {\n const basePath = this._isFilePath(record.address.resourcePath)\n ? \"\"\n : `${record.address.resourcePath}/`;\n return this._execApiCore({\n tenantId: record.tenantId,\n workspaceId: record.workspaceId,\n projectId: record.projectId,\n assistantId: record.assistantId,\n resourcePath: basePath + apiSubPath,\n openGrants: record.openGrants,\n }, apiSubPath, ext, request, reply);\n }\n\n private async _execApiCore(\n config: {\n tenantId: string;\n workspaceId: string;\n projectId: string;\n assistantId?: string | null;\n resourcePath: string;\n openGrants?: import(\"@axiom-lattice/protocols\").OpenGrant[];\n },\n apiSubPath: string,\n ext: \"js\" | \"py\",\n request: FastifyRequest,\n reply: FastifyReply,\n ) {\n let sandbox: any;\n try {\n sandbox = await this.deps.sandboxManager.getSandboxFromConfig({\n assistant_id: config.assistantId ?? \"\",\n thread_id: \"\",\n tenantId: config.tenantId,\n workspaceId: config.workspaceId,\n projectId: config.projectId,\n });\n } catch (err) {\n this.deps.logger.error(\"[share] sandbox start failed for API\", { error: (err as Error).message });\n return reply.status(502).send({ error: \"Sandbox unavailable\" });\n }\n\n const scriptPath = `/project/${config.resourcePath}`;\n const cmd = ext === \"py\" ? `python3 ${scriptPath}` : `node ${scriptPath}`;\n\n // Pass query params and body via environment\n const queryStr = request.url.includes(\"?\") ? (request.url as string).split(\"?\")[1] : \"\";\n const queryObj: Record<string, string> = {};\n if (queryStr) {\n for (const [k, v] of new URLSearchParams(queryStr)) {\n queryObj[k] = v;\n }\n }\n\n const bodyStr = (request.body as string) ?? \"\";\n\n const envVars = [\n `export API_QUERY='${JSON.stringify(queryObj).replace(/'/g, \"'\\\\''\")}'`,\n `export API_BODY='${bodyStr.replace(/'/g, \"'\\\\''\")}'`,\n `export API_METHOD='${request.method}'`,\n `export API_GATEWAY_URL='${request.protocol}://${request.headers[\"x-forwarded-host\"] ?? request.headers.host ?? request.hostname}'`,\n `export API_TENANT_ID='${config.tenantId}'`,\n `export API_ASSISTANT_ID='${config.assistantId || \"\"}'`,\n `export OPEN_API_TOKEN='${this._mintSandboxToken(sandbox.name, config)}'`,\n ].join(\" && \");\n\n const fullCmd = `${envVars} && ${cmd}`;\n\n this.deps.logger.info(\"[api] exec\", { scriptPath, cmd: cmd.substring(0, 80) });\n\n try {\n const result = await sandbox.shell.execCommand({ command: fullCmd });\n // Parse stdout as JSON\n let data: unknown;\n try {\n data = JSON.parse(result.output?.trim() || \"{}\");\n } catch {\n data = { output: result.output?.trim() || \"\" };\n }\n return reply.status(200).type(\"application/json\").send(data);\n } catch (err) {\n this.deps.logger.warn(\"[api] exec failed\", { scriptPath, error: (err as Error).message });\n return reply.status(500).send({ error: (err as Error).message });\n }\n }\n\n private _resolveSafeSubPath(entryFile: string, subPath: string): string {\n if (!subPath) return entryFile;\n if (subPath.includes(\"..\")) throw new Error(\"Path traversal denied\");\n if (subPath.startsWith(entryFile + \"/\") || subPath === entryFile) return subPath;\n const entryDir = this._isFilePath(entryFile)\n ? entryFile.replace(/[^/]+$/, \"\")\n : entryFile + \"/\";\n return (entryDir + subPath).replace(/\\/+/g, \"/\");\n }\n\n private _passwordPage(token: string): string {\n return `<!DOCTYPE html><html><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><title>Password Protected</title><style>body{font-family:-apple-system,BlinkMacSystemFont,sans-serif;display:flex;align-items:center;justify-content:center;min-height:100vh;margin:0;background:#f5f5f5}.card{background:#fff;padding:32px;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);width:100%;max-width:360px;text-align:center}h2{margin:0 0 8px;font-size:20px}p{margin:0 0 20px;color:#666;font-size:14px}input{width:100%;padding:10px 12px;border:1px solid #d9d9d9;border-radius:8px;font-size:14px;box-sizing:border-box;margin-bottom:12px}button{width:100%;padding:10px;background:#6366f1;color:#fff;border:none;border-radius:8px;font-size:14px;cursor:pointer}.error{color:#ef4444;font-size:13px;margin-top:8px;display:none}</style></head><body><div class=\"card\"><h2>Password Protected</h2><p>This share requires a password to access.</p><form id=\"f\"><input type=\"password\" id=\"p\" placeholder=\"Enter password\" required><button type=\"submit\">Unlock</button><div class=\"error\" id=\"e\">Incorrect password</div></form></div><script>document.getElementById('f').onsubmit=async(e)=>{e.preventDefault();const r=await fetch('/s/${token}/unlock',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({password:document.getElementById('p').value})});if(r.ok)location.reload();else document.getElementById('e').style.display='block'}</script></body></html>`;\n }\n\n private _mintSandboxToken(\n sandboxName: string,\n config: {\n tenantId: string;\n workspaceId: string;\n projectId: string;\n openGrants?: import(\"@axiom-lattice/protocols\").OpenGrant[];\n },\n ): string {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const { signOpenToken } = require(\"../services/open/openToken\") as {\n signOpenToken: (p: unknown) => string;\n };\n return signOpenToken({\n kind: \"sandbox_token\",\n tenantId: config.tenantId,\n workspaceId: config.workspaceId,\n projectId: config.projectId,\n sandboxName,\n grants: [\n {\n domain: \"sandbox\",\n items: [\"files_read\", \"files_list\", \"files_write\", \"shell_exec\"],\n },\n ...sanitizeShareOpenGrants(config.openGrants),\n ],\n });\n }\n}\n","/**\n * Sandbox-token grant sanitation.\n *\n * Sandbox tokens always carry the self-binding sandbox grant (resolved from\n * the credential's tenant/workspace/project). Shares may append extra\n * Open-door grants, but only within the V1 whitelist: read-only kb access.\n * Anything else is dropped server-side (the share creator cannot widen scope).\n */\n\nimport type { OpenGrant } from \"@axiom-lattice/protocols\";\n\n/** V1 allowlist: domain → permitted (read-only) actions. */\nconst ALLOWED: Record<string, string[]> = {\n kb: [\"search\", \"entries_read\"],\n};\n\nexport function sanitizeShareOpenGrants(grants: OpenGrant[] | undefined): OpenGrant[] {\n const out: OpenGrant[] = [];\n for (const grant of grants ?? []) {\n const allowed = ALLOWED[grant.domain];\n if (!allowed) continue;\n const items =\n grant.items && grant.items.length > 0\n ? grant.items.filter((item) => allowed.includes(item))\n : allowed;\n if (items.length > 0) out.push({ domain: grant.domain, items });\n }\n return out;\n}\n"],"mappings":"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","names":["record"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import "./chunk-NFEGQTCC.mjs";
|
|
2
|
+
|
|
1
3
|
// src/channels/lark/sender.ts
|
|
2
4
|
async function createLarkSender(config, client) {
|
|
3
5
|
const resolved = client ?? await createDefaultLarkClient(config);
|
|
@@ -29,4 +31,4 @@ async function createDefaultLarkClient(config) {
|
|
|
29
31
|
export {
|
|
30
32
|
createLarkSender
|
|
31
33
|
};
|
|
32
|
-
//# sourceMappingURL=sender-
|
|
34
|
+
//# sourceMappingURL=sender-PLDU5EZ3.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/channels/lark/sender.ts"],"sourcesContent":["interface LarkSenderConfig {\n appId: string;\n appSecret: string;\n}\n\ninterface LarkSdkMessageClient {\n im: {\n v1: {\n message: {\n create(input: {\n params: {\n receive_id_type: \"chat_id\";\n };\n data: {\n receive_id: string;\n msg_type: \"text\";\n content: string;\n };\n }): Promise<{ code?: number }>;\n };\n };\n };\n}\n\nexport async function createLarkSender(\n config: LarkSenderConfig,\n client?: LarkSdkMessageClient,\n) {\n const resolved = client ?? (await createDefaultLarkClient(config));\n\n return {\n async sendTextReply(input: { chatId: string; text: string }): Promise<void> {\n const response = await resolved.im.v1.message.create({\n params: {\n receive_id_type: \"chat_id\",\n },\n data: {\n receive_id: input.chatId,\n msg_type: \"text\",\n content: JSON.stringify({ text: input.text }),\n },\n });\n\n if (response.code && response.code !== 0) {\n throw new Error(\"Failed to send Lark reply\");\n }\n },\n };\n}\n\nasync function createDefaultLarkClient(config: LarkSenderConfig): Promise<LarkSdkMessageClient> {\n const Lark = await import(\"@larksuiteoapi/node-sdk\");\n\n return new Lark.Client({\n appId: config.appId,\n appSecret: config.appSecret,\n }) as LarkSdkMessageClient;\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/channels/lark/sender.ts"],"sourcesContent":["interface LarkSenderConfig {\n appId: string;\n appSecret: string;\n}\n\ninterface LarkSdkMessageClient {\n im: {\n v1: {\n message: {\n create(input: {\n params: {\n receive_id_type: \"chat_id\";\n };\n data: {\n receive_id: string;\n msg_type: \"text\";\n content: string;\n };\n }): Promise<{ code?: number }>;\n };\n };\n };\n}\n\nexport async function createLarkSender(\n config: LarkSenderConfig,\n client?: LarkSdkMessageClient,\n) {\n const resolved = client ?? (await createDefaultLarkClient(config));\n\n return {\n async sendTextReply(input: { chatId: string; text: string }): Promise<void> {\n const response = await resolved.im.v1.message.create({\n params: {\n receive_id_type: \"chat_id\",\n },\n data: {\n receive_id: input.chatId,\n msg_type: \"text\",\n content: JSON.stringify({ text: input.text }),\n },\n });\n\n if (response.code && response.code !== 0) {\n throw new Error(\"Failed to send Lark reply\");\n }\n },\n };\n}\n\nasync function createDefaultLarkClient(config: LarkSenderConfig): Promise<LarkSdkMessageClient> {\n const Lark = await import(\"@larksuiteoapi/node-sdk\");\n\n return new Lark.Client({\n appId: config.appId,\n appSecret: config.appSecret,\n }) as LarkSdkMessageClient;\n}\n"],"mappings":";;;AAwBA,eAAsB,iBACpB,QACA,QACA;AACA,QAAM,WAAW,UAAW,MAAM,wBAAwB,MAAM;AAEhE,SAAO;AAAA,IACL,MAAM,cAAc,OAAwD;AAC1E,YAAM,WAAW,MAAM,SAAS,GAAG,GAAG,QAAQ,OAAO;AAAA,QACnD,QAAQ;AAAA,UACN,iBAAiB;AAAA,QACnB;AAAA,QACA,MAAM;AAAA,UACJ,YAAY,MAAM;AAAA,UAClB,UAAU;AAAA,UACV,SAAS,KAAK,UAAU,EAAE,MAAM,MAAM,KAAK,CAAC;AAAA,QAC9C;AAAA,MACF,CAAC;AAED,UAAI,SAAS,QAAQ,SAAS,SAAS,GAAG;AACxC,cAAM,IAAI,MAAM,2BAA2B;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AACF;AAEA,eAAe,wBAAwB,QAAyD;AAC9F,QAAM,OAAO,MAAM,OAAO,yBAAyB;AAEnD,SAAO,IAAI,KAAK,OAAO;AAAA,IACrB,OAAO,OAAO;AAAA,IACd,WAAW,OAAO;AAAA,EACpB,CAAC;AACH;","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@axiom-lattice/gateway",
|
|
3
|
-
"version": "4.1
|
|
3
|
+
"version": "4.2.1",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"@langchain/core": "1.1.30",
|
|
33
33
|
"@langchain/langgraph": "1.0.4",
|
|
34
34
|
"@larksuiteoapi/node-sdk": "^1.47.0",
|
|
35
|
+
"@modelcontextprotocol/sdk": "1.25.3",
|
|
35
36
|
"@supabase/supabase-js": "^2.49.1",
|
|
36
37
|
"bcryptjs": "^3.0.3",
|
|
37
38
|
"dotenv": "^16.6.1",
|
|
@@ -46,11 +47,11 @@
|
|
|
46
47
|
"tar": "^7.5.22",
|
|
47
48
|
"uuid": "^9.0.1",
|
|
48
49
|
"zod": "3.25.76",
|
|
49
|
-
"@axiom-lattice/cli-a2a": "0.2.
|
|
50
|
-
"@axiom-lattice/core": "4.2.
|
|
51
|
-
"@axiom-lattice/pg-stores": "3.1.
|
|
52
|
-
"@axiom-lattice/protocols": "4.1
|
|
53
|
-
"@axiom-lattice/queue-redis": "1.1.
|
|
50
|
+
"@axiom-lattice/cli-a2a": "0.2.7",
|
|
51
|
+
"@axiom-lattice/core": "4.2.9",
|
|
52
|
+
"@axiom-lattice/pg-stores": "3.1.9",
|
|
53
|
+
"@axiom-lattice/protocols": "4.2.1",
|
|
54
|
+
"@axiom-lattice/queue-redis": "1.1.7"
|
|
54
55
|
},
|
|
55
56
|
"devDependencies": {
|
|
56
57
|
"@types/bcrypt": "^6.0.0",
|
|
@@ -70,10 +71,12 @@
|
|
|
70
71
|
"ts-node": "^10.9.2",
|
|
71
72
|
"tsconfig-paths": "^4.2.0",
|
|
72
73
|
"tsup": "^8.5.0",
|
|
73
|
-
"typescript": "^5.8.2"
|
|
74
|
+
"typescript": "^5.8.2",
|
|
75
|
+
"@axiom-lattice/react-sdk": "4.1.0"
|
|
74
76
|
},
|
|
75
77
|
"scripts": {
|
|
76
|
-
"build": "tsup src/index.ts --format cjs,esm --dts --clean --sourcemap",
|
|
78
|
+
"build": "tsup src/index.ts --format cjs,esm --dts --clean --sourcemap && pnpm copy:embed-assets",
|
|
79
|
+
"copy:embed-assets": "node scripts/copy-embed-assets.mjs",
|
|
77
80
|
"start": "node dist/index.js",
|
|
78
81
|
"dev": "tsup src/index.ts --format cjs,esm --dts --watch --sourcemap",
|
|
79
82
|
"lint": "eslint src",
|