agentworkshop 0.5.1 → 0.5.3
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/.output/.AgentWorkShop/prompts/host-tools.json +631 -0
- package/.output/.AgentWorkShop/prompts/lead-supervise.md +42 -0
- package/.output/.AgentWorkShop/prompts/mode-goal.md +26 -0
- package/.output/.AgentWorkShop/prompts/mode-loop.md +10 -0
- package/.output/.AgentWorkShop/prompts/mode-pipeline.md +16 -0
- package/.output/.AgentWorkShop/prompts/peer-lead-roster.md +3 -0
- package/.output/.AgentWorkShop/prompts/peer-message.md +14 -0
- package/.output/.AgentWorkShop/prompts/peer-reply-optional.md +2 -0
- package/.output/.AgentWorkShop/prompts/peer-reply-required.md +8 -0
- package/.output/.AgentWorkShop/prompts/scenario-default.md +11 -0
- package/.output/.AgentWorkShop/prompts/system-manual.md +18 -0
- package/.output/.AgentWorkShop/prompts/team-roster.md +9 -0
- package/.output/.AgentWorkShop/prompts/worker-workflow.md +19 -0
- package/.output/nitro.json +15 -0
- package/.output/public/_nuxt/2LwEn9gX.js +2 -0
- package/.output/public/_nuxt/36oeS8_R2.js +1 -0
- package/.output/public/_nuxt/7ZABjMRh2.js +1 -0
- package/.output/public/_nuxt/9X0fVBD7.js +57 -0
- package/.output/public/_nuxt/B-PgoIPN.js +1 -0
- package/.output/public/_nuxt/B0haAGoq.js +1 -0
- package/.output/public/_nuxt/B3__nfxM.js +1 -0
- package/.output/public/_nuxt/B4GHHF6d2.js +13 -0
- package/.output/public/_nuxt/B6M2WJWm2.js +1 -0
- package/.output/public/_nuxt/B7V9IfTL.js +1 -0
- package/.output/public/_nuxt/B9aPoQvt.js +17 -0
- package/.output/public/_nuxt/BBrRELH32.js +2 -0
- package/.output/public/_nuxt/BCipft_k2.js +1 -0
- package/.output/public/_nuxt/BDUjyaF4.js +42 -0
- package/.output/public/_nuxt/BE5QyG5J2.js +1 -0
- package/.output/public/_nuxt/BF9XPEuw.js +1 -0
- package/.output/public/_nuxt/BFYNhG9S.js +13 -0
- package/.output/public/_nuxt/BFjGV-RV2.js +4108 -0
- package/.output/public/_nuxt/BGkumHZ32.js +102 -0
- package/.output/public/_nuxt/BJvGPTpC.js +1 -0
- package/.output/public/_nuxt/BSCpFtzG.js +3 -0
- package/.output/public/_nuxt/BSSUlJnx2.js +1 -0
- package/.output/public/_nuxt/BUNGEK2z.js +18 -0
- package/.output/public/_nuxt/BUcmySDa2.js +209 -0
- package/.output/public/_nuxt/BUxYN2mw.js +1 -0
- package/.output/public/_nuxt/BbQornXa.js +1 -0
- package/.output/public/_nuxt/Bc_mM2cU.js +1 -0
- package/.output/public/_nuxt/BdKzfJiM.js +2 -0
- package/.output/public/_nuxt/BeIfu4N3.js +3 -0
- package/.output/public/_nuxt/BfGc7TJp.js +1 -0
- package/.output/public/_nuxt/Bi6AiCuP.js +1 -0
- package/.output/public/_nuxt/Bok1DRqh.js +19 -0
- package/.output/public/_nuxt/Bq_KKxCg.js +1 -0
- package/.output/public/_nuxt/BrIJiJSN.js +18 -0
- package/.output/public/_nuxt/Bsc69G4x.js +24 -0
- package/.output/public/_nuxt/Bxh5nf8j.js +1 -0
- package/.output/public/_nuxt/ByGNWgAr.js +23 -0
- package/.output/public/_nuxt/C9f8QMp12.js +1 -0
- package/.output/public/_nuxt/CE2ynNi9.js +1 -0
- package/.output/public/_nuxt/CNs_Ozdc2.js +1 -0
- package/.output/public/_nuxt/CWDzKGtj.js +1 -0
- package/.output/public/_nuxt/CWKEp1wx2.js +2 -0
- package/.output/public/_nuxt/CXLI50Sq.js +1 -0
- package/.output/public/_nuxt/C_gFA2H_2.js +1 -0
- package/.output/public/_nuxt/Ce1zyNYu.js +1 -0
- package/.output/public/_nuxt/CfIXY-ET.js +75 -0
- package/.output/public/_nuxt/ChEKFMxj.js +1 -0
- package/.output/public/_nuxt/ClptO7LA.js +1 -0
- package/.output/public/_nuxt/Cno6kYiO2.js +1 -0
- package/.output/public/_nuxt/CrFGZYVB2.js +7 -0
- package/.output/public/_nuxt/D-Ne4C9a.js +1 -0
- package/.output/public/_nuxt/D0C5Q0di.js +1 -0
- package/.output/public/_nuxt/D5KJ7_0V.js +1 -0
- package/.output/public/_nuxt/D8DDDzV62.js +1 -0
- package/.output/public/_nuxt/D95h62Jn.js +1 -0
- package/.output/public/_nuxt/DEHNjlTq2.js +1 -0
- package/.output/public/_nuxt/DEkQ0qQ02.js +1 -0
- package/.output/public/_nuxt/DIOBYJe3.js +1 -0
- package/.output/public/_nuxt/DNJSkm3Q.js +1 -0
- package/.output/public/_nuxt/DP6bdyIp.js +1 -0
- package/.output/public/_nuxt/DPDqAD1e.js +2 -0
- package/.output/public/_nuxt/DRlJ2-4p.js +1 -0
- package/.output/public/_nuxt/DRq09ZmT.js +1 -0
- package/.output/public/_nuxt/DSBfvCi5.js +19 -0
- package/.output/public/_nuxt/DVNYfGsj.js +1 -0
- package/.output/public/_nuxt/DVQAz9WI.js +3 -0
- package/.output/public/_nuxt/DXK1U43I.js +1 -0
- package/.output/public/_nuxt/DYWgGHNo.js +7 -0
- package/.output/public/_nuxt/DdPeifHR.js +3 -0
- package/.output/public/_nuxt/Dm5mD6XT.js +1 -0
- package/.output/public/_nuxt/HWXLx5Hz.js +9 -0
- package/.output/public/_nuxt/HclGiUj8.js +1 -0
- package/.output/public/_nuxt/NIM0Wglj2.js +1 -0
- package/.output/public/_nuxt/OmpTerminalPanel.Bc9GjNU5.css +1 -0
- package/.output/public/_nuxt/OwJ1LJkF.js +31 -0
- package/.output/public/_nuxt/PQLnLxYe.js +1 -0
- package/.output/public/_nuxt/RYFtK4qZ2.js +1 -0
- package/.output/public/_nuxt/R_WxTozV2.js +1 -0
- package/.output/public/_nuxt/TownView.CI2Wpzty.css +1 -0
- package/.output/public/_nuxt/W1E3-5ML.js +14 -0
- package/.output/public/_nuxt/Z8k0uMSI.js +5 -0
- package/.output/public/_nuxt/_id_.CbiF5PrV.css +1 -0
- package/.output/public/_nuxt/_id_.Ci4u30cR.css +1 -0
- package/.output/public/_nuxt/_wsId_.DET_GinP.css +1 -0
- package/.output/public/_nuxt/agents.BJwgTLFZ.css +1 -0
- package/.output/public/_nuxt/builds/latest.json +1 -0
- package/.output/public/_nuxt/builds/meta/fb769eda-b1db-437b-adc7-ecf71eb3b30b.json +1 -0
- package/.output/public/_nuxt/channel-templates.lkqEYlWY.css +1 -0
- package/.output/public/_nuxt/dObsRdSQ.js +1 -0
- package/.output/public/_nuxt/dRAyjbJ6.js +14 -0
- package/.output/public/_nuxt/daq.m1dxZaD-.css +1 -0
- package/.output/public/_nuxt/dcw.C46dGiF_.css +1 -0
- package/.output/public/_nuxt/default.iGJy9dP-.css +1 -0
- package/.output/public/_nuxt/dt2tKE95.js +4 -0
- package/.output/public/_nuxt/eHGLpQSg2.js +1 -0
- package/.output/public/_nuxt/eb-garamond-cyrillic-400-italic.BGIwiowF.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-cyrillic-400-italic.BZInx2ys.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-cyrillic-400-normal.C0kVTdou.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-cyrillic-400-normal.DDLP67lu.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-cyrillic-ext-400-italic.Bz1w3xqM.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-cyrillic-ext-400-italic.CYS3phfl.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-cyrillic-ext-400-normal.DG8lny6_.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-cyrillic-ext-400-normal.o8fRvAFQ.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-greek-400-italic.BamGE6QP.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-greek-400-italic.Dqr5KC66.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-greek-400-normal.CVAbzS9p.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-greek-400-normal.d4JlP2QH.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-greek-ext-400-italic.BL1XYHtS.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-greek-ext-400-italic.CHZOQEtG.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-greek-ext-400-normal.BaZl8BIK.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-greek-ext-400-normal.K8pwR3tn.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-latin-400-italic.CDFyLPXJ.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-latin-400-italic.DSEbMgZu.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-latin-400-normal.BCNrxLz_.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-latin-400-normal.maQnHeKB.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-latin-ext-400-italic.DUSsnRSD.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-latin-ext-400-italic.V7s3nWfX.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-latin-ext-400-normal.B4EmgUmt.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-latin-ext-400-normal.o4A__6QZ.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-vietnamese-400-italic.DQ8HKnks.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-vietnamese-400-italic.ORtyMVfw.woff +0 -0
- package/.output/public/_nuxt/eb-garamond-vietnamese-400-normal.CLvJdMEL.woff2 +0 -0
- package/.output/public/_nuxt/eb-garamond-vietnamese-400-normal.ifvNSiWx.woff +0 -0
- package/.output/public/_nuxt/entry.DjhxLu-f.css +1 -0
- package/.output/public/_nuxt/geist-cyrillic-ext-wght-normal.DjL33-gN.woff2 +0 -0
- package/.output/public/_nuxt/geist-cyrillic-wght-normal.BEAKL7Jp.woff2 +0 -0
- package/.output/public/_nuxt/geist-latin-ext-wght-normal.DC-KSUi6.woff2 +0 -0
- package/.output/public/_nuxt/geist-latin-wght-normal.BgDaEnEv.woff2 +0 -0
- package/.output/public/_nuxt/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.woff2 +0 -0
- package/.output/public/_nuxt/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2 +0 -0
- package/.output/public/_nuxt/geist-mono-latin-ext-wght-normal.Bwz-egvJ.woff2 +0 -0
- package/.output/public/_nuxt/geist-mono-latin-wght-normal.XN7g48iV.woff2 +0 -0
- package/.output/public/_nuxt/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2 +0 -0
- package/.output/public/_nuxt/geist-mono-vietnamese-wght-normal.DadHysG0.woff2 +0 -0
- package/.output/public/_nuxt/geist-vietnamese-wght-normal.6IgcOCM7.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-500-normal.Ael50iVv.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-500-normal.Bq9vWWag.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-600-normal.CTOM6hUh.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-600-normal.fLZuRloM.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BIfNGwUT.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-ext-500-normal.BqneJy0T.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.9HEixskS.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-cyrillic-ext-600-normal.V-xxqcpd.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-600-normal.BgSNZQsw.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-600-normal.DWFSQ4vo.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-ext-500-normal.CAhNIIs5.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-ext-500-normal.CZ70TYgx.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-ext-600-normal.D38SheWl.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-latin-ext-600-normal.DmB0ttJJ.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-vietnamese-500-normal.C8zxqsMH.woff +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-vietnamese-500-normal.DZ4AoWbu.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-vietnamese-600-normal.D2EvbN8M.woff2 +0 -0
- package/.output/public/_nuxt/ibm-plex-mono-vietnamese-600-normal.iLQfcSjf.woff +0 -0
- package/.output/public/_nuxt/kZl6yT-12.js +1 -0
- package/.output/public/_nuxt/lO5tpDZ5.js +1 -0
- package/.output/public/_nuxt/logs.DaIsHWZE.css +1 -0
- package/.output/public/_nuxt/monitor.41fCD6TB.css +1 -0
- package/.output/public/_nuxt/pRQri7vQ2.js +4 -0
- package/.output/public/_nuxt/pages.CytEOfUs.css +1 -0
- package/.output/public/_nuxt/plugins.FTm0PcEe.css +1 -0
- package/.output/public/_nuxt/rzGB_ojX.js +32 -0
- package/.output/public/_nuxt/settings.BANibAnV.css +1 -0
- package/.output/public/_nuxt/teams.B8JNbUZg.css +1 -0
- package/.output/public/_nuxt/tokens.CWOTXM-Z.css +1 -0
- package/.output/public/_nuxt/town.BLrD9-WH.css +1 -0
- package/.output/public/_nuxt/town.C_DsNW0J.css +1 -0
- package/.output/public/_nuxt/uBbDCfTz.js +1 -0
- package/.output/public/_nuxt/ubPfs9mQ.js +1 -0
- package/.output/public/_nuxt/users.D8lcLE62.css +1 -0
- package/.output/public/_nuxt/workshop.B98sHiJq.css +1 -0
- package/.output/public/assets/game/character/bot.png +0 -0
- package/.output/public/assets/game/character/device-3d.glb +0 -0
- package/.output/public/assets/game/character/hero-3d.glb +0 -0
- package/.output/public/assets/game/character/hero-anime-1.glb +0 -0
- package/.output/public/assets/game/character/hero-anime-2.glb +0 -0
- package/.output/public/assets/game/character/hero-anime-3.glb +0 -0
- package/.output/public/assets/game/character/hero-anime-4.glb +0 -0
- package/.output/public/assets/game/character/knight.png +0 -0
- package/.output/public/assets/game/character/mage.png +0 -0
- package/.output/public/assets/game/coin.png +0 -0
- package/.output/public/assets/game/devices/agv.glb +0 -0
- package/.output/public/assets/game/devices/caster.glb +0 -0
- package/.output/public/assets/game/devices/device-console.glb +0 -0
- package/.output/public/assets/game/devices/device-robot-arm.glb +0 -0
- package/.output/public/assets/game/devices/device-scanner.glb +0 -0
- package/.output/public/assets/game/devices/extruder.glb +0 -0
- package/.output/public/assets/game/devices/mdo.glb +0 -0
- package/.output/public/assets/game/devices/power-cabinet.glb +0 -0
- package/.output/public/assets/game/devices/pump.glb +0 -0
- package/.output/public/assets/game/devices/tdo.glb +0 -0
- package/.output/public/assets/game/devices/thickness-scanner.glb +0 -0
- package/.output/public/assets/game/devices/winder.glb +0 -0
- package/.output/public/assets/game/npc/boltnu-sheet.png +0 -0
- package/.output/public/assets/game/npc/fluttaflap-sheet.png +0 -0
- package/.output/public/assets/game/npc/rockitten-sheet.png +0 -0
- package/.output/public/assets/game/npc/tux-sheet.png +0 -0
- package/.output/public/assets/game/player/misa-back-walk.000.png +0 -0
- package/.output/public/assets/game/player/misa-back-walk.001.png +0 -0
- package/.output/public/assets/game/player/misa-back-walk.002.png +0 -0
- package/.output/public/assets/game/player/misa-back-walk.003.png +0 -0
- package/.output/public/assets/game/player/misa-back.png +0 -0
- package/.output/public/assets/game/player/misa-front-walk.000.png +0 -0
- package/.output/public/assets/game/player/misa-front-walk.001.png +0 -0
- package/.output/public/assets/game/player/misa-front-walk.002.png +0 -0
- package/.output/public/assets/game/player/misa-front-walk.003.png +0 -0
- package/.output/public/assets/game/player/misa-front.png +0 -0
- package/.output/public/assets/game/player/misa-left-walk.000.png +0 -0
- package/.output/public/assets/game/player/misa-left-walk.001.png +0 -0
- package/.output/public/assets/game/player/misa-left-walk.002.png +0 -0
- package/.output/public/assets/game/player/misa-left-walk.003.png +0 -0
- package/.output/public/assets/game/player/misa-left.png +0 -0
- package/.output/public/assets/game/player/misa-right-walk.000.png +0 -0
- package/.output/public/assets/game/player/misa-right-walk.001.png +0 -0
- package/.output/public/assets/game/player/misa-right-walk.002.png +0 -0
- package/.output/public/assets/game/player/misa-right-walk.003.png +0 -0
- package/.output/public/assets/game/player/misa-right.png +0 -0
- package/.output/public/assets/game/player-sheet.png +0 -0
- package/.output/public/assets/game/tuxemon-town.json +1 -0
- package/.output/public/assets/game/tuxmon-sample-32px-extruded.png +0 -0
- package/.output/public/assets/game/wuwa/scene-map.png +0 -0
- package/.output/public/assets/game/wuwa/world-far.png +0 -0
- package/.output/public/assets/game/wuwa/world-middle.png +0 -0
- package/.output/public/assets/game/wuwa/world-near.png +0 -0
- package/.output/public/assets/game/wuwa/wu-aura.png +0 -0
- package/.output/public/assets/game/wuwa/wu-lead.png +0 -0
- package/.output/public/assets/game/wuwa/wu-ring.png +0 -0
- package/.output/public/assets/game/wuwa/wu-slash.png +0 -0
- package/.output/public/assets/game/wuwa/wu-worker-0.png +0 -0
- package/.output/public/assets/game/wuwa/wu-worker-1.png +0 -0
- package/.output/public/assets/game/wuwa/wu-worker-2.png +0 -0
- package/.output/public/favicon.svg +14 -0
- package/.output/public/scene/background/cyber-town-background.svg +110 -0
- package/.output/server/chunks/_/LeftOutlined.mjs +23 -0
- package/.output/server/chunks/_/LeftOutlined.mjs.map +1 -0
- package/.output/server/chunks/_/SearchOutlined.mjs +5141 -0
- package/.output/server/chunks/_/SearchOutlined.mjs.map +1 -0
- package/.output/server/chunks/_/character-asset.repo.mjs +86 -0
- package/.output/server/chunks/_/character-asset.repo.mjs.map +1 -0
- package/.output/server/chunks/_/error-500.mjs +20 -0
- package/.output/server/chunks/_/error-500.mjs.map +1 -0
- package/.output/server/chunks/_/host-bindings.mjs +53 -0
- package/.output/server/chunks/_/host-bindings.mjs.map +1 -0
- package/.output/server/chunks/_/nitro.mjs +26962 -0
- package/.output/server/chunks/_/nitro.mjs.map +1 -0
- package/.output/server/chunks/_/scene-layout.repo.mjs +72 -0
- package/.output/server/chunks/_/scene-layout.repo.mjs.map +1 -0
- package/.output/server/chunks/_/user.schema.mjs +36 -0
- package/.output/server/chunks/_/user.schema.mjs.map +1 -0
- package/.output/server/chunks/build/Col-D7fjGDF6.mjs +338 -0
- package/.output/server/chunks/build/Col-D7fjGDF6.mjs.map +1 -0
- package/.output/server/chunks/build/OmpTerminalPanel-CZnxR3M_.mjs +915 -0
- package/.output/server/chunks/build/OmpTerminalPanel-CZnxR3M_.mjs.map +1 -0
- package/.output/server/chunks/build/TownView-DYlUNRZe.mjs +2671 -0
- package/.output/server/chunks/build/TownView-DYlUNRZe.mjs.map +1 -0
- package/.output/server/chunks/build/_id_-BOhG2yz8.mjs +659 -0
- package/.output/server/chunks/build/_id_-BOhG2yz8.mjs.map +1 -0
- package/.output/server/chunks/build/_id_-CuyMYmhY.mjs +312 -0
- package/.output/server/chunks/build/_id_-CuyMYmhY.mjs.map +1 -0
- package/.output/server/chunks/build/_wsId_-B5f5BdW2.mjs +9324 -0
- package/.output/server/chunks/build/_wsId_-B5f5BdW2.mjs.map +1 -0
- package/.output/server/chunks/build/agents-BVaxN75W.mjs +934 -0
- package/.output/server/chunks/build/agents-BVaxN75W.mjs.map +1 -0
- package/.output/server/chunks/build/alert-gH-s7yIh.mjs +264 -0
- package/.output/server/chunks/build/alert-gH-s7yIh.mjs.map +1 -0
- package/.output/server/chunks/build/button-BhbX5ACI.mjs +1938 -0
- package/.output/server/chunks/build/button-BhbX5ACI.mjs.map +1 -0
- package/.output/server/chunks/build/card-l4BbX67w.mjs +955 -0
- package/.output/server/chunks/build/card-l4BbX67w.mjs.map +1 -0
- package/.output/server/chunks/build/channel-templates-D1K2IKrE.mjs +832 -0
- package/.output/server/chunks/build/channel-templates-D1K2IKrE.mjs.map +1 -0
- package/.output/server/chunks/build/checkbox-BF11p3dH.mjs +439 -0
- package/.output/server/chunks/build/checkbox-BF11p3dH.mjs.map +1 -0
- package/.output/server/chunks/build/client-only-CFTHwakk.mjs +43 -0
- package/.output/server/chunks/build/client-only-CFTHwakk.mjs.map +1 -0
- package/.output/server/chunks/build/connection-Dc0fn6yd.mjs +120 -0
- package/.output/server/chunks/build/connection-Dc0fn6yd.mjs.map +1 -0
- package/.output/server/chunks/build/daq-ObtN1TQ4.mjs +1066 -0
- package/.output/server/chunks/build/daq-ObtN1TQ4.mjs.map +1 -0
- package/.output/server/chunks/build/dcw-fINr-He1.mjs +243 -0
- package/.output/server/chunks/build/dcw-fINr-He1.mjs.map +1 -0
- package/.output/server/chunks/build/default-CVVO40Jj.mjs +1209 -0
- package/.output/server/chunks/build/default-CVVO40Jj.mjs.map +1 -0
- package/.output/server/chunks/build/drawer-CVValqoh.mjs +836 -0
- package/.output/server/chunks/build/drawer-CVValqoh.mjs.map +1 -0
- package/.output/server/chunks/build/dropdown-ByCsEWlQ.mjs +14 -0
- package/.output/server/chunks/build/dropdown-ByCsEWlQ.mjs.map +1 -0
- package/.output/server/chunks/build/dropdown-Dex8PXu6.mjs +558 -0
- package/.output/server/chunks/build/dropdown-Dex8PXu6.mjs.map +1 -0
- package/.output/server/chunks/build/initDefaultProps-DIbWwP4R.mjs +21 -0
- package/.output/server/chunks/build/initDefaultProps-DIbWwP4R.mjs.map +1 -0
- package/.output/server/chunks/build/input--KMeLYqZ.mjs +2617 -0
- package/.output/server/chunks/build/input--KMeLYqZ.mjs.map +1 -0
- package/.output/server/chunks/build/input-number-BBlRoAJ7.mjs +1521 -0
- package/.output/server/chunks/build/input-number-BBlRoAJ7.mjs.map +1 -0
- package/.output/server/chunks/build/interval-Bt11uRPw.mjs +9 -0
- package/.output/server/chunks/build/interval-Bt11uRPw.mjs.map +1 -0
- package/.output/server/chunks/build/isNumeric-CP7q_yhz.mjs +7 -0
- package/.output/server/chunks/build/isNumeric-CP7q_yhz.mjs.map +1 -0
- package/.output/server/chunks/build/logs-DqNgCJAn.mjs +188 -0
- package/.output/server/chunks/build/logs-DqNgCJAn.mjs.map +1 -0
- package/.output/server/chunks/build/menu-xN-SXb9Q.mjs +1950 -0
- package/.output/server/chunks/build/menu-xN-SXb9Q.mjs.map +1 -0
- package/.output/server/chunks/build/modal-DrCOcjrl.mjs +1272 -0
- package/.output/server/chunks/build/modal-DrCOcjrl.mjs.map +1 -0
- package/.output/server/chunks/build/monitor-CTZLwbdw.mjs +2329 -0
- package/.output/server/chunks/build/monitor-CTZLwbdw.mjs.map +1 -0
- package/.output/server/chunks/build/pages-DC52d7z7.mjs +470 -0
- package/.output/server/chunks/build/pages-DC52d7z7.mjs.map +1 -0
- package/.output/server/chunks/build/plugins-DVQty7qG.mjs +231 -0
- package/.output/server/chunks/build/plugins-DVQty7qG.mjs.map +1 -0
- package/.output/server/chunks/build/popconfirm-C5H1Qoh3.mjs +342 -0
- package/.output/server/chunks/build/popconfirm-C5H1Qoh3.mjs.map +1 -0
- package/.output/server/chunks/build/responsiveObserve-CS0UB6wQ.mjs +78 -0
- package/.output/server/chunks/build/responsiveObserve-CS0UB6wQ.mjs.map +1 -0
- package/.output/server/chunks/build/select-D7H2ysgT.mjs +3923 -0
- package/.output/server/chunks/build/select-D7H2ysgT.mjs.map +1 -0
- package/.output/server/chunks/build/settings-BeergncK.mjs +557 -0
- package/.output/server/chunks/build/settings-BeergncK.mjs.map +1 -0
- package/.output/server/chunks/build/space-DCwIlnkI.mjs +197 -0
- package/.output/server/chunks/build/space-DCwIlnkI.mjs.map +1 -0
- package/.output/server/chunks/build/spin-HVY81X_L.mjs +358 -0
- package/.output/server/chunks/build/spin-HVY81X_L.mjs.map +1 -0
- package/.output/server/chunks/build/switch-VC0m9ede.mjs +377 -0
- package/.output/server/chunks/build/switch-VC0m9ede.mjs.map +1 -0
- package/.output/server/chunks/build/table-BksLg3Q_.mjs +8883 -0
- package/.output/server/chunks/build/table-BksLg3Q_.mjs.map +1 -0
- package/.output/server/chunks/build/tabs-CzUfD3iX.mjs +1925 -0
- package/.output/server/chunks/build/tabs-CzUfD3iX.mjs.map +1 -0
- package/.output/server/chunks/build/tag-oQI3VtqM.mjs +1157 -0
- package/.output/server/chunks/build/tag-oQI3VtqM.mjs.map +1 -0
- package/.output/server/chunks/build/teams-CFeDlHDh.mjs +910 -0
- package/.output/server/chunks/build/teams-CFeDlHDh.mjs.map +1 -0
- package/.output/server/chunks/build/tokens-CBAUbOce.mjs +818 -0
- package/.output/server/chunks/build/tokens-CBAUbOce.mjs.map +1 -0
- package/.output/server/chunks/build/town-BUqRobze.mjs +48 -0
- package/.output/server/chunks/build/town-BUqRobze.mjs.map +1 -0
- package/.output/server/chunks/build/town-BxH-XXth.mjs +94 -0
- package/.output/server/chunks/build/town-BxH-XXth.mjs.map +1 -0
- package/.output/server/chunks/build/useDaqStream-CwORhsD7.mjs +310 -0
- package/.output/server/chunks/build/useDaqStream-CwORhsD7.mjs.map +1 -0
- package/.output/server/chunks/build/useDcwStream-BkWDGaWp.mjs +450 -0
- package/.output/server/chunks/build/useDcwStream-BkWDGaWp.mjs.map +1 -0
- package/.output/server/chunks/build/useDeviceTwins-NhtXqSkU.mjs +127 -0
- package/.output/server/chunks/build/useDeviceTwins-NhtXqSkU.mjs.map +1 -0
- package/.output/server/chunks/build/useOpsLog-CU64VDg5.mjs +124 -0
- package/.output/server/chunks/build/useOpsLog-CU64VDg5.mjs.map +1 -0
- package/.output/server/chunks/build/useSiteConfig-Cc-ABesl.mjs +27 -0
- package/.output/server/chunks/build/useSiteConfig-Cc-ABesl.mjs.map +1 -0
- package/.output/server/chunks/build/useTownBus-D9SoIsAN.mjs +25 -0
- package/.output/server/chunks/build/useTownBus-D9SoIsAN.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkshopApi-5er8_EHZ.mjs +4786 -0
- package/.output/server/chunks/build/useWorkshopApi-5er8_EHZ.mjs.map +1 -0
- package/.output/server/chunks/build/useWorkshopWs-Dwr_1Q8f.mjs +1068 -0
- package/.output/server/chunks/build/useWorkshopWs-Dwr_1Q8f.mjs.map +1 -0
- package/.output/server/chunks/build/user-CpVY4OAA.mjs +140 -0
- package/.output/server/chunks/build/user-CpVY4OAA.mjs.map +1 -0
- package/.output/server/chunks/build/users-BMs4s_6K.mjs +558 -0
- package/.output/server/chunks/build/users-BMs4s_6K.mjs.map +1 -0
- package/.output/server/chunks/build/workshop-CJAyZ5zS.mjs +917 -0
- package/.output/server/chunks/build/workshop-CJAyZ5zS.mjs.map +1 -0
- package/.output/server/chunks/build/workspaces-Dq-1zvu9.mjs +125 -0
- package/.output/server/chunks/build/workspaces-Dq-1zvu9.mjs.map +1 -0
- package/.output/server/chunks/routes/api/health.get.mjs +40 -0
- package/.output/server/chunks/routes/api/health.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.get.mjs +27 -0
- package/.output/server/chunks/routes/api/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/index.post.mjs +27 -0
- package/.output/server/chunks/routes/api/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/mcp/workshop.mjs +498 -0
- package/.output/server/chunks/routes/api/mcp/workshop.mjs.map +1 -0
- package/.output/server/chunks/routes/api/metrics.mjs +66 -0
- package/.output/server/chunks/routes/api/metrics.mjs.map +1 -0
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs +33 -0
- package/.output/server/chunks/routes/api/plugins/_name/_...path_.mjs.map +1 -0
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs +30 -0
- package/.output/server/chunks/routes/api/plugins/client/_name_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs +22 -0
- package/.output/server/chunks/routes/api/plugins/manifest.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/config.get.mjs +24 -0
- package/.output/server/chunks/routes/api/system/config.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/index.get.mjs +24 -0
- package/.output/server/chunks/routes/api/system/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/index.patch.mjs +30 -0
- package/.output/server/chunks/routes/api/system/index.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs +148 -0
- package/.output/server/chunks/routes/api/system/monitor/terminal/ws.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs +41 -0
- package/.output/server/chunks/routes/api/system/monitor/terminate.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/monitor.get.mjs +24 -0
- package/.output/server/chunks/routes/api/system/monitor.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs +35 -0
- package/.output/server/chunks/routes/api/system/settings/events.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs +24 -0
- package/.output/server/chunks/routes/api/system/settings/reset.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs +26 -0
- package/.output/server/chunks/routes/api/users/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/_id_.get.mjs +26 -0
- package/.output/server/chunks/routes/api/users/_id_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/_id_.put.mjs +29 -0
- package/.output/server/chunks/routes/api/users/_id_.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/index.get.mjs +23 -0
- package/.output/server/chunks/routes/api/users/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/index.post.mjs +26 -0
- package/.output/server/chunks/routes/api/users/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/login.post.mjs +25 -0
- package/.output/server/chunks/routes/api/users/login.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/logout.post.mjs +23 -0
- package/.output/server/chunks/routes/api/users/logout.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/me.get.mjs +23 -0
- package/.output/server/chunks/routes/api/users/me.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/register.post.mjs +25 -0
- package/.output/server/chunks/routes/api/users/register.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs +25 -0
- package/.output/server/chunks/routes/api/users/tokens/_id/token.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs +25 -0
- package/.output/server/chunks/routes/api/users/tokens/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs +28 -0
- package/.output/server/chunks/routes/api/users/tokens/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs +22 -0
- package/.output/server/chunks/routes/api/workshop/_...path_.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs +61 -0
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs +333 -0
- package/.output/server/chunks/routes/api/workshop/a2a/_agentId/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs +35 -0
- package/.output/server/chunks/routes/api/workshop/a2a/send.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/approvals/_id/decide.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs +31 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/bindings/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs +32 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs +26 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/index2.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs +38 -0
- package/.output/server/chunks/routes/api/workshop/agent-tools/invoke.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs +38 -0
- package/.output/server/chunks/routes/api/workshop/agents/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/agents/subscribe.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs +38 -0
- package/.output/server/chunks/routes/api/workshop/approvals/_id/decide.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs +38 -0
- package/.output/server/chunks/routes/api/workshop/assets/character/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs +47 -0
- package/.output/server/chunks/routes/api/workshop/assets/devices/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/assets/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs +81 -0
- package/.output/server/chunks/routes/api/workshop/assets/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs +81 -0
- package/.output/server/chunks/routes/api/workshop/assets/index2.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs +56 -0
- package/.output/server/chunks/routes/api/workshop/assets/index2.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs +55 -0
- package/.output/server/chunks/routes/api/workshop/audit.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/caller.mjs +107 -0
- package/.output/server/chunks/routes/api/workshop/caller.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs +37 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id/instantiate.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs +55 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs +39 -0
- package/.output/server/chunks/routes/api/workshop/channel-templates/from-channel.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/activate.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs +36 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs +52 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs +37 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/_memoryId_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs +46 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/memories/search.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs +42 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/model.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs +40 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/position.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs +59 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/range.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs +33 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId/stop.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs +32 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs +37 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/agents/_agentId_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs +58 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/events.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs +34 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs +62 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs +35 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs +47 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index2.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs +49 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs +74 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index3.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs +84 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/index4.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs +36 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/memories/_memoryId_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs +31 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/queue.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id/terminals.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/channels/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/channels/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs +37 -0
- package/.output/server/chunks/routes/api/workshop/channels/index.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs +24 -0
- package/.output/server/chunks/routes/api/workshop/channels.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs +53 -0
- package/.output/server/chunks/routes/api/workshop/channels.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/bind.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs +34 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/samples.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id/test.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs +41 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs +42 -0
- package/.output/server/chunks/routes/api/workshop/daq/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs +26 -0
- package/.output/server/chunks/routes/api/workshop/daq/alarms/_id/ack.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/daq/alarms.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs +53 -0
- package/.output/server/chunks/routes/api/workshop/daq/controller.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/daq/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/daq/infra/reconnect.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs +24 -0
- package/.output/server/chunks/routes/api/workshop/daq/infra.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/daq/templates/_key_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/daq/test-driver.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/bind.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/param-ledger.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/test.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id/write.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs +37 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/dcw/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs +46 -0
- package/.output/server/chunks/routes/api/workshop/dcw/controller.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs +33 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs +40 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs +26 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index2.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index2.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs +35 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index3.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index3.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs +25 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index4.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index4.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs +24 -0
- package/.output/server/chunks/routes/api/workshop/dcw/index5.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/dcw/journal/node/_nodeId/rollback.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs +41 -0
- package/.output/server/chunks/routes/api/workshop/dcw/line/query.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs +45 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/start.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs +44 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id/stop.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs +43 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/lines/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs +32 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/judge.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs +35 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/rollback.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id/series.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/dcw/optimizations/_id_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/dcw/products/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs +47 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/apply.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs +31 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/mark-good.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id/rollback-good.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/dcw/recipes/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/close.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/data.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/dcw/runs/_id/rollback.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/dcw/templates/_key_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/dcw/test-driver.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/control.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id/telemetry.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs +32 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs +36 -0
- package/.output/server/chunks/routes/api/workshop/device-twins/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs +43 -0
- package/.output/server/chunks/routes/api/workshop/fs/dirs.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index.get.mjs +25 -0
- package/.output/server/chunks/routes/api/workshop/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index.post.mjs +38 -0
- package/.output/server/chunks/routes/api/workshop/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs +24 -0
- package/.output/server/chunks/routes/api/workshop/index10.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs +31 -0
- package/.output/server/chunks/routes/api/workshop/index2.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs +68 -0
- package/.output/server/chunks/routes/api/workshop/index2.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs +25 -0
- package/.output/server/chunks/routes/api/workshop/index3.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs +41 -0
- package/.output/server/chunks/routes/api/workshop/index3.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs +47 -0
- package/.output/server/chunks/routes/api/workshop/index4.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/index4.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs +36 -0
- package/.output/server/chunks/routes/api/workshop/index5.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs +40 -0
- package/.output/server/chunks/routes/api/workshop/index5.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs +26 -0
- package/.output/server/chunks/routes/api/workshop/index6.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs +43 -0
- package/.output/server/chunks/routes/api/workshop/index6.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs +40 -0
- package/.output/server/chunks/routes/api/workshop/index7.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs +36 -0
- package/.output/server/chunks/routes/api/workshop/index7.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/index8.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/index8.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs +25 -0
- package/.output/server/chunks/routes/api/workshop/index9.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs +31 -0
- package/.output/server/chunks/routes/api/workshop/mailbox/all.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/mailbox.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs +25 -0
- package/.output/server/chunks/routes/api/workshop/memories/maintenance.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs +33 -0
- package/.output/server/chunks/routes/api/workshop/plugins/_name/disable.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs +33 -0
- package/.output/server/chunks/routes/api/workshop/plugins/_name/enable.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs +28 -0
- package/.output/server/chunks/routes/api/workshop/plugins/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs +24 -0
- package/.output/server/chunks/routes/api/workshop/runtime.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs +32 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs +39 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts/_channelId_.put.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs +25 -0
- package/.output/server/chunks/routes/api/workshop/scene/layouts.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs +37 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/complete.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs +39 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/dispatch.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs +36 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs +44 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/report.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs +36 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id/retry.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs +37 -0
- package/.output/server/chunks/routes/api/workshop/tasks/_id_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs +24 -0
- package/.output/server/chunks/routes/api/workshop/tasks.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs +42 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/deploy.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs +39 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/index.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id/members/_agentId_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs +30 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs +29 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs +40 -0
- package/.output/server/chunks/routes/api/workshop/teams/_id_.patch.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs +35 -0
- package/.output/server/chunks/routes/api/workshop/users/me.get.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs +37 -0
- package/.output/server/chunks/routes/api/workshop/users/register.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs +39 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channel-templates/_tplId_.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs +27 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/_id/channels/_channelId_.post.mjs.map +1 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs +26 -0
- package/.output/server/chunks/routes/api/workshop/workspaces/index.delete.mjs.map +1 -0
- package/.output/server/chunks/routes/renderer.mjs +392 -0
- package/.output/server/chunks/routes/renderer.mjs.map +1 -0
- package/.output/server/chunks/virtual/_virtual_spa-template.mjs +4 -0
- package/.output/server/chunks/virtual/_virtual_spa-template.mjs.map +1 -0
- package/.output/server/chunks/virtual/entry.mjs +18401 -0
- package/.output/server/chunks/virtual/entry.mjs.map +1 -0
- package/.output/server/chunks/virtual/precomputed.mjs +4 -0
- package/.output/server/chunks/virtual/precomputed.mjs.map +1 -0
- package/.output/server/index.mjs +5561 -0
- package/.output/server/index.mjs.map +1 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/api.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/app.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/component.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/context.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/hooks.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/index.js +22 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/api/util.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/const.js +5 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/env.js +17 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/index.js +45 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/plugin.js +2 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/proxy.js +111 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/lib/cjs/time.js +28 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@6.6.4/package.json +37 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.10/dist/index.cjs +42 -0
- package/.output/server/node_modules/.nitro/@vue/devtools-api@7.7.10/package.json +32 -0
- package/.output/server/node_modules/.nitro/hookable@5.5.3/dist/index.cjs +299 -0
- package/.output/server/node_modules/.nitro/hookable@5.5.3/package.json +49 -0
- package/.output/server/node_modules/.nitro/hookable@6.1.1/dist/index.mjs +257 -0
- package/.output/server/node_modules/.nitro/hookable@6.1.1/package.json +53 -0
- package/.output/server/node_modules/@adonisjs/hash/build/chunk-7RS6HCBK.js +36 -0
- package/.output/server/node_modules/@adonisjs/hash/build/chunk-JSA56AE7.js +26 -0
- package/.output/server/node_modules/@adonisjs/hash/build/chunk-JSBRDJBE.js +30 -0
- package/.output/server/node_modules/@adonisjs/hash/build/chunk-RHMXMP27.js +202 -0
- package/.output/server/node_modules/@adonisjs/hash/build/chunk-WB54OA6N.js +193 -0
- package/.output/server/node_modules/@adonisjs/hash/build/index.js +9 -0
- package/.output/server/node_modules/@adonisjs/hash/build/src/drivers/scrypt.js +9 -0
- package/.output/server/node_modules/@adonisjs/hash/package.json +150 -0
- package/.output/server/node_modules/@ant-design/colors/dist/index.js +255 -0
- package/.output/server/node_modules/@ant-design/colors/package.json +53 -0
- package/.output/server/node_modules/@babel/parser/lib/index.js +14611 -0
- package/.output/server/node_modules/@babel/parser/package.json +50 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/conversion.js +250 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/css-color-names.js +157 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/format-input.js +189 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/from-ratio.js +30 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/index.js +512 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/interfaces.js +2 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/public_api.js +28 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/random.js +282 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/readability.js +86 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/to-ms-filter.js +20 -0
- package/.output/server/node_modules/@ctrl/tinycolor/dist/util.js +92 -0
- package/.output/server/node_modules/@ctrl/tinycolor/package.json +80 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/helpers.js +64 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/interfaces.js +16 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/mcp-server.js +32 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/experimental/tasks/server.js +246 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/package.json +1 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +41 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +429 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +917 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/sseKeepAlive.js +13 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/webStandardStreamableHttp.js +949 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-compat.js +228 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/server/zod-json-schema-compat.js +51 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js +57 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +1107 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/toolNameValidation.js +92 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uriTemplate.js +239 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +2065 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/dist/esm/validation/ajv-provider.js +87 -0
- package/.output/server/node_modules/@modelcontextprotocol/sdk/package.json +165 -0
- package/.output/server/node_modules/@phc/format/index.js +229 -0
- package/.output/server/node_modules/@phc/format/package.json +60 -0
- package/.output/server/node_modules/@poppinss/exception/build/index.js +44 -0
- package/.output/server/node_modules/@poppinss/exception/package.json +109 -0
- package/.output/server/node_modules/@poppinss/object-builder/build/index.js +49 -0
- package/.output/server/node_modules/@poppinss/object-builder/package.json +112 -0
- package/.output/server/node_modules/@poppinss/string/build/index.js +2 -0
- package/.output/server/node_modules/@poppinss/string/build/string-DVIVpZLG.js +737 -0
- package/.output/server/node_modules/@poppinss/string/package.json +131 -0
- package/.output/server/node_modules/@poppinss/utils/build/chunk-2KG3PWR4.js +17 -0
- package/.output/server/node_modules/@poppinss/utils/build/chunk-4V5ON6P7.js +7 -0
- package/.output/server/node_modules/@poppinss/utils/build/chunk-EJKUJ44Y.js +12 -0
- package/.output/server/node_modules/@poppinss/utils/build/chunk-H54AK3PI.js +7 -0
- package/.output/server/node_modules/@poppinss/utils/build/chunk-XHQBV7AF.js +39 -0
- package/.output/server/node_modules/@poppinss/utils/build/index.js +365 -0
- package/.output/server/node_modules/@poppinss/utils/build/lodash/main.cjs +39 -0
- package/.output/server/node_modules/@poppinss/utils/package.json +153 -0
- package/.output/server/node_modules/@vue/compiler-core/dist/compiler-core.cjs.prod.js +6801 -0
- package/.output/server/node_modules/@vue/compiler-core/package.json +58 -0
- package/.output/server/node_modules/@vue/compiler-dom/dist/compiler-dom.cjs.prod.js +692 -0
- package/.output/server/node_modules/@vue/compiler-dom/package.json +57 -0
- package/.output/server/node_modules/@vue/compiler-ssr/dist/compiler-ssr.cjs.js +1420 -0
- package/.output/server/node_modules/@vue/compiler-ssr/package.json +34 -0
- package/.output/server/node_modules/@vue/devtools-kit/dist/index.cjs +6781 -0
- package/.output/server/node_modules/@vue/devtools-kit/package.json +45 -0
- package/.output/server/node_modules/@vue/devtools-shared/dist/index.cjs +378 -0
- package/.output/server/node_modules/@vue/devtools-shared/package.json +35 -0
- package/.output/server/node_modules/@vue/reactivity/dist/reactivity.cjs.prod.js +1903 -0
- package/.output/server/node_modules/@vue/reactivity/package.json +55 -0
- package/.output/server/node_modules/@vue/runtime-core/dist/runtime-core.cjs.prod.js +6976 -0
- package/.output/server/node_modules/@vue/runtime-core/package.json +52 -0
- package/.output/server/node_modules/@vue/runtime-dom/dist/runtime-dom.cjs.prod.js +1841 -0
- package/.output/server/node_modules/@vue/runtime-dom/package.json +60 -0
- package/.output/server/node_modules/@vue/server-renderer/dist/server-renderer.cjs.prod.js +904 -0
- package/.output/server/node_modules/@vue/server-renderer/package.json +53 -0
- package/.output/server/node_modules/@vue/shared/dist/shared.cjs.prod.js +609 -0
- package/.output/server/node_modules/@vue/shared/package.json +47 -0
- package/.output/server/node_modules/@xterm/addon-fit/lib/addon-fit.js +2 -0
- package/.output/server/node_modules/@xterm/addon-fit/package.json +26 -0
- package/.output/server/node_modules/@xterm/xterm/lib/xterm.js +2 -0
- package/.output/server/node_modules/@xterm/xterm/package.json +111 -0
- package/.output/server/node_modules/agent-base/dist/src/index.js +203 -0
- package/.output/server/node_modules/agent-base/dist/src/promisify.js +18 -0
- package/.output/server/node_modules/agent-base/package.json +64 -0
- package/.output/server/node_modules/ajv/dist/ajv.js +50 -0
- package/.output/server/node_modules/ajv/dist/compile/codegen/code.js +156 -0
- package/.output/server/node_modules/ajv/dist/compile/codegen/index.js +697 -0
- package/.output/server/node_modules/ajv/dist/compile/codegen/scope.js +143 -0
- package/.output/server/node_modules/ajv/dist/compile/errors.js +123 -0
- package/.output/server/node_modules/ajv/dist/compile/index.js +242 -0
- package/.output/server/node_modules/ajv/dist/compile/names.js +28 -0
- package/.output/server/node_modules/ajv/dist/compile/ref_error.js +12 -0
- package/.output/server/node_modules/ajv/dist/compile/resolve.js +155 -0
- package/.output/server/node_modules/ajv/dist/compile/rules.js +26 -0
- package/.output/server/node_modules/ajv/dist/compile/util.js +178 -0
- package/.output/server/node_modules/ajv/dist/compile/validate/applicability.js +19 -0
- package/.output/server/node_modules/ajv/dist/compile/validate/boolSchema.js +50 -0
- package/.output/server/node_modules/ajv/dist/compile/validate/dataType.js +203 -0
- package/.output/server/node_modules/ajv/dist/compile/validate/defaults.js +35 -0
- package/.output/server/node_modules/ajv/dist/compile/validate/index.js +520 -0
- package/.output/server/node_modules/ajv/dist/compile/validate/keyword.js +124 -0
- package/.output/server/node_modules/ajv/dist/compile/validate/subschema.js +81 -0
- package/.output/server/node_modules/ajv/dist/core.js +618 -0
- package/.output/server/node_modules/ajv/dist/refs/data.json +13 -0
- package/.output/server/node_modules/ajv/dist/refs/json-schema-draft-07.json +151 -0
- package/.output/server/node_modules/ajv/dist/runtime/equal.js +7 -0
- package/.output/server/node_modules/ajv/dist/runtime/ucs2length.js +24 -0
- package/.output/server/node_modules/ajv/dist/runtime/uri.js +6 -0
- package/.output/server/node_modules/ajv/dist/runtime/validation_error.js +11 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/additionalItems.js +49 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/additionalProperties.js +106 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/allOf.js +23 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/anyOf.js +12 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/contains.js +95 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/dependencies.js +85 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/if.js +66 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/index.js +44 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/items.js +52 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/items2020.js +30 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/not.js +26 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/oneOf.js +60 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/patternProperties.js +75 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/prefixItems.js +12 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/properties.js +54 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/propertyNames.js +38 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/applicator/thenElse.js +13 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/code.js +131 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/core/id.js +10 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/core/index.js +16 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/core/ref.js +122 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/discriminator/index.js +104 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/discriminator/types.js +9 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/draft7.js +17 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/format/format.js +92 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/format/index.js +6 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/metadata.js +18 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/const.js +25 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/enum.js +48 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/index.js +33 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitItems.js +24 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitLength.js +27 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitNumber.js +27 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/limitProperties.js +24 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/multipleOf.js +26 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/pattern.js +33 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/required.js +79 -0
- package/.output/server/node_modules/ajv/dist/vocabularies/validation/uniqueItems.js +64 -0
- package/.output/server/node_modules/ajv/package.json +126 -0
- package/.output/server/node_modules/ajv-formats/dist/formats.js +208 -0
- package/.output/server/node_modules/ajv-formats/dist/index.js +37 -0
- package/.output/server/node_modules/ajv-formats/dist/limit.js +69 -0
- package/.output/server/node_modules/ajv-formats/package.json +74 -0
- package/.output/server/node_modules/asynckit/index.js +6 -0
- package/.output/server/node_modules/asynckit/lib/abort.js +29 -0
- package/.output/server/node_modules/asynckit/lib/async.js +34 -0
- package/.output/server/node_modules/asynckit/lib/defer.js +26 -0
- package/.output/server/node_modules/asynckit/lib/iterate.js +75 -0
- package/.output/server/node_modules/asynckit/lib/state.js +37 -0
- package/.output/server/node_modules/asynckit/lib/terminator.js +29 -0
- package/.output/server/node_modules/asynckit/package.json +63 -0
- package/.output/server/node_modules/asynckit/parallel.js +43 -0
- package/.output/server/node_modules/asynckit/serial.js +17 -0
- package/.output/server/node_modules/asynckit/serialOrdered.js +75 -0
- package/.output/server/node_modules/axios/index.js +45 -0
- package/.output/server/node_modules/axios/lib/adapters/adapters.js +132 -0
- package/.output/server/node_modules/axios/lib/adapters/fetch.js +643 -0
- package/.output/server/node_modules/axios/lib/adapters/http.js +1406 -0
- package/.output/server/node_modules/axios/lib/adapters/xhr.js +228 -0
- package/.output/server/node_modules/axios/lib/axios.js +89 -0
- package/.output/server/node_modules/axios/lib/cancel/CancelToken.js +135 -0
- package/.output/server/node_modules/axios/lib/cancel/CanceledError.js +22 -0
- package/.output/server/node_modules/axios/lib/cancel/isCancel.js +5 -0
- package/.output/server/node_modules/axios/lib/core/Axios.js +301 -0
- package/.output/server/node_modules/axios/lib/core/AxiosError.js +219 -0
- package/.output/server/node_modules/axios/lib/core/AxiosHeaders.js +474 -0
- package/.output/server/node_modules/axios/lib/core/InterceptorManager.js +72 -0
- package/.output/server/node_modules/axios/lib/core/buildFullPath.js +88 -0
- package/.output/server/node_modules/axios/lib/core/dispatchRequest.js +89 -0
- package/.output/server/node_modules/axios/lib/core/mergeConfig.js +174 -0
- package/.output/server/node_modules/axios/lib/core/setFormDataHeaders.js +27 -0
- package/.output/server/node_modules/axios/lib/core/settle.js +27 -0
- package/.output/server/node_modules/axios/lib/core/transformData.js +28 -0
- package/.output/server/node_modules/axios/lib/defaults/index.js +177 -0
- package/.output/server/node_modules/axios/lib/defaults/transitional.js +10 -0
- package/.output/server/node_modules/axios/lib/env/data.js +1 -0
- package/.output/server/node_modules/axios/lib/helpers/AxiosTransformStream.js +156 -0
- package/.output/server/node_modules/axios/lib/helpers/AxiosURLSearchParams.js +59 -0
- package/.output/server/node_modules/axios/lib/helpers/Http2Sessions.js +119 -0
- package/.output/server/node_modules/axios/lib/helpers/HttpStatusCode.js +78 -0
- package/.output/server/node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js +29 -0
- package/.output/server/node_modules/axios/lib/helpers/bind.js +14 -0
- package/.output/server/node_modules/axios/lib/helpers/buildURL.js +69 -0
- package/.output/server/node_modules/axios/lib/helpers/callbackify.js +18 -0
- package/.output/server/node_modules/axios/lib/helpers/combineURLs.js +23 -0
- package/.output/server/node_modules/axios/lib/helpers/composeSignals.js +68 -0
- package/.output/server/node_modules/axios/lib/helpers/cookies.js +64 -0
- package/.output/server/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js +166 -0
- package/.output/server/node_modules/axios/lib/helpers/formDataToJSON.js +125 -0
- package/.output/server/node_modules/axios/lib/helpers/formDataToStream.js +119 -0
- package/.output/server/node_modules/axios/lib/helpers/fromDataURI.js +68 -0
- package/.output/server/node_modules/axios/lib/helpers/isAbsoluteURL.js +19 -0
- package/.output/server/node_modules/axios/lib/helpers/isAxiosError.js +14 -0
- package/.output/server/node_modules/axios/lib/helpers/isURLSameOrigin.js +16 -0
- package/.output/server/node_modules/axios/lib/helpers/parseHeaders.js +71 -0
- package/.output/server/node_modules/axios/lib/helpers/parseProtocol.js +6 -0
- package/.output/server/node_modules/axios/lib/helpers/progressEventReducer.js +54 -0
- package/.output/server/node_modules/axios/lib/helpers/readBlob.js +15 -0
- package/.output/server/node_modules/axios/lib/helpers/resolveConfig.js +105 -0
- package/.output/server/node_modules/axios/lib/helpers/sanitizeHeaderValue.js +60 -0
- package/.output/server/node_modules/axios/lib/helpers/shouldBypassProxy.js +329 -0
- package/.output/server/node_modules/axios/lib/helpers/speedometer.js +55 -0
- package/.output/server/node_modules/axios/lib/helpers/spread.js +28 -0
- package/.output/server/node_modules/axios/lib/helpers/throttle.js +44 -0
- package/.output/server/node_modules/axios/lib/helpers/toFormData.js +286 -0
- package/.output/server/node_modules/axios/lib/helpers/toURLEncodedForm.js +19 -0
- package/.output/server/node_modules/axios/lib/helpers/trackStream.js +89 -0
- package/.output/server/node_modules/axios/lib/helpers/validator.js +112 -0
- package/.output/server/node_modules/axios/lib/platform/common/utils.js +52 -0
- package/.output/server/node_modules/axios/lib/platform/index.js +7 -0
- package/.output/server/node_modules/axios/lib/platform/node/classes/Buffer.js +11 -0
- package/.output/server/node_modules/axios/lib/platform/node/classes/FormData.js +3 -0
- package/.output/server/node_modules/axios/lib/platform/node/classes/URLSearchParams.js +4 -0
- package/.output/server/node_modules/axios/lib/platform/node/index.js +37 -0
- package/.output/server/node_modules/axios/lib/utils.js +1029 -0
- package/.output/server/node_modules/axios/package.json +203 -0
- package/.output/server/node_modules/birpc/dist/index.cjs +296 -0
- package/.output/server/node_modules/birpc/package.json +57 -0
- package/.output/server/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/.output/server/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/.output/server/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/.output/server/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/.output/server/node_modules/call-bind-apply-helpers/package.json +85 -0
- package/.output/server/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/.output/server/node_modules/case-anything/dist/core.js +242 -0
- package/.output/server/node_modules/case-anything/dist/index.js +1 -0
- package/.output/server/node_modules/case-anything/dist/utils.js +90 -0
- package/.output/server/node_modules/case-anything/package.json +61 -0
- package/.output/server/node_modules/combined-stream/lib/combined_stream.js +208 -0
- package/.output/server/node_modules/combined-stream/package.json +25 -0
- package/.output/server/node_modules/content-type/index.js +225 -0
- package/.output/server/node_modules/content-type/package.json +42 -0
- package/.output/server/node_modules/debug/package.json +64 -0
- package/.output/server/node_modules/debug/src/browser.js +272 -0
- package/.output/server/node_modules/debug/src/common.js +292 -0
- package/.output/server/node_modules/debug/src/index.js +10 -0
- package/.output/server/node_modules/debug/src/node.js +263 -0
- package/.output/server/node_modules/delayed-stream/lib/delayed_stream.js +107 -0
- package/.output/server/node_modules/delayed-stream/package.json +27 -0
- package/.output/server/node_modules/devalue/index.js +17 -0
- package/.output/server/node_modules/devalue/package.json +39 -0
- package/.output/server/node_modules/devalue/src/base64.js +60 -0
- package/.output/server/node_modules/devalue/src/constants.js +12 -0
- package/.output/server/node_modules/devalue/src/operations.js +193 -0
- package/.output/server/node_modules/devalue/src/parse.js +270 -0
- package/.output/server/node_modules/devalue/src/stringify.js +428 -0
- package/.output/server/node_modules/devalue/src/uneval.js +582 -0
- package/.output/server/node_modules/devalue/src/utils.js +185 -0
- package/.output/server/node_modules/dunder-proto/get.js +30 -0
- package/.output/server/node_modules/dunder-proto/package.json +76 -0
- package/.output/server/node_modules/entities/dist/commonjs/decode-codepoint.js +77 -0
- package/.output/server/node_modules/entities/dist/commonjs/decode.js +568 -0
- package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-html.js +7 -0
- package/.output/server/node_modules/entities/dist/commonjs/generated/decode-data-xml.js +7 -0
- package/.output/server/node_modules/entities/dist/commonjs/internal/bin-trie-flags.js +21 -0
- package/.output/server/node_modules/entities/dist/commonjs/internal/decode-shared.js +31 -0
- package/.output/server/node_modules/entities/dist/commonjs/package.json +3 -0
- package/.output/server/node_modules/entities/package.json +120 -0
- package/.output/server/node_modules/es-define-property/index.js +14 -0
- package/.output/server/node_modules/es-define-property/package.json +81 -0
- package/.output/server/node_modules/es-errors/eval.js +4 -0
- package/.output/server/node_modules/es-errors/index.js +4 -0
- package/.output/server/node_modules/es-errors/package.json +80 -0
- package/.output/server/node_modules/es-errors/range.js +4 -0
- package/.output/server/node_modules/es-errors/ref.js +4 -0
- package/.output/server/node_modules/es-errors/syntax.js +4 -0
- package/.output/server/node_modules/es-errors/type.js +4 -0
- package/.output/server/node_modules/es-errors/uri.js +4 -0
- package/.output/server/node_modules/es-object-atoms/index.js +4 -0
- package/.output/server/node_modules/es-object-atoms/package.json +79 -0
- package/.output/server/node_modules/es-set-tostringtag/index.js +35 -0
- package/.output/server/node_modules/es-set-tostringtag/package.json +78 -0
- package/.output/server/node_modules/estree-walker/dist/umd/estree-walker.js +344 -0
- package/.output/server/node_modules/estree-walker/package.json +37 -0
- package/.output/server/node_modules/fast-deep-equal/index.js +46 -0
- package/.output/server/node_modules/fast-deep-equal/package.json +61 -0
- package/.output/server/node_modules/fast-uri/index.js +459 -0
- package/.output/server/node_modules/fast-uri/lib/schemes.js +267 -0
- package/.output/server/node_modules/fast-uri/lib/utils.js +443 -0
- package/.output/server/node_modules/fast-uri/package.json +68 -0
- package/.output/server/node_modules/flattie/dist/index.mjs +25 -0
- package/.output/server/node_modules/flattie/package.json +48 -0
- package/.output/server/node_modules/follow-redirects/debug.js +15 -0
- package/.output/server/node_modules/follow-redirects/index.js +709 -0
- package/.output/server/node_modules/follow-redirects/package.json +58 -0
- package/.output/server/node_modules/form-data/lib/form_data.js +506 -0
- package/.output/server/node_modules/form-data/lib/populate.js +10 -0
- package/.output/server/node_modules/form-data/package.json +82 -0
- package/.output/server/node_modules/function-bind/implementation.js +84 -0
- package/.output/server/node_modules/function-bind/index.js +5 -0
- package/.output/server/node_modules/function-bind/package.json +87 -0
- package/.output/server/node_modules/get-intrinsic/index.js +378 -0
- package/.output/server/node_modules/get-intrinsic/package.json +97 -0
- package/.output/server/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- package/.output/server/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- package/.output/server/node_modules/get-proto/index.js +27 -0
- package/.output/server/node_modules/get-proto/package.json +81 -0
- package/.output/server/node_modules/gopd/gOPD.js +4 -0
- package/.output/server/node_modules/gopd/index.js +15 -0
- package/.output/server/node_modules/gopd/package.json +77 -0
- package/.output/server/node_modules/has-flag/index.js +8 -0
- package/.output/server/node_modules/has-flag/package.json +46 -0
- package/.output/server/node_modules/has-symbols/index.js +14 -0
- package/.output/server/node_modules/has-symbols/package.json +111 -0
- package/.output/server/node_modules/has-symbols/shams.js +45 -0
- package/.output/server/node_modules/has-tostringtag/package.json +108 -0
- package/.output/server/node_modules/has-tostringtag/shams.js +8 -0
- package/.output/server/node_modules/hasown/index.js +8 -0
- package/.output/server/node_modules/hasown/package.json +91 -0
- package/.output/server/node_modules/https-proxy-agent/dist/agent.js +177 -0
- package/.output/server/node_modules/https-proxy-agent/dist/index.js +14 -0
- package/.output/server/node_modules/https-proxy-agent/dist/parse-proxy-response.js +66 -0
- package/.output/server/node_modules/https-proxy-agent/package.json +56 -0
- package/.output/server/node_modules/jose/dist/webapi/index.js +32 -0
- package/.output/server/node_modules/jose/dist/webapi/jwe/compact/decrypt.js +9 -0
- package/.output/server/node_modules/jose/dist/webapi/jwe/compact/encrypt.js +27 -0
- package/.output/server/node_modules/jose/dist/webapi/jwe/flattened/decrypt.js +11 -0
- package/.output/server/node_modules/jose/dist/webapi/jwe/flattened/encrypt.js +72 -0
- package/.output/server/node_modules/jose/dist/webapi/jwe/general/decrypt.js +51 -0
- package/.output/server/node_modules/jose/dist/webapi/jwe/general/encrypt.js +166 -0
- package/.output/server/node_modules/jose/dist/webapi/jwk/embedded.js +19 -0
- package/.output/server/node_modules/jose/dist/webapi/jwk/thumbprint.js +68 -0
- package/.output/server/node_modules/jose/dist/webapi/jwks/local.js +78 -0
- package/.output/server/node_modules/jose/dist/webapi/jwks/remote.js +170 -0
- package/.output/server/node_modules/jose/dist/webapi/jws/compact/sign.js +21 -0
- package/.output/server/node_modules/jose/dist/webapi/jws/compact/verify.js +9 -0
- package/.output/server/node_modules/jose/dist/webapi/jws/flattened/sign.js +31 -0
- package/.output/server/node_modules/jose/dist/webapi/jws/flattened/verify.js +24 -0
- package/.output/server/node_modules/jose/dist/webapi/jws/general/sign.js +74 -0
- package/.output/server/node_modules/jose/dist/webapi/jws/general/verify.js +44 -0
- package/.output/server/node_modules/jose/dist/webapi/jwt/decrypt.js +23 -0
- package/.output/server/node_modules/jose/dist/webapi/jwt/encrypt.js +101 -0
- package/.output/server/node_modules/jose/dist/webapi/jwt/sign.js +51 -0
- package/.output/server/node_modules/jose/dist/webapi/jwt/unsecured.js +64 -0
- package/.output/server/node_modules/jose/dist/webapi/jwt/verify.js +15 -0
- package/.output/server/node_modules/jose/dist/webapi/key/export.js +44 -0
- package/.output/server/node_modules/jose/dist/webapi/key/generate_key_pair.js +48 -0
- package/.output/server/node_modules/jose/dist/webapi/key/generate_secret.js +40 -0
- package/.output/server/node_modules/jose/dist/webapi/key/import.js +57 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/asn1.js +174 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/base64.js +22 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/buffer_utils.js +44 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/content_encryption.js +142 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/crypto_key.js +28 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/deflate.js +44 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/helpers.js +42 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/invalid_key_input.js +26 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/is_key_like.js +17 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/jwe_algorithms.js +107 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/jwe_decrypt.js +186 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/jwe_encrypt.js +110 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/jwk_to_key.js +17 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/jws_algorithms.js +73 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/jws_sign.js +74 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/jws_verify.js +107 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/jwt_claims_set.js +197 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/key.js +132 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/key_algorithm.js +10 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/key_descriptor.js +7 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/key_management.js +256 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/options.js +48 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/signing.js +26 -0
- package/.output/server/node_modules/jose/dist/webapi/lib/type_checks.js +35 -0
- package/.output/server/node_modules/jose/dist/webapi/util/base64url.js +39 -0
- package/.output/server/node_modules/jose/dist/webapi/util/decode_jwt.js +32 -0
- package/.output/server/node_modules/jose/dist/webapi/util/decode_protected_header.js +24 -0
- package/.output/server/node_modules/jose/dist/webapi/util/errors.js +99 -0
- package/.output/server/node_modules/jose/package.json +198 -0
- package/.output/server/node_modules/js-yaml/dist/js-yaml.mjs +3074 -0
- package/.output/server/node_modules/js-yaml/package.json +83 -0
- package/.output/server/node_modules/json-schema-traverse/index.js +93 -0
- package/.output/server/node_modules/json-schema-traverse/package.json +43 -0
- package/.output/server/node_modules/math-intrinsics/abs.js +4 -0
- package/.output/server/node_modules/math-intrinsics/floor.js +4 -0
- package/.output/server/node_modules/math-intrinsics/isNaN.js +6 -0
- package/.output/server/node_modules/math-intrinsics/max.js +4 -0
- package/.output/server/node_modules/math-intrinsics/min.js +4 -0
- package/.output/server/node_modules/math-intrinsics/package.json +86 -0
- package/.output/server/node_modules/math-intrinsics/pow.js +4 -0
- package/.output/server/node_modules/math-intrinsics/round.js +4 -0
- package/.output/server/node_modules/math-intrinsics/sign.js +11 -0
- package/.output/server/node_modules/mime-db/db.json +8519 -0
- package/.output/server/node_modules/mime-db/index.js +12 -0
- package/.output/server/node_modules/mime-db/package.json +60 -0
- package/.output/server/node_modules/mime-types/index.js +188 -0
- package/.output/server/node_modules/mime-types/package.json +44 -0
- package/.output/server/node_modules/ms/index.js +162 -0
- package/.output/server/node_modules/ms/package.json +38 -0
- package/.output/server/node_modules/nostics/dist/formatters/ansi.mjs +19 -0
- package/.output/server/node_modules/nostics/dist/index.mjs +187 -0
- package/.output/server/node_modules/nostics/package.json +125 -0
- package/.output/server/node_modules/oauth4webapi/build/index.js +2506 -0
- package/.output/server/node_modules/oauth4webapi/package.json +105 -0
- package/.output/server/node_modules/openid-client/build/index.js +1357 -0
- package/.output/server/node_modules/openid-client/package.json +122 -0
- package/.output/server/node_modules/perfect-debounce/dist/index.cjs +59 -0
- package/.output/server/node_modules/perfect-debounce/package.json +44 -0
- package/.output/server/node_modules/pinia/dist/pinia.prod.cjs +719 -0
- package/.output/server/node_modules/pinia/package.json +94 -0
- package/.output/server/node_modules/pluralize/package.json +40 -0
- package/.output/server/node_modules/pluralize/pluralize.js +503 -0
- package/.output/server/node_modules/proxy-from-env/index.js +103 -0
- package/.output/server/node_modules/proxy-from-env/package.json +46 -0
- package/.output/server/node_modules/safe-stable-stringify/esm/package.json +4 -0
- package/.output/server/node_modules/safe-stable-stringify/esm/wrapper.js +6 -0
- package/.output/server/node_modules/safe-stable-stringify/index.js +625 -0
- package/.output/server/node_modules/safe-stable-stringify/package.json +65 -0
- package/.output/server/node_modules/secure-json-parse/index.js +161 -0
- package/.output/server/node_modules/secure-json-parse/package.json +74 -0
- package/.output/server/node_modules/slugify/package.json +42 -0
- package/.output/server/node_modules/slugify/slugify.js +69 -0
- package/.output/server/node_modules/source-map-js/lib/array-set.js +121 -0
- package/.output/server/node_modules/source-map-js/lib/base64-vlq.js +140 -0
- package/.output/server/node_modules/source-map-js/lib/base64.js +67 -0
- package/.output/server/node_modules/source-map-js/lib/binary-search.js +111 -0
- package/.output/server/node_modules/source-map-js/lib/mapping-list.js +79 -0
- package/.output/server/node_modules/source-map-js/lib/quick-sort.js +132 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-consumer.js +1188 -0
- package/.output/server/node_modules/source-map-js/lib/source-map-generator.js +444 -0
- package/.output/server/node_modules/source-map-js/lib/source-node.js +413 -0
- package/.output/server/node_modules/source-map-js/lib/util.js +594 -0
- package/.output/server/node_modules/source-map-js/package.json +71 -0
- package/.output/server/node_modules/source-map-js/source-map.js +8 -0
- package/.output/server/node_modules/supports-color/index.js +135 -0
- package/.output/server/node_modules/supports-color/package.json +53 -0
- package/.output/server/node_modules/three/build/three.cjs +80028 -0
- package/.output/server/node_modules/three/build/three.core.js +60007 -0
- package/.output/server/node_modules/three/build/three.module.js +19610 -0
- package/.output/server/node_modules/three/examples/jsm/environments/RoomEnvironment.js +185 -0
- package/.output/server/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4860 -0
- package/.output/server/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +1501 -0
- package/.output/server/node_modules/three/examples/jsm/utils/SkeletonUtils.js +496 -0
- package/.output/server/node_modules/three/package.json +123 -0
- package/.output/server/node_modules/ufo/dist/index.mjs +645 -0
- package/.output/server/node_modules/ufo/package.json +48 -0
- package/.output/server/node_modules/unhead/dist/client.mjs +22 -0
- package/.output/server/node_modules/unhead/dist/index.mjs +52 -0
- package/.output/server/node_modules/unhead/dist/legacy.mjs +33 -0
- package/.output/server/node_modules/unhead/dist/minify.mjs +172 -0
- package/.output/server/node_modules/unhead/dist/parser.mjs +518 -0
- package/.output/server/node_modules/unhead/dist/plugins.mjs +631 -0
- package/.output/server/node_modules/unhead/dist/scripts.node.mjs +6 -0
- package/.output/server/node_modules/unhead/dist/server.mjs +99 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.10KEJHqy.mjs +184 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BCcw-xUY.mjs +19 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BEmVMkeA.mjs +673 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BGFxPGPQ.mjs +47 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BTzUdyNs.mjs +194 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.Bb4d5b9h.mjs +67 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.Bf_fPVYA.mjs +6 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.Bm4Y6XQI.mjs +17 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.BuspQZgK.mjs +231 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CGPOfp5O.mjs +32 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CHEy9ana.mjs +7 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.CTjuIdzk.mjs +27 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.D7HkBzZn.mjs +59 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.DNKiVLV7.mjs +400 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.JIneUUHd.mjs +264 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.q9F_9EzH.mjs +588 -0
- package/.output/server/node_modules/unhead/dist/shared/unhead.sGLr_XKf.mjs +201 -0
- package/.output/server/node_modules/unhead/dist/stream/client.mjs +28 -0
- package/.output/server/node_modules/unhead/dist/stream/iife.mjs +2 -0
- package/.output/server/node_modules/unhead/dist/stream/server.mjs +264 -0
- package/.output/server/node_modules/unhead/dist/utils.mjs +7 -0
- package/.output/server/node_modules/unhead/package.json +179 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.js +80 -0
- package/.output/server/node_modules/vue/dist/vue.cjs.prod.js +66 -0
- package/.output/server/node_modules/vue/index.js +7 -0
- package/.output/server/node_modules/vue/index.mjs +1 -0
- package/.output/server/node_modules/vue/package.json +112 -0
- package/.output/server/node_modules/vue/server-renderer/index.mjs +1 -0
- package/.output/server/node_modules/vue-bundle-renderer/dist/runtime.mjs +278 -0
- package/.output/server/node_modules/vue-bundle-renderer/package.json +54 -0
- package/.output/server/node_modules/vue-router/dist/devtools-EWN81iOl.mjs +1220 -0
- package/.output/server/node_modules/vue-router/dist/vue-router.mjs +1557 -0
- package/.output/server/node_modules/vue-router/package.json +153 -0
- package/.output/server/node_modules/vue-router/vue-router.node.mjs +2 -0
- package/.output/server/node_modules/zod/index.js +4 -0
- package/.output/server/node_modules/zod/package.json +118 -0
- package/.output/server/node_modules/zod/v3/ZodError.js +133 -0
- package/.output/server/node_modules/zod/v3/errors.js +9 -0
- package/.output/server/node_modules/zod/v3/external.js +6 -0
- package/.output/server/node_modules/zod/v3/helpers/errorUtil.js +6 -0
- package/.output/server/node_modules/zod/v3/helpers/parseUtil.js +109 -0
- package/.output/server/node_modules/zod/v3/helpers/typeAliases.js +1 -0
- package/.output/server/node_modules/zod/v3/helpers/util.js +133 -0
- package/.output/server/node_modules/zod/v3/index.js +4 -0
- package/.output/server/node_modules/zod/v3/locales/en.js +109 -0
- package/.output/server/node_modules/zod/v3/types.js +3693 -0
- package/.output/server/node_modules/zod/v4/classic/checks.js +1 -0
- package/.output/server/node_modules/zod/v4/classic/coerce.js +17 -0
- package/.output/server/node_modules/zod/v4/classic/compat.js +27 -0
- package/.output/server/node_modules/zod/v4/classic/errors.js +41 -0
- package/.output/server/node_modules/zod/v4/classic/external.js +18 -0
- package/.output/server/node_modules/zod/v4/classic/index.js +4 -0
- package/.output/server/node_modules/zod/v4/classic/iso.js +30 -0
- package/.output/server/node_modules/zod/v4/classic/parse.js +6 -0
- package/.output/server/node_modules/zod/v4/classic/schemas.js +1006 -0
- package/.output/server/node_modules/zod/v4/core/api.js +906 -0
- package/.output/server/node_modules/zod/v4/core/checks.js +565 -0
- package/.output/server/node_modules/zod/v4/core/core.js +61 -0
- package/.output/server/node_modules/zod/v4/core/doc.js +35 -0
- package/.output/server/node_modules/zod/v4/core/errors.js +195 -0
- package/.output/server/node_modules/zod/v4/core/function.js +75 -0
- package/.output/server/node_modules/zod/v4/core/index.js +15 -0
- package/.output/server/node_modules/zod/v4/core/json-schema.js +1 -0
- package/.output/server/node_modules/zod/v4/core/parse.js +57 -0
- package/.output/server/node_modules/zod/v4/core/regexes.js +95 -0
- package/.output/server/node_modules/zod/v4/core/registries.js +51 -0
- package/.output/server/node_modules/zod/v4/core/schemas.js +1717 -0
- package/.output/server/node_modules/zod/v4/core/to-json-schema.js +849 -0
- package/.output/server/node_modules/zod/v4/core/util.js +493 -0
- package/.output/server/node_modules/zod/v4/core/versions.js +5 -0
- package/.output/server/node_modules/zod/v4/index.js +3 -0
- package/.output/server/node_modules/zod/v4/locales/ar.js +116 -0
- package/.output/server/node_modules/zod/v4/locales/az.js +115 -0
- package/.output/server/node_modules/zod/v4/locales/be.js +164 -0
- package/.output/server/node_modules/zod/v4/locales/ca.js +118 -0
- package/.output/server/node_modules/zod/v4/locales/cs.js +135 -0
- package/.output/server/node_modules/zod/v4/locales/de.js +116 -0
- package/.output/server/node_modules/zod/v4/locales/en.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/eo.js +116 -0
- package/.output/server/node_modules/zod/v4/locales/es.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/fa.js +122 -0
- package/.output/server/node_modules/zod/v4/locales/fi.js +122 -0
- package/.output/server/node_modules/zod/v4/locales/fr-CA.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/fr.js +116 -0
- package/.output/server/node_modules/zod/v4/locales/he.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/hu.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/id.js +116 -0
- package/.output/server/node_modules/zod/v4/locales/index.js +39 -0
- package/.output/server/node_modules/zod/v4/locales/it.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/ja.js +115 -0
- package/.output/server/node_modules/zod/v4/locales/kh.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/ko.js +121 -0
- package/.output/server/node_modules/zod/v4/locales/mk.js +118 -0
- package/.output/server/node_modules/zod/v4/locales/ms.js +116 -0
- package/.output/server/node_modules/zod/v4/locales/nl.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/no.js +116 -0
- package/.output/server/node_modules/zod/v4/locales/ota.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/pl.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/ps.js +122 -0
- package/.output/server/node_modules/zod/v4/locales/pt.js +116 -0
- package/.output/server/node_modules/zod/v4/locales/ru.js +164 -0
- package/.output/server/node_modules/zod/v4/locales/sl.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/sv.js +118 -0
- package/.output/server/node_modules/zod/v4/locales/ta.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/th.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/tr.js +115 -0
- package/.output/server/node_modules/zod/v4/locales/ua.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/ur.js +117 -0
- package/.output/server/node_modules/zod/v4/locales/vi.js +116 -0
- package/.output/server/node_modules/zod/v4/locales/zh-CN.js +116 -0
- package/.output/server/node_modules/zod/v4/locales/zh-TW.js +117 -0
- package/.output/server/node_modules/zod/v4/mini/checks.js +1 -0
- package/.output/server/node_modules/zod/v4/mini/coerce.js +17 -0
- package/.output/server/node_modules/zod/v4/mini/external.js +13 -0
- package/.output/server/node_modules/zod/v4/mini/index.js +3 -0
- package/.output/server/node_modules/zod/v4/mini/iso.js +30 -0
- package/.output/server/node_modules/zod/v4/mini/parse.js +1 -0
- package/.output/server/node_modules/zod/v4/mini/schemas.js +732 -0
- package/.output/server/node_modules/zod/v4-mini/index.js +1 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/Options.js +46 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/Refs.js +22 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +14 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +8 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/index.js +40 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/package.json +1 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parseDef.js +62 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parseTypes.js +1 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +17 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +26 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +49 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +5 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +4 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +4 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +46 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +7 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +7 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +6 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +52 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +21 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +26 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +16 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +11 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +10 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +33 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +52 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +72 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +21 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +20 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +4 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +4 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +61 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +20 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +352 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +32 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +6 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +80 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +4 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/selectParser.js +105 -0
- package/.output/server/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +87 -0
- package/.output/server/node_modules/zod-to-json-schema/package.json +85 -0
- package/.output/server/package.json +93 -0
- package/cli/core/context.mjs +8 -4
- package/package.json +2 -1
- package/scripts/_dbg-full-feature-e2e.mjs +1 -1
- package/server/data/daqs.json +75 -75
- package/server/data/dcw-lines.json +14 -0
- package/server/data/dcw-products.json +14 -0
- package/server/data/dcw-rollback.json +222 -1
- package/server/data/dcw-runs.json +54 -36
- package/server/data/dcw-writes.json +96 -0
- package/server/data/dcws.json +42 -0
- package/server/data/line-runs.json +22 -22
- package/server/services/workshop/agents/node-bindings.repo.ts +2 -2
- package/shared/config/home.mjs +60 -15
|
@@ -0,0 +1,949 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Web Standards Streamable HTTP Server Transport
|
|
3
|
+
*
|
|
4
|
+
* This is the core transport implementation using Web Standard APIs (Request, Response, ReadableStream).
|
|
5
|
+
* It can run on any runtime that supports Web Standards: Node.js 18+, Cloudflare Workers, Deno, Bun, etc.
|
|
6
|
+
*
|
|
7
|
+
* For Node.js Express/HTTP compatibility, use `StreamableHTTPServerTransport` which wraps this transport.
|
|
8
|
+
*/
|
|
9
|
+
import { isJsonContentType } from '../shared/mediaType.js';
|
|
10
|
+
import { armSseKeepAlive, DEFAULT_SSE_KEEP_ALIVE_MS } from './sseKeepAlive.js';
|
|
11
|
+
import { isInitializeRequest, isJSONRPCErrorResponse, isJSONRPCRequest, isJSONRPCResultResponse, JSONRPCMessageSchema, SUPPORTED_PROTOCOL_VERSIONS, DEFAULT_NEGOTIATED_PROTOCOL_VERSION } from '../types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Server transport for Web Standards Streamable HTTP: this implements the MCP Streamable HTTP transport specification
|
|
14
|
+
* using Web Standard APIs (Request, Response, ReadableStream).
|
|
15
|
+
*
|
|
16
|
+
* This transport works on any runtime that supports Web Standards: Node.js 18+, Cloudflare Workers, Deno, Bun, etc.
|
|
17
|
+
*
|
|
18
|
+
* Usage example:
|
|
19
|
+
*
|
|
20
|
+
* ```typescript
|
|
21
|
+
* // Stateful mode - server sets the session ID
|
|
22
|
+
* const statefulTransport = new WebStandardStreamableHTTPServerTransport({
|
|
23
|
+
* sessionIdGenerator: () => crypto.randomUUID(),
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* // Stateless mode - explicitly set session ID to undefined
|
|
27
|
+
* const statelessTransport = new WebStandardStreamableHTTPServerTransport({
|
|
28
|
+
* sessionIdGenerator: undefined,
|
|
29
|
+
* });
|
|
30
|
+
*
|
|
31
|
+
* // Hono.js usage
|
|
32
|
+
* app.all('/mcp', async (c) => {
|
|
33
|
+
* return transport.handleRequest(c.req.raw);
|
|
34
|
+
* });
|
|
35
|
+
*
|
|
36
|
+
* // Cloudflare Workers usage
|
|
37
|
+
* export default {
|
|
38
|
+
* async fetch(request: Request): Promise<Response> {
|
|
39
|
+
* return transport.handleRequest(request);
|
|
40
|
+
* }
|
|
41
|
+
* };
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* In stateful mode:
|
|
45
|
+
* - Session ID is generated and included in response headers
|
|
46
|
+
* - Session ID is always included in initialization responses
|
|
47
|
+
* - Requests with invalid session IDs are rejected with 404 Not Found
|
|
48
|
+
* - Non-initialization requests without a session ID are rejected with 400 Bad Request
|
|
49
|
+
* - State is maintained in-memory (connections, message history)
|
|
50
|
+
*
|
|
51
|
+
* In stateless mode:
|
|
52
|
+
* - No Session ID is included in any responses
|
|
53
|
+
* - No session validation is performed
|
|
54
|
+
*/
|
|
55
|
+
export class WebStandardStreamableHTTPServerTransport {
|
|
56
|
+
constructor(options = {}) {
|
|
57
|
+
this._started = false;
|
|
58
|
+
this._hasHandledRequest = false;
|
|
59
|
+
this._streamMapping = new Map();
|
|
60
|
+
this._requestToStreamMapping = new Map();
|
|
61
|
+
/**
|
|
62
|
+
* Request streams whose client holds a Last-Event-ID cursor (at least one
|
|
63
|
+
* id-bearing event was delivered on them), so a stored response can be
|
|
64
|
+
* replayed on resume.
|
|
65
|
+
*/
|
|
66
|
+
this._resumableStreams = new Set();
|
|
67
|
+
this._requestResponseMap = new Map();
|
|
68
|
+
this._initialized = false;
|
|
69
|
+
this._enableJsonResponse = false;
|
|
70
|
+
this._standaloneSseStreamId = '_GET_stream';
|
|
71
|
+
this._closed = false;
|
|
72
|
+
this.sessionIdGenerator = options.sessionIdGenerator;
|
|
73
|
+
this._enableJsonResponse = options.enableJsonResponse ?? false;
|
|
74
|
+
this._eventStore = options.eventStore;
|
|
75
|
+
this._onsessioninitialized = options.onsessioninitialized;
|
|
76
|
+
this._onsessionclosed = options.onsessionclosed;
|
|
77
|
+
this._allowedHosts = options.allowedHosts;
|
|
78
|
+
this._allowedOrigins = options.allowedOrigins;
|
|
79
|
+
this._enableDnsRebindingProtection = options.enableDnsRebindingProtection ?? false;
|
|
80
|
+
this._retryInterval = options.retryInterval;
|
|
81
|
+
this._keepAliveMs = options.keepAliveMs ?? DEFAULT_SSE_KEEP_ALIVE_MS;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Arms a keep-alive interval for an SSE stream that periodically writes an SSE
|
|
85
|
+
* comment frame so intermediaries and idle timeouts don't kill the connection.
|
|
86
|
+
* The returned timer is owned by the stream it was armed for: the stream's
|
|
87
|
+
* cancel/cleanup callbacks must clear it. The interval clears itself if a
|
|
88
|
+
* write fails (stream already closed/cancelled).
|
|
89
|
+
*/
|
|
90
|
+
startKeepAlive(controller, encoder) {
|
|
91
|
+
// After close() nothing may arm: the stream cleanups have already run.
|
|
92
|
+
if (this._closed)
|
|
93
|
+
return undefined;
|
|
94
|
+
const timer = armSseKeepAlive(this._keepAliveMs, () => {
|
|
95
|
+
try {
|
|
96
|
+
controller.enqueue(encoder.encode(': keepalive\n\n'));
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
if (timer !== undefined)
|
|
100
|
+
clearInterval(timer);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return timer;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Starts the transport. This is required by the Transport interface but is a no-op
|
|
107
|
+
* for the Streamable HTTP transport as connections are managed per-request.
|
|
108
|
+
*/
|
|
109
|
+
async start() {
|
|
110
|
+
if (this._started) {
|
|
111
|
+
throw new Error('Transport already started');
|
|
112
|
+
}
|
|
113
|
+
this._started = true;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Helper to create a JSON error response
|
|
117
|
+
*/
|
|
118
|
+
createJsonErrorResponse(status, code, message, options) {
|
|
119
|
+
const error = { code, message };
|
|
120
|
+
if (options?.data !== undefined) {
|
|
121
|
+
error.data = options.data;
|
|
122
|
+
}
|
|
123
|
+
return new Response(JSON.stringify({
|
|
124
|
+
jsonrpc: '2.0',
|
|
125
|
+
error,
|
|
126
|
+
id: null
|
|
127
|
+
}), {
|
|
128
|
+
status,
|
|
129
|
+
headers: {
|
|
130
|
+
'Content-Type': 'application/json',
|
|
131
|
+
...options?.headers
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Validates request headers for DNS rebinding protection.
|
|
137
|
+
* @returns Error response if validation fails, undefined if validation passes.
|
|
138
|
+
*/
|
|
139
|
+
validateRequestHeaders(req) {
|
|
140
|
+
// Skip validation if protection is not enabled
|
|
141
|
+
if (!this._enableDnsRebindingProtection) {
|
|
142
|
+
return undefined;
|
|
143
|
+
}
|
|
144
|
+
// Validate Host header if allowedHosts is configured
|
|
145
|
+
if (this._allowedHosts && this._allowedHosts.length > 0) {
|
|
146
|
+
const hostHeader = req.headers.get('host');
|
|
147
|
+
if (!hostHeader || !this._allowedHosts.includes(hostHeader)) {
|
|
148
|
+
const error = `Invalid Host header: ${hostHeader}`;
|
|
149
|
+
this.onerror?.(new Error(error));
|
|
150
|
+
return this.createJsonErrorResponse(403, -32000, error);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// Validate Origin header if allowedOrigins is configured
|
|
154
|
+
if (this._allowedOrigins && this._allowedOrigins.length > 0) {
|
|
155
|
+
const originHeader = req.headers.get('origin');
|
|
156
|
+
if (originHeader && !this._allowedOrigins.includes(originHeader)) {
|
|
157
|
+
const error = `Invalid Origin header: ${originHeader}`;
|
|
158
|
+
this.onerror?.(new Error(error));
|
|
159
|
+
return this.createJsonErrorResponse(403, -32000, error);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Handles an incoming HTTP request, whether GET, POST, or DELETE
|
|
166
|
+
* Returns a Response object (Web Standard)
|
|
167
|
+
*/
|
|
168
|
+
async handleRequest(req, options) {
|
|
169
|
+
if (this._closed) {
|
|
170
|
+
return this.createJsonErrorResponse(404, -32001, 'Session not found');
|
|
171
|
+
}
|
|
172
|
+
// In stateless mode (no sessionIdGenerator), each request must use a fresh transport.
|
|
173
|
+
// Reusing a stateless transport causes message ID collisions between clients.
|
|
174
|
+
if (!this.sessionIdGenerator && this._hasHandledRequest) {
|
|
175
|
+
throw new Error('Stateless transport cannot be reused across requests. Create a new transport per request.');
|
|
176
|
+
}
|
|
177
|
+
this._hasHandledRequest = true;
|
|
178
|
+
// Validate request headers for DNS rebinding protection
|
|
179
|
+
const validationError = this.validateRequestHeaders(req);
|
|
180
|
+
if (validationError) {
|
|
181
|
+
return validationError;
|
|
182
|
+
}
|
|
183
|
+
switch (req.method) {
|
|
184
|
+
case 'POST':
|
|
185
|
+
return this.handlePostRequest(req, options);
|
|
186
|
+
case 'GET':
|
|
187
|
+
return this.handleGetRequest(req);
|
|
188
|
+
case 'DELETE':
|
|
189
|
+
return this.handleDeleteRequest(req);
|
|
190
|
+
default:
|
|
191
|
+
return this.handleUnsupportedRequest();
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Writes a priming event to establish resumption capability.
|
|
196
|
+
* Only sends if eventStore is configured (opt-in for resumability) and
|
|
197
|
+
* the client's protocol version supports empty SSE data (>= 2025-11-25).
|
|
198
|
+
*/
|
|
199
|
+
async writePrimingEvent(controller, encoder, streamId, protocolVersion) {
|
|
200
|
+
if (!this._eventStore) {
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
// Priming events have empty data which older clients cannot handle.
|
|
204
|
+
// Only send priming events to clients with protocol version >= 2025-11-25
|
|
205
|
+
// which includes the fix for handling empty SSE data.
|
|
206
|
+
if (protocolVersion < '2025-11-25') {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
const primingEventId = await this._eventStore.storeEvent(streamId, {});
|
|
210
|
+
let primingEvent = `id: ${primingEventId}\ndata: \n\n`;
|
|
211
|
+
if (this._retryInterval !== undefined) {
|
|
212
|
+
primingEvent = `id: ${primingEventId}\nretry: ${this._retryInterval}\ndata: \n\n`;
|
|
213
|
+
}
|
|
214
|
+
controller.enqueue(encoder.encode(primingEvent));
|
|
215
|
+
this._resumableStreams.add(streamId);
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Handles GET requests for SSE stream
|
|
219
|
+
*/
|
|
220
|
+
async handleGetRequest(req) {
|
|
221
|
+
// The client MUST include an Accept header, listing text/event-stream as a supported content type.
|
|
222
|
+
const acceptHeader = req.headers.get('accept');
|
|
223
|
+
if (!acceptHeader?.includes('text/event-stream')) {
|
|
224
|
+
this.onerror?.(new Error('Not Acceptable: Client must accept text/event-stream'));
|
|
225
|
+
return this.createJsonErrorResponse(406, -32000, 'Not Acceptable: Client must accept text/event-stream');
|
|
226
|
+
}
|
|
227
|
+
// If an Mcp-Session-Id is returned by the server during initialization,
|
|
228
|
+
// clients using the Streamable HTTP transport MUST include it
|
|
229
|
+
// in the Mcp-Session-Id header on all of their subsequent HTTP requests.
|
|
230
|
+
const sessionError = this.validateSession(req);
|
|
231
|
+
if (sessionError) {
|
|
232
|
+
return sessionError;
|
|
233
|
+
}
|
|
234
|
+
const protocolError = this.validateProtocolVersion(req);
|
|
235
|
+
if (protocolError) {
|
|
236
|
+
return protocolError;
|
|
237
|
+
}
|
|
238
|
+
// Handle resumability: check for Last-Event-ID header
|
|
239
|
+
if (this._eventStore) {
|
|
240
|
+
const lastEventId = req.headers.get('last-event-id');
|
|
241
|
+
if (lastEventId) {
|
|
242
|
+
return this.replayEvents(lastEventId);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// Check if there's already an active standalone SSE stream for this session
|
|
246
|
+
if (this._streamMapping.get(this._standaloneSseStreamId) !== undefined) {
|
|
247
|
+
// Only one GET SSE stream is allowed per session
|
|
248
|
+
this.onerror?.(new Error('Conflict: Only one SSE stream is allowed per session'));
|
|
249
|
+
return this.createJsonErrorResponse(409, -32000, 'Conflict: Only one SSE stream is allowed per session');
|
|
250
|
+
}
|
|
251
|
+
const encoder = new TextEncoder();
|
|
252
|
+
let streamController;
|
|
253
|
+
let keepAliveTimer = undefined;
|
|
254
|
+
// Create a ReadableStream with a controller we can use to push SSE events
|
|
255
|
+
const readable = new ReadableStream({
|
|
256
|
+
start: controller => {
|
|
257
|
+
streamController = controller;
|
|
258
|
+
},
|
|
259
|
+
cancel: () => {
|
|
260
|
+
// Stream was cancelled by client. Only tear down the mapping if it
|
|
261
|
+
// still points at this stream — a stale cancel arriving after a
|
|
262
|
+
// reconnect re-registered the id must not tear down the successor.
|
|
263
|
+
if (keepAliveTimer !== undefined) {
|
|
264
|
+
clearInterval(keepAliveTimer);
|
|
265
|
+
}
|
|
266
|
+
if (this._streamMapping.get(this._standaloneSseStreamId)?.controller === streamController) {
|
|
267
|
+
this._streamMapping.delete(this._standaloneSseStreamId);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
const headers = {
|
|
272
|
+
'Content-Type': 'text/event-stream',
|
|
273
|
+
'Cache-Control': 'no-cache, no-transform',
|
|
274
|
+
Connection: 'keep-alive',
|
|
275
|
+
'X-Accel-Buffering': 'no'
|
|
276
|
+
};
|
|
277
|
+
// After initialization, always include the session ID if we have one
|
|
278
|
+
if (this.sessionId !== undefined) {
|
|
279
|
+
headers['mcp-session-id'] = this.sessionId;
|
|
280
|
+
}
|
|
281
|
+
// Store the stream mapping with the controller for pushing data
|
|
282
|
+
this._streamMapping.set(this._standaloneSseStreamId, {
|
|
283
|
+
controller: streamController,
|
|
284
|
+
encoder,
|
|
285
|
+
cleanup: () => {
|
|
286
|
+
if (keepAliveTimer !== undefined) {
|
|
287
|
+
clearInterval(keepAliveTimer);
|
|
288
|
+
}
|
|
289
|
+
this._streamMapping.delete(this._standaloneSseStreamId);
|
|
290
|
+
try {
|
|
291
|
+
streamController.close();
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
// Controller might already be closed
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
});
|
|
298
|
+
keepAliveTimer = this.startKeepAlive(streamController, encoder);
|
|
299
|
+
return new Response(readable, { headers });
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Replays events that would have been sent after the specified event ID
|
|
303
|
+
* Only used when resumability is enabled
|
|
304
|
+
*/
|
|
305
|
+
async replayEvents(lastEventId) {
|
|
306
|
+
if (!this._eventStore) {
|
|
307
|
+
this.onerror?.(new Error('Event store not configured'));
|
|
308
|
+
return this.createJsonErrorResponse(400, -32000, 'Event store not configured');
|
|
309
|
+
}
|
|
310
|
+
try {
|
|
311
|
+
// If getStreamIdForEventId is available, use it for conflict checking
|
|
312
|
+
let streamId;
|
|
313
|
+
if (this._eventStore.getStreamIdForEventId) {
|
|
314
|
+
streamId = await this._eventStore.getStreamIdForEventId(lastEventId);
|
|
315
|
+
if (!streamId) {
|
|
316
|
+
this.onerror?.(new Error('Invalid event ID format'));
|
|
317
|
+
return this.createJsonErrorResponse(400, -32000, 'Invalid event ID format');
|
|
318
|
+
}
|
|
319
|
+
// Check conflict with the SAME streamId we'll use for mapping
|
|
320
|
+
if (this._streamMapping.get(streamId) !== undefined) {
|
|
321
|
+
this.onerror?.(new Error('Conflict: Stream already has an active connection'));
|
|
322
|
+
return this.createJsonErrorResponse(409, -32000, 'Conflict: Stream already has an active connection');
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
const headers = {
|
|
326
|
+
'Content-Type': 'text/event-stream',
|
|
327
|
+
'Cache-Control': 'no-cache, no-transform',
|
|
328
|
+
Connection: 'keep-alive',
|
|
329
|
+
'X-Accel-Buffering': 'no'
|
|
330
|
+
};
|
|
331
|
+
if (this.sessionId !== undefined) {
|
|
332
|
+
headers['mcp-session-id'] = this.sessionId;
|
|
333
|
+
}
|
|
334
|
+
// Create a ReadableStream with controller for SSE
|
|
335
|
+
const encoder = new TextEncoder();
|
|
336
|
+
let streamController;
|
|
337
|
+
let keepAliveTimer = undefined;
|
|
338
|
+
let replayedStreamId = undefined;
|
|
339
|
+
let cancelled = false;
|
|
340
|
+
const readable = new ReadableStream({
|
|
341
|
+
start: controller => {
|
|
342
|
+
streamController = controller;
|
|
343
|
+
},
|
|
344
|
+
cancel: () => {
|
|
345
|
+
// Stream was cancelled by client. Only tear down the mapping if
|
|
346
|
+
// it still points at this stream — a stale cancel must not tear
|
|
347
|
+
// down a successor registered by a later resume.
|
|
348
|
+
cancelled = true;
|
|
349
|
+
if (keepAliveTimer !== undefined) {
|
|
350
|
+
clearInterval(keepAliveTimer);
|
|
351
|
+
}
|
|
352
|
+
if (replayedStreamId !== undefined && this._streamMapping.get(replayedStreamId)?.controller === streamController) {
|
|
353
|
+
this._streamMapping.delete(replayedStreamId);
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
// Replay events - returns the streamId for backwards compatibility
|
|
358
|
+
const replayedEventIds = new Set();
|
|
359
|
+
replayedStreamId = await this._eventStore.replayEventsAfter(lastEventId, {
|
|
360
|
+
send: async (eventId, message) => {
|
|
361
|
+
const success = this.writeSSEEvent(streamController, encoder, message, eventId);
|
|
362
|
+
if (!success) {
|
|
363
|
+
this.onerror?.(new Error('Failed replay events'));
|
|
364
|
+
try {
|
|
365
|
+
streamController.close();
|
|
366
|
+
}
|
|
367
|
+
catch {
|
|
368
|
+
// Controller might already be closed
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
replayedEventIds.add(eventId);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
});
|
|
376
|
+
// close() may have run, or the stream may have been cancelled, while
|
|
377
|
+
// the event store was replaying: don't hand out or register a stream
|
|
378
|
+
// that nothing can ever clean up again.
|
|
379
|
+
if (this._closed || cancelled) {
|
|
380
|
+
try {
|
|
381
|
+
streamController.close();
|
|
382
|
+
}
|
|
383
|
+
catch {
|
|
384
|
+
// Controller might already be closed
|
|
385
|
+
}
|
|
386
|
+
return this.createJsonErrorResponse(404, -32001, 'Session not found');
|
|
387
|
+
}
|
|
388
|
+
// A reconnect re-registers the same stream id: close the predecessor
|
|
389
|
+
// stream cleanly (clearing its keep-alive timer) instead of leaving it
|
|
390
|
+
// registered nowhere with its timer still running.
|
|
391
|
+
this._streamMapping.get(replayedStreamId)?.cleanup();
|
|
392
|
+
this._streamMapping.set(replayedStreamId, {
|
|
393
|
+
controller: streamController,
|
|
394
|
+
encoder,
|
|
395
|
+
replayedEventIds,
|
|
396
|
+
cleanup: () => {
|
|
397
|
+
if (keepAliveTimer !== undefined) {
|
|
398
|
+
clearInterval(keepAliveTimer);
|
|
399
|
+
}
|
|
400
|
+
this._streamMapping.delete(replayedStreamId);
|
|
401
|
+
try {
|
|
402
|
+
streamController.close();
|
|
403
|
+
}
|
|
404
|
+
catch {
|
|
405
|
+
// Controller might already be closed
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
});
|
|
409
|
+
// The resume itself proves the client holds a Last-Event-ID cursor
|
|
410
|
+
this._resumableStreams.add(replayedStreamId);
|
|
411
|
+
keepAliveTimer = this.startKeepAlive(streamController, encoder);
|
|
412
|
+
return new Response(readable, { headers });
|
|
413
|
+
}
|
|
414
|
+
catch (error) {
|
|
415
|
+
this.onerror?.(error);
|
|
416
|
+
return this.createJsonErrorResponse(500, -32000, 'Error replaying events');
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Writes an event to an SSE stream via controller with proper formatting
|
|
421
|
+
*/
|
|
422
|
+
writeSSEEvent(controller, encoder, message, eventId) {
|
|
423
|
+
try {
|
|
424
|
+
let eventData = `event: message\n`;
|
|
425
|
+
// Include event ID if provided - this is important for resumability
|
|
426
|
+
if (eventId) {
|
|
427
|
+
eventData += `id: ${eventId}\n`;
|
|
428
|
+
}
|
|
429
|
+
eventData += `data: ${JSON.stringify(message)}\n\n`;
|
|
430
|
+
controller.enqueue(encoder.encode(eventData));
|
|
431
|
+
return true;
|
|
432
|
+
}
|
|
433
|
+
catch (error) {
|
|
434
|
+
this.onerror?.(error);
|
|
435
|
+
return false;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Handles unsupported requests (PUT, PATCH, etc.)
|
|
440
|
+
*/
|
|
441
|
+
handleUnsupportedRequest() {
|
|
442
|
+
this.onerror?.(new Error('Method not allowed.'));
|
|
443
|
+
return new Response(JSON.stringify({
|
|
444
|
+
jsonrpc: '2.0',
|
|
445
|
+
error: {
|
|
446
|
+
code: -32000,
|
|
447
|
+
message: 'Method not allowed.'
|
|
448
|
+
},
|
|
449
|
+
id: null
|
|
450
|
+
}), {
|
|
451
|
+
status: 405,
|
|
452
|
+
headers: {
|
|
453
|
+
Allow: 'GET, POST, DELETE',
|
|
454
|
+
'Content-Type': 'application/json'
|
|
455
|
+
}
|
|
456
|
+
});
|
|
457
|
+
}
|
|
458
|
+
/**
|
|
459
|
+
* Handles POST requests containing JSON-RPC messages
|
|
460
|
+
*/
|
|
461
|
+
async handlePostRequest(req, options) {
|
|
462
|
+
try {
|
|
463
|
+
// Validate the Accept header
|
|
464
|
+
const acceptHeader = req.headers.get('accept');
|
|
465
|
+
// The client MUST include an Accept header, listing both application/json and text/event-stream as supported content types.
|
|
466
|
+
// Accept is a comma-separated list, so a substring check is the intended semantics here (unlike Content-Type below).
|
|
467
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
468
|
+
if (!acceptHeader?.includes('application/json') || !acceptHeader.includes('text/event-stream')) {
|
|
469
|
+
this.onerror?.(new Error('Not Acceptable: Client must accept both application/json and text/event-stream'));
|
|
470
|
+
return this.createJsonErrorResponse(406, -32000, 'Not Acceptable: Client must accept both application/json and text/event-stream');
|
|
471
|
+
}
|
|
472
|
+
// Parsed media type, never a substring match — see isJsonContentType.
|
|
473
|
+
const ct = req.headers.get('content-type');
|
|
474
|
+
if (!isJsonContentType(ct)) {
|
|
475
|
+
this.onerror?.(new Error('Unsupported Media Type: Content-Type must be application/json'));
|
|
476
|
+
return this.createJsonErrorResponse(415, -32000, 'Unsupported Media Type: Content-Type must be application/json');
|
|
477
|
+
}
|
|
478
|
+
// Build request info from headers and URL
|
|
479
|
+
const requestInfo = {
|
|
480
|
+
headers: Object.fromEntries(req.headers.entries()),
|
|
481
|
+
url: new URL(req.url)
|
|
482
|
+
};
|
|
483
|
+
let rawMessage;
|
|
484
|
+
if (options?.parsedBody !== undefined) {
|
|
485
|
+
rawMessage = options.parsedBody;
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
try {
|
|
489
|
+
rawMessage = await req.json();
|
|
490
|
+
}
|
|
491
|
+
catch {
|
|
492
|
+
this.onerror?.(new Error('Parse error: Invalid JSON'));
|
|
493
|
+
return this.createJsonErrorResponse(400, -32700, 'Parse error: Invalid JSON');
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
let messages;
|
|
497
|
+
// handle batch and single messages
|
|
498
|
+
try {
|
|
499
|
+
if (Array.isArray(rawMessage)) {
|
|
500
|
+
messages = rawMessage.map(msg => JSONRPCMessageSchema.parse(msg));
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
messages = [JSONRPCMessageSchema.parse(rawMessage)];
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
catch {
|
|
507
|
+
this.onerror?.(new Error('Parse error: Invalid JSON-RPC message'));
|
|
508
|
+
return this.createJsonErrorResponse(400, -32700, 'Parse error: Invalid JSON-RPC message');
|
|
509
|
+
}
|
|
510
|
+
// close() may have run while awaiting the request body above: don't
|
|
511
|
+
// initialize a session (or fire onsessioninitialized) on a transport
|
|
512
|
+
// whose cleanups have already run.
|
|
513
|
+
if (this._closed) {
|
|
514
|
+
return this.createJsonErrorResponse(404, -32001, 'Session not found');
|
|
515
|
+
}
|
|
516
|
+
// Check if this is an initialization request
|
|
517
|
+
// https://spec.modelcontextprotocol.io/specification/2025-03-26/basic/lifecycle/
|
|
518
|
+
const isInitializationRequest = messages.some(isInitializeRequest);
|
|
519
|
+
if (isInitializationRequest) {
|
|
520
|
+
// If it's a server with session management and the session ID is already set we should reject the request
|
|
521
|
+
// to avoid re-initialization.
|
|
522
|
+
if (this._initialized && this.sessionId !== undefined) {
|
|
523
|
+
this.onerror?.(new Error('Invalid Request: Server already initialized'));
|
|
524
|
+
return this.createJsonErrorResponse(400, -32600, 'Invalid Request: Server already initialized');
|
|
525
|
+
}
|
|
526
|
+
if (messages.length > 1) {
|
|
527
|
+
this.onerror?.(new Error('Invalid Request: Only one initialization request is allowed'));
|
|
528
|
+
return this.createJsonErrorResponse(400, -32600, 'Invalid Request: Only one initialization request is allowed');
|
|
529
|
+
}
|
|
530
|
+
this.sessionId = this.sessionIdGenerator?.();
|
|
531
|
+
this._initialized = true;
|
|
532
|
+
// If we have a session ID and an onsessioninitialized handler, call it immediately
|
|
533
|
+
// This is needed in cases where the server needs to keep track of multiple sessions
|
|
534
|
+
if (this.sessionId && this._onsessioninitialized) {
|
|
535
|
+
await Promise.resolve(this._onsessioninitialized(this.sessionId));
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
if (!isInitializationRequest) {
|
|
539
|
+
// If an Mcp-Session-Id is returned by the server during initialization,
|
|
540
|
+
// clients using the Streamable HTTP transport MUST include it
|
|
541
|
+
// in the Mcp-Session-Id header on all of their subsequent HTTP requests.
|
|
542
|
+
const sessionError = this.validateSession(req);
|
|
543
|
+
if (sessionError) {
|
|
544
|
+
return sessionError;
|
|
545
|
+
}
|
|
546
|
+
// Mcp-Protocol-Version header is required for all requests after initialization.
|
|
547
|
+
const protocolError = this.validateProtocolVersion(req);
|
|
548
|
+
if (protocolError) {
|
|
549
|
+
return protocolError;
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
// close() may have run while awaiting the request body or the session
|
|
553
|
+
// initialization callback above: don't register streams into maps the
|
|
554
|
+
// close sweep has already cleared, or hand out a stream that nothing
|
|
555
|
+
// will ever write to.
|
|
556
|
+
if (this._closed) {
|
|
557
|
+
return this.createJsonErrorResponse(404, -32001, 'Session not found');
|
|
558
|
+
}
|
|
559
|
+
// check if it contains requests
|
|
560
|
+
const hasRequests = messages.some(isJSONRPCRequest);
|
|
561
|
+
if (!hasRequests) {
|
|
562
|
+
// if it only contains notifications or responses, return 202
|
|
563
|
+
for (const message of messages) {
|
|
564
|
+
this.onmessage?.(message, { authInfo: options?.authInfo, requestInfo });
|
|
565
|
+
}
|
|
566
|
+
return new Response(null, { status: 202 });
|
|
567
|
+
}
|
|
568
|
+
// The default behavior is to use SSE streaming
|
|
569
|
+
// but in some cases server will return JSON responses
|
|
570
|
+
const streamId = crypto.randomUUID();
|
|
571
|
+
// Extract protocol version for priming event decision.
|
|
572
|
+
// For initialize requests, get from request params.
|
|
573
|
+
// For other requests, get from header (already validated).
|
|
574
|
+
const initRequest = messages.find(m => isInitializeRequest(m));
|
|
575
|
+
const clientProtocolVersion = initRequest
|
|
576
|
+
? initRequest.params.protocolVersion
|
|
577
|
+
: (req.headers.get('mcp-protocol-version') ?? DEFAULT_NEGOTIATED_PROTOCOL_VERSION);
|
|
578
|
+
if (this._enableJsonResponse) {
|
|
579
|
+
// For JSON response mode, return a Promise that resolves when all responses are ready
|
|
580
|
+
return new Promise(resolve => {
|
|
581
|
+
this._streamMapping.set(streamId, {
|
|
582
|
+
resolveJson: resolve,
|
|
583
|
+
cleanup: () => {
|
|
584
|
+
this._streamMapping.delete(streamId);
|
|
585
|
+
}
|
|
586
|
+
});
|
|
587
|
+
for (const message of messages) {
|
|
588
|
+
if (isJSONRPCRequest(message)) {
|
|
589
|
+
this._requestToStreamMapping.set(message.id, streamId);
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
for (const message of messages) {
|
|
593
|
+
this.onmessage?.(message, { authInfo: options?.authInfo, requestInfo });
|
|
594
|
+
}
|
|
595
|
+
});
|
|
596
|
+
}
|
|
597
|
+
// SSE streaming mode - use ReadableStream with controller for more reliable data pushing
|
|
598
|
+
const encoder = new TextEncoder();
|
|
599
|
+
let streamController;
|
|
600
|
+
let keepAliveTimer = undefined;
|
|
601
|
+
const readable = new ReadableStream({
|
|
602
|
+
start: controller => {
|
|
603
|
+
streamController = controller;
|
|
604
|
+
},
|
|
605
|
+
cancel: () => {
|
|
606
|
+
// Stream was cancelled by client. Only tear down the mapping if
|
|
607
|
+
// it still points at this stream — a stale cancel arriving after
|
|
608
|
+
// a resume re-registered the id must not tear down the successor.
|
|
609
|
+
if (keepAliveTimer !== undefined) {
|
|
610
|
+
clearInterval(keepAliveTimer);
|
|
611
|
+
}
|
|
612
|
+
if (this._streamMapping.get(streamId)?.controller === streamController) {
|
|
613
|
+
this._streamMapping.delete(streamId);
|
|
614
|
+
}
|
|
615
|
+
}
|
|
616
|
+
});
|
|
617
|
+
const headers = {
|
|
618
|
+
'Content-Type': 'text/event-stream',
|
|
619
|
+
'Cache-Control': 'no-cache, no-transform',
|
|
620
|
+
Connection: 'keep-alive',
|
|
621
|
+
'X-Accel-Buffering': 'no'
|
|
622
|
+
};
|
|
623
|
+
// After initialization, always include the session ID if we have one
|
|
624
|
+
if (this.sessionId !== undefined) {
|
|
625
|
+
headers['mcp-session-id'] = this.sessionId;
|
|
626
|
+
}
|
|
627
|
+
// Store the response for this request to send messages back through this connection
|
|
628
|
+
// We need to track by request ID to maintain the connection
|
|
629
|
+
for (const message of messages) {
|
|
630
|
+
if (isJSONRPCRequest(message)) {
|
|
631
|
+
this._streamMapping.set(streamId, {
|
|
632
|
+
controller: streamController,
|
|
633
|
+
encoder,
|
|
634
|
+
cleanup: () => {
|
|
635
|
+
if (keepAliveTimer !== undefined) {
|
|
636
|
+
clearInterval(keepAliveTimer);
|
|
637
|
+
}
|
|
638
|
+
this._streamMapping.delete(streamId);
|
|
639
|
+
try {
|
|
640
|
+
streamController.close();
|
|
641
|
+
}
|
|
642
|
+
catch {
|
|
643
|
+
// Controller might already be closed
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
});
|
|
647
|
+
this._requestToStreamMapping.set(message.id, streamId);
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
try {
|
|
651
|
+
// Write priming event if event store is configured (after mapping is set up)
|
|
652
|
+
await this.writePrimingEvent(streamController, encoder, streamId, clientProtocolVersion);
|
|
653
|
+
// handle each message
|
|
654
|
+
for (const message of messages) {
|
|
655
|
+
// Build closeSSEStream callback for requests when eventStore is configured
|
|
656
|
+
// AND client supports resumability (protocol version >= 2025-11-25).
|
|
657
|
+
// Old clients can't resume if the stream is closed early because they
|
|
658
|
+
// didn't receive a priming event with an event ID.
|
|
659
|
+
let closeSSEStream;
|
|
660
|
+
let closeStandaloneSSEStream;
|
|
661
|
+
if (isJSONRPCRequest(message) && this._eventStore && clientProtocolVersion >= '2025-11-25') {
|
|
662
|
+
closeSSEStream = () => {
|
|
663
|
+
this.closeSSEStream(message.id);
|
|
664
|
+
};
|
|
665
|
+
closeStandaloneSSEStream = () => {
|
|
666
|
+
this.closeStandaloneSSEStream();
|
|
667
|
+
};
|
|
668
|
+
}
|
|
669
|
+
this.onmessage?.(message, { authInfo: options?.authInfo, requestInfo, closeSSEStream, closeStandaloneSSEStream });
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
catch (error) {
|
|
673
|
+
// Failing before the Response is handed out means nothing can ever
|
|
674
|
+
// cancel this stream: release it and its request correlations here.
|
|
675
|
+
this._streamMapping.get(streamId)?.cleanup();
|
|
676
|
+
this._resumableStreams.delete(streamId);
|
|
677
|
+
for (const message of messages) {
|
|
678
|
+
if (isJSONRPCRequest(message)) {
|
|
679
|
+
this._requestToStreamMapping.delete(message.id);
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
throw error;
|
|
683
|
+
}
|
|
684
|
+
// The server SHOULD NOT close the SSE stream before sending all JSON-RPC responses
|
|
685
|
+
// This will be handled by the send() method when responses are ready
|
|
686
|
+
// Arm keep-alive only after the fallible awaits above: an error path
|
|
687
|
+
// returns 400 and discards the Response, so nothing could ever cancel
|
|
688
|
+
// the stream and clear an already-armed timer. Skip if the responses
|
|
689
|
+
// already completed and cleaned the stream up.
|
|
690
|
+
if (this._streamMapping.get(streamId)?.controller === streamController) {
|
|
691
|
+
keepAliveTimer = this.startKeepAlive(streamController, encoder);
|
|
692
|
+
}
|
|
693
|
+
return new Response(readable, { status: 200, headers });
|
|
694
|
+
}
|
|
695
|
+
catch (error) {
|
|
696
|
+
// return JSON-RPC formatted error
|
|
697
|
+
this.onerror?.(error);
|
|
698
|
+
return this.createJsonErrorResponse(400, -32700, 'Parse error', { data: String(error) });
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
/**
|
|
702
|
+
* Handles DELETE requests to terminate sessions
|
|
703
|
+
*/
|
|
704
|
+
async handleDeleteRequest(req) {
|
|
705
|
+
const sessionError = this.validateSession(req);
|
|
706
|
+
if (sessionError) {
|
|
707
|
+
return sessionError;
|
|
708
|
+
}
|
|
709
|
+
const protocolError = this.validateProtocolVersion(req);
|
|
710
|
+
if (protocolError) {
|
|
711
|
+
return protocolError;
|
|
712
|
+
}
|
|
713
|
+
try {
|
|
714
|
+
await Promise.resolve(this._onsessionclosed?.(this.sessionId));
|
|
715
|
+
return new Response(null, { status: 200 });
|
|
716
|
+
}
|
|
717
|
+
finally {
|
|
718
|
+
await this.close();
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
/**
|
|
722
|
+
* Validates session ID for non-initialization requests.
|
|
723
|
+
* Returns Response error if invalid, undefined otherwise
|
|
724
|
+
*/
|
|
725
|
+
validateSession(req) {
|
|
726
|
+
if (this.sessionIdGenerator === undefined) {
|
|
727
|
+
// If the sessionIdGenerator ID is not set, the session management is disabled
|
|
728
|
+
// and we don't need to validate the session ID
|
|
729
|
+
return undefined;
|
|
730
|
+
}
|
|
731
|
+
if (!this._initialized) {
|
|
732
|
+
// If the server has not been initialized yet, reject all requests
|
|
733
|
+
this.onerror?.(new Error('Bad Request: Server not initialized'));
|
|
734
|
+
return this.createJsonErrorResponse(400, -32000, 'Bad Request: Server not initialized');
|
|
735
|
+
}
|
|
736
|
+
const sessionId = req.headers.get('mcp-session-id');
|
|
737
|
+
if (!sessionId) {
|
|
738
|
+
// Non-initialization requests without a session ID should return 400 Bad Request
|
|
739
|
+
this.onerror?.(new Error('Bad Request: Mcp-Session-Id header is required'));
|
|
740
|
+
return this.createJsonErrorResponse(400, -32000, 'Bad Request: Mcp-Session-Id header is required');
|
|
741
|
+
}
|
|
742
|
+
if (sessionId !== this.sessionId) {
|
|
743
|
+
// Reject requests with invalid session ID with 404 Not Found
|
|
744
|
+
this.onerror?.(new Error('Session not found'));
|
|
745
|
+
return this.createJsonErrorResponse(404, -32001, 'Session not found');
|
|
746
|
+
}
|
|
747
|
+
return undefined;
|
|
748
|
+
}
|
|
749
|
+
/**
|
|
750
|
+
* Validates the MCP-Protocol-Version header on incoming requests.
|
|
751
|
+
*
|
|
752
|
+
* For initialization: Version negotiation handles unknown versions gracefully
|
|
753
|
+
* (server responds with its supported version).
|
|
754
|
+
*
|
|
755
|
+
* For subsequent requests with MCP-Protocol-Version header:
|
|
756
|
+
* - Accept if in supported list
|
|
757
|
+
* - 400 if unsupported
|
|
758
|
+
*
|
|
759
|
+
* For HTTP requests without the MCP-Protocol-Version header:
|
|
760
|
+
* - Accept and default to the version negotiated at initialization
|
|
761
|
+
*/
|
|
762
|
+
validateProtocolVersion(req) {
|
|
763
|
+
const protocolVersion = req.headers.get('mcp-protocol-version');
|
|
764
|
+
if (protocolVersion !== null && !SUPPORTED_PROTOCOL_VERSIONS.includes(protocolVersion)) {
|
|
765
|
+
this.onerror?.(new Error(`Bad Request: Unsupported protocol version: ${protocolVersion}` +
|
|
766
|
+
` (supported versions: ${SUPPORTED_PROTOCOL_VERSIONS.join(', ')})`));
|
|
767
|
+
return this.createJsonErrorResponse(400, -32000, `Bad Request: Unsupported protocol version: ${protocolVersion} (supported versions: ${SUPPORTED_PROTOCOL_VERSIONS.join(', ')})`);
|
|
768
|
+
}
|
|
769
|
+
return undefined;
|
|
770
|
+
}
|
|
771
|
+
async close() {
|
|
772
|
+
if (this._closed) {
|
|
773
|
+
return;
|
|
774
|
+
}
|
|
775
|
+
// Stop any deferred keep-alive arm (e.g. a replay await resolving after
|
|
776
|
+
// close) from creating a timer nothing can clear.
|
|
777
|
+
this._closed = true;
|
|
778
|
+
// Close all SSE connections (each cleanup clears its own keep-alive timer)
|
|
779
|
+
this._streamMapping.forEach(({ cleanup }) => {
|
|
780
|
+
cleanup();
|
|
781
|
+
});
|
|
782
|
+
this._streamMapping.clear();
|
|
783
|
+
// Clear any pending responses
|
|
784
|
+
this._requestResponseMap.clear();
|
|
785
|
+
this._resumableStreams.clear();
|
|
786
|
+
this.onclose?.();
|
|
787
|
+
}
|
|
788
|
+
/**
|
|
789
|
+
* Close an SSE stream for a specific request, triggering client reconnection.
|
|
790
|
+
* Use this to implement polling behavior during long-running operations -
|
|
791
|
+
* client will reconnect after the retry interval specified in the priming event.
|
|
792
|
+
*/
|
|
793
|
+
closeSSEStream(requestId) {
|
|
794
|
+
const streamId = this._requestToStreamMapping.get(requestId);
|
|
795
|
+
if (!streamId)
|
|
796
|
+
return;
|
|
797
|
+
const stream = this._streamMapping.get(streamId);
|
|
798
|
+
if (stream) {
|
|
799
|
+
stream.cleanup();
|
|
800
|
+
}
|
|
801
|
+
}
|
|
802
|
+
/**
|
|
803
|
+
* Close the standalone GET SSE stream, triggering client reconnection.
|
|
804
|
+
* Use this to implement polling behavior for server-initiated notifications.
|
|
805
|
+
*/
|
|
806
|
+
closeStandaloneSSEStream() {
|
|
807
|
+
const stream = this._streamMapping.get(this._standaloneSseStreamId);
|
|
808
|
+
if (stream) {
|
|
809
|
+
stream.cleanup();
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
async send(message, options) {
|
|
813
|
+
let requestId = options?.relatedRequestId;
|
|
814
|
+
if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) {
|
|
815
|
+
// If the message is a response, use the request ID from the message
|
|
816
|
+
requestId = message.id;
|
|
817
|
+
}
|
|
818
|
+
// Check if this message should be sent on the standalone SSE stream (no request ID)
|
|
819
|
+
// Ignore notifications from tools (which have relatedRequestId set)
|
|
820
|
+
// Those will be sent via dedicated response SSE streams
|
|
821
|
+
if (requestId === undefined) {
|
|
822
|
+
// For standalone SSE streams, we can only send requests and notifications
|
|
823
|
+
if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) {
|
|
824
|
+
throw new Error('Cannot send a response on a standalone SSE stream unless resuming a previous client request');
|
|
825
|
+
}
|
|
826
|
+
// Generate and store event ID if event store is provided
|
|
827
|
+
// Store even if stream is disconnected so events can be replayed on reconnect
|
|
828
|
+
let eventId;
|
|
829
|
+
if (this._eventStore) {
|
|
830
|
+
// Stores the event and gets the generated event ID
|
|
831
|
+
eventId = await this._eventStore.storeEvent(this._standaloneSseStreamId, message);
|
|
832
|
+
}
|
|
833
|
+
const standaloneSse = this._streamMapping.get(this._standaloneSseStreamId);
|
|
834
|
+
if (standaloneSse === undefined) {
|
|
835
|
+
// Stream is disconnected - event is stored for replay, nothing more to do
|
|
836
|
+
return;
|
|
837
|
+
}
|
|
838
|
+
// Send the message to the standalone SSE stream, unless this stream
|
|
839
|
+
// was registered by a replay that already delivered this event (the
|
|
840
|
+
// store made it visible before this call resumed).
|
|
841
|
+
if (standaloneSse.controller &&
|
|
842
|
+
standaloneSse.encoder &&
|
|
843
|
+
(eventId === undefined || !standaloneSse.replayedEventIds?.has(eventId))) {
|
|
844
|
+
this.writeSSEEvent(standaloneSse.controller, standaloneSse.encoder, message, eventId);
|
|
845
|
+
}
|
|
846
|
+
return;
|
|
847
|
+
}
|
|
848
|
+
// Get the response for this request
|
|
849
|
+
const streamId = this._requestToStreamMapping.get(requestId);
|
|
850
|
+
if (!streamId) {
|
|
851
|
+
throw new Error(`No connection established for request ID: ${String(requestId)}`);
|
|
852
|
+
}
|
|
853
|
+
let stream = this._streamMapping.get(streamId);
|
|
854
|
+
if (!this._enableJsonResponse) {
|
|
855
|
+
// Store the event even if the stream is disconnected (e.g. after
|
|
856
|
+
// closeSSEStream switched the client to polling), so it can be
|
|
857
|
+
// replayed on reconnect — mirroring the standalone stream path.
|
|
858
|
+
let eventId;
|
|
859
|
+
if (this._eventStore) {
|
|
860
|
+
eventId = await this._eventStore.storeEvent(streamId, message);
|
|
861
|
+
// Re-fetch after the await: a resume completing meanwhile replaces
|
|
862
|
+
// this stream's registration with a successor, and the message
|
|
863
|
+
// must go to the live stream, not the evicted one.
|
|
864
|
+
stream = this._streamMapping.get(streamId);
|
|
865
|
+
}
|
|
866
|
+
// Skip the write if the stream was registered by a replay that
|
|
867
|
+
// already delivered this event (the store made it visible before
|
|
868
|
+
// this call resumed).
|
|
869
|
+
if (stream?.controller && stream?.encoder && (eventId === undefined || !stream.replayedEventIds?.has(eventId))) {
|
|
870
|
+
const written = this.writeSSEEvent(stream.controller, stream.encoder, message, eventId);
|
|
871
|
+
// The client now holds a Last-Event-ID cursor for this stream
|
|
872
|
+
if (written && eventId !== undefined) {
|
|
873
|
+
this._resumableStreams.add(streamId);
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
if (isJSONRPCResultResponse(message) || isJSONRPCErrorResponse(message)) {
|
|
878
|
+
this._requestResponseMap.set(requestId, message);
|
|
879
|
+
const relatedIds = Array.from(this._requestToStreamMapping.entries())
|
|
880
|
+
.filter(([_, sid]) => sid === streamId)
|
|
881
|
+
.map(([id]) => id);
|
|
882
|
+
// Check if we have responses for all requests using this connection
|
|
883
|
+
const allResponsesReady = relatedIds.every(id => this._requestResponseMap.has(id));
|
|
884
|
+
if (allResponsesReady) {
|
|
885
|
+
if (!stream) {
|
|
886
|
+
// close() ran while the event store write above was awaiting:
|
|
887
|
+
// release the entries this call re-created after the sweep,
|
|
888
|
+
// then treat the late completion as a no-op.
|
|
889
|
+
if (this._closed) {
|
|
890
|
+
for (const id of relatedIds) {
|
|
891
|
+
this._requestResponseMap.delete(id);
|
|
892
|
+
this._requestToStreamMapping.delete(id);
|
|
893
|
+
}
|
|
894
|
+
return;
|
|
895
|
+
}
|
|
896
|
+
if (!this._enableJsonResponse && this._eventStore && this._resumableStreams.has(streamId)) {
|
|
897
|
+
// The stream went away (client disconnect, or
|
|
898
|
+
// closeSSEStream switched the client to polling), but the
|
|
899
|
+
// response was stored above and will be replayed on
|
|
900
|
+
// resume — release the correlations rather than throwing.
|
|
901
|
+
for (const id of relatedIds) {
|
|
902
|
+
this._requestResponseMap.delete(id);
|
|
903
|
+
this._requestToStreamMapping.delete(id);
|
|
904
|
+
}
|
|
905
|
+
this._resumableStreams.delete(streamId);
|
|
906
|
+
return;
|
|
907
|
+
}
|
|
908
|
+
// Without resumability (or in JSON response mode, where the
|
|
909
|
+
// pending HTTP response can never be settled by a replay),
|
|
910
|
+
// a missing stream means the response cannot be delivered.
|
|
911
|
+
// Release the correlations so the entries don't outlive the
|
|
912
|
+
// undeliverable response.
|
|
913
|
+
for (const id of relatedIds) {
|
|
914
|
+
this._requestResponseMap.delete(id);
|
|
915
|
+
this._requestToStreamMapping.delete(id);
|
|
916
|
+
}
|
|
917
|
+
throw new Error(`No connection established for request ID: ${String(requestId)}`);
|
|
918
|
+
}
|
|
919
|
+
if (this._enableJsonResponse && stream.resolveJson) {
|
|
920
|
+
// All responses ready, send as JSON
|
|
921
|
+
const headers = {
|
|
922
|
+
'Content-Type': 'application/json'
|
|
923
|
+
};
|
|
924
|
+
if (this.sessionId !== undefined) {
|
|
925
|
+
headers['mcp-session-id'] = this.sessionId;
|
|
926
|
+
}
|
|
927
|
+
const responses = relatedIds.map(id => this._requestResponseMap.get(id));
|
|
928
|
+
if (responses.length === 1) {
|
|
929
|
+
stream.resolveJson(new Response(JSON.stringify(responses[0]), { status: 200, headers }));
|
|
930
|
+
}
|
|
931
|
+
else {
|
|
932
|
+
stream.resolveJson(new Response(JSON.stringify(responses), { status: 200, headers }));
|
|
933
|
+
}
|
|
934
|
+
}
|
|
935
|
+
else {
|
|
936
|
+
// End the SSE stream
|
|
937
|
+
stream.cleanup();
|
|
938
|
+
}
|
|
939
|
+
// Clean up
|
|
940
|
+
for (const id of relatedIds) {
|
|
941
|
+
this._requestResponseMap.delete(id);
|
|
942
|
+
this._requestToStreamMapping.delete(id);
|
|
943
|
+
}
|
|
944
|
+
this._resumableStreams.delete(streamId);
|
|
945
|
+
}
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
//# sourceMappingURL=webStandardStreamableHttp.js.map
|