@prismshadow/penguin-server 0.2.16 → 0.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.md +1 -1
  2. package/dist/api/types.d.ts +233 -47
  3. package/dist/api/types.js +9 -3
  4. package/dist/auth-token.js +1 -1
  5. package/dist/{chunk-HMTT2PX4.js → chunk-2LZDP26O.js} +8 -5
  6. package/dist/chunk-2LZDP26O.js.map +1 -0
  7. package/dist/{chunk-LPPVGHYD.js → chunk-BL4U7GYY.js} +2 -2
  8. package/dist/chunk-BL4U7GYY.js.map +1 -0
  9. package/dist/chunk-GGIINEEK.js +3401 -0
  10. package/dist/chunk-GGIINEEK.js.map +1 -0
  11. package/dist/chunk-HDBZRVA5.js +29 -0
  12. package/dist/chunk-HDBZRVA5.js.map +1 -0
  13. package/dist/{chunk-3SFJKLQU.js → chunk-HPOHMZCH.js} +679 -559
  14. package/dist/chunk-HPOHMZCH.js.map +1 -0
  15. package/dist/{chunk-QFV3ERQO.js → chunk-OQZDL3TR.js} +2 -2
  16. package/dist/hmr/manifest.js +1 -1
  17. package/dist/index.js +7701 -4814
  18. package/dist/index.js.map +1 -1
  19. package/dist/machine-status.js +2 -2
  20. package/dist/model-catalog.d.ts +610 -0
  21. package/dist/model-catalog.js +108 -0
  22. package/dist/model-catalog.js.map +1 -0
  23. package/dist/plugin/index.d.ts +113 -58
  24. package/dist/reset-admin-password.js +1 -1
  25. package/dist/version-report.js +2 -2
  26. package/package.json +14 -9
  27. package/web-dist/assets/{abnfDiagram-VCTEODGH-0AKFiyig.js → abnfDiagram-VCTEODGH-DMzkb4l4.js} +1 -1
  28. package/web-dist/assets/{addon-clipboard-BovFnNVg.js → addon-clipboard-BtD2BVSi.js} +1 -1
  29. package/web-dist/assets/{addon-fit-B1npgxQk.js → addon-fit-Dr6HWsi_.js} +1 -1
  30. package/web-dist/assets/{addon-web-links-D88QHj7A.js → addon-web-links-VEE3YLzQ.js} +1 -1
  31. package/web-dist/assets/{arc-Beox1Cgf.js → arc-CvMPOU_B.js} +1 -1
  32. package/web-dist/assets/{architectureDiagram-5GKGNRK7-CC1sLMY1.js → architectureDiagram-5GKGNRK7-Bk65mIBz.js} +1 -1
  33. package/web-dist/assets/{blockDiagram-I7D4REHJ-B8BY1PkZ.js → blockDiagram-I7D4REHJ-D54-XSNs.js} +1 -1
  34. package/web-dist/assets/{c4Diagram-7LVT6UL2-yjY0BkxQ.js → c4Diagram-7LVT6UL2-Dm954LSt.js} +1 -1
  35. package/web-dist/assets/channel-CVHI75kz.js +1 -0
  36. package/web-dist/assets/{chunk-2Q5K7J3B-DdgIvETg.js → chunk-2Q5K7J3B-D_LJ_7Cn.js} +1 -1
  37. package/web-dist/assets/{chunk-5VM5RSS4-BE38k1Rs.js → chunk-5VM5RSS4-B8RI4tl3.js} +1 -1
  38. package/web-dist/assets/{chunk-F27PBJKO-D4YXmaqQ.js → chunk-F27PBJKO-aVSYH9JV.js} +1 -1
  39. package/web-dist/assets/{chunk-IMKFNOWR-CyJFdThc.js → chunk-IMKFNOWR-DnkdWeq2.js} +1 -1
  40. package/web-dist/assets/{chunk-JWPE2WC7-BAM_oEUU.js → chunk-JWPE2WC7-C2pJzKuW.js} +1 -1
  41. package/web-dist/assets/{chunk-POPQ4Y6H-BP3D0FVi.js → chunk-POPQ4Y6H-Bx7Iikzx.js} +1 -1
  42. package/web-dist/assets/{chunk-SVP7TREG-Clk8PdKZ.js → chunk-SVP7TREG-qJC2SMqr.js} +1 -1
  43. package/web-dist/assets/{chunk-TICWLB2K-EvWPnEGg.js → chunk-TICWLB2K-Crl_BgKI.js} +1 -1
  44. package/web-dist/assets/{chunk-XXDRQBXY-6p5D0UB1.js → chunk-XXDRQBXY-BFFemuGm.js} +1 -1
  45. package/web-dist/assets/classDiagram-ZZMXUADV-CBdzAPFu.js +1 -0
  46. package/web-dist/assets/classDiagram-v2-VYDZK3BY-CBdzAPFu.js +1 -0
  47. package/web-dist/assets/{cose-bilkent-JH36ORCC-bpkI-tLJ.js → cose-bilkent-JH36ORCC-Bmh2Kx7h.js} +1 -1
  48. package/web-dist/assets/{cynefin-OW5HDTMX-srLaqJ4e.js → cynefin-OW5HDTMX-BveNWnUV.js} +1 -1
  49. package/web-dist/assets/{cynefinDiagram-5FMLGOSQ-BPfpHSPc.js → cynefinDiagram-5FMLGOSQ-85itazbJ.js} +1 -1
  50. package/web-dist/assets/{dagre-GXQ25YYZ-C4fF5-j7.js → dagre-GXQ25YYZ-DIZT-KY_.js} +1 -1
  51. package/web-dist/assets/{diagram-S7CK7UJ4-BzBLb_9-.js → diagram-S7CK7UJ4-Dum-g63f.js} +1 -1
  52. package/web-dist/assets/{diagram-UQ7AKVKN-BJuJ1o_T.js → diagram-UQ7AKVKN-DallMKJl.js} +1 -1
  53. package/web-dist/assets/{diagram-VSXAHHWV-DFelN9i9.js → diagram-VSXAHHWV-DWELqxfN.js} +1 -1
  54. package/web-dist/assets/{diagram-VX7I27RA-BgrEoPyp.js → diagram-VX7I27RA-BNs0gB9E.js} +1 -1
  55. package/web-dist/assets/{diagram-Z3DM3KII-C71KiMiX.js → diagram-Z3DM3KII-C9mF9xAd.js} +1 -1
  56. package/web-dist/assets/{ebnfDiagram-PWID7BFC-EYteyp1b.js → ebnfDiagram-PWID7BFC-D_Diy9HH.js} +1 -1
  57. package/web-dist/assets/{erDiagram-RLTQ6QDP-B6n6-sz6.js → erDiagram-RLTQ6QDP-4QTS5VIh.js} +1 -1
  58. package/web-dist/assets/{flowDiagram-HODETNUW-BtoMTdyT.js → flowDiagram-HODETNUW-CliTRrtV.js} +1 -1
  59. package/web-dist/assets/{ganttDiagram-EL5Y4UJY-CbOAa3vS.js → ganttDiagram-EL5Y4UJY-DCRd-Ss4.js} +1 -1
  60. package/web-dist/assets/{gitGraphDiagram-WWUBYQGX-B7-8sszH.js → gitGraphDiagram-WWUBYQGX-CTz13GjS.js} +1 -1
  61. package/web-dist/assets/highlighter-BScH1Ud3.js +2 -0
  62. package/web-dist/assets/{highlighter-core-CMXoD8ze.js → highlighter-core-DKz8Z6-I.js} +1 -1
  63. package/web-dist/assets/{highlighter.worker-D6D9fPma.js → highlighter.worker-CKF6ok1g.js} +1 -1
  64. package/web-dist/assets/index-BUvJ5Ctt.js +1299 -0
  65. package/web-dist/assets/index-DRj7nvPY.css +1 -0
  66. package/web-dist/assets/{infoDiagram-27XIBGKW-BBjf6pkP.js → infoDiagram-27XIBGKW-DNfTEPAV.js} +1 -1
  67. package/web-dist/assets/{ishikawaDiagram-5VMMS53U-BBSvCv45.js → ishikawaDiagram-5VMMS53U-B7aCjjG1.js} +1 -1
  68. package/web-dist/assets/{journeyDiagram-3NMN7TZE-CuHHl5zk.js → journeyDiagram-3NMN7TZE-COmDALVr.js} +1 -1
  69. package/web-dist/assets/{kanban-definition-UXKFOSKX-DJyP4Myw.js → kanban-definition-UXKFOSKX-BzUfPINh.js} +1 -1
  70. package/web-dist/assets/{layout-Bqqhdwtt.js → layout-BwzuPU4M.js} +1 -1
  71. package/web-dist/assets/{linear-BZfUSIf8.js → linear-WPZTYjz3.js} +1 -1
  72. package/web-dist/assets/mermaid.core-zKzlwpkw.js +310 -0
  73. package/web-dist/assets/{mindmap-definition-YA3MSWOX-BtyMD4wz.js → mindmap-definition-YA3MSWOX-DCRg7eAx.js} +1 -1
  74. package/web-dist/assets/{pegDiagram-XKGWAZYB-BUF_GJ0B.js → pegDiagram-XKGWAZYB-DyphzDLU.js} +1 -1
  75. package/web-dist/assets/{pieDiagram-E7YTZNPT-nweubbsU.js → pieDiagram-E7YTZNPT-BI5DueGA.js} +1 -1
  76. package/web-dist/assets/powershell-DXrKVo3G.js +1 -0
  77. package/web-dist/assets/powershell-Dpen1YoG.js +1 -0
  78. package/web-dist/assets/{quadrantDiagram-AXDQQJYC-B_r4Wkxy.js → quadrantDiagram-AXDQQJYC-GZxSMY2Z.js} +1 -1
  79. package/web-dist/assets/{railroadDiagram-O6MQD6OU-Dn7nm0MX.js → railroadDiagram-O6MQD6OU-DEFCigBf.js} +1 -1
  80. package/web-dist/assets/{requirementDiagram-BXWQKSXE-DaagYJ49.js → requirementDiagram-BXWQKSXE-Br0thc4j.js} +1 -1
  81. package/web-dist/assets/{sankeyDiagram-P5KCCOFB-CqEX6H-B.js → sankeyDiagram-P5KCCOFB-DYf0pY67.js} +1 -1
  82. package/web-dist/assets/{sequenceDiagram-WJ2MYXX4-BzLfQO55.js → sequenceDiagram-WJ2MYXX4-1EFMboX4.js} +1 -1
  83. package/web-dist/assets/{sizeCapture-INFHLROL-BcUuVH2L.js → sizeCapture-INFHLROL-BuOFv-5q.js} +1 -1
  84. package/web-dist/assets/{stateDiagram-D77RDMKH-BO3LWLvT.js → stateDiagram-D77RDMKH-Bg3H1tjX.js} +1 -1
  85. package/web-dist/assets/stateDiagram-v2-MP3YSRHH-DfaDaPAd.js +1 -0
  86. package/web-dist/assets/{swimlanes-42K2YHIH-etP_hkIB.js → swimlanes-42K2YHIH-BuOa6Osb.js} +1 -1
  87. package/web-dist/assets/swimlanesDiagram-VR7AAH4N-BopAC7b8.js +8 -0
  88. package/web-dist/assets/{timeline-definition-24CTP7MA-CTLt2XCT.js → timeline-definition-24CTP7MA-BDekfdDT.js} +1 -1
  89. package/web-dist/assets/{vennDiagram-4TSXK5OY-DPO6ZSvH.js → vennDiagram-4TSXK5OY-DnC09UI4.js} +1 -1
  90. package/web-dist/assets/{wardleyDiagram-VM6X3IG4-DFofGg8b.js → wardleyDiagram-VM6X3IG4-BXKvxuZQ.js} +1 -1
  91. package/web-dist/assets/{xterm-RdyTuaAH.js → xterm-oY4DYg5s.js} +1 -1
  92. package/web-dist/assets/{xychartDiagram-S5SC5T6Z-Bgtb34Gu.js → xychartDiagram-S5SC5T6Z-DdDC1VLb.js} +1 -1
  93. package/web-dist/index.html +6 -5
  94. package/dist/chunk-3SFJKLQU.js.map +0 -1
  95. package/dist/chunk-HMTT2PX4.js.map +0 -1
  96. package/dist/chunk-LPPVGHYD.js.map +0 -1
  97. package/dist/chunk-W7JNIJ25.js +0 -19
  98. package/dist/chunk-W7JNIJ25.js.map +0 -1
  99. package/web-dist/assets/channel-mfsAVJLE.js +0 -1
  100. package/web-dist/assets/classDiagram-ZZMXUADV-BPVO1m8i.js +0 -1
  101. package/web-dist/assets/classDiagram-v2-VYDZK3BY-BPVO1m8i.js +0 -1
  102. package/web-dist/assets/highlighter-Bj5l2XH_.js +0 -2
  103. package/web-dist/assets/index-BOCqRT4e.css +0 -1
  104. package/web-dist/assets/index-BrMpjp2s.js +0 -1286
  105. package/web-dist/assets/mermaid.core-BlUspEsI.js +0 -310
  106. package/web-dist/assets/stateDiagram-v2-MP3YSRHH-B-EuucjM.js +0 -1
  107. package/web-dist/assets/swimlanesDiagram-VR7AAH4N-0JbFdDbQ.js +0 -8
  108. /package/dist/{chunk-QFV3ERQO.js.map → chunk-OQZDL3TR.js.map} +0 -0
@@ -0,0 +1,108 @@
1
+ import {
2
+ DEEPSEEK_OFF_PEAK,
3
+ MODELSCOPE_PROVIDER_ID,
4
+ MODEL_CATALOG,
5
+ MODEL_PROVIDERS,
6
+ PENGUIN_GO_BASE_URL,
7
+ PENGUIN_GO_PROVIDER_ID,
8
+ PRESET_DEFAULT_MODEL,
9
+ QWEN_OFF_PEAK,
10
+ catalogEntryFor,
11
+ catalogGroupConnection,
12
+ catalogModelEntries,
13
+ clientEnvKey,
14
+ effectivePricing,
15
+ fixedClientType,
16
+ fixedClientTypeRefuses,
17
+ isAddableGroup,
18
+ isVendorGroup,
19
+ modelCalledKeyless,
20
+ modelEnvPreviewKey,
21
+ modelEnvironment,
22
+ modelHomepageUrl,
23
+ offPeakAt,
24
+ offPeakScheduledRefs,
25
+ presetModelEntries,
26
+ presetPromotions,
27
+ presetProviderTable,
28
+ providerCalledKeyless,
29
+ providerClientType,
30
+ providerEnvFallbackKey,
31
+ providerInfo,
32
+ retainedCatalogPricing,
33
+ unaddableModel,
34
+ unroutableVendorModel,
35
+ vendorClientType
36
+ } from "./chunk-GGIINEEK.js";
37
+ import "./chunk-B5IP37ZQ.js";
38
+
39
+ // src/model-catalog/client-protocols.ts
40
+ import { routedClientType } from "@prismshadow/mmsp/credentials";
41
+ import { routedClientType as routedClientType2 } from "@prismshadow/mmsp/credentials";
42
+ var CLIENT_PROTOCOLS = {
43
+ "openai-official": { path: "/responses", fastMode: "openai" },
44
+ "anthropic-official": { path: "/v1/messages", fastMode: "anthropic" },
45
+ "google-official": { path: "/v1beta/interactions", fastMode: "openai" },
46
+ "zai-official": { path: "/chat/completions" },
47
+ "moonshot-official": { path: "/chat/completions" },
48
+ "deepseek-official": { path: "/responses" },
49
+ "minimax-official": { path: "/responses", fastMode: "openai" },
50
+ "openai-responses": { path: "/responses", fastMode: "openai" },
51
+ "openai-chat": { path: "/chat/completions", fastMode: "openai" },
52
+ "openai-chat-vllm-adapter": { path: "/chat/completions", fastMode: "openai" },
53
+ "openai-embedding": { path: "/embeddings" },
54
+ "ant-messages": { path: "/v1/messages", fastMode: "anthropic" },
55
+ "google-genai": { path: "/v1beta/models" },
56
+ // An MMSP server: the client posts to {base}/stream. It forwards `fast_mode` to the server,
57
+ // whose upstream client decides, so the harness offers no toggle it cannot vouch for.
58
+ mmsp: { path: "/stream" }
59
+ };
60
+ function fastModeProtocol(modelId, clientType, baseUrl) {
61
+ const routed = routedClientType(modelId, clientType?.trim() ? clientType : null);
62
+ if (routed === "anthropic-official" && (baseUrl?.startsWith("bedrock://") || ["4-6", "sonnet-5-5", "haiku-5-5", "fable-5-1"].some(
63
+ (generation) => modelId.includes(generation)
64
+ ))) {
65
+ return void 0;
66
+ }
67
+ return routed === null ? void 0 : CLIENT_PROTOCOLS[routed]?.fastMode;
68
+ }
69
+ export {
70
+ CLIENT_PROTOCOLS,
71
+ DEEPSEEK_OFF_PEAK,
72
+ MODELSCOPE_PROVIDER_ID,
73
+ MODEL_CATALOG,
74
+ MODEL_PROVIDERS,
75
+ PENGUIN_GO_BASE_URL,
76
+ PENGUIN_GO_PROVIDER_ID,
77
+ PRESET_DEFAULT_MODEL,
78
+ QWEN_OFF_PEAK,
79
+ catalogEntryFor,
80
+ catalogGroupConnection,
81
+ catalogModelEntries,
82
+ clientEnvKey,
83
+ effectivePricing,
84
+ fastModeProtocol,
85
+ fixedClientType,
86
+ fixedClientTypeRefuses,
87
+ isAddableGroup,
88
+ isVendorGroup,
89
+ modelCalledKeyless,
90
+ modelEnvPreviewKey,
91
+ modelEnvironment,
92
+ modelHomepageUrl,
93
+ offPeakAt,
94
+ offPeakScheduledRefs,
95
+ presetModelEntries,
96
+ presetPromotions,
97
+ presetProviderTable,
98
+ providerCalledKeyless,
99
+ providerClientType,
100
+ providerEnvFallbackKey,
101
+ providerInfo,
102
+ retainedCatalogPricing,
103
+ routedClientType2 as routedClientType,
104
+ unaddableModel,
105
+ unroutableVendorModel,
106
+ vendorClientType
107
+ };
108
+ //# sourceMappingURL=model-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/model-catalog/client-protocols.ts"],"sourcesContent":["/**\n * What the UI needs to know about MMSP's clients: which client an entry reaches (MMSP's own\n * routedClientType, passed through), the path that client appends to its base URL, and the\n * protocol that carries fast mode on it. MMSP's credentials module answers the routing; the\n * catalog keeps no copy of it and adds only what MMSP exports nothing for (CLIENT_PROTOCOLS).\n *\n * A leaf: it imports MMSP's browser-safe credentials module and nothing of the catalog, so the\n * catalog, the environment-key previews and the browser may all read it.\n */\nimport { routedClientType } from \"@prismshadow/mmsp/credentials\";\n\n// MMSP's routing, passed through for browser code that reads the catalog: which client an entry\n// reaches (its pinned client type, else its id's family), or null where nothing routes.\nexport { routedClientType } from \"@prismshadow/mmsp/credentials\";\n\n/**\n * The wire protocol that carries MMSP's `fast_mode` on a client: `\"openai\"` for the clients\n * that send `service_tier: \"priority\"` (the OpenAI protocols, and Google's Interactions API\n * and MiniMax alike), `\"anthropic\"` for those that send `speed: \"fast\"` plus the\n * `fast-mode-2026-02-01` beta header. The two differ in what the user must be warned about,\n * not just in wire shape.\n */\nexport type FastModeProtocol = \"openai\" | \"anthropic\";\n\n/**\n * What the UI shows about each MMSP client, which MMSP exports nothing for: the path it appends\n * to its base URL (the models page's endpoint hint) and the protocol that carries `fast_mode`\n * (absent = the client rejects it, or the harness cannot tell what it does with it). Keyed by\n * the canonical client type MMSP's routedClientType returns; the catalog test holds it to the\n * client types MMSP's credentials module knows.\n */\nexport const CLIENT_PROTOCOLS: Readonly<\n Record<string, { path: string; fastMode?: FastModeProtocol }>\n> = {\n \"openai-official\": { path: \"/responses\", fastMode: \"openai\" },\n \"anthropic-official\": { path: \"/v1/messages\", fastMode: \"anthropic\" },\n \"google-official\": { path: \"/v1beta/interactions\", fastMode: \"openai\" },\n \"zai-official\": { path: \"/chat/completions\" },\n \"moonshot-official\": { path: \"/chat/completions\" },\n \"deepseek-official\": { path: \"/responses\" },\n \"minimax-official\": { path: \"/responses\", fastMode: \"openai\" },\n \"openai-responses\": { path: \"/responses\", fastMode: \"openai\" },\n \"openai-chat\": { path: \"/chat/completions\", fastMode: \"openai\" },\n \"openai-chat-vllm-adapter\": { path: \"/chat/completions\", fastMode: \"openai\" },\n \"openai-embedding\": { path: \"/embeddings\" },\n \"ant-messages\": { path: \"/v1/messages\", fastMode: \"anthropic\" },\n \"google-genai\": { path: \"/v1beta/models\" },\n // An MMSP server: the client posts to {base}/stream. It forwards `fast_mode` to the server,\n // whose upstream client decides, so the harness offers no toggle it cannot vouch for.\n mmsp: { path: \"/stream\" },\n};\n\n/**\n * Whether a model can carry fast mode at all, and on which protocol - `undefined` means no.\n *\n * The fast tier is a property of the **client MMSP routes to** (MMSP's routedClientType), never of\n * the catalog row: the registry carries no fast-tier capability flag, but the routing is\n * deterministic, so the answer is too. This reports what the selected client does with the\n * parameter:\n *\n * - maps it -> the protocol, and the toggle may be offered;\n * - raises UnsupportedParameterError (the Z.AI, Moonshot, DeepSeek, google-genai and\n * embedding clients, and anthropic-official on Bedrock or for the generations that reject\n * the `speed` parameter) -> `undefined`;\n * - forwards it to an MMSP server, whose upstream client decides what it does with it (mmsp)\n * -> `undefined`: the harness cannot say on which protocol, or whether at all;\n * - routes nowhere (AutoLLMClient throws for an id it cannot place) -> `undefined` as well,\n * since a model that cannot run has no fast tier either.\n *\n * A rule rather than a per-model list on purpose: catalog rows added later inherit the right\n * answer without anyone remembering to update a table.\n *\n * `\"anthropic\"` is reported for every Claude the client serves, including ids outside the\n * research preview's Opus allowlist: Anthropic answers those with a 429 at request time, which\n * is something to warn about before enabling, not grounds to hide the setting.\n *\n * Two runtime inputs stay invisible to a pure function of the config and can still flip the\n * answer: the server's `CLIENT_TYPE` env var names the client for an entry that pins none, and\n * `ANTHROPIC_BASE_URL` supplies the base URL when the entry leaves it blank (so a `bedrock://`\n * there sends Claude to Bedrock, which has no fast tier). Third-party OpenAI-compatible\n * endpoints are a third: they accept `service_tier` and may quietly serve the standard tier.\n * That residue is why llm/generative-model.ts still handles the rejection at runtime.\n */\nexport function fastModeProtocol(\n modelId: string,\n clientType?: string,\n baseUrl?: string,\n): FastModeProtocol | undefined {\n // A blank pin is none, which routes by the id.\n const routed = routedClientType(modelId, clientType?.trim() ? clientType : null);\n // Bedrock has no fast tier, and these Claude generations reject the `speed` parameter (MMSP\n // 0.5.2's NO_FAST_MODE); both tests run against what the client was constructed with, as the\n // client's own do.\n if (\n routed === \"anthropic-official\" &&\n (baseUrl?.startsWith(\"bedrock://\") ||\n [\"4-6\", \"sonnet-5-5\", \"haiku-5-5\", \"fable-5-1\"].some((generation) =>\n modelId.includes(generation),\n ))\n ) {\n return undefined;\n }\n return routed === null ? undefined : CLIENT_PROTOCOLS[routed]?.fastMode;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,SAAS,wBAAwB;AAIjC,SAAS,oBAAAA,yBAAwB;AAkB1B,IAAM,mBAET;AAAA,EACF,mBAAmB,EAAE,MAAM,cAAc,UAAU,SAAS;AAAA,EAC5D,sBAAsB,EAAE,MAAM,gBAAgB,UAAU,YAAY;AAAA,EACpE,mBAAmB,EAAE,MAAM,wBAAwB,UAAU,SAAS;AAAA,EACtE,gBAAgB,EAAE,MAAM,oBAAoB;AAAA,EAC5C,qBAAqB,EAAE,MAAM,oBAAoB;AAAA,EACjD,qBAAqB,EAAE,MAAM,aAAa;AAAA,EAC1C,oBAAoB,EAAE,MAAM,cAAc,UAAU,SAAS;AAAA,EAC7D,oBAAoB,EAAE,MAAM,cAAc,UAAU,SAAS;AAAA,EAC7D,eAAe,EAAE,MAAM,qBAAqB,UAAU,SAAS;AAAA,EAC/D,4BAA4B,EAAE,MAAM,qBAAqB,UAAU,SAAS;AAAA,EAC5E,oBAAoB,EAAE,MAAM,cAAc;AAAA,EAC1C,gBAAgB,EAAE,MAAM,gBAAgB,UAAU,YAAY;AAAA,EAC9D,gBAAgB,EAAE,MAAM,iBAAiB;AAAA;AAAA;AAAA,EAGzC,MAAM,EAAE,MAAM,UAAU;AAC1B;AAiCO,SAAS,iBACd,SACA,YACA,SAC8B;AAE9B,QAAM,SAAS,iBAAiB,SAAS,YAAY,KAAK,IAAI,aAAa,IAAI;AAI/E,MACE,WAAW,yBACV,SAAS,WAAW,YAAY,KAC/B,CAAC,OAAO,cAAc,aAAa,WAAW,EAAE;AAAA,IAAK,CAAC,eACpD,QAAQ,SAAS,UAAU;AAAA,EAC7B,IACF;AACA,WAAO;AAAA,EACT;AACA,SAAO,WAAW,OAAO,SAAY,iBAAiB,MAAM,GAAG;AACjE;","names":["routedClientType"]}